]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Random color register contents at powerup.
authorToni Wilen <twilen@winuae.net>
Sun, 6 Nov 2022 16:51:35 +0000 (18:51 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 6 Nov 2022 16:51:35 +0000 (18:51 +0200)
custom.cpp

index 69e5f429335940d78deead17d544cc7ab363696f..36bb700bec4451f903be184d7f7cfb2f751f2aae 100644 (file)
@@ -13225,20 +13225,36 @@ void custom_reset(bool hardreset, bool keyboardreset)
                        vsstop = 0;
                        hcenter = 0;
 
+                       for (int i = 0; i < 32; i++) {
+                               uae_u16 c;
+                               if (i == 0) {
+                                       c = ((ecs_denise && !aga_mode) || currprefs.cs_denisenoehb) ? 0xfff : 0x000;
+                               } else {
+                                       c |= uaerand();
+                                       c |= uaerand();
+                               }
+                               c &= 0xfff;
+                               current_colors.color_regs_ecs[i] = c;
+                       }
+                       for (int i = 0; i < 256; i++) {
+                               uae_u32 c = 0;
+                               if (i > 0) {
+                                       c |= uaerand();
+                                       c |= uaerand();
+                               }
+                               c &= 0xffffff;
+                               current_colors.color_regs_aga[i] = c;
+                       }
                        if (!aga_mode) {
-                               uae_u16 c = ((ecs_denise && !aga_mode) || currprefs.cs_denisenoehb) ? 0xfff : 0x000;
                                for (int i = 0; i < 32; i++) {
-                                       current_colors.color_regs_ecs[i] = c;
-                                       current_colors.acolors[i] = getxcolor(c);
+                                       current_colors.acolors[i] = getxcolor(current_colors.color_regs_ecs[i]);
                                }
-       #ifdef AGA
+#ifdef AGA
                        } else {
-                               uae_u32 c = 0;
                                for (int i = 0; i < 256; i++) {
-                                       current_colors.color_regs_aga[i] = c;
-                                       current_colors.acolors[i] = getxcolor(c);
+                                       current_colors.acolors[i] = getxcolor(current_colors.color_regs_aga[i]);
                                }
-       #endif
+#endif
                        }
                        lof_store = lof_display = 0;
                        lof_lace = false;