]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1420b1.zip
authorToni Wilen <twilen@winuae.net>
Wed, 28 Mar 2007 17:49:42 +0000 (20:49 +0300)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:32:28 +0000 (21:32 +0200)
39 files changed:
blitter.c
cfgfile.c
custom.c
debug.c
drawing.c
include/custom.h
include/debug.h
include/newcpu.h
include/options.h
include/sysdeps.h
inputdevice.c
main.c
newcpu.c
od-win32/avioutput.c
od-win32/bsdsock.c
od-win32/debug_win32.c [new file with mode: 0755]
od-win32/debug_win32.h [new file with mode: 0755]
od-win32/dinput.c
od-win32/direct3d.c
od-win32/hardfile_win32.c
od-win32/ioport.c
od-win32/keyboard_win32.c
od-win32/makeexe.bat
od-win32/opengl.c
od-win32/picasso96_win.c
od-win32/resources/resource [new file with mode: 0755]
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/resources/winuae_minimal.rc
od-win32/win32.c
od-win32/win32.h
od-win32/win32gfx.c
od-win32/win32gui.c
od-win32/win32gui.h
od-win32/win32gui_extra.c [new file with mode: 0755]
od-win32/winuae_msvc/winuae_msvc.vcproj
od-win32/winuaechangelog.txt
od-win32/writelog.c
zfile.c

index e7b9462c53ee8d1ab3e425955a55e91b5915d1b7..d04685896387a5baea631b965136cff8b73423d6 100755 (executable)
--- a/blitter.c
+++ b/blitter.c
@@ -140,7 +140,7 @@ static const int blit_cycle_diagram[][10] =
     { 3, 3, 1,3,4, 1,3,0 },    /* B */
     { 2, 3, 1,2,0, 1,2 },      /* C */
     { 3, 3, 1,2,4, 1,2,0 },    /* D */
-    { 0, 4, 1,2,3,0 },         /* E */
+    { 0, 3, 1,2,3 },           /* E */
     { 4, 4, 1,2,3,4, 1,2,3,0 } /* F */
 };
 
@@ -162,7 +162,7 @@ static const int blit_cycle_diagram_fill[][10] =
     { 3, 3, 1,3,4, 1,3,0 },    /* B */
     { 2, 3, 1,2,5, 1,2 },      /* C */
     { 3, 4, 1,2,5,4, 1,2,0 },  /* D */
-    { 0, 4, 1,2,3,0 },         /* E */
+    { 0, 3, 1,2,3 },           /* E */
     { 4, 4, 1,2,3,4, 1,2,3,0 } /* F */
 };
 
index 3695c339ea357a6d7dbfe9fcf3c46e56ab2e82d6..4aea8486bcb835cba94173c8ad2bed054ac3a243 100755 (executable)
--- a/cfgfile.c
+++ b/cfgfile.c
@@ -147,7 +147,11 @@ static const char *idemode[] = { "none", "a600/a1200", "a4000", 0 };
 static const char *rtctype[] = { "none", "MSM6242B", "RP5C01A", 0 };
 static const char *ciaatodmode[] = { "vblank", "50hz", "60hz", 0 };
 static const char *ksmirrortype[] = { "none", "e0", "a8+e0", 0 };
-static const char *cscompa[] = { "-", "Generic", "CDTV", "CD32", "A500", "A500+", "A600", "A1000", "A1200", "A2000", "A4000", 0 };
+static const char *cscompa[] = {
+    "-", "Generic", "CDTV", "CD32", "A500", "A500+", "A600",
+    "A1000", "A1200", "A2000", "A3000", "A3000T", "A4000", "A4000T", 0
+};
+static const char *fullmodes[] = { "false", "true", "fullwindow", 0 };
 
 static const char *obsolete[] = {
     "accuracy", "gfx_opengl", "gfx_32bit_blits", "32bit_blits",
@@ -404,8 +408,8 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
     cfgfile_write (f, "gfx_lores_mode=%s\n", loresmode[p->gfx_lores_mode]);
     cfgfile_write (f, "gfx_linemode=%s\n", linemode1[p->gfx_linedbl]);
     cfgfile_write (f, "gfx_correct_aspect=%s\n", p->gfx_correct_aspect ? "true" : "false");
-    cfgfile_write (f, "gfx_fullscreen_amiga=%s\n", p->gfx_afullscreen ? "true" : "false");
-    cfgfile_write (f, "gfx_fullscreen_picasso=%s\n", p->gfx_pfullscreen ? "true" : "false");
+    cfgfile_write (f, "gfx_fullscreen_amiga=%s\n", fullmodes[p->gfx_afullscreen]);
+    cfgfile_write (f, "gfx_fullscreen_picasso=%s\n", fullmodes[p->gfx_pfullscreen]);
     cfgfile_write (f, "gfx_center_horizontal=%s\n", centermode1[p->gfx_xcenter]);
     cfgfile_write (f, "gfx_center_vertical=%s\n", centermode1[p->gfx_ycenter]);
     cfgfile_write (f, "gfx_colour_mode=%s\n", colormode1[p->color_mode]);
@@ -763,8 +767,6 @@ static int cfgfile_parse_host (struct uae_prefs *p, char *option, char *value)
        || cfgfile_yesno (option, value, "gfx_vsync", &p->gfx_vsync)
        || cfgfile_yesno (option, value, "gfx_lores", &p->gfx_lores)
        || cfgfile_yesno (option, value, "gfx_correct_aspect", &p->gfx_correct_aspect)
-       || cfgfile_yesno (option, value, "gfx_fullscreen_amiga", &p->gfx_afullscreen)
-       || cfgfile_yesno (option, value, "gfx_fullscreen_picasso", &p->gfx_pfullscreen)
        || cfgfile_yesno (option, value, "show_leds", &p->leds_on_screen)
        || cfgfile_yesno (option, value, "synchronize_clock", &p->tod_hack)
        || cfgfile_yesno (option, value, "bsdsocket_emu", &p->socket_emu))
@@ -778,6 +780,8 @@ static int cfgfile_parse_host (struct uae_prefs *p, char *option, char *value)
        || cfgfile_strval (option, value, "use_gui", &p->start_gui, guimode1, 1)
        || cfgfile_strval (option, value, "use_gui", &p->start_gui, guimode2, 1)
        || cfgfile_strval (option, value, "use_gui", &p->start_gui, guimode3, 0)
+       || cfgfile_strval (option, value, "gfx_fullscreen_amiga", &p->gfx_afullscreen, fullmodes, 0)
+       || cfgfile_strval (option, value, "gfx_fullscreen_picasso", &p->gfx_pfullscreen, fullmodes, 0)
        || cfgfile_strval (option, value, "gfx_lores_mode", &p->gfx_lores_mode, loresmode, 0)
        || cfgfile_strval (option, value, "gfx_linemode", &p->gfx_linedbl, linemode1, 1)
        || cfgfile_strval (option, value, "gfx_linemode", &p->gfx_linedbl, linemode2, 0)
index f829e8901ae9fc9282b83ae74b7a98ba04a31c7e..077892e983317308185adc3c291df470bb15199f 100755 (executable)
--- a/custom.c
+++ b/custom.c
@@ -159,6 +159,7 @@ static uae_u32 cop1lc,cop2lc,copcon;
 
 int maxhpos = MAXHPOS_PAL;
 int maxvpos = MAXVPOS_PAL;
+int maxvpos_max = MAXVPOS_PAL;
 int minfirstline = VBLANK_ENDLINE_PAL;
 int vblank_hz = VBLANK_HZ_PAL, fake_vblank_hz, vblank_skip;
 frame_time_t syncbase;
@@ -2252,6 +2253,7 @@ void init_hz (void)
            vblank_hz = VBLANK_HZ_NTSC;
            sprite_vblank_endline = VBLANK_SPRITE_NTSC;
        }
+        maxvpos_max = maxvpos;
     }
     if (beamcon0 & 0x80) {
        if (vtotal >= MAXVPOS)
@@ -2267,6 +2269,7 @@ void init_hz (void)
        if (minfirstline >= maxvpos)
            minfirstline = maxvpos - 1;
        sprite_vblank_endline = minfirstline - 2;
+       maxvpos_max = maxvpos;
        dumpsync();
     }
     /* limit to sane values */
@@ -2318,21 +2321,6 @@ static void calcdiw (void)
     plffirstline = vstrt;
     plflastline = vstop;
 
-#if 0
-    /* This happens far too often. */
-    if (plffirstline < minfirstline_bpl) {
-       write_log ("Warning: Playfield begins before line %d (%d)!\n", minfirstline_bpl, plffirstline);
-    }
-#endif
-
-#if 0 /* this comparison is not needed but previous is.. */
-    if (plflastline > 313) {
-       /* Turrican does this */
-       write_log ("Warning: Playfield out of range!\n");
-       plflastline = 313;
-    }
-#endif
-
     plfstrt = ddfstrt;
     plfstop = ddfstop;
     /* probably not the correct place.. */
@@ -4153,7 +4141,7 @@ static void vsync_handler (void)
 
     handle_events ();
 
-    INTREQ_d (0x8000 | 0x0020, 2);
+    INTREQ_d (0x8000 | 0x0020, 3);
     if (bplcon0 & 4)
        lof ^= 0x8000;
 
@@ -4163,8 +4151,6 @@ static void vsync_handler (void)
        picasso_handle_vsync ();
 #endif
 
-   vsync_handle_redraw (lof, lof_changed);
-
     if (quit_program > 0) {
        /* prevent possible infinite loop at wait_cycles().. */
        framecnt = 0;
@@ -4185,6 +4171,8 @@ static void vsync_handler (void)
     if (debug_copper)
        record_copper_reset();
 
+    vsync_handle_redraw (lof, lof_changed);
+
     /* For now, let's only allow this to change at vsync time.  It gets too
      * hairy otherwise.  */
     if ((beamcon0 & (0x20|0x80)) != (new_beamcon0 & (0x20|0x80)) || hack_vpos)
diff --git a/debug.c b/debug.c
index 1837fa022163220d106ef1796e8fe78e83b04452..e4e0c5b79943305cc14b752d293c24715f76df4a 100755 (executable)
--- a/debug.c
+++ b/debug.c
@@ -32,7 +32,7 @@
 #include "inputdevice.h"
 #include "crc32.h"
 
-static int debugger_active;
+int debugger_active;
 static uaecptr skipaddr_start, skipaddr_end;
 static int skipaddr_doskip;
 static uae_u32 skipins;
@@ -51,6 +51,13 @@ extern int inputdevice_logging;
 
 static FILE *logfile;
 
+void deactivate_debugger (void)
+{
+    debugger_active = 0;
+    debugging = 0;
+    exception_debugging = 0;
+}
+
 void activate_debugger (void)
 {
     if (logfile)
@@ -76,6 +83,7 @@ static char help[] = {
     "  c                     Dump state of the CIA, disk drives and custom registers\n"
     "  r                     Dump state of the CPU\n"
     "  m <address> [<lines>] Memory dump starting at <address>\n"
+    "  m r<register>         Memory dump starting at <register>\n"
     "  d <address> [<lines>] Disassembly starting at <address>\n"
     "  t [instructions]      Step one or more instructions\n"
     "  z                     Step through one instruction - useful for JSR, DBRA etc\n"
@@ -116,10 +124,14 @@ static char help[] = {
     "                        Also enables extended disk logging\n"
     "  dj [<level bitmask>]  Enable joystick/mouse input debugging\n"
     "  dm                    Dump current address space map\n"
+#ifdef WIN32
+    "  x                     Close debugger.\n"
+    "  xx                    Switch between console and GUI debugger.\n"
+#endif
     "  q                     Quit the emulator. You don't want to use this command.\n\n"
 };
 
-static void debug_help (void)
+void debug_help (void)
 {
     console_out (help);
 }
@@ -280,29 +292,103 @@ static uaecptr nextaddr (uaecptr addr, uaecptr *end)
     return addr;
 }
 
+int safe_addr(uaecptr addr, int size)
+{
+    addrbank *ab = &get_mem_bank (addr);
+    if (!ab)
+       return 0;
+    if (!ab->check (addr, size))
+       return 0;
+    if (ab->flags == ABFLAG_RAM || ab->flags == ABFLAG_ROM)
+       return 1;
+    return 0;
+}
+
+uaecptr dumpmem2 (uaecptr addr, char *out, int osize)
+{
+    int i, cols = 8;
+    int nonsafe = 0;
+
+    if (osize <= (9 + cols * 5 + 1 + 2 * cols))
+        return addr;
+    sprintf (out, "%08lX ", addr);
+    for (i = 0; i < cols; i++) {
+       uae_u8 b1, b2;
+       b1 = b2 = 0;
+       if (safe_addr(addr, 2)) {
+           b1 = get_byte (addr + 0);
+           b2 = get_byte (addr + 1);
+           sprintf (out + 9 + i * 5, "%02X%02X ", b1, b2);
+           out[9 + cols * 5 + 1 + i * 2 + 0] = b1 >= 32 && b1 < 127 ? b1 : '.';
+           out[9 + cols * 5 + 1 + i * 2 + 1] = b2 >= 32 && b2 < 127 ? b2 : '.';
+       } else {
+           nonsafe++;
+           strcpy (out + 9 + i * 5, "**** ");
+           out[9 + cols * 5 + 1 + i * 2 + 0] = '*';
+           out[9 + cols * 5 + 1 + i * 2 + 1] = '*';
+       }
+        addr += 2;
+    }
+    out[9 + cols * 5] = ' ';
+    out[9 + cols * 5 + 1 + 2 * cols] = 0;
+    if (nonsafe == cols) {
+       addrbank *ab = &get_mem_bank (addr);
+       if (ab->name)
+           memcpy (out + 9 + 4 + 1, ab->name, strlen (ab->name));
+    }
+    return addr;
+}
+
 static void dumpmem (uaecptr addr, uaecptr *nxmem, int lines)
 {
-    char line[80];
-    int cols = 8;
+    char line[MAX_LINEWIDTH + 1];
     for (;lines--;) {
-       int i;
-       sprintf (line, "%08lx ", addr);
-       for (i = 0; i < cols; i++) {
-           uae_u8 b1 = get_byte (addr + 0);
-           uae_u8 b2 = get_byte (addr + 1);
-           addr += 2;
-           sprintf (line + 9 + i * 5, "%02x%02x ", b1, b2);
-           line[9 + cols * 5 + 1 + i * 2 + 0] = b1 >= 32 && b1 < 127 ? b1 : '.';
-           line[9 + cols * 5 + 1 + i * 2 + 1] = b2 >= 32 && b2 < 127 ? b2 : '.';
-       }
-       line[9 + cols * 5] = ' ';
-       line[9 + cols * 5 + 1 + 2 * cols] = 0;
-       console_out ("%s", line);
+        addr = dumpmem2 (addr, line, sizeof(line));
+        console_out ("%s", line);
        console_out ("\n");
     }
     *nxmem = addr;
 }
 
+static void dumpmemreg (char **inptr)
+{
+    int i;
+    char *p = *inptr;
+    uaecptr nxmem, addr;
+    char tmp[10];
+
+    addr = 0;
+    i = 0;
+    while (p[i]) {
+       tmp[i] = toupper(p[i]);
+       if (i >= sizeof (tmp) - 1)
+           break;
+       i++;
+    }
+    tmp[i] = 0;
+    if (!strcmp(tmp, "USP"))
+       addr = regs.usp;
+    if (!strcmp(tmp, "VBR"))
+       addr = regs.vbr;
+    if (!strcmp(tmp, "MSP"))
+       addr = regs.msp;
+    if (!strcmp(tmp, "ISP"))
+       addr = regs.isp;
+    if (!strcmp(tmp, "PC"))
+       addr = regs.pc;
+    if (toupper(p[0]) == 'A' || toupper(p[0]) == 'D') {
+       int reg = 0;
+       if (toupper(p[0]) == 'A')
+           reg += 8;
+       reg += p[1] - '0';
+       if (reg < 0 || reg > 15)
+           return;
+       addr = regs.regs[reg];
+    }
+    addr -= 16;
+    dumpmem (addr, &nxmem, 20);
+}
+
 static void dump_custom_regs (int aga)
 {
     int len, i, j, end;
@@ -795,7 +881,7 @@ static void cheatsearch (char **c)
        }
        listcheater(0);
     }
-    console_out ("Found %d possible addresses with 0x%x (%u) (%d bytes)\n", count, val, val, size);
+    console_out ("Found %d possible addresses with 0x%X (%u) (%d bytes)\n", count, val, val, size);
     console_out ("Now continue with 'g' and use 'C' with a different value\n");
     first = 0;
 }
@@ -1400,7 +1486,7 @@ static void writeintomem (char **c)
        put_byte (addr, val);
        cc = 'B';
     }
-    console_out ("Wrote %x (%u) at %08x.%c\n", val, val, addr, cc);
+    console_out ("Wrote %X (%u) at %08X.%c\n", val, val, addr, cc);
 }
 
 static uae_u8 *dump_xlate(uae_u32 addr)
@@ -1494,22 +1580,22 @@ static void show_exec_tasks (void)
     uaecptr taskready = get_long (execbase + 406);
     uaecptr taskwait = get_long (execbase + 420);
     uaecptr node, end;
-    console_out ("execbase at 0x%08lx\n", (unsigned long) execbase);
+    console_out ("execbase at 0x%08X\n", (unsigned long) execbase);
     console_out ("Current:\n");
     node = get_long (execbase + 276);
-    console_out ("%08lx: %08lx %s\n", node, 0, get_real_address (get_long (node + 10)));
+    console_out ("%08X: %08X %s\n", node, 0, get_real_address (get_long (node + 10)));
     console_out ("Ready:\n");
     node = get_long (taskready);
     end = get_long (taskready + 4);
     while (node) {
-       console_out ("%08lx: %08lx %s\n", node, 0, get_real_address (get_long (node + 10)));
+       console_out ("%08X: %08X %s\n", node, 0, get_real_address (get_long (node + 10)));
        node = get_long (node);
     }
     console_out ("Waiting:\n");
     node = get_long (taskwait);
     end = get_long (taskwait + 4);
     while (node) {
-       console_out ("%08lx: %08lx %s\n", node, 0, get_real_address (get_long (node + 10)));
+       console_out ("%08X: %08X %s\n", node, 0, get_real_address (get_long (node + 10)));
        node = get_long (node);
     }
 }
@@ -1700,7 +1786,7 @@ static void searchmem (char **cc)
        if (more_params (cc))
            endaddr = readhex (cc);
     }
-    console_out ("Searching from %08x to %08x..\n", addr, endaddr);
+    console_out ("Searching from %08X to %08X..\n", addr, endaddr);
     while ((addr = nextaddr (addr, NULL)) != 0xffffffff) {
        if (addr == endaddr)
            break;
@@ -1716,7 +1802,7 @@ static void searchmem (char **cc)
        }
        if (i == sslen) {
            got++;
-           console_out (" %08x", addr);
+           console_out (" %08X", addr);
            if (got > 100) {
                console_out ("\nMore than 100 results, aborting..");
                break;
@@ -1851,7 +1937,7 @@ static void m68k_modify (char **inptr)
 
 static void debug_1 (void)
 {
-    char input[80];
+    char input[MAX_LINEWIDTH];
     uaecptr nxdis, nxmem, addr;
 
     m68k_dumpstate (stdout, &nextpc);
@@ -1860,9 +1946,12 @@ static void debug_1 (void)
     for (;;) {
        char cmd, *inptr;
 
+       if (!debugger_active)
+           return;
+       update_debug_info();
        console_out (">");
        console_flush ();
-       if (!console_get (input, 80))
+       if (!console_get (input, MAX_LINEWIDTH))
            continue;
        inptr = input;
        cmd = next_char (&inptr);
@@ -1960,9 +2049,9 @@ static void debug_1 (void)
            }
            break;
 
-       case 'q': uae_quit();
-           debugger_active = 0;
-           debugging = 0;
+       case 'q':
+           uae_quit();
+           deactivate_debugger();
            return;
 
        case 'g':
@@ -1970,11 +2059,19 @@ static void debug_1 (void)
                m68k_setpc (&regs, readhex (&inptr));
                fill_prefetch_slow (&regs);
            }
-           debugger_active = 0;
-           debugging = 0;
-           exception_debugging = 0;
+           deactivate_debugger();
            return;
 
+       case 'x':
+           if (toupper(inptr[0]) == 'X') {
+               debugger_change(-1);
+           } else {
+               deactivate_debugger();
+               close_console();
+               return;
+           }
+           break;
+
        case 'H':
        {
            int count, temp, badly;
@@ -2017,11 +2114,19 @@ static void debug_1 (void)
        break;
        case 'm':
        {
-           uae_u32 maddr; int lines;
-           if (more_params(&inptr))
-               maddr = readhex(&inptr);
-           else
+           uae_u32 maddr;
+           int lines;
+           if (more_params(&inptr)) {
+               if (toupper(inptr[0]) == 'R') {
+                   inptr++;
+                   dumpmemreg(&inptr);
+                   break;
+               } else {
+                   maddr = readhex(&inptr);
+               }
+           } else {
                maddr = nxmem;
+           }
            if (more_params(&inptr))
                lines = readhex(&inptr);
            else
index c5c28b0ddec1bd3ae4f4f1deaad706ab28129f02..5131570dbac2665f8c9fc7322e5774b39239dc09 100755 (executable)
--- a/drawing.c
+++ b/drawing.c
@@ -1166,7 +1166,7 @@ static void init_aspect_maps (void)
 
     if (currprefs.gfx_ycenter && !(currprefs.gfx_correct_aspect)) {
        /* @@@ verify maxvpos vs. MAXVPOS */
-       extra_y_adjust = (gfxvidinfo.height - (maxvpos << (currprefs.gfx_linedbl ? 1 : 0))) >> 1;
+       extra_y_adjust = (gfxvidinfo.height - (maxvpos_max << (currprefs.gfx_linedbl ? 1 : 0))) >> 1;
        if (extra_y_adjust < 0)
            extra_y_adjust = 0;
     }
@@ -1674,13 +1674,13 @@ static void center_image (void)
                thisframe_y_adjust = prev_y_adjust;
        }
        /* Make sure the value makes sense */
-       if (thisframe_y_adjust + max_drawn_amiga_line > maxvpos)
-           thisframe_y_adjust = maxvpos - max_drawn_amiga_line;
+       if (thisframe_y_adjust + max_drawn_amiga_line > maxvpos_max)
+           thisframe_y_adjust = maxvpos_max - max_drawn_amiga_line;
        if (thisframe_y_adjust < minfirstline)
            thisframe_y_adjust = minfirstline;
     }
     thisframe_y_adjust_real = thisframe_y_adjust << (currprefs.gfx_linedbl ? 1 : 0);
-    tmp = (maxvpos - thisframe_y_adjust) << (currprefs.gfx_linedbl ? 1 : 0);
+    tmp = (maxvpos_max - thisframe_y_adjust) << (currprefs.gfx_linedbl ? 1 : 0);
     if (tmp != max_ypos_thisframe) {
        last_max_ypos = tmp;
        if (last_max_ypos < 0)
@@ -1754,7 +1754,8 @@ static void init_drawing_frame (void)
     if (thisframe_first_drawn_line > thisframe_last_drawn_line)
        thisframe_last_drawn_line = thisframe_first_drawn_line;
 
-    maxline = currprefs.gfx_linedbl ? (maxvpos + 1) * 2 + 1 : (maxvpos + 1) + 1;
+    maxline = currprefs.gfx_linedbl ? (maxvpos_max + 1) * 2 + 1 : (maxvpos_max + 1) + 1;
+    maxline++;
 #ifdef SMART_UPDATE
     for (i = 0; i < maxline; i++) {
        switch (linestate[i]) {
@@ -2057,8 +2058,8 @@ static void lightpen_update (void)
        lightpen_cx -= maxhpos;
     if (lightpen_cy < minfirstline)
        lightpen_cy = minfirstline;
-    if (lightpen_cy >= maxvpos)
-       lightpen_cy = maxvpos - 1;
+    if (lightpen_cy >= maxvpos_max)
+       lightpen_cy = maxvpos_max - 1;
 
     for (i = 0; i < LIGHTPEN_HEIGHT; i++) {
         int line = lightpen_y + i - LIGHTPEN_HEIGHT / 2;
@@ -2089,9 +2090,9 @@ void finish_drawing_frame (void)
     return;
 #endif
     for (i = 0; i < max_ypos_thisframe; i++) {
-       int where;
        int i1 = i + min_ypos_for_screen;
        int line = i + thisframe_y_adjust_real;
+       int where;
 
        if (linestate[line] == LINE_UNDECIDED)
            break;
@@ -2099,24 +2100,33 @@ void finish_drawing_frame (void)
        where = amiga2aspect_line_map[i1];
        if (where >= gfxvidinfo.height)
            break;
-       if (where == -1)
+       if (where < 0)
            continue;
 
        pfield_draw_line (line, where, amiga2aspect_line_map[i1 + 1]);
     }
 
     /* clear possible old garbage at the bottom if emulated area become smaller */
-    while (last_max_ypos <  gfxvidinfo.height) {
-       xcolnr tmp = colors_for_drawing.acolors[0];
+    for (i = last_max_ypos; i < gfxvidinfo.height; i++) {
+       int i1 = i + min_ypos_for_screen;
+       int line = i + thisframe_y_adjust_real;
+       int where = amiga2aspect_line_map[i1];
+       xcolnr tmp;
+
+       if (where >= gfxvidinfo.height)
+           break;
+       if (where < 0)
+           continue;
+       tmp = colors_for_drawing.acolors[0];
        colors_for_drawing.acolors[0] = getxcolor (0);
        xlinebuffer = gfxvidinfo.linemem;
        if (xlinebuffer == 0)
-           xlinebuffer = row_map[last_max_ypos];
+           xlinebuffer = row_map[where];
        xlinebuffer -= linetoscr_x_adjust_bytes;
        fill_line ();
-       do_flush_line (last_max_ypos);
+       linestate[line] = LINE_UNDECIDED;
+       do_flush_line (where);
        colors_for_drawing.acolors[0] = tmp;
-       last_max_ypos++;
     }
 
     if (currprefs.leds_on_screen) {
index 6e719a1eebe98ce71640bea8a9e5552f004b3e6c..02ea74fe89834da37f5e8cd437cf2525d57c89d6 100755 (executable)
@@ -101,7 +101,7 @@ extern uae_u16 INTREQR (void);
 #define VBLANK_HZ_PAL 50
 #define VBLANK_HZ_NTSC 60
 
-extern int maxhpos, maxvpos, minfirstline, vblank_endline, numscrlines;
+extern int maxhpos, maxvpos, maxvpos_max, minfirstline, vblank_endline, numscrlines;
 extern int vblank_hz, fake_vblank_hz, vblank_skip;
 extern frame_time_t syncbase;
 #define NUMSCRLINES (maxvpos+1-minfirstline+1)
index 52eb43fe7c0b952be48d69c3c64aa7eb8ad49c1d..aba1319217ff7fa9564dbc037252f4bc94a0a58c 100755 (executable)
 #ifdef DEBUGGER
 
 #define        MAX_HIST 100
+#define MAX_LINEWIDTH 90
 
 extern int debugging;
 extern int exception_debugging;
 extern int debug_copper;
 extern int debug_sprite_mask;
+extern int debugger_active;
 
 extern void debug(void);
+extern void debugger_change(int mode);
 extern void activate_debugger(void);
+extern void deactivate_debugger (void);
 extern int notinrom (void);
 extern const char *debuginfo(int);
 extern void record_copper (uaecptr addr, int hpos, int vpos);
@@ -26,6 +30,9 @@ extern int mmu_init(int,uaecptr,uaecptr);
 extern void mmu_do_hit(void);
 extern void dump_aga_custom (void);
 extern void memory_map_dump (void);
+extern void debug_help (void);
+extern uaecptr dumpmem2 (uaecptr addr, char *out, int osize);
+extern void update_debug_info (void);
 #else
 
 STATIC_INLINE void activate_debugger (void) { };
index 58c15f0bf7b35289d69fdbcfb48731d98b9eed07..08ca51566080f9afaef6181f794dcc1850672a85 100755 (executable)
@@ -286,6 +286,7 @@ extern uae_u32 REGPARAM3 get_disp_ea_020i (struct regstruct *regs, uae_u32 base,
 extern uae_u32 REGPARAM3 get_disp_ea_000 (struct regstruct *regs, uae_u32 base, uae_u32 dp) REGPARAM;
 extern void m68k_disasm_ea (void *f, uaecptr addr, uaecptr *nextpc, int cnt, uae_u32 *seaddr, uae_u32 *deaddr);
 extern void m68k_disasm (void *f, uaecptr addr, uaecptr *nextpc, int cnt);
+extern void m68k_disasm_2 (char *buf, int bufsize, uaecptr addr, uaecptr *nextpc, int cnt, uae_u32 *seaddr, uae_u32 *deaddr, int safemode);
 
 extern void REGPARAM3 MakeSR (struct regstruct *regs) REGPARAM;
 extern void REGPARAM3 MakeFromSR (struct regstruct *regs) REGPARAM;
index 714bc40288aacc5264a0a49ce8057e552eb548ce..3229e3a29fdfb57bb361d448f113eae341ba90a2 100755 (executable)
@@ -9,7 +9,7 @@
 
 #define UAEMAJOR 1
 #define UAEMINOR 4
-#define UAESUBREV 1
+#define UAESUBREV 2
 
 typedef enum { KBD_LANG_US, KBD_LANG_DK, KBD_LANG_DE, KBD_LANG_SE, KBD_LANG_FR, KBD_LANG_IT, KBD_LANG_ES } KbdLang;
 
index eedf866f0fa6bf30d35496995b24ec3912b56d85..d812a0e7a164ef50aa3c945cd4d0c1997230fd52 100755 (executable)
@@ -452,10 +452,13 @@ extern void write_log (const char *, ...);
 #endif
 extern void write_dlog (const char *, ...);
 
+extern void close_console (void);
+extern void reopen_console (void);
 extern void console_out (const char *, ...);
 extern void console_flush (void);
 extern int console_get (char *, int);
 extern void f_out (void *, const char *, ...);
+extern char* buf_out (char *buffer, int *bufsize, const char *format, ...);
 extern void gui_message (const char *,...);
 extern int gui_message_multibutton (int flags, const char *format,...);
 #define write_log_err write_log
index 32badfac6ce9def9dd52ab7c39d7cae160d821b8..bb0e472196dc77c16e04de2ea41166ff994d3472 100755 (executable)
@@ -777,7 +777,7 @@ static uaecptr get_intuitionbase(void)
            magicmouse_ibase = 0xffffffff;
            return 0;
        }
-       if (b->flags != ABFLAG_ROM)
+       if (b->flags != ABFLAG_ROM && b->flags != ABFLAG_RAM)
            return 0;
        p = b->xlateaddr(v2);
        if (!strcmp(p, "intuition.library"))
@@ -809,8 +809,7 @@ static void mousehack_setpos(int mousexpos, int mouseypos)
 }
 
 static int mouseedge_x, mouseedge_y, mouseedge_time;
-#define MOUSEEDGE_RANGE 1000
-#define MOUSEEDGE_RANGE_MENU 1000
+#define MOUSEEDGE_RANGE 300
 #define MOUSEEDGE_TIME 2
 
 void setamigamouse(int x, int y)
@@ -865,7 +864,7 @@ static void mouseedge(void)
         melast_x = x;
     }
     if (melast_y == y) {
-       if (mouseedge_y < -MOUSEEDGE_RANGE_MENU) {
+       if (mouseedge_y < -MOUSEEDGE_RANGE) {
            mouseedge_y = 0;
            dir |= 4;
            goto end;
diff --git a/main.c b/main.c
index 810ecf77c7f3a39467ded7d9b56bfae2fb924048..99e086228cde2d6b71a9ffd5ba73323cfffaf7ad 100755 (executable)
--- a/main.c
+++ b/main.c
@@ -354,6 +354,7 @@ void uae_reset (int hardreset)
 
 void uae_quit (void)
 {
+    deactivate_debugger();
     if (quit_program != -1)
        quit_program = -1;
 }
index 159974a52151b8bd44e89615b627bc8fbf2b8833..123d63c2cad9e2c27c308aee454372cd51cd53af 100755 (executable)
--- a/newcpu.c
+++ b/newcpu.c
@@ -1851,7 +1851,7 @@ static void out_cd32io (uae_u32 pc)
        if (cmd == 2) {
            cnt--;
            if (cnt == 0)
-               activate_debugger();
+               activate_debugger(1);
        }
 #endif
        write_log ("CMD=%d DATA=%08.8X LEN=%d %OFF=%d\n",
@@ -2271,11 +2271,13 @@ static const char* ccnames[] =
 { "T ","F ","HI","LS","CC","CS","NE","EQ",
   "VC","VS","PL","MI","GE","LT","GT","LE" };
 
-void m68k_disasm_2 (void *f, uaecptr addr, uaecptr *nextpc, int cnt, uae_u32 *seaddr, uae_u32 *deaddr, int safemode)
+void m68k_disasm_2 (char *buf, int bufsize, uaecptr addr, uaecptr *nextpc, int cnt, uae_u32 *seaddr, uae_u32 *deaddr, int safemode)
 {
     uaecptr newpc = 0;
     m68kpc_offset = addr - m68k_getpc (&regs);
 
+    if (buf)
+        memset(buf, 0, bufsize);
     while (cnt-- > 0) {
        char instrname[100], *ccpt;
        int i;
@@ -2293,7 +2295,8 @@ void m68k_disasm_2 (void *f, uaecptr addr, uaecptr *nextpc, int cnt, uae_u32 *se
        for (lookup = lookuptab;lookup->mnemo != dp->mnemo; lookup++)
            ;
 
-       f_out (f, "%08lx ", m68k_getpc (&regs) + m68kpc_offset);
+       buf = buf_out(buf, &bufsize, "%08lX ", m68k_getpc (&regs) + m68kpc_offset);
+
        m68kpc_offset += 2;
 
        strcpy (instrname, lookup->name);
@@ -2320,25 +2323,29 @@ void m68k_disasm_2 (void *f, uaecptr addr, uaecptr *nextpc, int cnt, uae_u32 *se
        }
 
        for (i = 0; i < (m68kpc_offset - oldpc) / 2; i++) {
-           f_out (f, "%04x ", get_iword_1 (oldpc + i * 2));
+           buf = buf_out (buf, &bufsize, "%04x ", get_iword_1 (oldpc + i * 2));
        }
        while (i++ < 5)
-           f_out (f, "     ");
-       f_out (f, instrname);
+           buf = buf_out (buf, &bufsize, "     ");
+    if (strlen(instrname) > 79) {
+        int i = 0;
+    }
+
+       buf = buf_out (buf, &bufsize, instrname);
 
        if (ccpt != 0) {
            if (deaddr)
                *deaddr = newpc;
            if (cctrue(&regs.ccrflags, dp->cc))
-               f_out (f, " == %08lx (TRUE)", newpc);
+               buf = buf_out (buf, &bufsize, " == %08lX (TRUE)", newpc);
            else
-               f_out (f, " == %08lx (FALSE)", newpc);
+               buf = buf_out (buf, &bufsize, " == %08lX (FALSE)", newpc);
        } else if ((opcode & 0xff00) == 0x6100) { /* BSR */
            if (deaddr)
                *deaddr = newpc;
-           f_out (f, " == %08lx", newpc);
+           buf = buf_out (buf, &bufsize, " == %08lX", newpc);
        }
-       f_out (f, "\n");
+       buf = buf_out (buf, &bufsize, "\n");
     }
     if (nextpc)
        *nextpc = m68k_getpc (&regs) + m68kpc_offset;
@@ -2346,11 +2353,25 @@ void m68k_disasm_2 (void *f, uaecptr addr, uaecptr *nextpc, int cnt, uae_u32 *se
 
 void m68k_disasm_ea (void *f, uaecptr addr, uaecptr *nextpc, int cnt, uae_u32 *seaddr, uae_u32 *deaddr)
 {
-    m68k_disasm_2 (f, addr, nextpc, cnt, seaddr, deaddr, 1);
+    char *buf;
+
+    buf = malloc((MAX_LINEWIDTH + 1) * cnt);
+    if (!buf)
+        return;
+    m68k_disasm_2 (buf, (MAX_LINEWIDTH + 1) * cnt, addr, nextpc, cnt, seaddr, deaddr, 1);
+    f_out(f, "%s", buf);
+    free(buf);
 }
 void m68k_disasm (void *f, uaecptr addr, uaecptr *nextpc, int cnt)
 {
-    m68k_disasm_2 (f, addr, nextpc, cnt, NULL, NULL, 0);
+    char *buf;
+
+    buf = malloc((MAX_LINEWIDTH + 1) * cnt);
+    if (!buf)
+        return;
+    m68k_disasm_2 (buf, (MAX_LINEWIDTH + 1) * cnt, addr, nextpc, cnt, NULL, NULL, 0);
+    f_out(f, "%s", buf);
+    free(buf);
 }
 
 /*************************************************************
index 60892b7b3d1f53b2851c938c5d246ec0d1b1ed04..78021d22a66443e8749b981851f8cdb77e6b4bd1 100755 (executable)
@@ -342,7 +342,6 @@ int AVIOutput_ChooseAudioCodec(HWND hwnd, char *s, int len)
        case ACMERR_CANCELED:
            AVIOutput_GetAudioFromRegistry(NULL);
            AVIOutput_ReleaseAudio();
-           //MessageBox(hwnd, "The user chose the Cancel button or the Close command on the System menu to close the dialog box.", VersionStr, MB_OK | MB_ICONERROR | MB_APPLMODAL | MB_SETFOREGROUND);
            break;
                
        case ACMERR_NOTPOSSIBLE:
index edbe3b6bcfb54f8acff66c905b5ead1c2c695afe..9bf2053708ce62c2621e5b33dc2b84183e5439e6 100755 (executable)
@@ -1943,7 +1943,7 @@ static BOOL CheckOnline(SB)
                        bReturn = FALSE;
                        // No success or aborted
                }
-               if (isfullscreen()) {
+               if (isfullscreen() > 0) {
                        ShowWindow (hAmigaWnd, SW_RESTORE);
                        SetActiveWindow(hAmigaWnd);
                }
diff --git a/od-win32/debug_win32.c b/od-win32/debug_win32.c
new file mode 100755 (executable)
index 0000000..ff42c39
--- /dev/null
@@ -0,0 +1,912 @@
+ /*
+  * WinUAE GUI debugger
+  *
+  * Copyright 2007 Karsten Bock
+  * Copyright 2007 Toni Wilen
+  *
+  */
+
+#include "sysconfig.h"
+#include "sysdeps.h"
+
+#include <string.h>
+#include <windows.h>
+#include "resource.h"
+#include "options.h"
+#include "memory.h"
+#include "custom.h"
+#include "newcpu.h"
+#include "debug.h"
+#include "debug_win32.h"
+#include "win32.h"
+#include "win32gui.h"
+
+#include "uae.h"
+
+static HWND hDbgWnd = 0;
+static HWND hOutput = 0;
+static HACCEL dbgaccel = 0;
+
+extern int consoleopen;
+extern uae_u32 get_fpsr();
+
+static char linebreak[] = {'\r', '\n', '\0'};
+
+#define MAXLINES 250
+#define MAXINPUTHIST 50
+#define MAXPAGECONTROLS 5
+#define MAXPAGES 10
+
+static int inputfinished = 0;
+
+static FARPROC OldInputProc, OldMemInputProc;
+static WORD* dlgtmpl;
+static int reopen;
+
+struct histnode {
+    char *command;
+       struct histnode *prev;
+       struct histnode *next;
+};
+
+static struct histnode *firsthist, *lasthist, *currhist;
+static int histcount;
+
+struct debuggerpage {
+    HWND ctrl[MAXPAGECONTROLS];
+    uae_u32 addr;
+    char addrinput[9];
+    int init;
+};
+static struct debuggerpage dbgpage[MAXPAGES];
+static int currpage, pages;
+static int pagetype;
+
+static void OutputCurrHistNode(HWND hWnd)
+{
+    int txtlen;
+    char *buf;
+
+    if (currhist->command) {
+        txtlen = GetWindowTextLength(hWnd);
+        buf = malloc(txtlen + 1);
+        GetWindowText(hWnd, buf, txtlen + 1);
+        if (strcmp(buf, currhist->command)) {
+            SetWindowText(hWnd, currhist->command);
+            txtlen = strlen(currhist->command);
+            SendMessage(hWnd, EM_SETSEL, (WPARAM)txtlen, (LPARAM)txtlen);
+            SendMessage(hWnd, EM_SETSEL, -1, -1);
+        }
+    }
+}
+
+static void SetPrevHistNode(HWND hWnd)
+{
+    if (currhist) {
+        if (currhist->prev)
+            currhist = currhist->prev;
+        OutputCurrHistNode(hWnd);
+
+    }
+    else if (lasthist) {
+        currhist = lasthist;
+        OutputCurrHistNode(hWnd);
+    }
+}
+
+static void SetNextHistNode(HWND hWnd)
+{
+    if (currhist) {
+        if (currhist->next)
+            currhist = currhist->next;
+        OutputCurrHistNode(hWnd);
+    }
+}
+
+static void DeleteFromHistory(int count)
+{
+    int i;
+    struct histnode *tmp;
+
+    for (i = 0; i < count && histcount; i++) {
+        tmp = firsthist;
+        firsthist = firsthist->next;
+        if (currhist == tmp)
+            currhist = NULL;
+        if (lasthist == tmp)
+            lasthist = NULL;
+        if (firsthist)
+            firsthist->prev = NULL;
+        free(tmp->command);
+        free(tmp);
+        histcount--;
+    }
+}
+
+static void AddToHistory(const char *command)
+{
+    struct histnode *tmp;
+
+    if (histcount > 0 && !strcmp(command, lasthist->command))
+        return;
+    else if (histcount == MAXINPUTHIST) {
+        DeleteFromHistory(1);
+    }
+    tmp = lasthist;
+    lasthist = malloc(sizeof(struct histnode));
+    if (histcount == 0)
+        firsthist = lasthist;
+    lasthist->command = strdup(command);
+    lasthist->next = NULL;
+    lasthist->prev = tmp;
+    if (tmp)
+        tmp->next = lasthist;
+    histcount++;
+    currhist = NULL;
+}
+
+int GetInput (char *out, int maxlen)
+{
+    HWND hInput;
+    int chars;
+
+    if (!hDbgWnd)
+        return 0;
+    inputfinished = 0;
+    hInput = GetDlgItem(hDbgWnd, IDC_DBG_INPUT);
+    chars = GetWindowText(hInput, out, maxlen);
+    if (chars == 0)
+        return 0;
+    WriteOutput(linebreak + 1, 2);
+    WriteOutput(out, strlen(out));
+    WriteOutput(linebreak + 1, 2);
+    AddToHistory(out);
+    SetWindowText(hInput, "");
+    return chars;
+}
+
+static int CheckLineLimit(HWND hWnd, const char *out)
+{
+    char *tmp, *p;
+    int lines_have, lines_new = 0, lastchr, txtlen, visible;
+
+    tmp = (char *)out;
+    lines_have = SendMessage(hWnd, EM_GETLINECOUNT, 0, 0);
+    while (strlen(tmp) > 0 && (p = strchr(tmp, '\n')) > 0) {
+        lines_new++;
+        tmp = p + 1;
+    }
+    lines_new++;
+    if (lines_new > MAXLINES)
+        return 0;
+    if (lines_have + lines_new > MAXLINES) {
+        visible = IsWindowVisible(hWnd);
+        if (visible)
+            SendMessage(hWnd, WM_SETREDRAW, FALSE, 0);
+        lastchr = SendMessage(hWnd, EM_LINEINDEX, lines_have + lines_new - MAXLINES, 0);
+        SendMessage(hWnd, EM_SETSEL, 0, lastchr);
+        SendMessage(hWnd, EM_REPLACESEL, FALSE, (LPARAM)"");
+        txtlen = GetWindowTextLength(hWnd);
+        SendMessage(hWnd, EM_SETSEL, (WPARAM)txtlen, (LPARAM)txtlen);
+        SendMessage(hWnd, EM_SETSEL, -1, -1);
+        if (visible)
+            SendMessage(hWnd, WM_SETREDRAW, TRUE, 0);
+    }
+    return 1;
+}
+
+void WriteOutput(const char *out, int len)
+{
+    int txtlen, pos = 0, count, index, leave = 0;
+    char *buf = 0, *p, *tmp;
+
+    if (!hOutput || !strcmp(out, ">") || len == 0)
+        return;
+    if (!CheckLineLimit(hOutput, out))
+        return;
+    tmp = (char *)out;
+    for(;;) {
+        p = strchr(tmp, '\n');
+        if (p) {
+            pos = p - tmp + 1;
+            if (pos > (MAX_LINEWIDTH + 1))
+                pos = MAX_LINEWIDTH + 1;
+            buf = xmalloc(pos + 2);
+            memset(buf, 0, pos + 2);
+            strncpy(buf, tmp, pos - 1);
+            strcat(buf, linebreak);
+        } else if (strlen(tmp) == 0) {
+            leave = 1;
+       } else {
+            count = SendMessage(hOutput, EM_GETLINECOUNT, 0, 0);
+            index = SendMessage(hOutput, EM_LINEINDEX, count - 1, 0);
+            txtlen = SendMessage(hOutput, EM_LINELENGTH, index, 0);
+            if (strlen(tmp) + txtlen > MAX_LINEWIDTH) {
+                buf = xmalloc(MAX_LINEWIDTH + 3 - txtlen);
+                memset(buf, 0, MAX_LINEWIDTH + 3 - txtlen);
+                strncpy(buf, tmp, MAX_LINEWIDTH - txtlen);
+                strcat(buf, linebreak);
+            }
+            leave = 1;
+        }
+        txtlen = GetWindowTextLength(hOutput);
+        SendMessage(hOutput, EM_SETSEL, (WPARAM)txtlen, (LPARAM)txtlen);
+        SendMessage(hOutput, EM_REPLACESEL, FALSE, (LPARAM)(buf ? buf : tmp));
+        if (buf) {
+           xfree(buf);
+           buf = 0;
+           tmp += pos;
+        }
+        if (leave)
+            return;
+    }
+}
+
+static void UpdateListboxString(HWND hWnd, int pos, char *out, int mark)
+{
+    int count;
+    char text[MAX_LINEWIDTH + 1];
+    COLORREF cr;
+
+    if (!IsWindowEnabled(hWnd))
+        return;
+    if (strlen(out) > MAX_LINEWIDTH)
+        out[MAX_LINEWIDTH] = '\0';
+    cr = GetSysColor(COLOR_WINDOWTEXT);
+    count = SendMessage(hWnd, (UINT) LB_GETCOUNT, 0, 0);
+    if (pos < count) {
+        memset(text, 0, MAX_LINEWIDTH + 1);
+        SendMessage(hWnd, LB_GETTEXT, pos, (LPARAM)((LPTSTR)text));
+        if (strcmp(out, text) != 0 && mark)
+            cr = GetSysColor(COLOR_HIGHLIGHT);
+        SendMessage(hWnd, LB_DELETESTRING, pos, 0);
+    }
+    SendMessage(hWnd, LB_INSERTSTRING, pos, (LPARAM)out);
+    SendMessage(hWnd, LB_SETITEMDATA, pos, cr);
+}
+
+static int GetLBOutputLines(HWND hWnd)
+{
+    int lines = 0, clientsize, itemsize;
+    RECT rc;
+
+    GetClientRect(hWnd, &rc);
+    clientsize = rc.bottom - rc.top;
+    itemsize = SendMessage(hWnd, LB_GETITEMHEIGHT, 0, 0);  
+    while (clientsize > itemsize) {
+        lines ++;
+        clientsize -= itemsize;
+    }
+    return lines;
+}
+
+static void ShowMem(int offset)
+{
+    uae_u32 addr;
+    int i;
+    char out[MAX_LINEWIDTH + 1];
+    HWND hMemory;
+
+    dbgpage[currpage].addr += offset;
+    addr = dbgpage[currpage].addr;
+    hMemory = GetDlgItem(hDbgWnd, IDC_DBG_MEM);
+    for (i = 0; i < GetLBOutputLines(hMemory); i++) {
+        addr = dumpmem2(addr, out, sizeof(out));
+        UpdateListboxString(hMemory, i, out, FALSE);
+    }
+}
+
+static int GetPrevAddr(uae_u32 addr, uae_u32 *prevaddr)
+{
+    uae_u32 dasmaddr, next;
+
+    *prevaddr = addr;
+    dasmaddr = addr - 20;
+    while (dasmaddr < addr) {
+       next = dasmaddr + 2;
+        m68k_disasm_2(NULL, 0, dasmaddr, &next, 1, NULL, NULL, 0);
+        if (next == addr) {
+            *prevaddr = dasmaddr;
+            return 1;
+        }
+        dasmaddr = next;
+    }
+    return 0;
+}
+
+static void ShowDasm(int direction)
+{
+    uae_u32 addr = 0, prev;
+    int i;
+    char out[MAX_LINEWIDTH + 1], *p;
+    HWND hDasm;
+
+    hDasm = GetDlgItem(hDbgWnd, IDC_DBG_DASM);
+    if (!dbgpage[currpage].init) {
+        addr = m68k_getpc(&regs);
+        dbgpage[currpage].init = 1;
+    }
+    else
+        addr = dbgpage[currpage].addr;
+    if (direction > 0) {
+        m68k_disasm_2(NULL, 0, addr, &addr, 1, NULL, NULL, 0);
+        if (!addr || addr < dbgpage[currpage].addr)
+            addr = dbgpage[currpage].addr;
+    }
+    else if (direction < 0 && addr > 0) {
+        if (GetPrevAddr(addr, &prev))
+            addr = prev;
+        else
+            addr -= 2;
+    }
+    if (addr % 2)
+        return;
+    dbgpage[currpage].addr = addr;
+    for (i = 0; i < GetLBOutputLines(hDasm); i++) {
+        m68k_disasm_2(out, sizeof(out), addr, &addr, 1, NULL, NULL, 0);
+        p = strchr(out, '\n');
+        if (p)
+            *p = '\0';
+        if (addr > dbgpage[currpage].addr)
+            UpdateListboxString(hDasm, i, out, FALSE);
+        else
+            UpdateListboxString(hDasm, i, "", FALSE);
+    }
+}
+
+static void SetMemToPC(void)
+{
+    int i, id;
+
+    dbgpage[currpage].addr = m68k_getpc(&regs);
+    sprintf(dbgpage[currpage].addrinput, "%08lX", dbgpage[currpage].addr);
+    for (i = 0; i < MAXPAGECONTROLS; i++) {
+        id = GetDlgCtrlID(dbgpage[currpage].ctrl[i]);
+        if (id == IDC_DBG_MEMINPUT)
+            SetWindowText(dbgpage[currpage].ctrl[i], dbgpage[currpage].addrinput);
+    }
+    ShowDasm(0);
+}
+
+static void ShowPage(int index, int force)
+{
+    int i, id;
+
+    if (index >= pages || ((index == currpage) && !force))
+        return;
+    if (currpage >= 0) {
+        for (i = 0; i < MAXPAGECONTROLS; i++) {
+            if (dbgpage[currpage].ctrl[i]) {
+                id = GetDlgCtrlID(dbgpage[currpage].ctrl[i]);
+                if (id == IDC_DBG_MEMINPUT)
+                    GetWindowText(dbgpage[currpage].ctrl[i], dbgpage[currpage].addrinput, 9);
+                ShowWindow(dbgpage[currpage].ctrl[i], SW_HIDE);
+            }
+        }
+    }
+    pagetype = 0;
+    currpage = index;
+    for (i = 0; i < MAXPAGECONTROLS; i++) {
+        if (dbgpage[index].ctrl[i]) {
+            id = GetDlgCtrlID(dbgpage[index].ctrl[i]);
+           if (id == IDC_DBG_OUTPUT1 || id == IDC_DBG_OUTPUT2) {
+                hOutput = dbgpage[index].ctrl[i];
+           } else if (id == IDC_DBG_MEM) {
+                ShowMem(0);
+               pagetype = id;
+           } else if (id == IDC_DBG_DASM) {
+                ShowDasm(0);
+               pagetype = id;
+           } else if (id == IDC_DBG_MEMINPUT) {
+                SetWindowText(dbgpage[index].ctrl[i], dbgpage[index].addrinput);
+           }
+           ShowWindow(dbgpage[index].ctrl[i], SW_SHOW);
+        }
+    }
+}
+
+static void AddPage(int *iddata) // iddata[0] = idcount!
+{
+    int i;
+
+    if (pages >= MAXPAGES)
+        return;
+    memset(&dbgpage[pages], 0, sizeof(struct debuggerpage));
+    for (i = 0; i < iddata[0]; i++) {
+        dbgpage[pages].ctrl[i] = GetDlgItem(hDbgWnd, iddata[i + 1]);
+        ShowWindow(dbgpage[pages].ctrl[i], SW_HIDE);
+    }
+    pages++;
+}
+
+static void InitPages(void)
+{
+    int i;
+
+    int dpage[][MAXPAGECONTROLS + 1] = {
+        { 1, IDC_DBG_OUTPUT1 },
+        { 1, IDC_DBG_OUTPUT2 },
+        { 4, IDC_DBG_MEM, IDC_DBG_MEMINPUT, IDC_DBG_MEMUP, IDC_DBG_MEMDOWN },
+        { 4, IDC_DBG_MEM, IDC_DBG_MEMINPUT, IDC_DBG_MEMUP, IDC_DBG_MEMDOWN },
+        { 5, IDC_DBG_DASM, IDC_DBG_MEMINPUT, IDC_DBG_MEMTOPC },
+        { 5, IDC_DBG_DASM, IDC_DBG_MEMINPUT, IDC_DBG_MEMTOPC }
+    };
+
+    pages = 0;
+    for (i = 0; i < (sizeof(dpage) / sizeof(dpage[0])); i++)
+        AddPage(dpage[i]);
+}
+
+static LRESULT CALLBACK InputProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+     switch (message) {
+        case WM_KEYUP:
+            switch (wParam) {
+                case VK_RETURN:
+                    inputfinished = 1;
+                    break;
+                case VK_UP: 
+                    SetPrevHistNode(hWnd);
+                    return TRUE;
+                case VK_DOWN:
+                    SetNextHistNode(hWnd);
+                    return TRUE;
+            }
+            break;
+    }
+    return CallWindowProc((WNDPROC)OldInputProc, hWnd, message, wParam, lParam);
+}
+
+static LRESULT CALLBACK MemInputProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    HANDLE hdata;
+    LPTSTR lptstr;
+    char allowed[] = "1234567890abcdefABCDEF";
+    int ok = 1;
+    char addrstr[11];
+    uae_u32 addr;
+
+    switch (message) {
+        case WM_CHAR:
+            if (wParam == VK_BACK)
+                break;
+            if (!strchr(allowed, wParam))
+                return TRUE;
+            break;
+        case WM_PASTE:
+            if (!OpenClipboard(NULL))
+                return TRUE;
+            hdata = GetClipboardData(CF_TEXT);
+            if (hdata) {
+                lptstr = GlobalLock(hdata); 
+                if (lptstr) {
+                    if (strspn(lptstr, allowed) != strlen(lptstr))
+                        ok = 0;
+                    GlobalUnlock(hdata);
+                }
+            }
+            CloseClipboard();
+            if (!ok)
+                return TRUE;
+            break;
+        case WM_KEYUP:
+             switch (wParam) {
+                case VK_RETURN:
+                    sprintf(addrstr, "0x");
+                    GetWindowText(hWnd, addrstr + 2, 9);
+                    addr = strtoul(addrstr, NULL, 0);
+                    dbgpage[currpage].addr = addr;
+                    ShowPage(currpage, TRUE);
+                    break;
+            }
+            break;
+    }
+    return CallWindowProc((WNDPROC)OldMemInputProc, hWnd, message, wParam, lParam);
+}
+
+static void moveupdown(int dir)
+{
+    if (pagetype == IDC_DBG_MEM) {
+       if (dir > 1 || dir < -1)
+           dir *= 4;
+       ShowMem(dir * 16);
+    } else if (pagetype == IDC_DBG_DASM) {
+       if (dir > 1 || dir < -1)
+           dir *= 4;
+       while(dir) {
+           ShowDasm(dir > 0 ? 1 : -1);
+           if (dir > 0)
+               dir--;
+           if (dir < 0)
+               dir++;
+       }
+    }
+}
+
+static int width_adjust, height_adjust;
+static RECT dlgRect;
+
+static void adjustitem(HWND hwnd, int x, int y, int w, int h)
+{
+    WINDOWINFO pwi;
+    RECT *r;
+    pwi.cbSize = sizeof pwi;
+    GetWindowInfo(hwnd, &pwi);
+    r = &pwi.rcWindow;
+    r->bottom -= r->top;
+    r->right -= r->left;
+    r->left -= dlgRect.left;
+    r->top -= dlgRect.top;
+    r->left += x;
+    r->top += y;
+    r->right += w;
+    r->bottom += h;
+    MoveWindow(hwnd, r->left, r->top, r->right, r->bottom, TRUE);
+}
+
+static BOOL CALLBACK childenumproc (HWND hwnd, LPARAM lParam)
+{
+    int id1y[] = { IDC_DBG_OUTPUT1, IDC_DBG_OUTPUT2, IDC_DBG_MEM, IDC_DBG_DASM, -1 };
+    int id2y[] = { IDC_DBG_INPUT, IDC_DBG_HELP, -1 };
+
+    int id1x[] = { IDC_DBG_OUTPUT1, IDC_DBG_OUTPUT2, IDC_DBG_MEM, IDC_DBG_DASM,
+       IDC_DBG_AMEM, IDC_DBG_PREFETCH, IDC_DBG_INPUT, -1 };
+    int id2x[] = { IDC_DBG_HELP, IDC_DBG_CCR, IDC_DBG_SP_VBR, IDC_DBG_MISC,
+       IDC_DBG_FPREG, IDC_DBG_FPSR, -1 };
+
+    int dlgid, j;
+
+    dlgid = GetDlgCtrlID(hwnd);
+
+    j = 0;
+    while (id1y[j] >= 0) {
+       if (id1y[j] == dlgid)
+           adjustitem(hwnd, 0, 0, 0, height_adjust);
+       j++;
+    }
+    j = 0;
+    while (id2y[j] >= 0) {
+       if (id2y[j] == dlgid)
+           adjustitem(hwnd, 0, height_adjust, 0, 0);
+       j++;
+    }
+    j = 0;
+    while (id1x[j] >= 0) {
+       if (id1x[j] == dlgid)
+           adjustitem(hwnd, 0, 0, width_adjust,0);
+       j++;
+    }
+    j = 0;
+    while (id2x[j] >= 0) {
+       if (id2x[j] == dlgid)
+           adjustitem(hwnd, width_adjust,0, 0, 0);
+       j++;
+    }
+    return TRUE;
+}
+
+static void AdjustDialog(HWND hDlg)
+{
+    RECT r, r2;
+    GetClientRect(hDlg, &r);
+    width_adjust = (r.right - r.left) - (dlgRect.right - dlgRect.left);
+    height_adjust = (r.bottom - r.top) - (dlgRect.bottom - dlgRect.top);
+    GetWindowRect(hDlg, &dlgRect);
+    r2.left = r2.top = r2.right = r2.bottom = 0;
+    AdjustWindowRect(&r2, WS_POPUP | WS_CAPTION | WS_THICKFRAME, FALSE);
+    dlgRect.left -= r2.left;
+    dlgRect.top -= r2.top;
+    EnumChildWindows (hDlg, &childenumproc, 0);
+    dlgRect = r;
+}
+
+
+static LRESULT CALLBACK DebuggerProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    int len;
+    HWND hwnd;
+    DRAWITEMSTRUCT *pdis;
+    HDC hdc;
+    RECT rc;
+    char text[MAX_LINEWIDTH + 1];
+    HFONT hfont, hfontold;
+    TEXTMETRIC tm;
+
+    switch (message) {
+        case WM_INITDIALOG:
+       {
+           int newpos = 0;
+           LONG x, y, w, h;
+           DWORD regkeytype;
+           DWORD regkeysize = sizeof(LONG);
+           GetClientRect(hDlg, &dlgRect);
+           if (hWinUAEKey) {
+               newpos = 1;
+               if (RegQueryValueEx (hWinUAEKey, "DebuggerPosX", 0, &regkeytype, (LPBYTE)&x, &regkeysize) != ERROR_SUCCESS)
+                   newpos = 0;
+               if (RegQueryValueEx (hWinUAEKey, "DebuggerPosY", 0, &regkeytype, (LPBYTE)&y, &regkeysize) != ERROR_SUCCESS)
+                   newpos = 0;
+               if (RegQueryValueEx (hWinUAEKey, "DebuggerPosW", 0, &regkeytype, (LPBYTE)&w, &regkeysize) != ERROR_SUCCESS)
+                   newpos = 0;
+               if (RegQueryValueEx (hWinUAEKey, "DebuggerPosH", 0, &regkeytype, (LPBYTE)&h, &regkeysize) != ERROR_SUCCESS)
+                   newpos = 0;
+           }
+           if (newpos) {
+               RECT rc;
+               rc.left = x;
+               rc.top = y;
+               rc.right = x + w;
+               rc.bottom = y + h;
+               if (MonitorFromRect (&rc, MONITOR_DEFAULTTONULL) != NULL)
+                   SetWindowPos(hDlg, 0, x, y, w, h, SWP_NOOWNERZORDER | SWP_NOREDRAW | SWP_NOACTIVATE | SWP_DEFERERASE);
+           }
+           SendMessage(hDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon (GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_APPICON)));
+            hwnd = GetDlgItem(hDlg, IDC_DBG_INPUT);
+            OldInputProc = (FARPROC)SetWindowLong(hwnd, GWL_WNDPROC, (DWORD)InputProc);
+            SendMessage(hwnd, EM_LIMITTEXT, MAX_LINEWIDTH, 0);
+            hwnd = GetDlgItem(hDlg, IDC_DBG_MEMINPUT);
+            OldMemInputProc = (FARPROC)SetWindowLong(hwnd, GWL_WNDPROC, (DWORD)MemInputProc);
+            SendMessage(hwnd, EM_LIMITTEXT, 8, 0);
+            if (!currprefs.cpu_compatible) {
+                hwnd = GetDlgItem(hDlg, IDC_DBG_PREFETCH);
+                EnableWindow(hwnd, FALSE);
+            }
+            if (currprefs.cpu_level < 2) {
+                hwnd = GetDlgItem(hDlg, IDC_DBG_FPREG);
+                EnableWindow(hwnd, FALSE);
+                hwnd = GetDlgItem(hDlg, IDC_DBG_FPSR);
+                EnableWindow(hwnd, FALSE);
+            }
+            currpage = -1;
+            firsthist = lasthist = currhist = NULL;
+            histcount = 0;
+            inputfinished = 0;
+           AdjustDialog(hDlg);
+            return TRUE;
+       }
+        case WM_CLOSE:
+            DestroyWindow(hDlg);
+           uae_quit();
+            return TRUE;
+        case WM_DESTROY:
+       {
+           RECT r;
+           if (GetWindowRect (hDlg, &r) && hWinUAEKey) {
+               r.right -= r.left;
+               r.bottom -= r.top;
+               RegSetValueEx (hWinUAEKey, "DebuggerPosX", 0, REG_DWORD, (LPBYTE)&r.left, sizeof(LONG));
+               RegSetValueEx (hWinUAEKey, "DebuggerPosY", 0, REG_DWORD, (LPBYTE)&r.top, sizeof(LONG));
+               RegSetValueEx (hWinUAEKey, "DebuggerPosW", 0, REG_DWORD, (LPBYTE)&r.right, sizeof(LONG));
+               RegSetValueEx (hWinUAEKey, "DebuggerPosH", 0, REG_DWORD, (LPBYTE)&r.bottom, sizeof(LONG));
+           }
+            hDbgWnd = 0;
+            PostQuitMessage(0);
+           DeleteFromHistory(histcount);
+           consoleopen = 0;
+            return TRUE;
+       }
+       case WM_GETMINMAXINFO:
+       {
+           MINMAXINFO *mmi = (MINMAXINFO*)lParam;
+           mmi->ptMinTrackSize.x = 640;
+           mmi->ptMinTrackSize.y = 480;
+           return TRUE;
+       }
+       case WM_EXITSIZEMOVE:
+       {
+           AdjustDialog(hDlg);
+           return TRUE;
+       }
+
+        case WM_CTLCOLORSTATIC:
+            SetBkColor((HDC)wParam, GetSysColor(COLOR_WINDOW));
+            return (LRESULT)GetSysColorBrush(COLOR_WINDOW);
+        case WM_CTLCOLORLISTBOX:
+            hwnd = (HWND)lParam;
+            if (!IsWindowEnabled(hwnd)) {
+                SetBkColor((HDC)wParam, GetSysColor(COLOR_3DFACE));
+                return (LRESULT)GetSysColorBrush(COLOR_3DFACE);
+            }
+            SetBkColor((HDC)wParam, GetSysColor(COLOR_WINDOW));
+            return (LRESULT)GetSysColorBrush(COLOR_WINDOW);
+        case WM_COMMAND:
+            switch (LOWORD(wParam)) {
+                case IDC_DBG_HELP:
+                    WriteOutput(linebreak + 1, 2);
+                    debug_help();
+                    return TRUE;
+                case ID_DBG_PAGE1:
+                case ID_DBG_PAGE2:
+                case ID_DBG_PAGE3:
+                case ID_DBG_PAGE4:
+                case ID_DBG_PAGE5:
+                case ID_DBG_PAGE6:
+                    // IDs have to be consecutive and in order of page order for this to work
+                    ShowPage(LOWORD(wParam) - ID_DBG_PAGE1, FALSE);
+                    return TRUE;
+                case IDC_DBG_MEMUP:
+                   moveupdown(-1);
+                   return TRUE;
+                case IDC_DBG_MEMDOWN:
+                    moveupdown(1);
+                    return TRUE;
+                case IDC_DBG_MEMUPFAST:
+                   moveupdown(-2);
+                   return TRUE;
+                case IDC_DBG_MEMDOWNFAST:
+                    moveupdown(2);
+                    return TRUE;
+                case IDC_DBG_MEMTOPC:
+                    SetMemToPC();
+                    return TRUE;
+            }
+            break;
+        case WM_MEASUREITEM:
+            hdc = GetDC(hDlg);
+            hfont = (HFONT)SendMessage(hDlg, WM_GETFONT, 0, 0);
+            hfontold = (HFONT)SelectObject(hdc, hfont);
+            GetTextMetrics(hdc, &tm);
+            ((MEASUREITEMSTRUCT*)(lParam))->itemHeight = tm.tmHeight + tm.tmExternalLeading;
+            SelectObject(hdc, hfontold);
+            ReleaseDC(hDlg, hdc);
+            return TRUE;
+        case WM_DRAWITEM:
+            pdis = (DRAWITEMSTRUCT *)lParam;
+            hdc = pdis->hDC;
+            rc = pdis->rcItem;
+            SetBkMode(hdc, TRANSPARENT);
+            if (pdis->itemID < 0) {
+                if (pdis->itemAction & ODA_FOCUS)
+                    DrawFocusRect(hdc, &rc);
+                return TRUE;
+            }
+            memset(text, MAX_LINEWIDTH + 1, 0);
+            len = SendMessage(pdis->hwndItem, LB_GETTEXT, pdis->itemID, (LPARAM)(LPSTR)text);
+            if (!IsWindowEnabled(pdis->hwndItem)) {
+                FillRect(hdc, &rc, GetSysColorBrush(COLOR_3DFACE));
+                SetBkColor(hdc, GetSysColor(COLOR_3DFACE));
+            }
+            else {
+                FillRect(hdc, &rc, GetSysColorBrush(COLOR_WINDOW));
+                SetBkColor(hdc, GetSysColor(COLOR_WINDOW));
+            }
+            SetTextColor(hdc, pdis->itemData);
+            if (len > 0)
+                TextOut(hdc, rc.left, rc.top, text, strlen(text));
+            if ((pdis->itemState) & (ODS_FOCUS))
+               DrawFocusRect(hdc, &rc);
+            return TRUE;
+    }
+    return FALSE;
+}
+
+int open_debug_window(void)
+{
+
+    struct newresource *nr;
+
+    if (hDbgWnd)
+        return 0;
+    reopen = 0;
+    dbgaccel = LoadAccelerators(hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDR_DBGACCEL));
+    nr = getresource(IDD_DEBUGGER);
+    if (nr) {
+        hDbgWnd = CreateDialogIndirect (nr->inst, nr->resource, NULL, DebuggerProc);
+        freescaleresource(nr);
+    }
+    if (!hDbgWnd)
+        return 0;
+    InitPages();
+    ShowPage(0, TRUE);
+    ShowWindow(hDbgWnd, SW_SHOWNORMAL);
+    UpdateWindow(hDbgWnd);
+    update_debug_info();
+    return 1;
+}
+
+void close_debug_window(void)
+{
+    DestroyWindow(hDbgWnd);
+ }
+
+int console_get_gui (char *out, int maxlen)
+{
+    MSG msg;
+    int ret;
+
+    while ((ret = GetMessage(&msg, NULL, 0, 0)) != 0) {
+       if (!debugger_active || ret == -1) {
+           return 0;
+       } else if (!IsWindow(hDbgWnd) || !TranslateAccelerator(hDbgWnd, dbgaccel, &msg) || !IsDialogMessage(hDbgWnd, &msg)) {
+           TranslateMessage(&msg);
+           DispatchMessage(&msg);
+       }
+       if (inputfinished)
+           return GetInput(out, maxlen);
+    }
+    return 0;
+}
+
+void update_debug_info(void)
+{
+    int i;
+    char out[MAX_LINEWIDTH + 1];
+    HWND hwnd;
+    struct instr *dp;
+    struct mnemolookup *lookup1, *lookup2;
+    uae_u32 fpsr;
+
+    if (!hDbgWnd)
+        return;
+    hwnd = GetDlgItem(hDbgWnd, IDC_DBG_DREG);
+    for (i = 0; i < 8; i++) {
+        sprintf(out, "D%d: %08lX", i, m68k_dreg(&regs, i));
+        UpdateListboxString(hwnd, i, out, TRUE);
+    }
+
+    hwnd = GetDlgItem(hDbgWnd, IDC_DBG_AREG);
+    for (i = 0; i < 8; i++) {
+        hwnd = GetDlgItem(hDbgWnd, IDC_DBG_AREG);
+        sprintf(out, "A%d: %08lX", i, m68k_areg(&regs, i));
+        UpdateListboxString(hwnd, i, out, TRUE);
+        hwnd = GetDlgItem(hDbgWnd, IDC_DBG_AMEM);
+        dumpmem2(m68k_areg(&regs, i), out, sizeof(out));
+        UpdateListboxString(hwnd, i, out + 9, TRUE);
+    }
+
+    hwnd = GetDlgItem(hDbgWnd, IDC_DBG_CCR);
+    UpdateListboxString(hwnd, 0, GET_XFLG(&regs.ccrflags) ? "X: 1" : "X: 0", TRUE);
+    UpdateListboxString(hwnd, 1, GET_NFLG(&regs.ccrflags) ? "N: 1" : "N: 0", TRUE);
+    UpdateListboxString(hwnd, 2, GET_ZFLG(&regs.ccrflags) ? "Z: 1" : "Z: 0", TRUE);
+    UpdateListboxString(hwnd, 3, GET_VFLG(&regs.ccrflags) ? "V: 1" : "V: 0", TRUE);
+    UpdateListboxString(hwnd, 4, GET_CFLG(&regs.ccrflags) ? "C: 1" : "C: 0", TRUE);
+
+    hwnd = GetDlgItem(hDbgWnd, IDC_DBG_SP_VBR);
+    sprintf(out, "USP: %08lX", regs.usp);
+    UpdateListboxString(hwnd, 0, out, TRUE);
+    sprintf(out, "ISP: %08lX", regs.isp);
+    UpdateListboxString(hwnd, 1, out, TRUE);
+    sprintf(out, "MSP: %08lX", regs.msp);
+    UpdateListboxString(hwnd, 2, out, TRUE);
+    sprintf(out, "VBR: %08lX", regs.vbr);
+    UpdateListboxString(hwnd, 3, out, TRUE);
+
+    hwnd = GetDlgItem(hDbgWnd, IDC_DBG_MISC);
+    sprintf(out, "T:     %d%d", regs.t1, regs.t0);
+    UpdateListboxString(hwnd, 0, out, TRUE);
+    sprintf(out, "S:     %d", regs.s);
+    UpdateListboxString(hwnd, 1, out, TRUE);
+    sprintf(out, "M:     %d", regs.m);
+    UpdateListboxString(hwnd, 2, out, TRUE);
+    sprintf(out, "IMASK: %d", regs.intmask);
+    UpdateListboxString(hwnd, 3, out, TRUE);
+    sprintf(out, "STP:   %d", regs.stopped);
+    UpdateListboxString(hwnd, 4, out, TRUE);
+
+    hwnd = GetDlgItem(hDbgWnd, IDC_DBG_PC);
+    sprintf(out, "PC: %08lX", m68k_getpc(&regs));
+    UpdateListboxString(hwnd, 0, out, TRUE);
+
+    hwnd = GetDlgItem(hDbgWnd, IDC_DBG_PREFETCH);
+    dp = table68k + regs.irc;
+    for (lookup1 = lookuptab; lookup1->mnemo != dp->mnemo; lookup1++);
+    dp = table68k + regs.ir;
+    for (lookup2 = lookuptab; lookup2->mnemo != dp->mnemo; lookup2++);
+    sprintf(out, "Prefetch: %04X (%s) %04X (%s)", regs.irc, lookup1->name, regs.ir, lookup2->name);
+    UpdateListboxString(hwnd, 0, out, TRUE);
+
+    hwnd = GetDlgItem(hDbgWnd, IDC_DBG_FPREG);
+    for (i = 0; i < 8; i++) {
+        sprintf(out, "FP%d: %g", i, regs.fp[i]);
+        UpdateListboxString(hwnd, i, out, TRUE);
+    }
+
+    hwnd = GetDlgItem(hDbgWnd, IDC_DBG_FPSR);
+    fpsr = get_fpsr();
+    UpdateListboxString(hwnd, 0, ((fpsr & 0x8000000) != 0) ? "N:   1" : "N:   0", TRUE);
+    UpdateListboxString(hwnd, 1, ((fpsr & 0x4000000) != 0) ? "Z:   1" : "Z:   0", TRUE);
+    UpdateListboxString(hwnd, 2, ((fpsr & 0x2000000) != 0) ? "I:   1" : "I:   0", TRUE);
+    UpdateListboxString(hwnd, 3, ((fpsr & 0x1000000) != 0) ? "NAN: 1" : "NAN: 0", TRUE);
+
+    ShowPage(currpage, TRUE);
+}
diff --git a/od-win32/debug_win32.h b/od-win32/debug_win32.h
new file mode 100755 (executable)
index 0000000..ee7b0d3
--- /dev/null
@@ -0,0 +1,44 @@
+#ifndef __DEBUG_WIN32_H__
+#define __DEBUG_WIN32_H__
+
+extern int open_debug_window(void);
+extern void close_debug_window(void);
+extern void WriteOutput(const char *out, int len);
+extern int GetInput (char *out, int maxlen);
+extern int console_get_gui (char *out, int maxlen);
+
+#include <pshpack2.h>
+typedef struct {
+    WORD dlgVer;
+    WORD signature;
+    DWORD helpID;
+    DWORD exStyle;
+    DWORD style;
+    WORD cDlgItems;
+    short x;
+    short y;
+    short cx;
+    short cy;
+} DLGTEMPLATEEX;
+
+typedef struct {
+    WORD pointsize;
+    WORD weight;
+    BYTE italic;
+    BYTE charset;
+    WCHAR typeface[0];
+} DLGTEMPLATEEX_END;
+
+typedef struct {
+    DWORD helpID;
+    DWORD exStyle;
+    DWORD style;
+    short x;
+    short y;
+    short cx;
+    short cy;
+    DWORD id;
+} DLGITEMTEMPLATEEX;
+#include <poppack.h>
+
+#endif
index 178e41cce470a3c9396d64693e84677b7d75dc2f..9ca6bd91e605f6d5ec158287e019eb727591c209 100755 (executable)
@@ -486,7 +486,7 @@ static void handle_rawinput_2 (RAWINPUT *raw)
        }
 
        if (focus) {
-           if (mouseactive || isfullscreen ()) {
+           if (mouseactive || isfullscreen () > 0) {
                for (i = 0; i < (5 > did->buttons ? did->buttons : 5); i++) {
                    if (rm->usButtonFlags & (3 << (i * 2)))
                        setmousebuttonstate (num, i, (rm->usButtonFlags & (1 << (i * 2))) ? 1 : 0);
@@ -497,7 +497,7 @@ static void handle_rawinput_2 (RAWINPUT *raw)
                }
                if (did->buttons >= 3 && (rm->usButtonFlags & RI_MOUSE_MIDDLE_BUTTON_DOWN)) {
                    if (currprefs.win32_middle_mouse) {
-                       if (isfullscreen ())
+                       if (isfullscreen () > 0)
                            minimizewindow ();
                        if (mouseactive)
                            setmouseactive(0);
@@ -1058,7 +1058,7 @@ static void read_mouse (void)
     DWORD elements;
     HRESULT hr;
     int i, j, k;
-    int fs = isfullscreen();
+    int fs = isfullscreen() > 0 ? 1 : 0;
 
     for (i = 0; i < MAX_INPUT_DEVICES; i++) {
        struct didata *did = &di_mouse[i];
@@ -1116,7 +1116,7 @@ static void read_mouse (void)
                        }
                    }
                    if (currprefs.win32_middle_mouse && dimofs == DIMOFS_BUTTON2 && state) {
-                       if (isfullscreen ())
+                       if (isfullscreen () > 0)
                            minimizewindow ();
                        if (mouseactive)
                            setmouseactive(0);
index f78483813ad8f7195b3d2eaa6da0bbc05fe5225b..10efa3074ea248e3118dda05f969fa95e295b3d2 100755 (executable)
@@ -196,6 +196,7 @@ static int createtexture (int w, int h)
     write_log ("D3D: %d*%d texture allocated, bits per pixel %d\n", ww, hh, t_depth);
     return 1;
 }
+
 static int createsltexture (void)
 {
     UINT ww = required_sl_texture_w;
@@ -309,7 +310,7 @@ const char *D3D_init (HWND ahwnd, int w_w, int w_h, int t_w, int t_h, int depth)
     IDirect3D9_GetDeviceCaps(d3d, adapter, D3DDEVTYPE_HAL, &d3dCaps);
 
     memset (&dpp, 0, sizeof (dpp));
-    dpp.Windowed = currprefs.gfx_afullscreen ? FALSE : TRUE;
+    dpp.Windowed = isfullscreen() <= 0;
     dpp.BackBufferFormat = mode.Format;
     dpp.BackBufferCount = 1;
     dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
@@ -318,7 +319,7 @@ const char *D3D_init (HWND ahwnd, int w_w, int w_h, int t_w, int t_h, int depth)
     dpp.BackBufferHeight = w_h;
     dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
     vsync2 = 0;
-    if (currprefs.gfx_afullscreen) {
+    if (isfullscreen() > 0) {
        dpp.FullScreen_RefreshRateInHz = currprefs.gfx_refreshrate;
        if (currprefs.gfx_vsync > 0) {
            dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE;
index 89aa99df7856a48d3b3c008ee45df05e4beec719..f87f1d4fcfa21f5ee53ad9cd9767558ba894d807 100755 (executable)
@@ -32,7 +32,7 @@ struct uae_driveinfo {
     char product_id[128];
     char product_rev[128];
     char product_serial[128];
-    char device_name[256];
+    char device_name[2048];
     char device_path[2048];
     uae_u64 size;
     uae_u64 offset;
@@ -817,6 +817,10 @@ Return Value:
                strcat (udi->device_name, " ");
            strcat (udi->device_name, udi->product_serial);
        }
+       if (!udi->device_name[0]) {
+           write_log("empty device id?!?, replacing with device path\n");
+           strcpy (udi->device_name, udi->device_path);
+       }
 
        write_log ("device id string: '%s'\n", udi->device_name);
     if (!DeviceIoControl (hDevice, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, (void*)&dg, sizeof (dg), &returnedLength, NULL)) {
index 54ed666b3f78157afc8af43826baeaa21c88b46b..8032c871433f736d4d6e89a119dc723738236268 100755 (executable)
@@ -312,7 +312,7 @@ int parallel_direct_read_status (uae_u8 *vp)
 
 int parallel_direct_write_data (uae_u8 v, uae_u8 dir)
 {
-    PARAPORT_CYCLE c[2];
+    PARAPORT_CYCLE c[3];
     int ok = 1;
 
     if (!pport)
@@ -321,15 +321,18 @@ int parallel_direct_write_data (uae_u8 v, uae_u8 dir)
        write_log ("PARAPORT: unsupported mixed i/o attempted, DATA=%02.2X DIR=%02.2X, ignored\n", v, dir);
        return 0;
     }
-    memset (c + 0, 0, sizeof (PARAPORT_CYCLE));
-    memset (c + 1, 0, sizeof (PARAPORT_CYCLE));
+    memset (c, 0, 3 * sizeof (PARAPORT_CYCLE));
+
     c[0].Data = v;
     c[0].MaskData = 0xff;
     c[0].MaskControl = PARAPORT_MASK_CONTROL_STROBE;
-    c[0].Control = PARAPORT_MASK_CONTROL_STROBE;
-    c[0].RepeatFactor = 1;
+
     c[1].MaskControl = PARAPORT_MASK_CONTROL_STROBE;
-    if (!pp_executecycle (pport, c, 2)) {
+    c[1].Control = PARAPORT_MASK_CONTROL_STROBE;
+
+    c[2].MaskControl = PARAPORT_MASK_CONTROL_STROBE;
+
+    if (!pp_executecycle (pport, c, 3)) {
        write_log ("PARAPORT: write executeCycle failed, data=%02.2X\n", v);
        return 0;
     }
@@ -340,19 +343,23 @@ int parallel_direct_write_data (uae_u8 v, uae_u8 dir)
 int parallel_direct_read_data (uae_u8 *v)
 {
     static uae_u8 olda, oldb;
-    PARAPORT_CYCLE c[2];
+    PARAPORT_CYCLE c[3];
     int ok = 1;
 
     if (!pport)
        return 0;
-    memset (c + 0, 0, sizeof (PARAPORT_CYCLE));
-    memset (c + 1, 0, sizeof (PARAPORT_CYCLE));
+    memset (c, 0, 3 * sizeof (PARAPORT_CYCLE));
+
     c[0].MaskData = 0xff;
     c[0].MaskControl = PARAPORT_MASK_CONTROL_DIRECTION | PARAPORT_MASK_CONTROL_STROBE;
-    c[0].Control = PARAPORT_MASK_CONTROL_DIRECTION | PARAPORT_MASK_CONTROL_STROBE;
-    c[0].RepeatFactor = 1;
+    c[0].Control = PARAPORT_MASK_CONTROL_DIRECTION;
+
     c[1].MaskControl = PARAPORT_MASK_CONTROL_STROBE;
-    if (!pp_executecycle (pport, c, 2)) {
+    c[1].Control = PARAPORT_MASK_CONTROL_STROBE;
+
+    c[2].MaskControl = PARAPORT_MASK_CONTROL_STROBE;
+
+    if (!pp_executecycle (pport, c, 3)) {
        write_log ("PARAPORT: DATA read executeCycle failed\n");
        return 0;
     }
index b2dcc7c1af00d27ab0e6ff3fa2b4d9bd0616b631..5c5d50b0119be65acc0996d4c4a1fb394b97eafb 100755 (executable)
@@ -361,7 +361,7 @@ void my_kbd_handler (int keyboard, int scancode, int newstate)
            if (ctrlpressed ()) {
                code = AKS_TOGGLEFULLSCREEN;
            } else if (shiftpressed () || specialpressed ()) {
-               if (!isfullscreen()) {
+               if (isfullscreen() <= 0) {
                    disablecapture ();
                    code = AKS_ENTERDEBUGGER;
                }
index 1a476fa699e8d2a20800478afc914741b3d122c5..760674d57743ba09adcb3b310acf79944555daf3 100755 (executable)
@@ -7,6 +7,7 @@ zip -9 -r c:\projects\winuae\src\od-win32\winuae.zip *
 cd c:\projects\winuae\src\od-win32
 copy installwinuae.exe d:\amiga\InstallWinUAE%1.exe
 copy winuae.zip d:\amiga\WinUAE%1.zip
+copy resourcedll\release\resourcedll.dll d:\amiga\WinUAE_default.dll
 cdd d:\amiga
 zip -9 WinUAE%1_translation WinUAE_default.dll translation.txt
 del translation.txt
index d373753ec36510b04bd509c084ad812972aa6d5a..6aaa6821e18dee2fb435739637717d9caff6632c 100755 (executable)
@@ -200,7 +200,7 @@ const char *OGL_init (HWND ahwnd, int w_w, int w_h, int t_w, int t_h, int depth)
     hwnd = ahwnd;
     total_textures = 2;
 
-    if (currprefs.gfx_afullscreen && WIN32GFX_GetDepth (TRUE) < 15) {
+    if (isfullscreen() > 0 && WIN32GFX_GetDepth (TRUE) < 15) {
        strcpy (errmsg, "OPENGL: display depth must be at least 15 bit");
        return errmsg;
     }
@@ -218,7 +218,7 @@ const char *OGL_init (HWND ahwnd, int w_w, int w_h, int t_w, int t_h, int depth)
 
        if(!arbMultisampleSupported) {
            PixelFormat = ChoosePixelFormat (openglhdc, &pfd);  // Find A Compatible Pixel Format
-           if (PixelFormat == 0) {                                     // Did We Find A Compatible Format?
+           if (PixelFormat == 0) {                             // Did We Find A Compatible Format?
                strcpy (errmsg, "OPENGL: can't find suitable pixelformat");
                return errmsg;
            }
@@ -432,7 +432,7 @@ static void OGL_swapinterval (void)
     doublevsync = 0;
     if (wglSwapIntervalEXT) {
        int i1, i2;
-       i1 = (currprefs.gfx_vsync > 0 && currprefs.gfx_afullscreen) ? (currprefs.gfx_refreshrate > 85 ? 2 : 1) : 0;
+       i1 = (currprefs.gfx_vsync > 0 && isfullscreen() > 0) ? (currprefs.gfx_refreshrate > 85 ? 2 : 1) : 0;
        if (turbo_emulation) i1 = 0;
        wglSwapIntervalEXT (i1);
        i2 = wglGetSwapIntervalEXT ();
index 5faef01f79acc7e1ae21fd39929b3f276423bb6d..b391a51de0da91c1783a2a369aea38ea7dec8dc7 100755 (executable)
@@ -2672,7 +2672,7 @@ uae_u32 REGPARAM2 picasso_BlitPattern (struct regstruct *regs)
                                case 1:
                                    {
                                        uae_u8 *addr = uae_mem2 + bits;
-                                       do_put_mem_byte (addr, (uae_u8)(do_get_mem_byte (addr) ^ fgpen));
+                                       do_put_mem_byte (addr, (uae_u8)(do_get_mem_byte (addr) ^ 0xff));
                                    }
                                    break;
                                case 2:
@@ -2858,7 +2858,7 @@ uae_u32 REGPARAM2 picasso_BlitTemplate (struct regstruct *regs)
                                case 1:
                                    {
                                        uae_u8 *addr = uae_mem2 + bits;
-                                       do_put_mem_byte (addr, (uae_u8)(do_get_mem_byte (addr) ^ fgpen));
+                                       do_put_mem_byte (addr, (uae_u8)(do_get_mem_byte (addr) ^ 0xff));
                                    }
                                    break;
                                case 2:
@@ -2957,7 +2957,7 @@ void init_hz_p96 (void)
 {
     int rate;
     p96syncrate = maxvpos * vblank_hz;
-    if (isfullscreen ())
+    if (isfullscreen () > 0)
        rate = DirectDraw_CurrentRefreshRate ();
     else
        rate = abs (currprefs.gfx_refreshrate);
diff --git a/od-win32/resources/resource b/od-win32/resources/resource
new file mode 100755 (executable)
index 0000000..071d027
--- /dev/null
@@ -0,0 +1,932 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by winuae.rc
+//
+#define IDS_KICKSTART                   1
+#define IDS_DISK                        2
+#define IDS_DISPLAY                     3
+#define IDC_HARDDRIVE_IMAGE             3
+#define IDS_HARDDISK                    4
+#define IDS_FLOPPY                      5
+#define IDS_ABOUT                       6
+#define IDS_LOADSAVE                    7
+#define IDS_AVIOUTPUT                   8
+#define IDS_PORTS                       9
+#define IDS_MISC1                       10
+#define IDS_MEMORY                      11
+#define IDS_CPU                         12
+#define IDS_CHIPSET                     13
+#define IDS_INPUT                       14
+#define IDS_OPENGL                      15
+#define IDS_FILTER                      15
+#define IDS_MISC2                       16
+#define IDS_PATHS                       17
+#define IDS_QUICKSTART                  18
+#define IDS_FRONTEND                    19
+#define IDS_CHIPSET2                    20
+#define IDS_EXTTEXT                     100
+#define IDS_EXTACTUAL                   101
+#define IDS_SOUND                       102
+#define IDS_CDROM                       103
+#define IDS_FRAMERATE                   104
+#define IDS_SECOND                      105
+#define IDS_THIRD                       106
+#define IDD_KICKSTART                   107
+#define IDS_FOURTH                      107
+#define IDD_DISPLAY                     108
+#define IDS_FIFTH                       108
+#define IDD_MEMORY                      109
+#define IDS_SIXTH                       109
+#define IDD_FLOPPY                      110
+#define IDS_SEVENTH                     110
+#define IDD_CPU                         111
+#define IDS_EIGHTH                      111
+#define IDD_ABOUT                       112
+#define IDS_NINTH                       112
+#define IDD_HARDDISK                    113
+#define IDS_TENTH                       113
+#define IDS_SELECTADF                   114
+#define IDS_ADF                         115
+#define IDS_CHOOSEBLANK                 116
+#define IDS_SELECTHDF                   117
+#define IDS_HDF                         118
+#define IDS_SELECTUAE                   119
+#define IDS_UAE                         120
+#define IDS_SELECTROM                   121
+#define IDD_SOUND                       122
+#define IDS_ROM                         122
+#define IDI_APPICON                     123
+#define IDS_SELECTKEY                   123
+#define IDI_CPU                         124
+#define IDS_KEY                         124
+#define IDI_ABOUT                       125
+#define IDS_SELECTINFO                  125
+#define IDS_NONE                        126
+#define IDS_VOLUME                      127
+#define IDI_HARDDISK                    128
+#define IDS_PATH                        128
+#define IDS_RW                          129
+#define IDI_SOUND                       130
+#define IDS_SECTORS                     130
+#define IDS_SURFACES                    131
+#define IDS_RESERVED                    132
+#define IDS_BLOCKSIZE                   133
+#define IDI_FLOPPY                      134
+#define IDS_NAME                        134
+#define IDD_LOADSAVE                    135
+#define IDS_DESCRIPTION                 135
+#define IDS_ONEINSTANCE                 136
+#define IDI_PORTS                       137
+#define IDS_INSTALLDIRECTX              137
+#define IDD_PORTS                       138
+#define IDS_REGKEYCREATEFAILED          138
+#define IDS_COULDNOTLOADCONFIG          139
+#define IDD_CONTRIBUTORS                140
+#define IDS_NOHELP                      140
+#define IDD_MISC1                       141
+#define IDS_MUSTSELECTCONFIG            141
+#define IDD_HARDFILE                    142
+#define IDS_NOAGA                       142
+#define IDD_FILESYS                     143
+#define IDS_INVALIDCOMPORT              143
+#define IDS_WSOCK2NEEDED                144
+#define IDD_MISC2                       144
+#define IDS_UNSUPPORTEDPIXELFORMAT      145
+#define IDS_WAVEOUTOPENFAILURE          146
+#define IDS_MUSTENTERNAME               147
+#define IDS_MUSTSELECTCONFIGFORDELETE   148
+#define IDS_DELETECONFIGCONFIRMATION    149
+#define IDI_MISC1                       150
+#define IDS_DELETECONFIGTITLE           150
+#define IDC_MYHAND                      151
+#define IDS_GFXCARDCHECK                151
+#define IDD_DIALOG1                     152
+#define IDS_GFXCARDTITLE                152
+#define IDD_DEBUGGER                    152
+#define IDD_SETINFO                     153
+#define IDS_MUSTSELECTPATH              153
+#define IDI_ICON1                       153
+#define IDS_SETTINGSERROR               154
+#define IDD_CHIPSET                     154
+#define IDS_MUSTSELECTNAME              155
+#define IDI_MOVE_UP                     155
+#define IDD_CHIPSET2                    155
+#define IDS_MUSTSELECTFILE              156
+#define IDI_MOVE_DOWN                   156
+#define IDS_FAILEDHARDFILECREATION      157
+#define IDD_AVIOUTPUT                   157
+#define IDS_CREATIONERROR               158
+#define IDI_AVIOUTPUT                   158
+#define IDS_ERRORTITLE                  159
+#define IDS_SELECTFILESYSROOT           160
+#define IDD_OPENGL                      160
+#define IDD_FILTER                      160
+#define IDS_DEFAULTMIDIOUT              161
+#define IDS_DEFAULTMIDIIN               162
+#define IDS_CONTRIBUTORS1               163
+#define IDD_HARDDRIVE                   163
+#define IDS_CONTRIBUTORS2               164
+#define IDS_INVALIDPRTPORT              165
+#define IDS_SELECTUSS                   166
+#define IDS_RESTOREUSS                  166
+#define IDS_USS                         167
+#define IDS_WRONGOSVERSION              168
+#define IDR_DRIVE_STARTUP_A500_1        168
+#define IDS_SELECTFLASH                 169
+#define IDR_DRIVE_CLICK_A500_1          169
+#define IDS_FLASH                       170
+#define IDR_DRIVE_SPIN_A500_1           170
+#define IDD_INPUT                       171
+#define IDS_INPUTHOSTWIDGET             171
+#define IDI_INPUT                       172
+#define IDS_INPUTAMIGAEVENT             172
+#define IDD_DISK                        172
+#define IDS_INPUTAUTOFIRE               173
+#define IDS_SAVEUSS                     174
+#define IDS_MIDIOVERFLOW                175
+#define IDS_HFDSIZE                     176
+#define IDS_DEVICE                      177
+#define IDS_BOOTPRI                     178
+#define IDS_WRONGDXVERSION              179
+#define IDI_MISC2                       180
+#define IDS_FLOPPY_COMPATIBLE           180
+#define IDR_DRIVE_SNATCH_A500_1         181
+#define IDS_FLOPPY_TURBO                181
+#define IDI_DISK                        182
+#define IDR_DRIVE_SPINND_A500_1         182
+#define IDS_YES                         182
+#define IDD_PANEL                       183
+#define IDS_NO                          183
+#define IDD_PATHS                       184
+#define IDS_PRI_ABOVENORMAL             184
+#define IDI_CONFIGFILE                  185
+#define IDD_QUICKSTART                  185
+#define IDS_PRI_NORMAL                  185
+#define IDM_SYSTRAY                     186
+#define IDS_PRI_BELOWNORMAL             186
+#define IDS_PRI_LOW                     187
+#define IDI_FOLDER                      188
+#define IDS_OLDRTGLIBRARY               188
+#define IDS_DEFAULT_AF2005              189
+#define IDI_DISPLAY                     190
+#define IDS_DEFAULT_AF                  190
+#define IDS_DEFAULT_WINUAE              191
+#define IDI_ROOT                        192
+#define IDS_INP                         192
+#define IDS_RESTOREINP                  193
+#define IDI_ICON2                       194
+#define IDI_MEMORY                      194
+#define IDS_SAVEINP                     194
+#define IDS_SCREEN_WINDOWED             195
+#define IDS_SCREEN_FULLSCREEN           196
+#define IDS_SCREEN_FULLWINDOW           197
+#define IDS_SOUND_MONO                  200
+#define IDS_SOUND_MIXED                 201
+#define IDI_QUICKSTART                  201
+#define IDS_SOUND_STEREO                202
+#define IDS_SOUND_INTERPOL_DISABLED     203
+#define IDS_SOUND_INTERPOL_RH           204
+#define IDI_PATHS                       204
+#define IDS_SOUND_INTERPOL_CRUX         205
+#define IDS_SOUND_FILTER_OFF            206
+#define IDS_SOUND_FILTER_EMULATED       207
+#define IDS_SOUND_FILTER_EMULATED_E     208
+#define IDS_INPUT_COMPATIBILITY         209
+#define IDS_INPUT_CUSTOM                210
+#define IDS_INPUT_COPY_DEFAULT          211
+#define IDS_INPUT_COPY_CUSTOM           212
+#define IDS_3D_NO_FILTER                213
+#define IDS_3D_BILINEAR                 214
+#define IDS_VSYNC_DEFAULT               215
+#define IDS_DRIVESOUND_NONE             216
+#define IDS_DRIVESOUND_DEFAULT_A500     217
+#define IDS_AVIOUTPUT_NOCODEC           218
+#define IDS_DISK_IMAGENAME              219
+#define IDS_DISK_DRIVENAME              220
+#define IDS_AGA8BIT                     221
+#define IDS_UNSUPPORTEDSCREENMODE       222
+#define IDS_UNSUPPORTEDSCREENMODE_1     223
+#define IDS_UNSUPPORTEDSCREENMODE_2     224
+#define IDS_UNSUPPORTEDSCREENMODE_3     225
+#define IDS_UNSUPPORTEDSCREENMODE_4     226
+#define IDS_FLOPPYTYPE35DD              227
+#define IDS_FLOPPYTYPE35HD              228
+#define IDS_FLOPPYTYPE525SD             229
+#define IDS_FLOPPYTYPEDISABLED          230
+#define IDS_STMENUNOFLOPPY              231
+#define IDS_TREEVIEW_HARDWARE           232
+#define IDS_TREEVIEW_HOST               233
+#define IDS_TREEVIEW_MISC               234
+#define IDS_TREEVIEW_SETTINGS           235
+#define IDS_WINUAETITLE_MMB             236
+#define IDS_WINUAETITLE_NORMAL          237
+#define IDS_STARTEMULATION              238
+#define IDS_TREEVIEW_ABOUT              239
+#define IDS_NOHARDDRIVES                240
+#define IDS_DEFAULT_HOST                241
+#define IDS_SOUND_4CHANNEL              242
+#define IDS_HF_FS_CUSTOM                243
+#define IDS_SELECTFS                    244
+#define IDS_KEYJOY                      245
+#define IDB_XARCADE                     246
+#define IDS_STATEFILE_UNCOMPRESSED      246
+#define IDS_STATEFILE_RAMDUMP           247
+#define IDS_STATEFILE_WAVE              248
+#define IDD_FRONTEND                    249
+#define IDS_SOUND_SWAP_PAULA            249
+#define IDS_SOUND_SWAP_AHI              250
+#define IDD_PROGRESSBAR                 250
+#define IDS_SOUND_SWAP_BOTH             251
+#define IDD_STRINGBOX                   251
+#define IDB_BITMAP1                     252
+#define IDB_LCD160X43                   252
+#define IDS_SOUND_FILTER_ON_AGA         252
+#define IDS_SOUND_FILTER_ON             253
+#define IDS_SOUND_FILTER_ON_A500        253
+#define IDS_DRIVESOUND_PC_FLOPPY        254
+#define IDS_FLOPPYTYPE35DDESCOM         255
+#define IDS_SOUND_STEREO2               256
+#define IDS_INPUT_CUSTOMEVENT           257
+#define IDS_NUMSG_NEEDEXT2              300
+#define IDS_NUMSG_NOROMKEY              301
+#define IDS_NUMSG_KSROMCRCERROR         302
+#define IDS_NUMSG_KSROMREADERROR        303
+#define IDS_NUMSG_NOEXTROM              304
+#define IDS_NUMSG_MODRIP_NOTFOUND       305
+#define IDS_NUMSG_MODRIP_FINISHED       306
+#define IDS_NUMSG_MODRIP_SAVE           307
+#define IDS_NUMSG_KS68020               308
+#define IDS_NUMSG_ROMNEED               309
+#define IDS_NUMSG_NOZLIB                310
+#define IDS_NUMSG_STATEHD               311
+#define IDS_NUMSG_NOCAPS                312
+#define IDS_NUMSG_OLDCAPS               313
+#define IDS_IMGCHK_BOOTBLOCKCRCERROR    314
+#define IDS_IMGCHK_BOOTBLOCKNO          315
+#define IDS_IMGCHK_DAMAGED              316
+#define IDS_IMGCHK_KS2                  317
+#define IDS_IMGCHK_KS3                  318
+#define IDS_ROMSCANEND                  319
+#define IDS_ROM_AVAILABLE               320
+#define IDS_ROM_UNAVAILABLE             321
+#define IDS_HARDDRIVESAFETYWARNING      322
+#define IDS_NUMSG_KS68EC020             323
+#define IDS_ROMSCANNOROMS               324
+#define IDS_NUMSG_KICKREP               325
+#define IDS_NUMSG_KICKREPNO             326
+#define IDS_NUMSG_NOROM                 327
+#define IDS_HDCLONE_OK                  328
+#define IDS_HDCLONE_FAIL                329
+#define IDR_DBGACCEL                    330
+#define IDS_QS_MODELS                   1000
+#define IDS_QS_MODEL_A500               1001
+#define IDS_QS_MODEL_A500P              1002
+#define IDS_QS_MODEL_A600               1003
+#define IDS_QS_MODEL_A1000              1004
+#define IDS_QS_MODEL_A1200              1005
+#define IDS_QS_MODEL_CD32               1006
+#define IDS_QS_MODEL_CDTV               1007
+#define IDS_QS_MODEL_UAE                1008
+#define IDS_QS_MODEL_ARCADIA            1009
+#define IDC_RESOLUTION                  1021
+#define IDC_SERIAL                      1022
+#define IDC_REFRESHRATE                 1022
+#define IDC_ILLEGAL                     1023
+#define IDC_MIDILIST                    1023
+#define IDC_MIDIOUTLIST                 1023
+#define IDC_DA_MODE                     1023
+#define IDC_SHOWGUI                     1024
+#define IDC_MIDIINLIST                  1024
+#define IDC_RESOLUTION2                 1024
+#define IDC_DISPLAYSELECT               1024
+#define IDC_AUTOCONFIG                  1025
+#define IDC_PRINTERLIST                 1025
+#define IDC_RESOLUTION3                 1025
+#define IDC_RESOLUTIONDEPTH             1025
+#define IDC_CHIPMEM                     1026
+#define IDC_CREATELOGFILE               1026
+#define IDC_PORT0_JOYS                  1026
+#define IDC_SCREENMODE_NATIVE           1026
+#define IDC_FASTMEM                     1027
+#define IDC_SHOWLEDS                    1027
+#define IDC_PORT1_JOYS                  1027
+#define IDC_SCREENMODE_RTG              1027
+#define IDC_MBMEM1                      1028
+#define IDC_SLOWMEM                     1030
+#define IDC_MBMEM2                      1031
+#define IDC_PARALLEL                    1033
+#define IDC_JULIAN                      1040
+#define IDC_FASTTEXT                    1043
+#define IDC_FASTRAM                     1044
+#define IDC_CHIPRAM                     1045
+#define IDC_SLOWRAM                     1046
+#define IDC_Z3TEXT                      1047
+#define IDC_Z3FASTRAM                   1048
+#define IDC_Z3FASTMEM                   1049
+#define IDC_MBRAM1                      1050
+#define IDC_MBRAM2                      1051
+#define IDC_UAEHOME                     1070
+#define IDC_PICASSOHOME                 1071
+#define IDC_AMIGAHOME                   1072
+#define IDC_WINUAEHOME                  1073
+#define IDC_AIABHOME                    1074
+#define IDC_CLOANTOHOME                 1075
+#define IDC_THEROOTS                    1076
+#define IDC_CAPS                        1077
+#define IDC_ABIME                       1078
+#define IDC_AMIGASYS                    1079
+#define IDC_AMIKIT                      1080
+#define IDC_RICHEDIT1                   1091
+#define IDC_RICHEDIT2                   1092
+#define IDC_CONTRIBUTORS                1124
+#define IDC_ASPECT                      1170
+#define IDC_BLIT32                      1173
+#define IDC_BLITIMM                     1174
+#define IDC_LORES                       1176
+#define IDC_VSYNC                       1177
+#define IDC_AFULLSCREEN                 1178
+#define IDC_LORES_SMOOTHED              1179
+#define IDC_FRAMERATE                   1185
+#define IDC_RATETEXT                    1186
+#define IDC_XSIZE                       1187
+#define IDC_YSIZE                       1188
+#define IDC_INPUTAUTOFIRERATE           1188
+#define IDC_LM_NORMAL                   1189
+#define IDC_INPUTSPEEDD                 1189
+#define IDC_LM_DOUBLED                  1190
+#define IDC_INPUTSPEEDA                 1190
+#define IDC_GFXCARDTEXT                 1191
+#define IDC_LM_SCANLINES                1191
+#define IDC_INPUTSPEEDM                 1191
+#define IDC_P96RAM                      1192
+#define IDC_PFULLSCREEN                 1192
+#define IDC_P96MEM                      1193
+#define IDC_DA_SLIDER                   1193
+#define IDC_FRAMERATE2                  1194
+#define IDC_RATE2TEXT                   1195
+#define IDC_CPU0                        1200
+#define IDC_CPU1                        1201
+#define IDC_CPU2                        1202
+#define IDC_CPU3                        1203
+#define IDC_CPU4                        1204
+#define IDC_CPU5                        1205
+#define IDC_CPU6                        1206
+#define IDC_SPEED                       1207
+#define IDC_CS_HOST                     1209
+#define IDC_CS_68000                    1210
+#define IDC_CS_ADJUSTABLE               1211
+#define IDC_CS_CPU_TEXT                 1212
+#define IDC_CS_CHIPSET_TEXT             1213
+#define IDC_COMPATIBLE                  1214
+#define IDC_TRUST0                      1215
+#define IDC_TRUST1                      1216
+#define IDC_TRUST2                      1217
+#define IDC_CACHE                       1218
+#define IDC_CYCLEEXACT                  1219
+#define IDC_CS_CPU_TEXT2                1219
+#define IDC_CPUIDLE                     1220
+#define IDC_GENLOCK                     1220
+#define IDC_COMPATIBLE_FPU              1221
+#define IDC_FASTERRTG                   1221
+#define IDC_SOUNDSETTINGS               1229
+#define IDC_8BIT                        1230
+#define IDC_16BIT                       1231
+#define IDC_11KHZ                       1232
+#define IDC_22KHZ                       1233
+#define IDC_44KHZ                       1234
+#define IDC_48KHZ                       1235
+#define IDC_SOUNDSIZE                   1236
+#define IDC_FREQUENCY                   1237
+#define IDC_SOUND0                      1238
+#define IDC_SOUND1                      1239
+#define IDC_SOUND2                      1240
+#define IDC_SOUND3                      1241
+#define IDC_SOUNDSTYLE                  1242
+#define IDC_SOUNDSTYLE0                 1243
+#define IDC_STEREO                      1244
+#define IDC_SOUNDSTYLE1                 1245
+#define IDC_SOUNDINTERPOLATION          1248
+#define IDC_INTERPOLATION0              1249
+#define IDC_INTERPOLATION1              1250
+#define IDC_INTERPOLATION2              1251
+#define IDC_STEREOMODE                  1252
+#define IDC_SOUNDINTERPOLATION2         1252
+#define IDC_STEREOMODE0                 1253
+#define IDC_STEREOMODE1                 1254
+#define IDC_STEREOMODE2                 1255
+#define IDC_SOUNDINTERPOLATION3         1256
+#define IDC_DF0TEXT                     1270
+#define IDC_DF1TEXT                     1271
+#define IDC_DF2TEXT                     1272
+#define IDC_DF3TEXT                     1273
+#define IDC_EJECT0                      1274
+#define IDC_EJECT1                      1275
+#define IDC_EJECT2                      1276
+#define IDC_EJECT3                      1277
+#define IDC_DF0                         1278
+#define IDC_DF1                         1279
+#define IDC_DF2                         1280
+#define IDC_DF3                         1281
+#define IDC_CREATE                      1282
+#define IDC_CREATE_RAW                  1283
+#define IDC_SNAPSHOTNAME                1284
+#define IDC_SNAPSHOT                    1285
+#define IDC_SAVEIMAGE0                  1285
+#define IDC_DOSAVESTATE                 1286
+#define IDC_SAVEIMAGE1                  1286
+#define IDC_DOLOADSTATE                 1287
+#define IDC_SAVEIMAGE2                  1287
+#define IDC_PROWIZARD                   1288
+#define IDC_SAVEIMAGE3                  1288
+#define IDC_PORT0_JOYSC                 1302
+#define IDC_PORT0_KBDA                  1303
+#define IDC_PORT0_KBDB                  1304
+#define IDC_PORT0_KBDC                  1305
+#define IDC_PORT0_KBDD                  1306
+#define IDC_PORT0_KBDE                  1307
+#define IDC_PORT1_JOYSC                 1308
+#define IDC_PORT1_KBDA                  1309
+#define IDC_PORT1_KBDB                  1310
+#define IDC_PORT1_KBDC                  1311
+#define IDC_PORT1_KBDD                  1312
+#define IDC_PORT1_KBDE                  1313
+#define IDC_MIDIFRAME                   1314
+#define IDC_SERPARFRAME                 1315
+#define IDC_SERIALFRAME                 1316
+#define IDC_EDIT                        1334
+#define IDC_REMOVE                      1335
+#define IDC_VOLUMELIST                  1336
+#define IDC_UP                          1337
+#define IDC_DOWN                        1338
+#define IDC_NEW_FS                      1339
+#define IDC_NEW_HF                      1340
+#define IDC_NEW_HD                      1341
+#define IDC_PORT0                       1342
+#define IDC_PORT1                       1343
+#define IDC_PATH_NAME                   1362
+#define IDC_SELECTOR                    1363
+#define IDC_VOLUME_NAME                 1364
+#define IDC_HARDFILE_DEVICE             1364
+#define IDC_SECTORS                     1365
+#define IDC_VOLUME_DEVICE               1365
+#define IDC_HEADS                       1366
+#define IDC_RESERVED                    1367
+#define IDC_BLOCKSIZE                   1368
+#define IDC_HARDFILE_BOOTPRI            1369
+#define IDC_SECTORS_TEXT                1370
+#define IDC_SURFACES_TEXT               1371
+#define IDC_RESERVED_TEXT               1372
+#define IDC_RESERVED_TEXT2              1373
+#define IDC_BLOCKSIZE_TEXT              1374
+#define ID_OK                           1375
+#define IDC_HARDFILE_BOOTPRI_TEXT       1375
+#define IDC_PATH_FILESYS                1376
+#define IDC_HARDFILE_DIR_TEXT           1377
+#define IDC_HARDFILE_DEVICE_TEXT        1378
+#define IDC_RW                          1379
+#define IDC_HFRDB                       1380
+#define IDC_RW2                         1380
+#define IDC_RDB                         1380
+#define IDC_HARDFILE_FILESYS_TEXT       1380
+#define IDC_FILESYS_SELECTOR            1381
+#define IDC_ROMFILE                     1390
+#define IDC_KEYFILE                     1391
+#define IDC_KICKCHOOSER                 1392
+#define IDC_KEYCHOOSER                  1393
+#define IDC_ROMFILE2                    1394
+#define IDC_ROMCHOOSER2                 1395
+#define IDC_FLASHCHOOSER                1396
+#define IDC_FLASHFILE                   1397
+#define IDC_CARTFILE                    1398
+#define IDC_CARTCHOOSER                 1399
+#define IDC_SAVE                        1400
+#define IDC_LOAD                        1401
+#define IDC_DELETE                      1403
+#define IDC_CONFIGLIST                  1404
+#define IDC_EDITNAME                    1405
+#define IDC_EDITDESCRIPTION             1406
+#define IDC_QUICKSAVE                   1408
+#define IDC_QUICKLOAD                   1409
+#define IDC_EXIT                        1410
+#define IDC_EDITPATH                    1410
+#define IDC_HDF_RDB                     1500
+#define IDC_HFSIZE                      1501
+#define IDC_HF_SIZE                     1501
+#define IDC_LINEMODE                    1502
+#define IDC_CREATEHF                    1502
+#define IDC_HF_CREATE                   1502
+#define IDC_SOCKETS                     1503
+#define IDC_HF_DOSTYPE                  1503
+#define IDC_RESETAMIGA                  1504
+#define IDC_QUITEMU                     1505
+#define IDC_TEST16BIT                   1506
+#define IDC_MAPDRIVES                   1507
+#define IDC_CPUTEXT                     1508
+#define IDC_MAPDRIVES_NET               1508
+#define IDC_SWAP                        1509
+#define IDC_CACHETEXT                   1509
+#define IDC_SELECTRESTEXT               1510
+#define IDC_FLUSHPRINTER                1510
+#define IDC_SCREENRESTEXT               1511
+#define IDC_WIDTHTEXT                   1512
+#define IDC_WINDOWEDTEXT                1512
+#define IDC_HEIGHTTEXT                  1513
+#define IDC_SETTINGSTEXT                1514
+#define IDC_REFRESHTEXT                 1515
+#define IDC_SETTINGSTEXT2               1515
+#define IDC_DISABLE1                    1516
+#define IDC_DF1WP                       1516
+#define IDC_QUICKSTART_COMPA            1516
+#define IDC_REFRESH2TEXT                1516
+#define IDC_DISABLE2                    1517
+#define IDC_DF2WP                       1517
+#define IDC_QUICKSTART_DF               1517
+#define IDC_DISABLE3                    1518
+#define IDC_XCENTER                     1518
+#define IDC_DF3WP                       1518
+#define IDC_DF1WP2                      1518
+#define IDC_QUICKSTART_HOST             1518
+#define IDC_YCENTER                     1519
+#define IDC_DISABLE0                    1519
+#define IDC_DF0WP                       1519
+#define IDC_OCS                         1520
+#define IDC_HDFLOPPY                    1520
+#define IDC_ECS_AGNUS                   1521
+#define IDC_ECS_DENISE                  1522
+#define IDC_ECS                         1523
+#define IDC_AGA                         1524
+#define IDC_NTSC                        1525
+#define IDC_NOSPEED                     1527
+#define IDC_NOSOUND                     1528
+#define IDC_INACTIVE_NOSOUND            1528
+#define IDC_MIDI                        1529
+#define IDC_NOSPEEDPAUSE                1529
+#define IDC_INACTIVE_PAUSE              1529
+#define IDC_KICKSHIFTER                 1530
+#define IDC_MIDI2                       1530
+#define IDC_HIGHPRIORITY                1530
+#define IDC_MINIMIZED_NOSOUND           1530
+#define IDC_MINIMIZED_PAUSE             1531
+#define IDC_STATE_CAPTURE               1532
+#define IDC_KBLED_USB                   1533
+#define IDC_SER_SHARED                  1553
+#define IDC_SER_CTSRTS                  1554
+#define IDC_SER_DIRECT                  1555
+#define IDC_PSPRINTER                   1556
+#define IDC_PSPRINTERDETECT             1557
+#define IDC_UAESERIAL                   1558
+#define IDC_VIEWINFO                    1568
+#define IDC_SETINFO                     1569
+#define IDC_FLOPPYSLIDER                1570
+#define IDC_FLOPPYSLIDERTEXT            1571
+#define IDC_FLOPPYSPEED                 1572
+#define IDC_FLOPPYSPD                   1572
+#define IDC_GUILANGUAGE_LIST            1573
+#define IDC_SOUNDBUFFERRAM              1574
+#define IDC_SOUNDADJUST                 1575
+#define IDC_SOUNDBUFFERTEXT             1576
+#define IDC_SOUNDVOLUME                 1576
+#define IDC_SOUNDBUFFERMEM              1577
+#define IDC_HARDFLUSH                   1578
+#define IDC_SOUNDADJUSTNUM              1578
+#define IDC_CONSTJUMP                   1579
+#define IDC_SOUNDDRIVEVOLUME            1579
+#define IDC_JITFPU                      1580
+#define IDC_SOUNDVOLUME2                1580
+#define IDC_NOFLAGS                     1581
+#define IDC_SOUNDDRIVEVOLUME2           1581
+#define IDC_CS_CACHE_TEXT               1582
+#define IDC_FORCE                       1583
+#define IDC_COLLISIONS                  1584
+#define IDC_JITENABLE                   1584
+#define IDC_DISASSEMBLY                 1585
+#define IDC_CTRLF11                     1586
+#define IDC_FASTCOPPER                  1588
+#define IDC_COLLISION0                  1589
+#define IDC_COLLISION1                  1590
+#define IDC_AUDIOSYNC                   1590
+#define IDC_COLLISION2                  1591
+#define IDC_COLLISION3                  1592
+#define IDC_SOUNDLAGSLIDER              1592
+#define IDC_SOUNDLAGCAPTION             1594
+#define IDC_FLOPPYTYPE                  1594
+#define IDC_SYNCPARAMS                  1595
+#define IDC_DF0TYPE                     1595
+#define IDC_SOUNDLAGTEXT                1596
+#define IDC_DF1TYPE                     1596
+#define IDC_DF2TYPE                     1597
+#define IDC_SOUNDSPEEDSLIDER            1598
+#define IDC_DF0TYPE4                    1598
+#define IDC_DF3TYPE                     1598
+#define IDC_SOUNDSPEEDTEXT              1599
+#define IDC_SOUNDSPEEDCAPTION           1600
+#define IDC_NOOVERLAY                   1601
+#define IDC_ROMFILE2TEXT                1602
+#define IDC_ROMTEXT                     1603
+#define IDC_KEYTEXT                     1604
+#define IDC_CD32                        1605
+#define IDC_AKIKOC2P                    1605
+#define IDC_FLASHTEXT                   1605
+#define IDC_SCSIDEVICE                  1606
+#define IDC_FLASHTEXT2                  1606
+#define IDC_AVIOUTPUT_PAL               1607
+#define IDC_INPUTTYPE                   1607
+#define IDC_AVIOUTPUT_NTSC              1608
+#define IDC_INPUTSELECTTEXT             1608
+#define IDC_NOUAEFSDB                   1608
+#define IDC_NOTASKBARBUTTON             1608
+#define IDC_CLOCKSYNC                   1609
+#define IDC_AVIOUTPUT_FPS               1609
+#define IDC_INPUTDEVICE                 1609
+#define IDC_MAPROM                      1609
+#define IDC_NORECYCLEBIN                1609
+#define IDC_AVIOUTPUT_FILETEXT          1610
+#define IDC_INPUTDEVICETEXT             1610
+#define IDC_ALWAYSONTOP                 1610
+#define IDC_MAPROM2                     1610
+#define IDC_HRTMON                      1610
+#define IDC_AVIOUTPUT_FILE              1611
+#define IDC_INPUTLIST                   1611
+#define IDC_CATWEASEL                   1611
+#define IDC_AVIOUTPUT_FPS_STATIC        1612
+#define IDC_INPUTAMIGA                  1612
+#define IDC_ALWAYSONTOP2                1612
+#define IDC_BORDERLESS                  1612
+#define IDC_POWERSAVE                   1612
+#define IDC_AVIOUTPUT_VIDEO             1613
+#define IDC_INPUTAUTOFIRE               1613
+#define IDC_MOUSETRICK                  1613
+#define IDC_AVIOUTPUT_AUDIO             1614
+#define IDC_INPUTCOPYFROM               1614
+#define IDC_AVIOUTPUT_VIDEO_CODEC       1615
+#define IDC_OPENGLENABLE                1615
+#define IDC_INPUTDEVICEDISABLE          1615
+#define IDC_AVIOUTPUT_ACTIVATED         1615
+#define IDC_FILTERENABLE                1615
+#define IDC_AVIOUTPUT_AUDIO_CODEC       1616
+#define IDC_OPENGLHZ                    1616
+#define IDC_INPUTAMIGACNT               1616
+#define IDC_FILTERHZ                    1616
+#define IDC_SAMPLERIPPER_ACTIVATED      1616
+#define IDC_AVIOUTPUT_BORDER_TRIM       1617
+#define IDC_OPENGLVZ                    1617
+#define IDC_FILTERVZ                    1617
+#define IDC_INPREC_RECORD               1617
+#define IDC_AVIOUTPUT_AUDIO_STATIC      1618
+#define IDC_OPENGLHO                    1618
+#define IDC_FILTERHO                    1618
+#define IDC_AVIOUTPUT_VIDEO_STATIC      1619
+#define IDC_OPENGLVO                    1619
+#define IDC_FILTERVO                    1619
+#define IDC_AVIOUTPUT_8BIT              1620
+#define IDC_OPENGLHZV                   1620
+#define IDC_INPREC_PLAY                 1620
+#define IDC_AVIOUTPUT_24BIT             1621
+#define IDC_OPENGLVZV                   1621
+#define IDC_AVIOUTPUT_WIDTH             1622
+#define IDC_OPENGLHOV                   1622
+#define IDC_AVIOUTPUT_HEIGHT            1623
+#define IDC_OPENGLVOV                   1623
+#define IDC_AVIOUTPUT_FRAME             1624
+#define IDC_OPENGLSL                    1624
+#define IDC_FILTERSL                    1624
+#define IDC_OPENGLSLR                   1625
+#define IDC_FILTERSLR                   1625
+#define IDC_OPENGLSLV                   1626
+#define IDC_FILTERHZMULT                1626
+#define IDC_OPENGLBITS                  1627
+#define IDC_OPENGLMODE                  1627
+#define IDC_FILTERMODE                  1627
+#define IDC_OPENGLFILTER                1628
+#define IDC_FILTERFILTER                1628
+#define IDC_OPENGLDEFAULT               1629
+#define IDC_FILTERDEFAULT               1629
+#define IDC_INPUTDEADZONE               1630
+#define IDC_OPENGLSL2                   1630
+#define IDC_FILTERSL2                   1630
+#define IDC_INPUTCOPY                   1631
+#define IDC_OPENGLSL2V                  1631
+#define IDC_FILTERPRESETS               1631
+#define IDC_SCREENSHOT                  1632
+#define IDC_INPUTSWAP                   1632
+#define IDC_FILTERPRESETLOAD            1632
+#define IDC_FLOPPYSPDTEXT               1633
+#define IDC_FILTERPRESETSAVE            1633
+#define IDC_FLOPPYSPD_TEXT              1634
+#define IDC_FILTERPRESETDELETE          1634
+#define IDC_HARDDRIVE                   1635
+#define IDC_INACTIVE_PRI                1635
+#define IDC_FILTERSLR3                  1635
+#define IDC_FILTERVZMULT                1635
+#define IDC_SOUNDPRIMARY                1636
+#define IDC_MINIMIZED_PRI               1636
+#define IDC_VOLUME_BOOTPRI_TEXT         1637
+#define IDC_VOLUME_BOOTPRI              1638
+#define IDC_KBLED1                      1639
+#define IDC_KBLED2                      1640
+#define IDC_SOUNDFILTER                 1640
+#define IDC_KBLED3                      1641
+#define IDC_SOUNDCALIBRATE              1641
+#define IDC_ACTIVE_PRIORITY             1642
+#define IDC_SOUNDDRIVE                  1642
+#define IDC_INACTIVE_PRIORITY           1643
+#define IDC_ACTIVE_PRI                  1644
+#define IDC_MINIMIZED_PRIORITY          1645
+#define IDC_AVIOUTPUT_FRAMELIMITER      1645
+#define IDC_STATE_RATE                  1646
+#define IDC_INPREC_PLAYMODE             1646
+#define IDC_STATE_BUFFERSIZE            1647
+#define IDC_SOUNDDRIVESELECT            1647
+#define IDC_PANELTREE                   1647
+#define IDC_AVIOUTPUT_FRAMELIMITER2     1647
+#define IDC_AVIOUTPUT_NOSOUNDOUTPUT     1647
+#define IDC_AVIOUTPUT_DIMENSIONS_STATIC 1648
+#define IDC_STATE_BUFFERSIZE_TEXT       1648
+#define IDC_CONFIGTREE                  1648
+#define IDC_AVIOUTPUT_OPTIONS           1649
+#define IDC_STATE_RATE_TEXT             1649
+#define IDC_DISKLISTREMOVE              1649
+#define IDC_SOUNDCARD                   1650
+#define IDC_CS_SOUND0                   1650
+#define IDC_UPBM                        1650
+#define IDC_DISKLISTREMOVE2             1650
+#define IDC_DISKLISTINSERT              1650
+#define IDC_SOUNDCARDLIST               1651
+#define IDC_CS_SOUND1                   1651
+#define IDC_SOUNDFREQ                   1652
+#define IDC_CS_SOUND2                   1652
+#define IDC_SOUNDCARD2                  1653
+#define IDC_SOUNDFREQTXT                1653
+#define IDC_PANEL_FRAME                 1653
+#define IDC_SOUNDFILTERTXT              1654
+#define IDC_PANEL_FRAME_OUTER           1654
+#define IDC_SOUNDSTEREO                 1655
+#define IDC_CONFIGTYPE                  1655
+#define IDC_SOUNDDRIVETXT               1656
+#define IDC_PATHS_ROM                   1656
+#define IDC_SOUNDSTEREOSEP              1656
+#define IDC_SOUNDSTEREOTXT              1657
+#define IDC_PATHS_CONFIG                1657
+#define IDC_SOUNDINTERPOLATIONTXT       1658
+#define IDC_PATHS_SCREENSHOT            1658
+#define IDC_DISK                        1659
+#define IDC_DISKLIST                    1659
+#define IDC_PATHS_SAVEIMAGE             1659
+#define IDC_SOUNDSTEREOSEPTXT           1659
+#define IDC_PATHS_SAVESTATE             1660
+#define IDC_SOUNDSTEREOMIXTXT           1660
+#define IDC_PATHS_ROMS                  1661
+#define IDC_SOUNDSTEREOMIX              1661
+#define IDC_PATHS_CONFIGS               1662
+#define IDC_SOUNDSWAP                   1662
+#define IDC_PATHS_SCREENSHOTS           1663
+#define IDC_PATHS_SAVESTATES            1664
+#define IDC_SOUNDSTEREOSWAPTXT          1664
+#define IDC_SOUNDSWAPTXT                1664
+#define IDC_PATHS_SAVEIMAGES            1665
+#define IDC_PATHS_ROML                  1666
+#define IDC_PATHS_CONFIGL               1667
+#define IDC_PATHS_SCREENSHOTL           1668
+#define IDC_PATHS_STATEFILEL            1669
+#define IDC_PATHS_SAVEIMAGEL            1670
+#define IDC_PATHS_DEFAULT               1671
+#define IDC_ROM_RESCAN                  1672
+#define IDC_QUICKSTARTMODE              1673
+#define IDC_RESETREGISTRY               1673
+#define IDC_QUICKSTART_MODEL            1674
+#define IDC_PATHS_AVIOUTPUTL            1674
+#define IDC_QUICKSTART_CONFIGURATION    1675
+#define IDC_PATHS_AVIOUTPUT             1675
+#define IDC_QUICKSTART_COMPATIBILITY    1676
+#define IDC_PATHS_AVIOUTPUTS            1676
+#define IDC_QUICKSTART_CONFIG           1677
+#define IDC_RESETDISKHISTORY            1677
+#define IDC_DF0Q                        1678
+#define IDC_DF0QQ                       1678
+#define IDC_DF1Q                        1679
+#define IDC_QUICKSTART_HOSTCONFIG       1679
+#define IDC_DF1QQ                       1680
+#define IDC_QUICKSTART_SETCONFIG        1681
+#define IDC_CONFIGAUTO                  1682
+#define IDC_DF0TEXTQ                    1683
+#define IDC_CONFIGNOLINK                1683
+#define IDC_DF0WPQ                      1684
+#define IDC_EJECT0Q                     1685
+#define IDC_DF1WPQ                      1686
+#define IDC_EJECT1Q                     1687
+#define IDC_DF1TEXTQ                    1688
+#define IDC_FILTERSL2V                  1691
+#define IDC_FILTERSLV                   1692
+#define IDC_FILTERVOV                   1693
+#define IDC_FILTERHOV                   1694
+#define IDC_CONFIGLINK                  1694
+#define IDC_FILTERVZV                   1695
+#define IDC_PS_PARAMS                   1695
+#define IDC_FILTERHZV                   1696
+#define IDC_HF_TYPE                     1696
+#define IDC_PRINTERAUTOFLUSH            1697
+#define IDC_PRINTERAUTOFLUSHTXT         1698
+#define IDC_DISKTEXT                    1699
+#define IDC_FE_LIST                     1700
+#define IDC_FE_INFO                     1701
+#define IDC_FE_INFO2                    1702
+#define IDC_FE_SCREENSHOT               1702
+#define IDC_PATHS_DEFAULTTYPE           1704
+#define IDC_SCSIMODE                    1705
+#define IDC_PROGRESS1                   1705
+#define IDC_PROGRESSBAR                 1705
+#define IDC_PROGRESSBAR_TEXT            1706
+#define IDC_SCSIMODE2                   1706
+#define IDC_LANGUAGE                    1706
+#define IDC_CREATE_NAME                 1707
+#define IDC_FILTERAUTORES               1708
+#define IDC_SOUND_AUTO                  1709
+#define IDC_CS_RTC                      1710
+#define IDC_CS_CIAA_TOD1                1711
+#define IDC_CS_CIAA_TOD2                1712
+#define IDC_CS_EXT                      1712
+#define IDC_CS_CIAA_TOD3                1713
+#define IDC_CS_COMPATIBLE               1714
+#define IDC_CS_RAMSEYREV                1715
+#define IDC_CS_KSMIRROR                 1716
+#define IDC_STRINGBOXEDIT               1716
+#define IDC_CS_CD32CD                   1717
+#define IDC_STRINGBOX_TEXT              1717
+#define IDC_CS_CD32C2P                  1718
+#define IDC_CS_CD32NVRAM                1719
+#define IDC_CS_CDTVCD                   1720
+#define IDC_CS_CDTVRAM                  1721
+#define IDC_CS_IDE1                     1722
+#define IDC_CS_IDE2                     1723
+#define IDC_CS_IDE3                     1724
+#define IDC_CS_A1000RAM                 1724
+#define IDC_CS_RAMSEY                   1725
+#define IDC_CS_GARY                     1726
+#define IDC_CS_FATGARY                  1726
+#define IDC_CS_DMAC                     1727
+#define IDC_CS_RTCADJUST                1728
+#define IDC_CS_RAMSEYREV3               1729
+#define IDC_CS_FATGARYREV               1729
+#define IDC_CS_CDTVRAMEXP               1730
+#define IDC_CS_RTC1                     1731
+#define IDC_CS_RTC2                     1732
+#define IDC_CS_RTC3                     1733
+#define IDC_CS_IDE4                     1734
+#define IDC_CS_DF0IDHW                  1734
+#define IDC_CS_AGNUS                    1735
+#define IDC_CS_AGNUSREV                 1736
+#define IDC_CS_DENISE                   1737
+#define IDC_CS_AGNUSREV2                1738
+#define IDC_CS_DENISEREV                1738
+#define IDC_DBG_OUTPUT1                 1739
+#define IDC_DBG_HELP                    1740
+#define IDC_DBG_INPUT                   1741
+#define IDC_DBG_DREG                    1742
+#define IDC_DBG_AREG                    1743
+#define IDC_DBG_CCR                     1744
+#define IDC_DBG_AMEM                    1745
+#define IDC_DBG_SP_VBR                  1746
+#define IDC_DBG_MISC                    1747
+#define IDC_DBG_PC                      1748
+#define IDC_DBG_PREFETCH                1749
+#define IDC_DBG_FPREG                   1750
+#define IDC_DBG_FPSR                    1751
+#define IDC_DBG_OUTPUT2                 1752
+#define IDC_DBG_MEMINPUT                1753
+#define IDC_DBG_MEMDOWN                 1754
+#define IDC_DBG_MEMUP                   1755
+#define IDC_DBG_MEM                     1756
+#define IDC_DBG_DASM                    1757
+#define IDC_DBG_MEMDOWNFAST             1758
+#define IDC_DBG_MEMTOPC                 1759
+#define IDC_DBG_MEMUPFAST               1760
+#define ID__FLOPPYDRIVES                40004
+#define ID_FLOPPYDRIVES_DF0             40005
+#define ID_ST_CONFIGURATION             40010
+#define ID_ST_HELP                      40011
+#define ID_ST_QUIT                      40012
+#define ID_ST_EJECTALL                  40013
+#define ID_ST_DF0                       40014
+#define ID_ST_DF1                       40015
+#define ID_ST_DF2                       40016
+#define ID_ST_DF3                       40017
+#define ID_ST_RESET                     40019
+#define ID_DBG_PAGE1                    40020
+#define ID_DBG_PAGE2                    40021
+#define ID_DBG_PAGE3                    40022
+#define ID_DBG_PAGE4                    40023
+#define ID_DBG_PAGE5                    40024
+#define ID_DBG_PAGE6                    40025
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC                     1
+#define _APS_3D_CONTROLS                     1
+#define _APS_NEXT_RESOURCE_VALUE        258
+#define _APS_NEXT_COMMAND_VALUE         40026
+#define _APS_NEXT_CONTROL_VALUE         1761
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
index 87a8d0a916d1fd8d386847eb742632ba9ce9a266..e5904f8aa34af268121f65d737df3ff1be3a65e8 100755 (executable)
 #define IDI_ICON2                       194
 #define IDI_MEMORY                      194
 #define IDS_SAVEINP                     194
+#define IDS_SCREEN_WINDOWED             195
+#define IDS_SCREEN_FULLSCREEN           196
+#define IDS_SCREEN_FULLWINDOW           197
 #define IDS_SOUND_MONO                  200
 #define IDS_SOUND_MIXED                 201
 #define IDI_QUICKSTART                  201
 #define IDS_NUMSG_NOROM                 327
 #define IDS_HDCLONE_OK                  328
 #define IDS_HDCLONE_FAIL                329
+#define IDR_DBGACCEL                    330
 #define IDS_QS_MODELS                   1000
 #define IDS_QS_MODEL_A500               1001
 #define IDS_QS_MODEL_A500P              1002
 #define IDC_CHIPMEM                     1026
 #define IDC_CREATELOGFILE               1026
 #define IDC_PORT0_JOYS                  1026
+#define IDC_SCREENMODE_NATIVE           1026
 #define IDC_FASTMEM                     1027
 #define IDC_SHOWLEDS                    1027
 #define IDC_PORT1_JOYS                  1027
+#define IDC_SCREENMODE_RTG              1027
 #define IDC_MBMEM1                      1028
 #define IDC_SLOWMEM                     1030
 #define IDC_MBMEM2                      1031
 #define IDC_BLITIMM                     1174
 #define IDC_LORES                       1176
 #define IDC_VSYNC                       1177
-#define IDC_AFULLSCREEN                 1178
 #define IDC_LORES_SMOOTHED              1179
 #define IDC_FRAMERATE                   1185
 #define IDC_RATETEXT                    1186
 #define IDC_LM_SCANLINES                1191
 #define IDC_INPUTSPEEDM                 1191
 #define IDC_P96RAM                      1192
-#define IDC_PFULLSCREEN                 1192
 #define IDC_P96MEM                      1193
 #define IDC_DA_SLIDER                   1193
 #define IDC_FRAMERATE2                  1194
 #define IDC_CS_DENISE                   1737
 #define IDC_CS_AGNUSREV2                1738
 #define IDC_CS_DENISEREV                1738
+#define IDC_DBG_OUTPUT1                 1739
+#define IDC_DBG_HELP                    1740
+#define IDC_DBG_INPUT                   1741
+#define IDC_DBG_DREG                    1742
+#define IDC_DBG_AREG                    1743
+#define IDC_DBG_CCR                     1744
+#define IDC_DBG_AMEM                    1745
+#define IDC_DBG_SP_VBR                  1746
+#define IDC_DBG_MISC                    1747
+#define IDC_DBG_PC                      1748
+#define IDC_DBG_PREFETCH                1749
+#define IDC_DBG_FPREG                   1750
+#define IDC_DBG_FPSR                    1751
+#define IDC_DBG_OUTPUT2                 1752
+#define IDC_DBG_MEMINPUT                1753
+#define IDC_DBG_MEMDOWN                 1754
+#define IDC_DBG_MEMUP                   1755
+#define IDC_DBG_MEM                     1756
+#define IDC_DBG_DASM                    1757
+#define IDC_DBG_MEMDOWNFAST             1758
+#define IDC_DBG_MEMTOPC                 1759
+#define IDC_DBG_MEMUPFAST               1760
 #define ID__FLOPPYDRIVES                40004
 #define ID_FLOPPYDRIVES_DF0             40005
 #define ID_ST_CONFIGURATION             40010
 #define ID_ST_DF2                       40016
 #define ID_ST_DF3                       40017
 #define ID_ST_RESET                     40019
+#define ID_DBG_PAGE1                    40020
+#define ID_DBG_PAGE2                    40021
+#define ID_DBG_PAGE3                    40022
+#define ID_DBG_PAGE4                    40023
+#define ID_DBG_PAGE5                    40024
+#define ID_DBG_PAGE6                    40025
 
 // Next default values for new objects
 // 
 #define _APS_NO_MFC                     1
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        253
-#define _APS_NEXT_COMMAND_VALUE         40021
-#define _APS_NEXT_CONTROL_VALUE         1718
+#define _APS_NEXT_COMMAND_VALUE         40026
+#define _APS_NEXT_CONTROL_VALUE         1761
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif
index 035c3923790aa994861a8995c958c58a89f0aee1..7907697e480c4cb2d2e1882a866473630566b548 100755 (executable)
@@ -21,6 +21,26 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 #pragma code_page(1252)
 #endif //_WIN32
 
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDR_DBGACCEL ACCELERATORS 
+BEGIN
+    VK_F1,          ID_DBG_PAGE1,           VIRTKEY, NOINVERT
+    VK_F2,          ID_DBG_PAGE2,           VIRTKEY, NOINVERT
+    VK_F3,          ID_DBG_PAGE3,           VIRTKEY, NOINVERT
+    VK_F4,          ID_DBG_PAGE4,           VIRTKEY, NOINVERT
+    VK_F5,          ID_DBG_PAGE5,           VIRTKEY, NOINVERT
+    VK_F6,          ID_DBG_PAGE6,           VIRTKEY, NOINVERT
+    VK_DOWN,        IDC_DBG_MEMDOWN,        VIRTKEY, ALT, NOINVERT
+    VK_RIGHT,       IDC_DBG_MEMDOWNFAST,    VIRTKEY, ALT, NOINVERT
+    VK_UP,          IDC_DBG_MEMUP,          VIRTKEY, ALT, NOINVERT
+    VK_LEFT,        IDC_DBG_MEMUPFAST,      VIRTKEY, ALT, NOINVERT
+END
+
+
 /////////////////////////////////////////////////////////////////////////////
 //
 // Dialog
@@ -39,9 +59,9 @@ BEGIN
     COMBOBOX        IDC_ROMFILE2,89,31,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "...",IDC_ROMCHOOSER2,280,30,10,15
     CONTROL         "MapROM emulation [] Creates a BlizKick-compatible memory area.",IDC_MAPROM,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,54,82,10
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,54,87,10
     CONTROL         "ShapeShifter support [] Patches the system ROM for ShapeShifter compatibility.",IDC_KICKSHIFTER,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,54,80,10
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,54,87,10
     GROUPBOX        "Miscellaneous",-1,5,76,290,57
     RTEXT           "Cartridge ROM file:",IDC_FLASHTEXT2,8,93,75,10
     COMBOBOX        IDC_CARTFILE,89,90,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
@@ -51,45 +71,46 @@ BEGIN
     PUSHBUTTON      "...",IDC_FLASHCHOOSER,280,110,10,15
     GROUPBOX        "HRTMon Settings",-1,5,136,290,31
     CONTROL         "Enable HRTMon [] HRTMon is monitor/debugger similar to Action Replay series, default activation key is Page Up.",IDC_HRTMON,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,148,75,10
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,148,84,10
 END
 
-IDD_DISPLAY DIALOGEX 0, 0, 300, 202
+IDD_DISPLAY DIALOGEX 0, 0, 300, 235
 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
     GROUPBOX        "Screen",IDC_SCREENRESTEXT,12,0,199,67,BS_LEFT
-    RTEXT           "Full screen:",IDC_SELECTRESTEXT,17,17,38,15,SS_CENTERIMAGE
+    RTEXT           "Full screen:",IDC_SELECTRESTEXT,15,17,40,15,SS_CENTERIMAGE
     COMBOBOX        IDC_DISPLAYSELECT,59,10,147,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     COMBOBOX        IDC_RESOLUTION,59,27,52,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     COMBOBOX        IDC_REFRESHRATE,145,27,61,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    RTEXT           "Windowed:",IDC_WINDOWEDTEXT,18,51,37,8
     EDITTEXT        IDC_XSIZE,59,48,35,12,ES_NUMBER
     EDITTEXT        IDC_YSIZE,103,48,35,12,ES_NUMBER
-    CONTROL         "Vertical sync",IDC_VSYNC,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,147,49,54,10
-    GROUPBOX        "Settings",IDC_SETTINGSTEXT,12,73,199,93
-    CONTROL         "Full-screen native modes",IDC_AFULLSCREEN,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,21,85,92,10
-    CONTROL         "Full-screen RTG modes",IDC_PFULLSCREEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,85,87,10
-    CONTROL         "Correct aspect ratio",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,21,99,92,10
-    CONTROL         "Force low resolution",IDC_LORES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,99,85,10
-    LTEXT           "Refresh:",IDC_REFRESHTEXT,18,129,28,8
-    CONTROL         "Slider1",IDC_FRAMERATE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,124,75,20
-    EDITTEXT        IDC_RATETEXT,127,128,77,12,ES_CENTER | ES_READONLY
+    CONTROL         "Vertical sync",IDC_VSYNC,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,147,49,57,10
+    GROUPBOX        "Settings",IDC_SETTINGSTEXT,12,73,199,125
+    CONTROL         "Correct aspect ratio",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,19,126,92,10
+    CONTROL         "Force low resolution",IDC_LORES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,126,89,10
+    LTEXT           "Refresh:",IDC_REFRESHTEXT,18,162,28,8
+    CONTROL         "Slider1",IDC_FRAMERATE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,157,75,20
+    EDITTEXT        IDC_RATETEXT,127,161,77,12,ES_CENTER | ES_READONLY
     GROUPBOX        "Centering",IDC_STATIC,221,0,61,67
-    CONTROL         "Horizontal",IDC_XCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,16,45,10
-    CONTROL         "Vertical",IDC_YCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,32,39,10
+    CONTROL         "Horizontal",IDC_XCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,16,49,10
+    CONTROL         "Vertical",IDC_YCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,32,49,10
     GROUPBOX        "Line Mode",IDC_LINEMODE,222,73,61,73
     CONTROL         "Normal",IDC_LM_NORMAL,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,231,89,44,10
     CONTROL         "Double",IDC_LM_DOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,105,45,10
     CONTROL         "Scanlines",IDC_LM_SCANLINES,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,121,46,10
-    COMBOBOX        IDC_DA_MODE,35,183,58,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | NOT WS_VISIBLE | WS_TABSTOP,99,179,101,20
-    PUSHBUTTON      "Detect Pixel Format",IDC_TEST16BIT,210,181,73,14
-    LTEXT           "FPS adj.:",IDC_REFRESH2TEXT,17,149,30,8
-    CONTROL         "",IDC_FRAMERATE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,144,127,20
-    EDITTEXT        IDC_RATE2TEXT,178,148,26,12,ES_CENTER | ES_READONLY
+    COMBOBOX        IDC_DA_MODE,35,217,58,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | NOT WS_VISIBLE | WS_TABSTOP,99,213,101,20
+    LTEXT           "FPS adj.:",IDC_REFRESH2TEXT,16,182,32,8
+    CONTROL         "",IDC_FRAMERATE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,177,127,20
+    EDITTEXT        IDC_RATE2TEXT,178,181,26,12,ES_CENTER | ES_READONLY
     COMBOBOX        IDC_RESOLUTIONDEPTH,112,27,32,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "Filtered low resolution",IDC_LORES_SMOOTHED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,113,85,10
+    CONTROL         "Filtered low resolution",IDC_LORES_SMOOTHED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,140,89,10
+    COMBOBOX        IDC_SCREENMODE_NATIVE,100,85,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_SCREENMODE_RTG,100,103,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Native mode:",IDC_STATIC,19,85,59,15,SS_CENTERIMAGE
+    RTEXT           "Windowed:",IDC_WINDOWEDTEXT,15,51,40,8
+    RTEXT           "RTG mode:",IDC_STATIC,19,101,59,15,SS_CENTERIMAGE
 END
 
 IDD_MEMORY DIALOGEX 0, 0, 300, 175
@@ -122,47 +143,48 @@ BEGIN
     EDITTEXT        IDC_MBRAM2,243,142,30,12,ES_CENTER | ES_READONLY
 END
 
-IDD_CPU DIALOGEX 0, 0, 300, 177
+IDD_CPU DIALOGEX 0, 0, 300, 192
 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x0
 BEGIN
-    GROUPBOX        "CPU",IDC_STATIC,5,5,81,166,BS_LEFT
-    CONTROL         "68000",IDC_CPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,10,18,63,10
-    CONTROL         "68010",IDC_CPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,33,65,10
-    CONTROL         "68EC020",IDC_CPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,48,65,10
-    CONTROL         "68EC020 + FPU",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,63,68,10
-    CONTROL         "68020",IDC_CPU4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,78,63,10
-    CONTROL         "68020 + FPU",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,93,64,10
-    CONTROL         "68040",IDC_CPU6,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,108,66,10
+    GROUPBOX        "CPU",IDC_STATIC,5,3,81,148,BS_LEFT
+    CONTROL         "68000",IDC_CPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,10,16,63,10
+    CONTROL         "68010",IDC_CPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,31,65,10
+    CONTROL         "68EC020",IDC_CPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,46,65,10
+    CONTROL         "68EC020 + FPU",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,61,68,10
+    CONTROL         "68020",IDC_CPU4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,76,63,10
+    CONTROL         "68020 + FPU",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,91,64,10
+    CONTROL         "68040",IDC_CPU6,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,106,66,10
     CONTROL         "More compatible [] Emulate 68000's prefetch registers. More compatible but slower.",IDC_COMPATIBLE,
-                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,126,73,10
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,124,73,8
     CONTROL         "JIT [] Enable just-in-time CPU emulator. Significantly increases the speed of the CPU emulation. Requires 68020 or 68040 CPU.",IDC_JITENABLE,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,149,73,10
-    GROUPBOX        "CPU Emulation Speed",IDC_STATIC,90,5,205,86
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,137,73,10
+    GROUPBOX        "CPU Emulation Speed",IDC_STATIC,90,3,205,90
     CONTROL         "Fastest possible, but maintain chipset timing",IDC_CS_HOST,
                     "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,95,18,195,10
     CONTROL         "Match A500 speed",IDC_CS_68000,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,95,32,195,10
     CONTROL         "Adjustable between CPU and chipset",IDC_CS_ADJUSTABLE,
                     "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,95,47,195,10
-    RTEXT           "CPU",IDC_CS_CPU_TEXT,96,71,15,10,SS_CENTERIMAGE | WS_TABSTOP
-    CONTROL         "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,114,66,67,20
-    LTEXT           "Chipset",IDC_CS_CHIPSET_TEXT,182,71,25,10,SS_CENTERIMAGE | NOT WS_GROUP | WS_TABSTOP
+    RTEXT           "CPU",IDC_CS_CPU_TEXT,96,73,15,10,SS_CENTERIMAGE | WS_TABSTOP
+    CONTROL         "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,114,68,67,20
+    LTEXT           "Chipset",IDC_CS_CHIPSET_TEXT,182,73,25,10,SS_CENTERIMAGE | NOT WS_GROUP | WS_TABSTOP
     RTEXT           "CPU idle",IDC_CS_CPU_TEXT2,236,56,32,10,SS_CENTERIMAGE | WS_TABSTOP
-    CONTROL         "",IDC_CPUIDLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,219,66,69,20
-    GROUPBOX        "Advanced JIT Settings",IDC_STATIC,90,92,205,79
-    RTEXT           "Cache size:",IDC_CS_CACHE_TEXT,95,109,45,10,SS_CENTERIMAGE | WS_TABSTOP
-    CONTROL         "Slider1",IDC_CACHE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,140,104,115,20
-    EDITTEXT        IDC_CACHETEXT,255,109,30,12,ES_CENTER | ES_READONLY
-    CONTROL         "Hard flush",IDC_HARDFLUSH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,128,60,10
-    CONTROL         "Constant jump",IDC_CONSTJUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,142,60,10
-    CONTROL         "FPU support",IDC_JITFPU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,155,60,10
-    CONTROL         "Force settings",IDC_FORCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,128,61,10
-    CONTROL         "No flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,142,60,10
-    CONTROL         "Direct",IDC_TRUST0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,230,128,34,10
-    CONTROL         "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,230,142,45,10
-    CONTROL         "After RTG",IDC_TRUST2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,230,155,64,10
-    CONTROL         "More accurate FPU [] More compatible but slower FPU emulation.",IDC_COMPATIBLE_FPU,
-                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,137,73,10
+    CONTROL         "",IDC_CPUIDLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,219,68,69,20
+    GROUPBOX        "Advanced JIT Settings",IDC_STATIC,90,94,205,93
+    RTEXT           "Cache size:",IDC_CS_CACHE_TEXT,95,113,45,10,SS_CENTERIMAGE | WS_TABSTOP
+    CONTROL         "Slider1",IDC_CACHE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,140,108,115,20
+    EDITTEXT        IDC_CACHETEXT,255,113,30,12,ES_CENTER | ES_READONLY
+    CONTROL         "Hard flush",IDC_HARDFLUSH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,141,60,10
+    CONTROL         "Constant jump",IDC_CONSTJUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,155,60,10
+    CONTROL         "FPU support",IDC_JITFPU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,168,60,10
+    CONTROL         "Force settings",IDC_FORCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,141,61,10
+    CONTROL         "No flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,155,60,10
+    CONTROL         "Direct",IDC_TRUST0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,230,141,34,10
+    CONTROL         "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,230,155,45,10
+    CONTROL         "After RTG",IDC_TRUST2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,230,168,59,10
+    CONTROL         "More compatible [] More compatible but slower FPU emulation.",IDC_COMPATIBLE_FPU,
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,169,73,10
+    GROUPBOX        "FPU",IDC_STATIC,6,155,81,32,BS_LEFT
 END
 
 IDD_FLOPPY DIALOGEX 0, 0, 300, 240
@@ -218,14 +240,14 @@ EXSTYLE WS_EX_CONTEXTHELP
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
     CONTROL         "List1",IDC_VOLUMELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,0,290,182
-    PUSHBUTTON      "Add &Directory...",IDC_NEW_FS,5,186,60,15
-    PUSHBUTTON      "Add &Hardfile...",IDC_NEW_HF,70,186,60,15
-    PUSHBUTTON      "Add Ha&rd Drive...",IDC_NEW_HD,135,186,60,15
+    PUSHBUTTON      "Add &Directory...",IDC_NEW_FS,5,186,64,15
+    PUSHBUTTON      "Add &Hardfile...",IDC_NEW_HF,74,186,64,15
+    PUSHBUTTON      "Add Ha&rd Drive...",IDC_NEW_HD,143,186,65,15
     PUSHBUTTON      "Remove",IDC_REMOVE,235,186,60,15
     PUSHBUTTON      "&Properties",IDC_EDIT,235,207,60,15
     CONTROL         "Add PC drives at startup",IDC_MAPDRIVES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,205,100,10
-    CONTROL         "Disable UAEFSDB-support",IDC_NOUAEFSDB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,205,115,10
-    CONTROL         "Don't use Windows Recycle Bin",IDC_NORECYCLEBIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,216,115,10
+    CONTROL         "Disable UAEFSDB-support",IDC_NOUAEFSDB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,205,119,10
+    CONTROL         "Don't use Windows Recycle Bin",IDC_NORECYCLEBIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,216,121,10
     CONTROL         "Include network drives",IDC_MAPDRIVES_NET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,216,101,10
 END
 
@@ -236,10 +258,10 @@ BEGIN
     RTEXT           "Sound device:",IDC_SOUNDCARD,8,9,51,13,SS_CENTERIMAGE
     COMBOBOX        IDC_SOUNDCARDLIST,64,9,229,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     GROUPBOX        "Sound Emulation",IDC_SOUNDSETTINGS,5,30,120,81
-    CONTROL         "Disabled",IDC_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,45,43,10
-    CONTROL         "Disabled, but emulated",IDC_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,57,88,10
-    CONTROL         "Enabled",IDC_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,69,42,10
-    CONTROL         "Enabled, 100% accurate",IDC_SOUND3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,81,93,10
+    CONTROL         "Disabled",IDC_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,45,101,10
+    CONTROL         "Disabled, but emulated",IDC_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,57,102,10
+    CONTROL         "Enabled",IDC_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,69,102,10
+    CONTROL         "Enabled, 100% accurate",IDC_SOUND3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,81,101,10
     GROUPBOX        "Volume",IDC_STATIC,131,36,164,31
     CONTROL         "",IDC_SOUNDVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,137,44,105,20
     EDITTEXT        IDC_SOUNDVOLUME2,247,47,40,12,ES_CENTER | ES_READONLY
@@ -247,17 +269,17 @@ BEGIN
     CONTROL         "Slider1",IDC_SOUNDBUFFERRAM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,138,81,106,19
     EDITTEXT        IDC_SOUNDBUFFERMEM,248,84,40,12,ES_CENTER | ES_READONLY
     GROUPBOX        "Settings",IDC_SOUNDINTERPOLATION2,6,114,290,60
-    LTEXT           "Frequency:",IDC_SOUNDFREQTXT,11,124,37,8,SS_CENTERIMAGE
+    LTEXT           "Frequency:",IDC_SOUNDFREQTXT,11,124,53,8,SS_CENTERIMAGE
     COMBOBOX        IDC_SOUNDFREQ,13,133,51,75,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Audio filter:",IDC_SOUNDFILTERTXT,209,148,34,8,SS_CENTERIMAGE
+    LTEXT           "Audio filter:",IDC_SOUNDFILTERTXT,209,148,77,8,SS_CENTERIMAGE
     COMBOBOX        IDC_SOUNDFILTER,209,157,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Stereo mode:",IDC_SOUNDSTEREOTXT,74,124,41,8,SS_CENTERIMAGE
+    LTEXT           "Stereo mode:",IDC_SOUNDSTEREOTXT,74,124,57,8,SS_CENTERIMAGE
     COMBOBOX        IDC_SOUNDSTEREO,73,133,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,209,124,41,8,SS_CENTERIMAGE
+    LTEXT           "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,209,124,75,8,SS_CENTERIMAGE
     COMBOBOX        IDC_SOUNDINTERPOLATION,209,132,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Stereo separation:",IDC_SOUNDSTEREOSEPTXT,141,124,56,8,SS_CENTERIMAGE
+    LTEXT           "Stereo separation:",IDC_SOUNDSTEREOSEPTXT,141,124,63,8,SS_CENTERIMAGE
     COMBOBOX        IDC_SOUNDSTEREOSEP,142,133,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Stereo mixing delay:",IDC_SOUNDSTEREOMIXTXT,141,148,63,8,SS_CENTERIMAGE
+    LTEXT           "Stereo delay:",IDC_SOUNDSTEREOMIXTXT,141,148,63,8,SS_CENTERIMAGE
     COMBOBOX        IDC_SOUNDSTEREOMIX,142,157,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     GROUPBOX        "Floppy Drive Sound Emulation",IDC_STATIC,6,177,290,46
     CONTROL         "",IDC_SOUNDDRIVEVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,14,185,107,19
@@ -265,7 +287,7 @@ BEGIN
     COMBOBOX        IDC_SOUNDDRIVE,237,187,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     COMBOBOX        IDC_SOUNDDRIVESELECT,18,205,265,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     COMBOBOX        IDC_SOUNDSWAP,73,157,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Swap channels:",IDC_SOUNDSWAPTXT,74,148,50,8,SS_CENTERIMAGE
+    LTEXT           "Swap channels:",IDC_SOUNDSWAPTXT,74,148,61,8,SS_CENTERIMAGE
     CONTROL         "Automatic switching",IDC_SOUND_AUTO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,14,95,103,10
 END
 
@@ -274,23 +296,23 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
     CONTROL         "",IDC_CONFIGTREE,"SysTreeView32",TVS_HASLINES | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,6,3,289,153,WS_EX_CLIENTEDGE
-    RTEXT           "Name:",IDC_STATIC,0,161,40,15,SS_CENTERIMAGE
-    EDITTEXT        IDC_EDITNAME,44,162,150,13,ES_AUTOHSCROLL
-    RTEXT           "Description:",IDC_STATIC,4,183,37,15,SS_CENTERIMAGE
-    EDITTEXT        IDC_EDITDESCRIPTION,44,183,150,13,ES_AUTOHSCROLL
-    RTEXT           "Link:",IDC_STATIC,0,204,40,15,SS_CENTERIMAGE
-    COMBOBOX        IDC_CONFIGLINK,44,205,97,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Name:",IDC_STATIC,4,161,40,15,SS_CENTERIMAGE
+    EDITTEXT        IDC_EDITNAME,48,162,146,13,ES_AUTOHSCROLL
+    RTEXT           "Description:",IDC_STATIC,4,183,41,15,SS_CENTERIMAGE
+    EDITTEXT        IDC_EDITDESCRIPTION,48,183,146,13,ES_AUTOHSCROLL
+    RTEXT           "Link:",IDC_STATIC,4,204,40,15,SS_CENTERIMAGE
+    COMBOBOX        IDC_CONFIGLINK,48,205,93,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Ignore link",IDC_CONFIGNOLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,146,206,48,10
     EDITTEXT        IDC_EDITPATH,199,161,49,15,ES_AUTOHSCROLL | WS_DISABLED
     CONTROL         "Autoload",IDC_CONFIGAUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,253,163,42,10
     GROUPBOX        "Additional Information",IDC_STATIC,199,179,96,38,BS_LEFT
-    PUSHBUTTON      "View",IDC_VIEWINFO,210,195,35,15
-    PUSHBUTTON      "Set",IDC_SETINFO,250,195,35,15
-    PUSHBUTTON      "Load",IDC_QUICKLOAD,5,225,40,15
-    PUSHBUTTON      "Save",IDC_QUICKSAVE,50,225,40,15
-    PUSHBUTTON      "Load From...",IDC_LOAD,125,225,45,15
-    PUSHBUTTON      "Delete",IDC_DELETE,255,225,40,15
-    PUSHBUTTON      "Save As...",IDC_SAVE,175,225,40,15
+    PUSHBUTTON      "View",IDC_VIEWINFO,208,195,37,15
+    PUSHBUTTON      "Set",IDC_SETINFO,250,195,37,15
+    PUSHBUTTON      "Load",IDC_QUICKLOAD,5,225,44,15
+    PUSHBUTTON      "Save",IDC_QUICKSAVE,54,225,44,15
+    PUSHBUTTON      "Load From...",IDC_LOAD,121,225,49,15
+    PUSHBUTTON      "Delete",IDC_DELETE,251,225,44,15
+    PUSHBUTTON      "Save As...",IDC_SAVE,175,225,44,15
 END
 
 IDD_PORTS DIALOGEX 0, 0, 300, 238
@@ -301,12 +323,12 @@ BEGIN
     RTEXT           "Printer:",IDC_STATIC,12,15,25,15,SS_CENTERIMAGE
     COMBOBOX        IDC_PRINTERLIST,49,15,153,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "Flush print job",IDC_FLUSHPRINTER,220,14,58,12
-    CONTROL         "PostScript detection",IDC_PSPRINTERDETECT,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,11,33,78,12
-    CONTROL         "PostScript printer emulation",IDC_PSPRINTER,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,93,33,100,12
-    RTEXT           "Autoflush timeout [] Time in seconds after a pending print job is automatically flushed.",IDC_PRINTERAUTOFLUSHTXT,202,32,57,15,SS_NOTIFY | SS_CENTERIMAGE
+    CONTROL         "PostScript detection",IDC_PSPRINTERDETECT,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,11,33,79,12
+    CONTROL         "PostScript printer emulation",IDC_PSPRINTER,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,95,33,110,12
+    RTEXT           "Autoflush [] Time in seconds after a pending print job is automatically flushed.",IDC_PRINTERAUTOFLUSHTXT,202,32,57,15,SS_NOTIFY | SS_CENTERIMAGE
     EDITTEXT        IDC_PRINTERAUTOFLUSH,263,33,25,12,ES_NUMBER
-    RTEXT           "Ghostscript extra parameters:",IDC_STATIC,12,49,91,15,SS_CENTERIMAGE
-    EDITTEXT        IDC_PS_PARAMS,120,50,169,12,ES_AUTOHSCROLL
+    RTEXT           "Ghostscript extra parameters:",IDC_STATIC,12,49,102,15,SS_CENTERIMAGE
+    EDITTEXT        IDC_PS_PARAMS,124,50,165,12,ES_AUTOHSCROLL
     GROUPBOX        "Serial Port",IDC_SERIALFRAME,4,72,292,48
     COMBOBOX        IDC_SERIAL,49,84,232,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Shared",IDC_SER_SHARED,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,11,102,48,13
@@ -362,15 +384,15 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
     GROUPBOX        "Advanced",IDC_STATIC,8,2,285,110
-    CONTROL         "Untrap mouse with middle button",IDC_JULIAN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,15,120,10
-    CONTROL         "Show GUI on startup",IDC_SHOWGUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,27,120,10
-    CONTROL         "On-screen LEDs",IDC_SHOWLEDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,40,115,10
-    CONTROL         "uaescsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,53,117,10
-    CONTROL         "Don't show taskbar button",IDC_NOTASKBARBUTTON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,66,117,10
-    CONTROL         "bsdsocket.library emulation",IDC_SOCKETS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,15,120,10
-    CONTROL         "Use CTRL-F11 to quit",IDC_CTRLF11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,27,120,10
-    CONTROL         "Don't use RGB overlays",IDC_NOOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,40,120,10
-    CONTROL         "Synchronize clock",IDC_CLOCKSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,66,115,10
+    CONTROL         "Untrap mouse with middle button",IDC_JULIAN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,15,129,10
+    CONTROL         "Show GUI on startup",IDC_SHOWGUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,27,120,10
+    CONTROL         "On-screen LEDs",IDC_SHOWLEDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,40,115,10
+    CONTROL         "uaescsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,53,117,10
+    CONTROL         "Don't show taskbar button",IDC_NOTASKBARBUTTON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,66,117,10
+    CONTROL         "bsdsocket.library emulation",IDC_SOCKETS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,15,120,10
+    CONTROL         "Use CTRL-F11 to quit",IDC_CTRLF11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,27,120,10
+    CONTROL         "Don't use RGB overlays",IDC_NOOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,40,120,10
+    CONTROL         "Synchronize clock",IDC_CLOCKSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,66,115,10
     GROUPBOX        "Keyboard LEDs",IDC_STATIC,7,140,85,94
     COMBOBOX        IDC_KBLED1,22,154,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     COMBOBOX        IDC_KBLED2,22,173,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
@@ -386,14 +408,14 @@ BEGIN
     COMBOBOX        IDC_STATE_RATE,248,197,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
     RTEXT           "Recording buffer (MB):",IDC_STATIC,157,219,83,10,SS_CENTERIMAGE | WS_TABSTOP
     COMBOBOX        IDC_STATE_BUFFERSIZE,248,217,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "Always on top",IDC_ALWAYSONTOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,79,117,10
-    CONTROL         "Catweasel",IDC_CATWEASEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,79,115,10
+    CONTROL         "Always on top",IDC_ALWAYSONTOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,79,117,10
+    CONTROL         "Catweasel",IDC_CATWEASEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,79,115,10
     CONTROL         "USB mode",IDC_KBLED_USB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,216,64,10
-    COMBOBOX        IDC_SCSIMODE,159,51,104,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_SCSIMODE,161,51,104,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     COMBOBOX        IDC_LANGUAGE,103,121,179,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     GROUPBOX        "Language",IDC_STATIC,7,112,285,25
-    CONTROL         "Disable powersaving features",IDC_POWERSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,92,117,10
-    CONTROL         "Magic Mouse",IDC_MOUSETRICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,92,119,10
+    CONTROL         "Disable powersaving features",IDC_POWERSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,92,120,10
+    CONTROL         "Magic Mouse",IDC_MOUSETRICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,92,119,10
 END
 
 IDD_HARDFILE DIALOGEX 0, 0, 299, 212
@@ -429,8 +451,8 @@ BEGIN
     PUSHBUTTON      "Cancel",IDCANCEL,158,191,50,14
     EDITTEXT        IDC_HF_DOSTYPE,146,158,61,15
     COMBOBOX        IDC_HF_TYPE,50,158,80,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    RTEXT           "DOS type",IDC_STATIC,212,160,30,10,SS_CENTERIMAGE
-    RTEXT           "MB",IDC_STATIC,212,138,11,10,SS_CENTERIMAGE
+    RTEXT           "DOS type",IDC_STATIC,214,160,32,10,SS_CENTERIMAGE
+    RTEXT           "MB",IDC_STATIC,214,138,13,10,SS_CENTERIMAGE
     RTEXT           "Type:",IDC_STATIC,18,160,25,10,SS_CENTERIMAGE
 END
 
@@ -483,17 +505,17 @@ BEGIN
     GROUPBOX        "Options",IDC_STATIC,168,11,114,89
     CONTROL         "Immediate Blitter [] Faster but less compatible blitter emulation.",IDC_BLITIMM,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,174,30,96,10
-    CONTROL         "Cycle-exact CPU and Blitter [] The most compatible A500 emulation mode. Very fast PC recommended.",IDC_CYCLEEXACT,
+    CONTROL         "Cycle-exact [] The most compatible A500 emulation mode. Very fast PC recommended.",IDC_CYCLEEXACT,
                     "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,174,43,100,10
     GROUPBOX        "Collision Level",IDC_STATIC,14,105,267,48
     CONTROL         "None [] Collision hardware emulation disabled.",IDC_COLLISION0,
-                    "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,40,121,50,10
+                    "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,40,121,59,10
     CONTROL         "Sprites only [] Emulate only sprite vs. sprite collisions.",IDC_COLLISION1,
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,39,137,50,10
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,39,137,62,10
     CONTROL         "Sprites and Sprites vs. Playfield [] Recommended collision emulation level.",IDC_COLLISION2,
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,104,121,161,10
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,109,121,161,10
     CONTROL         "Full [] 100% collision hardware emulation. Only very few games need this option. Slowest.",IDC_COLLISION3,
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,104,137,82,10
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,109,137,119,10
     GROUPBOX        "Sound Emulation",IDC_STATIC,13,159,268,65
     CONTROL         "Disabled",IDC_CS_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,39,175,102,10
     CONTROL         "Emulated",IDC_CS_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,39,190,91,10
@@ -521,15 +543,15 @@ BEGIN
     CONTROL         "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,95,81,85,10
     CONTROL         "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,192,81,88,10
     CONTROL         "Boot ROM Mirror",IDC_CS_KSMIRROR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,128,80,10
-    CONTROL         "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,128,86,10
+    CONTROL         "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,128,88,10
     CONTROL         "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,141,76,10
-    CONTROL         "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,141,85,10
+    CONTROL         "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,141,87,10
     CONTROL         "CD32 NVRAM",IDC_CS_CD32NVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,141,84,10
     CONTROL         "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,154,47,10
-    CONTROL         "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,153,85,10
+    CONTROL         "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,153,87,10
     CONTROL         "CDTV SRAM Expansion",IDC_CS_CDTVRAMEXP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,153,90,10
     CONTROL         "A600/A1200 IDE",IDC_CS_IDE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,166,79,10
-    CONTROL         "A4000 IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,166,84,10
+    CONTROL         "A4000 IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,166,88,10
     CONTROL         "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,201,71,10
     EDITTEXT        IDC_CS_RAMSEYREV,94,199,45,13,ES_AUTOHSCROLL
     CONTROL         "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,214,71,10
@@ -550,16 +572,16 @@ BEGIN
     GROUPBOX        "Output Properties",IDC_STATIC,5,8,274,118
     EDITTEXT        IDC_AVIOUTPUT_FILETEXT,15,21,226,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_CLIENTEDGE
     PUSHBUTTON      "...",IDC_AVIOUTPUT_FILE,249,20,19,12
-    CONTROL         "Audio",IDC_AVIOUTPUT_AUDIO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,36,32,11
+    CONTROL         "Audio",IDC_AVIOUTPUT_AUDIO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,36,39,11
     CONTROL         "",IDC_AVIOUTPUT_AUDIO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,36,209,11
-    CONTROL         "Video",IDC_AVIOUTPUT_VIDEO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,50,32,11
+    CONTROL         "Video",IDC_AVIOUTPUT_VIDEO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,50,39,11
     CONTROL         "",IDC_AVIOUTPUT_VIDEO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,50,209,11
     CONTROL         "Disable frame rate limit while recording",IDC_AVIOUTPUT_FRAMELIMITER,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,68,136,10
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,68,158,10
     CONTROL         "AVI output enabled",IDC_AVIOUTPUT_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,15,103,108,14
     CONTROL         "PAL",IDC_AVIOUTPUT_PAL,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,133,103,66,14
     CONTROL         "NTSC",IDC_AVIOUTPUT_NTSC,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,204,103,66,14
-    CONTROL         "Slider1",IDC_AVIOUTPUT_FPS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_TABSTOP,156,84,97,11
+    CONTROL         "Slider1",IDC_AVIOUTPUT_FPS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_TABSTOP,166,84,87,11
     LTEXT           "fps",IDC_AVIOUTPUT_FPS_STATIC,255,84,19,8
     PUSHBUTTON      "Save screenshot",IDC_SCREENSHOT,16,141,76,14
     GROUPBOX        "Ripper",IDC_STATIC,5,127,274,38
@@ -570,7 +592,7 @@ BEGIN
     CONTROL         "Playback",IDC_INPREC_PLAY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,16,178,77,14
     CONTROL         "Alt. playback mode",IDC_INPREC_PLAYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,180,78,10
     CONTROL         "Disable sound output while recording",IDC_AVIOUTPUT_NOSOUNDOUTPUT,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,85,136,10
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,85,148,10
 END
 
 IDD_INPUT DIALOGEX 0, 0, 300, 242
@@ -583,16 +605,16 @@ BEGIN
     CONTROL         "List1",IDC_INPUTLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,22,290,146
     COMBOBOX        IDC_INPUTAMIGACNT,5,174,24,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     COMBOBOX        IDC_INPUTAMIGA,33,174,262,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    RTEXT           "Joystick dead zone (%):",-1,8,196,76,10,SS_CENTERIMAGE
-    EDITTEXT        IDC_INPUTDEADZONE,89,195,25,12,ES_NUMBER
-    RTEXT           "Autofire rate (frames):",-1,9,212,68,10,SS_CENTERIMAGE
-    EDITTEXT        IDC_INPUTAUTOFIRERATE,89,210,25,12,ES_NUMBER
-    RTEXT           "Digital joy-mouse speed:",-1,121,196,76,10,SS_CENTERIMAGE
-    EDITTEXT        IDC_INPUTSPEEDD,207,195,25,12,ES_NUMBER
-    RTEXT           "Analog joy-mouse speed:",-1,120,212,80,10,SS_CENTERIMAGE
-    EDITTEXT        IDC_INPUTSPEEDA,207,211,25,12,ES_NUMBER
-    RTEXT           "Mouse speed:",-1,132,228,68,10,SS_CENTERIMAGE
-    EDITTEXT        IDC_INPUTSPEEDM,207,227,25,12,ES_NUMBER
+    RTEXT           "Joystick dead zone (%):",-1,7,196,79,10,SS_CENTERIMAGE
+    EDITTEXT        IDC_INPUTDEADZONE,92,195,25,12,ES_NUMBER
+    RTEXT           "Autofire rate (frames):",-1,10,212,76,10,SS_CENTERIMAGE
+    EDITTEXT        IDC_INPUTAUTOFIRERATE,92,210,25,12,ES_NUMBER
+    RTEXT           "Digital joy-mouse speed:",-1,124,196,84,10,SS_CENTERIMAGE
+    EDITTEXT        IDC_INPUTSPEEDD,215,195,25,12,ES_NUMBER
+    RTEXT           "Analog joy-mouse speed:",-1,120,212,88,10,SS_CENTERIMAGE
+    EDITTEXT        IDC_INPUTSPEEDA,215,211,25,12,ES_NUMBER
+    RTEXT           "Mouse speed:",-1,132,228,76,10,SS_CENTERIMAGE
+    EDITTEXT        IDC_INPUTSPEEDM,215,227,25,12,ES_NUMBER
     PUSHBUTTON      "Copy from:",IDC_INPUTCOPY,249,195,45,14
     COMBOBOX        IDC_INPUTCOPYFROM,249,211,45,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "Swap 1<>2",IDC_INPUTSWAP,249,226,45,14
@@ -603,21 +625,21 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
     GROUPBOX        "Filter Settings",-1,0,0,294,186
-    CONTROL         "Enable",IDC_FILTERENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,26,17,38,10
-    COMBOBOX        IDC_FILTERMODE,67,15,56,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_FILTERFILTER,128,15,65,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Reset to defaults",IDC_FILTERDEFAULT,197,15,73,14
-    RTEXT           "Horizontal size:",-1,9,44,59,10,SS_CENTERIMAGE
-    CONTROL         "Slider1",IDC_FILTERHZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,37,142,19
+    CONTROL         "Enable",IDC_FILTERENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,17,46,10
+    COMBOBOX        IDC_FILTERMODE,62,15,61,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_FILTERFILTER,128,15,81,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Reset to defaults",IDC_FILTERDEFAULT,213,15,73,14
+    RTEXT           "Horiz. size:",-1,4,44,54,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_FILTERHZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,37,152,19
     EDITTEXT        IDC_FILTERHZV,253,40,34,12,ES_CENTER | ES_READONLY
-    RTEXT           "Vertical size:",-1,10,64,59,10,SS_CENTERIMAGE
-    CONTROL         "Slider1",IDC_FILTERVZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,57,142,19
+    RTEXT           "Vert. size:",-1,5,64,54,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_FILTERVZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,57,152,19
     EDITTEXT        IDC_FILTERVZV,253,59,34,12,ES_CENTER | ES_READONLY
-    RTEXT           "Horizontal position:",-1,10,84,59,10,SS_CENTERIMAGE
-    CONTROL         "Slider1",IDC_FILTERHO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,77,141,19
+    RTEXT           "Horiz. position:",-1,5,84,55,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_FILTERHO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,77,151,19
     EDITTEXT        IDC_FILTERHOV,253,79,34,12,ES_CENTER | ES_READONLY
-    RTEXT           "Vertical position:",-1,10,103,59,10,SS_CENTERIMAGE
-    CONTROL         "Slider1",IDC_FILTERVO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,99,141,19
+    RTEXT           "Vert. position:",-1,5,103,55,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_FILTERVO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,99,151,19
     EDITTEXT        IDC_FILTERVOV,253,101,34,12,ES_CENTER | ES_READONLY
     RTEXT           "Scanlines:",-1,27,133,57,10,SS_CENTERIMAGE
     CONTROL         "Slider1",IDC_FILTERSL,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,94,126,157,19
@@ -630,8 +652,8 @@ BEGIN
     PUSHBUTTON      "Load",IDC_FILTERPRESETLOAD,132,200,47,14
     PUSHBUTTON      "Save",IDC_FILTERPRESETSAVE,184,200,47,14
     PUSHBUTTON      "Delete",IDC_FILTERPRESETDELETE,236,200,47,14
-    COMBOBOX        IDC_FILTERHZMULT,77,43,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_FILTERVZMULT,77,63,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_FILTERHZMULT,67,43,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_FILTERVZMULT,67,63,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Autoscale",IDC_FILTERAUTORES,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,26,168,63,10
 END
 
@@ -642,10 +664,10 @@ FONT 8, "MS Sans Serif", 0, 0, 0x0
 BEGIN
     LTEXT           "Hard drive:",-1,7,11,35,10
     COMBOBOX        IDC_HARDDRIVE,49,9,325,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "Read/write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,245,33,50,10
-    DEFPUSHBUTTON   "Add hard drive",IDOK,176,30,57,14
+    CONTROL         "Read/write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,247,33,55,10
+    DEFPUSHBUTTON   "Add hard drive",IDOK,173,30,65,14
     PUSHBUTTON      "Cancel",IDCANCEL,321,30,54,14
-    DEFPUSHBUTTON   "Create hard disk image file",IDC_HARDDRIVE_IMAGE,49,30,95,14
+    DEFPUSHBUTTON   "Create hard disk image file",IDC_HARDDRIVE_IMAGE,49,30,115,14
     EDITTEXT        IDC_PATH_NAME,89,49,169,15,ES_AUTOHSCROLL | NOT WS_VISIBLE
 END
 
@@ -654,18 +676,18 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
     GROUPBOX        "When Active",IDC_STATIC,8,7,88,73
-    RTEXT           "Run at priority:",IDC_ACTIVE_PRI,14,17,45,10,SS_CENTERIMAGE | WS_TABSTOP
+    RTEXT           "Run at priority:",IDC_ACTIVE_PRI,14,17,52,10,SS_CENTERIMAGE | WS_TABSTOP
     COMBOBOX        IDC_ACTIVE_PRIORITY,14,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     GROUPBOX        "When Inactive",IDC_STATIC,102,7,92,73
-    RTEXT           "Run at priority:",IDC_INACTIVE_PRI,109,17,45,10,SS_CENTERIMAGE | WS_TABSTOP
+    RTEXT           "Run at priority:",IDC_INACTIVE_PRI,109,17,51,10,SS_CENTERIMAGE | WS_TABSTOP
     COMBOBOX        IDC_INACTIVE_PRIORITY,109,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Pause emulation",IDC_INACTIVE_PAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,50,69,10
-    CONTROL         "Disable sound output",IDC_INACTIVE_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,63,79,10
+    CONTROL         "Disable sound",IDC_INACTIVE_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,63,79,10
     GROUPBOX        "When Minimized",IDC_STATIC,199,7,92,73
-    RTEXT           "Run at priority:",IDC_MINIMIZED_PRI,207,18,45,10,SS_CENTERIMAGE | WS_TABSTOP
+    RTEXT           "Run at priority:",IDC_MINIMIZED_PRI,207,18,51,10,SS_CENTERIMAGE | WS_TABSTOP
     COMBOBOX        IDC_MINIMIZED_PRIORITY,207,30,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Pause emulation",IDC_MINIMIZED_PAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,50,69,10
-    CONTROL         "Disable sound output",IDC_MINIMIZED_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,63,79,10
+    CONTROL         "Disable sound",IDC_MINIMIZED_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,63,79,10
 END
 
 IDD_DISK DIALOGEX 0, 0, 300, 242
@@ -673,9 +695,9 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_CONTROL | DS
 FONT 8, "MS Sans Serif", 0, 0, 0x0
 BEGIN
     CONTROL         "",IDC_DISKLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,4,6,292,196
-    PUSHBUTTON      "Remove floppy disk image",IDC_DISKLISTREMOVE,153,223,93,15
+    PUSHBUTTON      "Remove floppy disk image",IDC_DISKLISTREMOVE,149,223,101,15
     COMBOBOX        IDC_DISKTEXT,3,205,293,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Insert floppy disk image",IDC_DISKLISTINSERT,38,223,93,15
+    PUSHBUTTON      "Insert floppy disk image",IDC_DISKLISTINSERT,34,223,101,15
 END
 
 IDD_PANEL DIALOGEX 0, 0, 420, 278
@@ -728,10 +750,10 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
     GROUPBOX        "Emulated Hardware",IDC_QUICKSTART_CONFIG,3,0,294,54
-    RTEXT           "Model:",IDC_STATIC,5,14,56,10,SS_CENTERIMAGE
-    COMBOBOX        IDC_QUICKSTART_MODEL,65,12,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    RTEXT           "Configuration:",IDC_STATIC,5,33,56,10,SS_CENTERIMAGE
-    COMBOBOX        IDC_QUICKSTART_CONFIGURATION,65,31,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Model:",IDC_STATIC,5,14,50,10,SS_CENTERIMAGE
+    COMBOBOX        IDC_QUICKSTART_MODEL,59,12,233,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Configuration:",IDC_STATIC,5,33,50,10,SS_CENTERIMAGE
+    COMBOBOX        IDC_QUICKSTART_CONFIGURATION,59,31,233,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     GROUPBOX        "Compatibility vs Required CPU Power ",IDC_QUICKSTART_COMPA,3,56,294,33
     RTEXT           "Best compatibility",IDC_STATIC,13,70,67,10,SS_CENTERIMAGE
     CONTROL         "",IDC_QUICKSTART_COMPATIBILITY,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,65,115,21
@@ -740,21 +762,21 @@ BEGIN
     RTEXT           "Configuration:",IDC_STATIC,5,105,55,10,SS_CENTERIMAGE
     COMBOBOX        IDC_QUICKSTART_HOSTCONFIG,65,103,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     GROUPBOX        "Emulated Floppy Drives",IDC_QUICKSTART_DF,3,126,294,84
-    LTEXT           "Floppy drive DF0:",IDC_STATIC,10,138,56,10,SS_CENTERIMAGE
-    PUSHBUTTON      "Select disk image",IDC_DF0QQ,77,135,98,15
+    LTEXT           "Floppy drive DF0:",IDC_STATIC,10,138,64,10,SS_CENTERIMAGE
+    PUSHBUTTON      "Select disk image",IDC_DF0QQ,82,135,98,15
     RTEXT           "Write-protected",IDC_STATIC,180,139,58,10,SS_CENTERIMAGE
     CONTROL         "",IDC_DF0WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,245,137,10,15
     PUSHBUTTON      "Eject",IDC_EJECT0Q,260,136,30,15
     COMBOBOX        IDC_DF0TEXTQ,9,154,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Floppy drive DF1:",IDC_STATIC,10,176,56,10,SS_CENTERIMAGE
-    PUSHBUTTON      "Select disk image",IDC_DF1QQ,77,172,98,15
+    LTEXT           "Floppy drive DF1:",IDC_STATIC,10,176,63,10,SS_CENTERIMAGE
+    PUSHBUTTON      "Select disk image",IDC_DF1QQ,82,172,98,15
     RTEXT           "Write-protected",IDC_STATIC,180,175,58,10,SS_CENTERIMAGE
     CONTROL         "",IDC_DF1WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,245,173,10,15
     PUSHBUTTON      "Eject",IDC_EJECT1Q,260,172,30,15
     COMBOBOX        IDC_DF1TEXTQ,9,190,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "Set configuration",IDC_QUICKSTART_SETCONFIG,9,219,72,15,NOT WS_VISIBLE
     GROUPBOX        "Mode",IDC_STATIC,190,211,107,27,BS_LEFT
-    CONTROL         "Start in Quickstart mode",IDC_QUICKSTARTMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,199,222,94,10
+    CONTROL         "Start in Quickstart mode",IDC_QUICKSTARTMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,197,222,94,10
 END
 
 IDD_FRONTEND DIALOGEX 0, 0, 420, 242
@@ -787,6 +809,32 @@ BEGIN
     CTEXT           "Custom input event",IDC_STRINGBOX_TEXT,23,5,187,10,SS_CENTERIMAGE | WS_TABSTOP
 END
 
+IDD_DEBUGGER DIALOGEX 0, 0, 454, 298
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_THICKFRAME
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "WinUAE Debugger"
+FONT 8, "Courier New", 0, 0, 0x0
+BEGIN
+    EDITTEXT        IDC_DBG_OUTPUT1,1,79,370,205,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT WS_TABSTOP
+    EDITTEXT        IDC_DBG_OUTPUT2,1,79,370,205,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT WS_TABSTOP
+    LISTBOX         IDC_DBG_MEM,1,92,370,205,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    LISTBOX         IDC_DBG_DASM,1,92,370,205,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    EDITTEXT        IDC_DBG_MEMINPUT,1,79,36,12,ES_AUTOHSCROLL | ES_WANTRETURN
+    EDITTEXT        IDC_DBG_INPUT,1,285,354,12,ES_AUTOHSCROLL | ES_WANTRETURN
+    PUSHBUTTON      "?",IDC_DBG_HELP,356,285,15,12,NOT WS_TABSTOP
+    PUSHBUTTON      "Set to PC",IDC_DBG_MEMTOPC,38,79,45,12,NOT WS_TABSTOP
+    LISTBOX         IDC_DBG_DREG,1,1,52,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    LISTBOX         IDC_DBG_AREG,54,1,52,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    LISTBOX         IDC_DBG_AMEM,106,1,231,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    LISTBOX         IDC_DBG_CCR,338,1,57,42,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    LISTBOX         IDC_DBG_SP_VBR,338,44,115,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    LISTBOX         IDC_DBG_MISC,396,1,57,42,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    LISTBOX         IDC_DBG_PC,1,68,52,10,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    LISTBOX         IDC_DBG_PREFETCH,54,68,283,10,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    LISTBOX         IDC_DBG_FPREG,372,79,81,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+    LISTBOX         IDC_DBG_FPSR,372,146,81,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
+END
+
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -823,8 +871,8 @@ IDI_PATHS               ICON                    "paths.ico"
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,4,1,0
- PRODUCTVERSION 1,4,1,0
+ FILEVERSION 1,4,2,0
+ PRODUCTVERSION 1,4,2,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -840,12 +888,12 @@ BEGIN
         BLOCK "040904b0"
         BEGIN
             VALUE "FileDescription", "WinUAE"
-            VALUE "FileVersion", "1.4.1"
+            VALUE "FileVersion", "1.4.2"
             VALUE "InternalName", "WinUAE"
             VALUE "LegalCopyright", "© 1996-2007 under the GNU Public License (GPL)"
             VALUE "OriginalFilename", "WinUAE.exe"
             VALUE "ProductName", "WinUAE"
-            VALUE "ProductVersion", "1.4.1"
+            VALUE "ProductVersion", "1.4.2"
         END
     END
     BLOCK "VarFileInfo"
@@ -1039,8 +1087,6 @@ BEGIN
     IDS_DELETECONFIGCONFIRMATION 
                             "Are you sure you want to Delete this configuration?\n"
     IDS_DELETECONFIGTITLE   "Confirm Delete"
-    IDS_GFXCARDCHECK        "WinUAE will now determine the 16-bit pixel format of your graphics card. Your screen will go black for two seconds, with a resolution of 640x480 @ 60Hz. This procedure is required for best rendering of the emulation environment on 16-bit display-modes, and should be done whenever you run WinUAE for the first time, or install a new graphics card in your PC. Proceed with this test?"
-    IDS_GFXCARDTITLE        "Pixel format detection"
     IDS_MUSTSELECTPATH      "You must select a path!"
     IDS_SETTINGSERROR       "Settings error"
     IDS_MUSTSELECTNAME      "You must select a name for the volume!"
@@ -1055,6 +1101,9 @@ BEGIN
     IDS_INP                 "WinUAE Input Recording"
     IDS_RESTOREINP          "Playback a WinUAE input recording"
     IDS_SAVEINP             "Record a WinUAE input recording"
+    IDS_SCREEN_WINDOWED     "Windowed"
+    IDS_SCREEN_FULLSCREEN   "Fullscreen"
+    IDS_SCREEN_FULLWINDOW   "Full-window"
     IDS_SOUND_MONO          "Mono"
     IDS_SOUND_MIXED         "Mixed"
     IDS_SOUND_STEREO        "Stereo"
index de964565d314c49611a5f4299b45337afb8b2b87..df1239f6df2fc0fb69db64d29dbdb6e8dc3d3695 100755 (executable)
-// Microsoft Visual C++ generated resource script.\r
-//\r
-#include "resource."\r
-\r
-#define APSTUDIO_READONLY_SYMBOLS\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 2 resource.\r
-//\r
-#include "afxres.h"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#undef APSTUDIO_READONLY_SYMBOLS\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// English (U.S.) resources\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-#ifdef _WIN32\r
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Dialog\r
-//\r
-\r
-IDD_KICKSTART DIALOGEX 0, 0, 300, 176\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-EXSTYLE WS_EX_CONTEXTHELP\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    GROUPBOX        "System ROM Settings",-1,5,0,290,74\r
-    RTEXT           "Main ROM file:",IDC_ROMTEXT,10,15,75,10\r
-    COMBOBOX        IDC_ROMFILE,89,12,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "...",IDC_KICKCHOOSER,280,10,10,15\r
-    RTEXT           "Extended ROM file:",IDC_ROMFILE2TEXT,10,35,75,10\r
-    COMBOBOX        IDC_ROMFILE2,89,31,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "...",IDC_ROMCHOOSER2,280,30,10,15\r
-    CONTROL         "MapROM emulation [] Creates a BlizKick-compatible memory area.",IDC_MAPROM,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,54,82,10\r
-    CONTROL         "ShapeShifter support [] Patches the system ROM for ShapeShifter compatibility.",IDC_KICKSHIFTER,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,54,80,10\r
-    GROUPBOX        "Miscellaneous",-1,5,76,290,57\r
-    RTEXT           "Cartridge ROM file:",IDC_FLASHTEXT2,8,93,75,10\r
-    COMBOBOX        IDC_CARTFILE,89,90,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "...",IDC_CARTCHOOSER,280,90,10,15\r
-    RTEXT           "Flash RAM file:",IDC_FLASHTEXT,8,112,75,10\r
-    EDITTEXT        IDC_FLASHFILE,89,110,185,13,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_FLASHCHOOSER,280,110,10,15\r
-    GROUPBOX        "HRTMon Settings",-1,5,136,290,31\r
-    CONTROL         "Enable HRTMon [] HRTMon is monitor/debugger similar to Action Replay series, default activation key is Page Up.",IDC_HRTMON,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,148,75,10\r
-END\r
-\r
-IDD_DISPLAY DIALOGEX 0, 0, 300, 202\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    GROUPBOX        "Screen",IDC_SCREENRESTEXT,12,0,199,67,BS_LEFT\r
-    RTEXT           "Full screen:",IDC_SELECTRESTEXT,17,17,38,15,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_DISPLAYSELECT,59,10,147,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_RESOLUTION,59,27,52,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_REFRESHRATE,145,27,61,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "Windowed:",IDC_WINDOWEDTEXT,18,51,37,8\r
-    EDITTEXT        IDC_XSIZE,59,48,35,12,ES_NUMBER\r
-    EDITTEXT        IDC_YSIZE,103,48,35,12,ES_NUMBER\r
-    CONTROL         "Vertical sync",IDC_VSYNC,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,147,49,54,10\r
-    GROUPBOX        "Settings",IDC_SETTINGSTEXT,12,73,199,93\r
-    CONTROL         "Full-screen native modes",IDC_AFULLSCREEN,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,21,85,92,10\r
-    CONTROL         "Full-screen RTG modes",IDC_PFULLSCREEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,85,87,10\r
-    CONTROL         "Correct aspect ratio",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,21,99,92,10\r
-    CONTROL         "Force low resolution",IDC_LORES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,99,85,10\r
-    LTEXT           "Refresh:",IDC_REFRESHTEXT,18,129,28,8\r
-    CONTROL         "Slider1",IDC_FRAMERATE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,124,75,20\r
-    EDITTEXT        IDC_RATETEXT,127,128,77,12,ES_CENTER | ES_READONLY\r
-    GROUPBOX        "Centering",IDC_STATIC,221,0,61,67\r
-    CONTROL         "Horizontal",IDC_XCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,16,45,10\r
-    CONTROL         "Vertical",IDC_YCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,32,39,10\r
-    GROUPBOX        "Line Mode",IDC_LINEMODE,222,73,61,73\r
-    CONTROL         "Normal",IDC_LM_NORMAL,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,231,89,44,10\r
-    CONTROL         "Double",IDC_LM_DOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,105,45,10\r
-    CONTROL         "Scanlines",IDC_LM_SCANLINES,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,121,46,10\r
-    COMBOBOX        IDC_DA_MODE,35,183,58,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | NOT WS_VISIBLE | WS_TABSTOP,99,179,101,20\r
-    PUSHBUTTON      "Detect Pixel Format",IDC_TEST16BIT,210,181,73,14\r
-    LTEXT           "FPS adj.:",IDC_REFRESH2TEXT,17,149,30,8\r
-    CONTROL         "",IDC_FRAMERATE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,144,127,20\r
-    EDITTEXT        IDC_RATE2TEXT,178,148,26,12,ES_CENTER | ES_READONLY\r
-    COMBOBOX        IDC_RESOLUTIONDEPTH,112,27,32,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Filtered low resolution",IDC_LORES_SMOOTHED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,113,85,10\r
-END\r
-\r
-IDD_MEMORY DIALOGEX 0, 0, 300, 175\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-EXSTYLE WS_EX_CONTEXTHELP\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    GROUPBOX        "Memory Settings",-1,14,7,274,91\r
-    RTEXT           "Chip:",-1,24,31,20,10,SS_CENTERIMAGE\r
-    CONTROL         "Slider1",IDC_CHIPMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,22,50,20\r
-    EDITTEXT        IDC_CHIPRAM,105,26,30,12,ES_CENTER | ES_READONLY\r
-    RTEXT           "Slow:",-1,149,31,20,10,SS_CENTERIMAGE\r
-    CONTROL         "Slider1",IDC_SLOWMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,22,60,20\r
-    EDITTEXT        IDC_SLOWRAM,243,25,30,12,ES_CENTER | ES_READONLY\r
-    RTEXT           "Fast:",IDC_FASTTEXT,24,52,20,10,SS_CENTERIMAGE\r
-    CONTROL         "Slider1",IDC_FASTMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,47,50,20\r
-    EDITTEXT        IDC_FASTRAM,105,53,30,12,ES_CENTER | ES_READONLY\r
-    RTEXT           "Z3 Fast:",IDC_Z3TEXT,139,52,30,10,SS_CENTERIMAGE\r
-    CONTROL         "Slider1",IDC_Z3FASTMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,47,60,20\r
-    EDITTEXT        IDC_Z3FASTRAM,243,52,30,12,ES_CENTER | ES_READONLY\r
-    RTEXT           "RTG: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,81,77,90,10,SS_NOTIFY | SS_CENTERIMAGE\r
-    CONTROL         "Slider1",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,72,60,20\r
-    EDITTEXT        IDC_P96RAM,243,75,30,12,ES_CENTER | ES_READONLY\r
-    GROUPBOX        "Advanced Memory Settings",-1,13,104,275,65\r
-    RTEXT           "Motherboard RAM (Low area):",-1,39,122,129,10,SS_CENTERIMAGE\r
-    CONTROL         "",IDC_MBMEM1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,180,117,59,20\r
-    EDITTEXT        IDC_MBRAM1,243,121,30,12,ES_CENTER | ES_READONLY\r
-    RTEXT           "Motherboard RAM (High area):",-1,39,144,127,10,SS_CENTERIMAGE\r
-    CONTROL         "",IDC_MBMEM2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,180,139,59,20\r
-    EDITTEXT        IDC_MBRAM2,243,142,30,12,ES_CENTER | ES_READONLY\r
-END\r
-\r
-IDD_CPU DIALOGEX 0, 0, 300, 177\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    GROUPBOX        "CPU",IDC_STATIC,5,5,81,166,BS_LEFT\r
-    CONTROL         "68000",IDC_CPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,10,18,63,10\r
-    CONTROL         "68010",IDC_CPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,33,65,10\r
-    CONTROL         "68EC020",IDC_CPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,48,65,10\r
-    CONTROL         "68EC020 + FPU",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,63,68,10\r
-    CONTROL         "68020",IDC_CPU4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,78,63,10\r
-    CONTROL         "68020 + FPU",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,93,64,10\r
-    CONTROL         "68040",IDC_CPU6,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,108,66,10\r
-    CONTROL         "More compatible [] Emulate 68000's prefetch registers. More compatible but slower.",IDC_COMPATIBLE,\r
-                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,126,73,10\r
-    CONTROL         "JIT [] Enable just-in-time CPU emulator. Significantly increases the speed of the CPU emulation. Requires 68020 or 68040 CPU.",IDC_JITENABLE,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,149,73,10\r
-    GROUPBOX        "CPU Emulation Speed",IDC_STATIC,90,5,205,86\r
-    CONTROL         "Fastest possible, but maintain chipset timing",IDC_CS_HOST,\r
-                    "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,95,18,195,10\r
-    CONTROL         "Match A500 speed",IDC_CS_68000,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,95,32,195,10\r
-    CONTROL         "Adjustable between CPU and chipset",IDC_CS_ADJUSTABLE,\r
-                    "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,95,47,195,10\r
-    RTEXT           "CPU",IDC_CS_CPU_TEXT,96,71,15,10,SS_CENTERIMAGE | WS_TABSTOP\r
-    CONTROL         "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,114,66,67,20\r
-    LTEXT           "Chipset",IDC_CS_CHIPSET_TEXT,182,71,25,10,SS_CENTERIMAGE | NOT WS_GROUP | WS_TABSTOP\r
-    RTEXT           "CPU idle",IDC_CS_CPU_TEXT2,236,56,32,10,SS_CENTERIMAGE | WS_TABSTOP\r
-    CONTROL         "",IDC_CPUIDLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,219,66,69,20\r
-    GROUPBOX        "Advanced JIT Settings",IDC_STATIC,90,92,205,79\r
-    RTEXT           "Cache size:",IDC_CS_CACHE_TEXT,95,109,45,10,SS_CENTERIMAGE | WS_TABSTOP\r
-    CONTROL         "Slider1",IDC_CACHE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,140,104,115,20\r
-    EDITTEXT        IDC_CACHETEXT,255,109,30,12,ES_CENTER | ES_READONLY\r
-    CONTROL         "Hard flush",IDC_HARDFLUSH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,128,60,10\r
-    CONTROL         "Constant jump",IDC_CONSTJUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,142,60,10\r
-    CONTROL         "FPU support",IDC_JITFPU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,155,60,10\r
-    CONTROL         "Force settings",IDC_FORCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,128,61,10\r
-    CONTROL         "No flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,142,60,10\r
-    CONTROL         "Direct",IDC_TRUST0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,230,128,34,10\r
-    CONTROL         "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,230,142,45,10\r
-    CONTROL         "After RTG",IDC_TRUST2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,230,155,64,10\r
-    CONTROL         "More accurate FPU [] More compatible but slower FPU emulation.",IDC_COMPATIBLE_FPU,\r
-                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,137,73,10\r
-END\r
-\r
-IDD_FLOPPY DIALOGEX 0, 0, 300, 240\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    RTEXT           "DF0:",IDC_STATIC,10,7,20,10,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_DF0TEXT,2,22,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_DF0TYPE,123,6,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "Write-protected",IDC_STATIC,174,8,59,10,SS_CENTERIMAGE\r
-    CONTROL         "",IDC_DF0WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,4,10,15\r
-    PUSHBUTTON      "Eject",IDC_EJECT0,253,4,30,15\r
-    PUSHBUTTON      "...",IDC_DF0,287,4,10,15\r
-    RTEXT           "DF1:",IDC_STATIC,10,42,20,10,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_DF1TEXT,2,58,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_DF1TYPE,123,42,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "Write-protected",IDC_STATIC,174,43,59,10,SS_CENTERIMAGE\r
-    CONTROL         "",IDC_DF1WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,40,10,15\r
-    PUSHBUTTON      "Eject",IDC_EJECT1,253,40,30,15\r
-    PUSHBUTTON      "...",IDC_DF1,287,40,10,15\r
-    RTEXT           "DF2:",IDC_STATIC,10,77,20,10,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_DF2TEXT,2,93,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_DF2TYPE,123,77,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "Write-protected",IDC_STATIC,174,77,59,10,SS_CENTERIMAGE\r
-    CONTROL         "",IDC_DF2WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,75,9,15\r
-    PUSHBUTTON      "Eject",IDC_EJECT2,253,75,30,15\r
-    PUSHBUTTON      "...",IDC_DF2,287,75,10,15\r
-    RTEXT           "DF3:",IDC_STATIC,10,112,20,9,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_DF3TEXT,2,128,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_DF3TYPE,123,112,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "Write-protected",IDC_STATIC,174,113,59,10,SS_CENTERIMAGE\r
-    CONTROL         "",IDC_DF3WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,111,9,15\r
-    PUSHBUTTON      "Eject",IDC_EJECT3,253,110,30,15\r
-    PUSHBUTTON      "...",IDC_DF3,287,109,10,15\r
-    GROUPBOX        "New Floppy Disk Image",IDC_SETTINGSTEXT,5,183,289,49\r
-    COMBOBOX        IDC_FLOPPYTYPE,16,196,51,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Create Standard Disk [] Creates a standard 880 or 1760 KB ADF disk image.",IDC_CREATE,76,196,97,15\r
-    PUSHBUTTON      "Create Custom Disk [] Creates a low level (MFM) ADF disk image (about 2MB). Useful for programs that use non-standard disk formats (for example some save disks or DOS-formatted floppies)",IDC_CREATE_RAW,183,196,101,15\r
-    GROUPBOX        "Floppy Drive Emulation Speed",IDC_SETTINGSTEXT2,5,144,289,35\r
-    CONTROL         "",IDC_FLOPPYSPD,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,32,152,116,20\r
-    EDITTEXT        IDC_FLOPPYSPDTEXT,169,155,107,12,ES_CENTER | ES_READONLY\r
-    PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE0,43,5,70,15,NOT WS_VISIBLE\r
-    PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE1,43,40,70,15,NOT WS_VISIBLE\r
-    PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE2,43,75,70,15,NOT WS_VISIBLE\r
-    PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE3,43,110,70,15,NOT WS_VISIBLE\r
-    EDITTEXT        IDC_CREATE_NAME,75,215,98,13,ES_AUTOHSCROLL\r
-    RTEXT           "Disk label:",IDC_STATIC,14,216,52,10,SS_CENTERIMAGE\r
-END\r
-\r
-IDD_HARDDISK DIALOGEX 0, 0, 300, 231\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-EXSTYLE WS_EX_CONTEXTHELP\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    CONTROL         "List1",IDC_VOLUMELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,0,290,182\r
-    PUSHBUTTON      "Add &Directory...",IDC_NEW_FS,5,186,60,15\r
-    PUSHBUTTON      "Add &Hardfile...",IDC_NEW_HF,70,186,60,15\r
-    PUSHBUTTON      "Add Ha&rd Drive...",IDC_NEW_HD,135,186,60,15\r
-    PUSHBUTTON      "Remove",IDC_REMOVE,235,186,60,15\r
-    PUSHBUTTON      "&Properties",IDC_EDIT,235,207,60,15\r
-    CONTROL         "Add PC drives at startup",IDC_MAPDRIVES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,205,100,10\r
-    CONTROL         "Disable UAEFSDB-support",IDC_NOUAEFSDB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,205,115,10\r
-    CONTROL         "Don't use Windows Recycle Bin",IDC_NORECYCLEBIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,216,115,10\r
-    CONTROL         "Include network drives",IDC_MAPDRIVES_NET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,216,101,10\r
-END\r
-\r
-IDD_SOUND DIALOGEX 0, 0, 300, 231\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    RTEXT           "Sound device:",IDC_SOUNDCARD,8,9,51,13,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_SOUNDCARDLIST,64,9,229,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    GROUPBOX        "Sound Emulation",IDC_SOUNDSETTINGS,5,30,120,81\r
-    CONTROL         "Disabled",IDC_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,45,43,10\r
-    CONTROL         "Disabled, but emulated",IDC_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,57,88,10\r
-    CONTROL         "Enabled",IDC_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,69,42,10\r
-    CONTROL         "Enabled, 100% accurate",IDC_SOUND3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,81,93,10\r
-    GROUPBOX        "Volume",IDC_STATIC,131,36,164,31\r
-    CONTROL         "",IDC_SOUNDVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,137,44,105,20\r
-    EDITTEXT        IDC_SOUNDVOLUME2,247,47,40,12,ES_CENTER | ES_READONLY\r
-    GROUPBOX        "Sound Buffer Size",IDC_STATIC,132,73,164,31\r
-    CONTROL         "Slider1",IDC_SOUNDBUFFERRAM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,138,81,106,19\r
-    EDITTEXT        IDC_SOUNDBUFFERMEM,248,84,40,12,ES_CENTER | ES_READONLY\r
-    GROUPBOX        "Settings",IDC_SOUNDINTERPOLATION2,6,114,290,60\r
-    LTEXT           "Frequency:",IDC_SOUNDFREQTXT,11,124,37,8,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_SOUNDFREQ,13,133,51,75,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP\r
-    LTEXT           "Audio filter:",IDC_SOUNDFILTERTXT,209,148,34,8,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_SOUNDFILTER,209,157,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    LTEXT           "Stereo mode:",IDC_SOUNDSTEREOTXT,74,124,41,8,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_SOUNDSTEREO,73,133,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    LTEXT           "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,209,124,41,8,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_SOUNDINTERPOLATION,209,132,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    LTEXT           "Stereo separation:",IDC_SOUNDSTEREOSEPTXT,141,124,56,8,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_SOUNDSTEREOSEP,142,133,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    LTEXT           "Stereo mixing delay:",IDC_SOUNDSTEREOMIXTXT,141,148,63,8,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_SOUNDSTEREOMIX,142,157,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    GROUPBOX        "Floppy Drive Sound Emulation",IDC_STATIC,6,177,290,46\r
-    CONTROL         "",IDC_SOUNDDRIVEVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,14,185,107,19\r
-    EDITTEXT        IDC_SOUNDDRIVEVOLUME2,124,191,40,12,ES_CENTER | ES_READONLY\r
-    COMBOBOX        IDC_SOUNDDRIVE,237,187,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_SOUNDDRIVESELECT,18,205,265,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_SOUNDSWAP,73,157,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    LTEXT           "Swap channels:",IDC_SOUNDSWAPTXT,74,148,50,8,SS_CENTERIMAGE\r
-    CONTROL         "Automatic switching",IDC_SOUND_AUTO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,14,95,103,10\r
-END\r
-\r
-IDD_LOADSAVE DIALOGEX 0, 0, 302, 241\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    CONTROL         "",IDC_CONFIGTREE,"SysTreeView32",TVS_HASLINES | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,6,3,289,153,WS_EX_CLIENTEDGE\r
-    RTEXT           "Name:",IDC_STATIC,0,161,40,15,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_EDITNAME,44,162,150,13,ES_AUTOHSCROLL\r
-    RTEXT           "Description:",IDC_STATIC,4,183,37,15,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_EDITDESCRIPTION,44,183,150,13,ES_AUTOHSCROLL\r
-    RTEXT           "Link:",IDC_STATIC,0,204,40,15,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_CONFIGLINK,44,205,97,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Ignore link",IDC_CONFIGNOLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,146,206,48,10\r
-    EDITTEXT        IDC_EDITPATH,199,161,49,15,ES_AUTOHSCROLL | WS_DISABLED\r
-    CONTROL         "Autoload",IDC_CONFIGAUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,253,163,42,10\r
-    GROUPBOX        "Additional Information",IDC_STATIC,199,179,96,38,BS_LEFT\r
-    PUSHBUTTON      "View",IDC_VIEWINFO,210,195,35,15\r
-    PUSHBUTTON      "Set",IDC_SETINFO,250,195,35,15\r
-    PUSHBUTTON      "Load",IDC_QUICKLOAD,5,225,40,15\r
-    PUSHBUTTON      "Save",IDC_QUICKSAVE,50,225,40,15\r
-    PUSHBUTTON      "Load From...",IDC_LOAD,125,225,45,15\r
-    PUSHBUTTON      "Delete",IDC_DELETE,255,225,40,15\r
-    PUSHBUTTON      "Save As...",IDC_SAVE,175,225,40,15\r
-END\r
-\r
-IDD_PORTS DIALOGEX 0, 0, 300, 238\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    GROUPBOX        "Parallel Port",IDC_SERPARFRAME,5,2,291,68\r
-    RTEXT           "Printer:",IDC_STATIC,12,15,25,15,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_PRINTERLIST,49,15,153,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Flush print job",IDC_FLUSHPRINTER,220,14,58,12\r
-    CONTROL         "PostScript detection",IDC_PSPRINTERDETECT,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,11,33,78,12\r
-    CONTROL         "PostScript printer emulation",IDC_PSPRINTER,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,93,33,100,12\r
-    RTEXT           "Autoflush timeout [] Time in seconds after a pending print job is automatically flushed.",IDC_PRINTERAUTOFLUSHTXT,202,32,57,15,SS_NOTIFY | SS_CENTERIMAGE\r
-    EDITTEXT        IDC_PRINTERAUTOFLUSH,263,33,25,12,ES_NUMBER\r
-    RTEXT           "Ghostscript extra parameters:",IDC_STATIC,12,49,91,15,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_PS_PARAMS,120,50,169,12,ES_AUTOHSCROLL\r
-    GROUPBOX        "Serial Port",IDC_SERIALFRAME,4,72,292,48\r
-    COMBOBOX        IDC_SERIAL,49,84,232,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Shared",IDC_SER_SHARED,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,11,102,48,13\r
-    CONTROL         "RTS/CTS",IDC_SER_CTSRTS,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,65,102,55,12\r
-    GROUPBOX        "MIDI",IDC_MIDIFRAME,4,123,292,33\r
-    RTEXT           "Out:",IDC_MIDI,10,134,34,15,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_MIDIOUTLIST,50,134,95,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "In:",IDC_MIDI2,150,134,29,15,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_MIDIINLIST,185,134,95,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    GROUPBOX        "Mouse/Joystick Ports",IDC_PORT0,4,158,292,75\r
-    COMBOBOX        IDC_PORT0_JOYS,45,174,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_PORT1_JOYS,45,195,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Swap ports",IDC_SWAP,211,214,75,14\r
-    RTEXT           "Port 0:",IDC_STATIC,11,173,25,15,SS_CENTERIMAGE\r
-    RTEXT           "Port 1:",IDC_STATIC,11,194,25,15,SS_CENTERIMAGE\r
-    LTEXT           "X-Arcade layout information []#1",IDC_STATIC,16,213,106,15,SS_NOTIFY | SS_CENTERIMAGE\r
-    CONTROL         "Direct []Use when emulating serial-link games on two PCs running WinUAE",IDC_SER_DIRECT,\r
-                    "Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,132,103,65,12\r
-    CONTROL         "uaeserial.device",IDC_UAESERIAL,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,207,103,78,13\r
-END\r
-\r
-IDD_CONTRIBUTORS DIALOGEX 0, 0, 411, 242\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION\r
-CAPTION "UAE Authors and Contributors..."\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    DEFPUSHBUTTON   "Ok",ID_OK,177,219,53,14\r
-    CONTROL         "",IDC_CONTRIBUTORS,"RICHEDIT",TCS_HOTTRACK | TCS_VERTICAL | TCS_RAGGEDRIGHT | TCS_OWNERDRAWFIXED | TCS_MULTISELECT | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,4,5,404,206\r
-END\r
-\r
-IDD_ABOUT DIALOGEX 0, 0, 300, 191\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    CONTROL         "",IDC_RICHEDIT1,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,45,10,210,15\r
-    CONTROL         "",IDC_RICHEDIT2,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,30,260,13\r
-    PUSHBUTTON      "Contributors",IDC_CONTRIBUTORS,110,55,80,15\r
-    CONTROL         "",IDC_UAEHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,120,80,15\r
-    CONTROL         "",IDC_PICASSOHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,90,80,20\r
-    CONTROL         "",IDC_AMIGAHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,109,90,80,20\r
-    CONTROL         "",IDC_WINUAEHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,120,80,15\r
-    CONTROL         "",IDC_AIABHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,110,120,80,15\r
-    CONTROL         "",IDC_THEROOTS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,145,80,15\r
-    CONTROL         "",IDC_CAPS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,145,80,15\r
-    CONTROL         "",IDC_ABIME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,110,145,80,15\r
-    CONTROL         "",IDC_CLOANTOHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,90,80,20\r
-    CONTROL         "",IDC_AMIGASYS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,63,169,80,15\r
-    CONTROL         "",IDC_AMIKIT,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,157,169,80,15\r
-END\r
-\r
-IDD_MISC1 DIALOGEX 0, 0, 300, 237\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    GROUPBOX        "Advanced",IDC_STATIC,8,2,285,110\r
-    CONTROL         "Untrap mouse with middle button",IDC_JULIAN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,15,120,10\r
-    CONTROL         "Show GUI on startup",IDC_SHOWGUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,27,120,10\r
-    CONTROL         "On-screen LEDs",IDC_SHOWLEDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,40,115,10\r
-    CONTROL         "uaescsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,53,117,10\r
-    CONTROL         "Don't show taskbar button",IDC_NOTASKBARBUTTON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,66,117,10\r
-    CONTROL         "bsdsocket.library emulation",IDC_SOCKETS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,15,120,10\r
-    CONTROL         "Use CTRL-F11 to quit",IDC_CTRLF11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,27,120,10\r
-    CONTROL         "Don't use RGB overlays",IDC_NOOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,40,120,10\r
-    CONTROL         "Synchronize clock",IDC_CLOCKSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,66,115,10\r
-    GROUPBOX        "Keyboard LEDs",IDC_STATIC,7,140,85,94\r
-    COMBOBOX        IDC_KBLED1,22,154,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_KBLED2,22,173,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_KBLED3,22,193,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    GROUPBOX        "Logging",IDC_STATIC,97,140,195,25\r
-    CONTROL         "Create log file",IDC_CREATELOGFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,151,72,10\r
-    CONTROL         "Illegal memory accesses",IDC_ILLEGAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,189,151,95,10\r
-    GROUPBOX        "State Files",IDC_STATIC,98,165,195,69\r
-    PUSHBUTTON      "Load state...",IDC_DOLOADSTATE,105,182,49,14\r
-    PUSHBUTTON      "Save state...",IDC_DOSAVESTATE,105,208,49,14\r
-    CONTROL         "Enable state recording",IDC_STATE_CAPTURE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,188,181,88,10\r
-    RTEXT           "Recording rate (seconds):",IDC_STATIC,157,199,86,10,SS_CENTERIMAGE | WS_TABSTOP\r
-    COMBOBOX        IDC_STATE_RATE,248,197,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "Recording buffer (MB):",IDC_STATIC,157,219,83,10,SS_CENTERIMAGE | WS_TABSTOP\r
-    COMBOBOX        IDC_STATE_BUFFERSIZE,248,217,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Always on top",IDC_ALWAYSONTOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,79,117,10\r
-    CONTROL         "Catweasel",IDC_CATWEASEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,79,115,10\r
-    CONTROL         "USB mode",IDC_KBLED_USB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,216,64,10\r
-    COMBOBOX        IDC_SCSIMODE,159,51,104,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_LANGUAGE,103,121,179,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    GROUPBOX        "Language",IDC_STATIC,7,112,285,25\r
-    CONTROL         "Disable powersaving features",IDC_POWERSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,92,117,10\r
-    CONTROL         "Magic Mouse",IDC_MOUSETRICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,92,119,10\r
-END\r
-\r
-IDD_HARDFILE DIALOGEX 0, 0, 299, 212\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Hardfile Settings"\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    GROUPBOX        "Settings",IDC_STATIC,10,5,280,113\r
-    RTEXT           "Path:",IDC_HARDFILE_DIR_TEXT,26,18,22,10\r
-    EDITTEXT        IDC_PATH_NAME,52,15,213,15,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_SELECTOR,271,15,11,15\r
-    RTEXT           "FileSys:",IDC_HARDFILE_FILESYS_TEXT,14,37,34,10\r
-    EDITTEXT        IDC_PATH_FILESYS,52,34,213,15,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_FILESYS_SELECTOR,271,34,11,15\r
-    RTEXT           "Device:",IDC_HARDFILE_DEVICE_TEXT,17,58,31,10\r
-    EDITTEXT        IDC_HARDFILE_DEVICE,52,54,40,15,ES_AUTOHSCROLL\r
-    RTEXT           "Boot priority:",IDC_HARDFILE_BOOTPRI_TEXT,15,101,44,8\r
-    EDITTEXT        IDC_HARDFILE_BOOTPRI,65,96,40,15\r
-    CONTROL         "Read/write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,57,50,10\r
-    PUSHBUTTON      "Enable RDB mode",IDC_HDF_RDB,192,55,92,14\r
-    RTEXT           "Surfaces:",IDC_SURFACES_TEXT,112,79,30,10\r
-    EDITTEXT        IDC_HEADS,147,75,35,15,ES_NUMBER\r
-    RTEXT           "Reserved:",IDC_RESERVED_TEXT,197,79,35,10\r
-    EDITTEXT        IDC_RESERVED,237,75,35,15,ES_NUMBER\r
-    RTEXT           "Sectors:",IDC_SECTORS_TEXT,112,101,30,10\r
-    EDITTEXT        IDC_SECTORS,147,96,35,15,ES_NUMBER\r
-    RTEXT           "Block size:",IDC_BLOCKSIZE_TEXT,197,101,35,10\r
-    EDITTEXT        IDC_BLOCKSIZE,237,96,35,15,ES_NUMBER\r
-    GROUPBOX        "New hard disk image file",IDC_STATIC,10,120,280,62\r
-    PUSHBUTTON      "Create",IDC_HF_CREATE,50,135,80,14\r
-    EDITTEXT        IDC_HF_SIZE,146,135,61,15,ES_NUMBER\r
-    PUSHBUTTON      "OK",IDOK,102,191,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,158,191,50,14\r
-    EDITTEXT        IDC_HF_DOSTYPE,146,158,61,15\r
-    COMBOBOX        IDC_HF_TYPE,50,158,80,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "DOS type",IDC_STATIC,212,160,30,10,SS_CENTERIMAGE\r
-    RTEXT           "MB",IDC_STATIC,212,138,11,10,SS_CENTERIMAGE\r
-    RTEXT           "Type:",IDC_STATIC,18,160,25,10,SS_CENTERIMAGE\r
-END\r
-\r
-IDD_FILESYS DIALOGEX 15, 25, 299, 111\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Volume Settings"\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    LTEXT           "Device name:",-1,5,9,54,10\r
-    EDITTEXT        IDC_VOLUME_DEVICE,65,5,86,15,ES_AUTOHSCROLL\r
-    LTEXT           "Volume label:",-1,5,31,54,10\r
-    EDITTEXT        IDC_VOLUME_NAME,65,25,85,15,ES_AUTOHSCROLL\r
-    LTEXT           "Path:",-1,5,51,44,10\r
-    EDITTEXT        IDC_PATH_NAME,65,46,213,15,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_SELECTOR,283,46,10,15\r
-    CONTROL         "Read/write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,72,70,50,10\r
-    RTEXT           "Boot priority:",IDC_VOLUME_BOOTPRI_TEXT,135,70,51,8\r
-    EDITTEXT        IDC_VOLUME_BOOTPRI,199,68,27,15\r
-    PUSHBUTTON      "OK",IDOK,120,91,48,15\r
-    PUSHBUTTON      "Cancel",IDCANCEL,175,91,48,15\r
-END\r
-\r
-IDD_SETINFO DIALOGEX 0, 0, 229, 85\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Additional Information Settings"\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    RTEXT           "Path:",-1,5,20,24,15,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_PATH_NAME,35,20,169,15,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_SELECTOR,210,20,10,15\r
-    PUSHBUTTON      "OK",IDOK,120,65,48,15\r
-    PUSHBUTTON      "Cancel",IDCANCEL,175,65,48,15\r
-END\r
-\r
-IDD_CHIPSET DIALOGEX 0, 65490, 300, 229\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    GROUPBOX        "Chipset",IDC_STATIC,14,11,145,90\r
-    CONTROL         "OCS [] Original chipset. A1000 and most A500s.",IDC_OCS,\r
-                    "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,37,26,51,10\r
-    CONTROL         "ECS Agnus [] Enhanced chipset (ECS Agnus chip only). Later A500 and A2000 hardware revisions.",IDC_ECS_AGNUS,\r
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,42,55,10\r
-    CONTROL         "Full ECS [] Full ECS chipset (ECS Agnus and ECS Denise chips). A500+, A600 and A3000.",IDC_ECS,\r
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,58,52,10\r
-    CONTROL         "AGA [] Advanced Graphics Architecture chipset. A1200, A4000 and CD32.",IDC_AGA,\r
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,26,51,10\r
-    CONTROL         "NTSC [] North American and Japanese display standard, 60Hz refresh rate. Other countries use PAL (50Hz. display refresh rate)",IDC_NTSC,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,101,58,50,10\r
-    GROUPBOX        "Options",IDC_STATIC,168,11,114,89\r
-    CONTROL         "Immediate Blitter [] Faster but less compatible blitter emulation.",IDC_BLITIMM,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,174,30,96,10\r
-    CONTROL         "Cycle-exact CPU and Blitter [] The most compatible A500 emulation mode. Very fast PC recommended.",IDC_CYCLEEXACT,\r
-                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,174,43,100,10\r
-    GROUPBOX        "Collision Level",IDC_STATIC,14,105,267,48\r
-    CONTROL         "None [] Collision hardware emulation disabled.",IDC_COLLISION0,\r
-                    "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,40,121,50,10\r
-    CONTROL         "Sprites only [] Emulate only sprite vs. sprite collisions.",IDC_COLLISION1,\r
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,39,137,50,10\r
-    CONTROL         "Sprites and Sprites vs. Playfield [] Recommended collision emulation level.",IDC_COLLISION2,\r
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,104,121,161,10\r
-    CONTROL         "Full [] 100% collision hardware emulation. Only very few games need this option. Slowest.",IDC_COLLISION3,\r
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,104,137,82,10\r
-    GROUPBOX        "Sound Emulation",IDC_STATIC,13,159,268,65\r
-    CONTROL         "Disabled",IDC_CS_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,39,175,102,10\r
-    CONTROL         "Emulated",IDC_CS_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,39,190,91,10\r
-    CONTROL         "Emulated, 100% accurate",IDC_CS_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,39,205,95,10\r
-    CONTROL         "Genlock connected [] Allow boot sequence to detect genlock. Genlock is not emulated.",IDC_GENLOCK,\r
-                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,174,56,100,10\r
-    CONTROL         "Faster RTG [] Enables less accurate custom chipset emulation mode when Picasso96 is enabled.",IDC_FASTERRTG,\r
-                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,174,68,100,10\r
-    COMBOBOX        IDC_CS_EXT,101,80,49,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "Chipset Extra",IDC_STATIC,25,79,52,15,SS_CENTERIMAGE\r
-END\r
-\r
-IDD_CHIPSET2 DIALOGEX 0, 65490, 300, 247\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    GROUPBOX        "Advanced Chipset Options",IDC_STATIC,7,6,287,239\r
-    GROUPBOX        "Battery Backed Up Real Time Clock",IDC_STATIC,14,37,275,29\r
-    CONTROL         "None",IDC_CS_RTC1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,22,49,55,10\r
-    CONTROL         "MSM6242B",IDC_CS_RTC2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,91,49,52,10\r
-    CONTROL         "RF5C01A",IDC_CS_RTC3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,160,49,46,10\r
-    EDITTEXT        IDC_CS_RTCADJUST,218,47,64,13,ES_AUTOHSCROLL\r
-    GROUPBOX        "CIA-A TOD Clock Source",IDC_STATIC,12,69,275,29\r
-    CONTROL         "Vertical Sync",IDC_CS_CIAA_TOD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,25,81,63,10\r
-    CONTROL         "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,95,81,85,10\r
-    CONTROL         "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,192,81,88,10\r
-    CONTROL         "Boot ROM Mirror",IDC_CS_KSMIRROR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,128,80,10\r
-    CONTROL         "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,128,86,10\r
-    CONTROL         "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,141,76,10\r
-    CONTROL         "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,141,85,10\r
-    CONTROL         "CD32 NVRAM",IDC_CS_CD32NVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,141,84,10\r
-    CONTROL         "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,154,47,10\r
-    CONTROL         "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,153,85,10\r
-    CONTROL         "CDTV SRAM Expansion",IDC_CS_CDTVRAMEXP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,153,90,10\r
-    CONTROL         "A600/A1200 IDE",IDC_CS_IDE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,166,79,10\r
-    CONTROL         "A4000 IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,166,84,10\r
-    CONTROL         "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,201,71,10\r
-    EDITTEXT        IDC_CS_RAMSEYREV,94,199,45,13,ES_AUTOHSCROLL\r
-    CONTROL         "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,214,71,10\r
-    EDITTEXT        IDC_CS_FATGARYREV,94,213,45,13,ES_AUTOHSCROLL\r
-    CONTROL         "Motherboard Super DMAC",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,227,118,10\r
-    CONTROL         "Compatible Settings",IDC_CS_COMPATIBLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,21,234,10\r
-    CONTROL         "DF0: ID Hardware",IDC_CS_DF0IDHW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,128,92,10\r
-    CONTROL         "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,150,201,81,10\r
-    EDITTEXT        IDC_CS_AGNUSREV,235,199,45,13,ES_AUTOHSCROLL | NOT WS_VISIBLE\r
-    CONTROL         "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,150,214,81,10\r
-    EDITTEXT        IDC_CS_DENISEREV,235,213,45,13,ES_AUTOHSCROLL | NOT WS_VISIBLE\r
-END\r
-\r
-IDD_AVIOUTPUT DIALOGEX 0, 0, 288, 203\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    GROUPBOX        "Output Properties",IDC_STATIC,5,8,274,118\r
-    EDITTEXT        IDC_AVIOUTPUT_FILETEXT,15,21,226,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_CLIENTEDGE\r
-    PUSHBUTTON      "...",IDC_AVIOUTPUT_FILE,249,20,19,12\r
-    CONTROL         "Audio",IDC_AVIOUTPUT_AUDIO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,36,32,11\r
-    CONTROL         "",IDC_AVIOUTPUT_AUDIO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,36,209,11\r
-    CONTROL         "Video",IDC_AVIOUTPUT_VIDEO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,50,32,11\r
-    CONTROL         "",IDC_AVIOUTPUT_VIDEO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,50,209,11\r
-    CONTROL         "Disable frame rate limit while recording",IDC_AVIOUTPUT_FRAMELIMITER,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,68,136,10\r
-    CONTROL         "AVI output enabled",IDC_AVIOUTPUT_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,15,103,108,14\r
-    CONTROL         "PAL",IDC_AVIOUTPUT_PAL,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,133,103,66,14\r
-    CONTROL         "NTSC",IDC_AVIOUTPUT_NTSC,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,204,103,66,14\r
-    CONTROL         "Slider1",IDC_AVIOUTPUT_FPS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_TABSTOP,156,84,97,11\r
-    LTEXT           "fps",IDC_AVIOUTPUT_FPS_STATIC,255,84,19,8\r
-    PUSHBUTTON      "Save screenshot",IDC_SCREENSHOT,16,141,76,14\r
-    GROUPBOX        "Ripper",IDC_STATIC,5,127,274,38\r
-    PUSHBUTTON      "Pro Wizard",IDC_PROWIZARD,100,141,76,14,WS_DISABLED\r
-    CONTROL         "Sample ripper",IDC_SAMPLERIPPER_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,141,77,14\r
-    GROUPBOX        "Input Recorder",IDC_STATIC,5,166,274,33\r
-    CONTROL         "Record",IDC_INPREC_RECORD,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,191,177,77,14\r
-    CONTROL         "Playback",IDC_INPREC_PLAY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,16,178,77,14\r
-    CONTROL         "Alt. playback mode",IDC_INPREC_PLAYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,180,78,10\r
-    CONTROL         "Disable sound output while recording",IDC_AVIOUTPUT_NOSOUNDOUTPUT,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,85,136,10\r
-END\r
-\r
-IDD_INPUT DIALOGEX 0, 0, 300, 242\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    COMBOBOX        IDC_INPUTTYPE,5,5,98,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_INPUTDEVICE,109,5,167,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "",IDC_INPUTDEVICEDISABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,282,8,9,8\r
-    CONTROL         "List1",IDC_INPUTLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,22,290,146\r
-    COMBOBOX        IDC_INPUTAMIGACNT,5,174,24,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_INPUTAMIGA,33,174,262,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "Joystick dead zone (%):",-1,8,196,76,10,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_INPUTDEADZONE,89,195,25,12,ES_NUMBER\r
-    RTEXT           "Autofire rate (frames):",-1,9,212,68,10,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_INPUTAUTOFIRERATE,89,210,25,12,ES_NUMBER\r
-    RTEXT           "Digital joy-mouse speed:",-1,121,196,76,10,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_INPUTSPEEDD,207,195,25,12,ES_NUMBER\r
-    RTEXT           "Analog joy-mouse speed:",-1,120,212,80,10,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_INPUTSPEEDA,207,211,25,12,ES_NUMBER\r
-    RTEXT           "Mouse speed:",-1,132,228,68,10,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_INPUTSPEEDM,207,227,25,12,ES_NUMBER\r
-    PUSHBUTTON      "Copy from:",IDC_INPUTCOPY,249,195,45,14\r
-    COMBOBOX        IDC_INPUTCOPYFROM,249,211,45,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Swap 1<>2",IDC_INPUTSWAP,249,226,45,14\r
-END\r
-\r
-IDD_FILTER DIALOGEX 0, 0, 296, 224\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    GROUPBOX        "Filter Settings",-1,0,0,294,186\r
-    CONTROL         "Enable",IDC_FILTERENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,26,17,38,10\r
-    COMBOBOX        IDC_FILTERMODE,67,15,56,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_FILTERFILTER,128,15,65,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Reset to defaults",IDC_FILTERDEFAULT,197,15,73,14\r
-    RTEXT           "Horizontal size:",-1,9,44,59,10,SS_CENTERIMAGE\r
-    CONTROL         "Slider1",IDC_FILTERHZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,37,142,19\r
-    EDITTEXT        IDC_FILTERHZV,253,40,34,12,ES_CENTER | ES_READONLY\r
-    RTEXT           "Vertical size:",-1,10,64,59,10,SS_CENTERIMAGE\r
-    CONTROL         "Slider1",IDC_FILTERVZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,57,142,19\r
-    EDITTEXT        IDC_FILTERVZV,253,59,34,12,ES_CENTER | ES_READONLY\r
-    RTEXT           "Horizontal position:",-1,10,84,59,10,SS_CENTERIMAGE\r
-    CONTROL         "Slider1",IDC_FILTERHO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,77,141,19\r
-    EDITTEXT        IDC_FILTERHOV,253,79,34,12,ES_CENTER | ES_READONLY\r
-    RTEXT           "Vertical position:",-1,10,103,59,10,SS_CENTERIMAGE\r
-    CONTROL         "Slider1",IDC_FILTERVO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,99,141,19\r
-    EDITTEXT        IDC_FILTERVOV,253,101,34,12,ES_CENTER | ES_READONLY\r
-    RTEXT           "Scanlines:",-1,27,133,57,10,SS_CENTERIMAGE\r
-    CONTROL         "Slider1",IDC_FILTERSL,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,94,126,157,19\r
-    EDITTEXT        IDC_FILTERSLV,253,128,34,12,ES_CENTER | ES_READONLY\r
-    COMBOBOX        IDC_FILTERSLR,56,146,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Slider1",IDC_FILTERSL2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,94,146,157,19\r
-    EDITTEXT        IDC_FILTERSL2V,253,151,34,12,ES_CENTER | ES_READONLY\r
-    GROUPBOX        "Presets",-1,0,187,296,36\r
-    COMBOBOX        IDC_FILTERPRESETS,8,201,119,150,CBS_DROPDOWN | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Load",IDC_FILTERPRESETLOAD,132,200,47,14\r
-    PUSHBUTTON      "Save",IDC_FILTERPRESETSAVE,184,200,47,14\r
-    PUSHBUTTON      "Delete",IDC_FILTERPRESETDELETE,236,200,47,14\r
-    COMBOBOX        IDC_FILTERHZMULT,77,43,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        IDC_FILTERVZMULT,77,63,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Autoscale",IDC_FILTERAUTORES,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,26,168,63,10\r
-END\r
-\r
-IDD_HARDDRIVE DIALOGEX 0, 0, 380, 66\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Harddrive Settings"\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    LTEXT           "Hard drive:",-1,7,11,35,10\r
-    COMBOBOX        IDC_HARDDRIVE,49,9,325,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Read/write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,245,33,50,10\r
-    DEFPUSHBUTTON   "Add hard drive",IDOK,176,30,57,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,321,30,54,14\r
-    DEFPUSHBUTTON   "Create hard disk image file",IDC_HARDDRIVE_IMAGE,49,30,95,14\r
-    EDITTEXT        IDC_PATH_NAME,89,49,169,15,ES_AUTOHSCROLL | NOT WS_VISIBLE\r
-END\r
-\r
-IDD_MISC2 DIALOGEX 0, 0, 300, 92\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    GROUPBOX        "When Active",IDC_STATIC,8,7,88,73\r
-    RTEXT           "Run at priority:",IDC_ACTIVE_PRI,14,17,45,10,SS_CENTERIMAGE | WS_TABSTOP\r
-    COMBOBOX        IDC_ACTIVE_PRIORITY,14,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    GROUPBOX        "When Inactive",IDC_STATIC,102,7,92,73\r
-    RTEXT           "Run at priority:",IDC_INACTIVE_PRI,109,17,45,10,SS_CENTERIMAGE | WS_TABSTOP\r
-    COMBOBOX        IDC_INACTIVE_PRIORITY,109,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Pause emulation",IDC_INACTIVE_PAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,50,69,10\r
-    CONTROL         "Disable sound output",IDC_INACTIVE_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,63,79,10\r
-    GROUPBOX        "When Minimized",IDC_STATIC,199,7,92,73\r
-    RTEXT           "Run at priority:",IDC_MINIMIZED_PRI,207,18,45,10,SS_CENTERIMAGE | WS_TABSTOP\r
-    COMBOBOX        IDC_MINIMIZED_PRIORITY,207,30,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Pause emulation",IDC_MINIMIZED_PAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,50,69,10\r
-    CONTROL         "Disable sound output",IDC_MINIMIZED_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,63,79,10\r
-END\r
-\r
-IDD_DISK DIALOGEX 0, 0, 300, 242\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_CONTROL | DS_CENTER | DS_CENTERMOUSE | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    CONTROL         "",IDC_DISKLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,4,6,292,196\r
-    PUSHBUTTON      "Remove floppy disk image",IDC_DISKLISTREMOVE,153,223,93,15\r
-    COMBOBOX        IDC_DISKTEXT,3,205,293,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Insert floppy disk image",IDC_DISKLISTINSERT,38,223,93,15\r
-END\r
-\r
-IDD_PANEL DIALOGEX 0, 0, 420, 278\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-EXSTYLE WS_EX_ACCEPTFILES | WS_EX_CONTROLPARENT\r
-CAPTION "WinUAE Properties"\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    GROUPBOX        "",IDC_PANEL_FRAME,112,4,303,247,NOT WS_VISIBLE\r
-    CONTROL         "",IDC_PANELTREE,"SysTreeView32",TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_NOSCROLL | WS_BORDER | WS_TABSTOP,5,5,101,248,WS_EX_CLIENTEDGE\r
-    GROUPBOX        "",IDC_PANEL_FRAME_OUTER,110,2,307,251\r
-    PUSHBUTTON      "Reset",IDC_RESETAMIGA,6,259,47,14\r
-    PUSHBUTTON      "Quit",IDC_QUITEMU,57,259,47,14\r
-    DEFPUSHBUTTON   "OK",IDOK,260,259,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,313,259,50,14\r
-    PUSHBUTTON      "Help",IDHELP,366,259,50,14,WS_DISABLED\r
-END\r
-\r
-IDD_PATHS DIALOGEX 0, 0, 300, 237\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    LTEXT           "System ROMs:",IDC_PATHS_ROML,14,9,260,8,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_PATHS_ROM,14,22,261,15,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_PATHS_ROMS,281,22,11,15\r
-    LTEXT           "Configuration files:",IDC_PATHS_CONFIGL,14,40,260,8,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_PATHS_CONFIG,14,52,261,15,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_PATHS_CONFIGS,281,52,11,15\r
-    LTEXT           "Screenshots:",IDC_PATHS_SCREENSHOTL,14,71,260,8,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_PATHS_SCREENSHOT,14,83,261,15,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_PATHS_SCREENSHOTS,281,83,11,15\r
-    LTEXT           "State files:",IDC_PATHS_STATEFILEL,14,102,260,8,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_PATHS_SAVESTATE,14,114,261,15,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_PATHS_SAVESTATES,281,114,11,15\r
-    LTEXT           "Videos:",IDC_PATHS_AVIOUTPUTL,14,132,260,8,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_PATHS_AVIOUTPUT,14,144,261,15,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_PATHS_AVIOUTPUTS,282,144,11,15\r
-    LTEXT           "Saveimages:",IDC_PATHS_SAVEIMAGEL,14,163,260,8,SS_CENTERIMAGE\r
-    EDITTEXT        IDC_PATHS_SAVEIMAGE,14,175,261,15,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_PATHS_SAVEIMAGES,281,175,11,15\r
-    PUSHBUTTON      "Reset to defaults",IDC_PATHS_DEFAULT,14,199,92,14\r
-    PUSHBUTTON      "Rescan ROMs",IDC_ROM_RESCAN,14,218,92,14\r
-    PUSHBUTTON      "Clear registry",IDC_RESETREGISTRY,112,218,77,14\r
-    COMBOBOX        IDC_PATHS_DEFAULTTYPE,112,199,163,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Clear disk history",IDC_RESETDISKHISTORY,198,218,77,14\r
-END\r
-\r
-IDD_QUICKSTART DIALOGEX 0, 0, 300, 242\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    GROUPBOX        "Emulated Hardware",IDC_QUICKSTART_CONFIG,3,0,294,54\r
-    RTEXT           "Model:",IDC_STATIC,5,14,56,10,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_QUICKSTART_MODEL,65,12,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "Configuration:",IDC_STATIC,5,33,56,10,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_QUICKSTART_CONFIGURATION,65,31,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    GROUPBOX        "Compatibility vs Required CPU Power ",IDC_QUICKSTART_COMPA,3,56,294,33\r
-    RTEXT           "Best compatibility",IDC_STATIC,13,70,67,10,SS_CENTERIMAGE\r
-    CONTROL         "",IDC_QUICKSTART_COMPATIBILITY,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,65,115,21\r
-    RTEXT           "Low compatibility",IDC_STATIC,215,70,63,10,SS_CENTERIMAGE\r
-    GROUPBOX        "Host Configuration",IDC_QUICKSTART_HOST,3,91,294,33\r
-    RTEXT           "Configuration:",IDC_STATIC,5,105,55,10,SS_CENTERIMAGE\r
-    COMBOBOX        IDC_QUICKSTART_HOSTCONFIG,65,103,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-    GROUPBOX        "Emulated Floppy Drives",IDC_QUICKSTART_DF,3,126,294,84\r
-    LTEXT           "Floppy drive DF0:",IDC_STATIC,10,138,56,10,SS_CENTERIMAGE\r
-    PUSHBUTTON      "Select disk image",IDC_DF0QQ,77,135,98,15\r
-    RTEXT           "Write-protected",IDC_STATIC,180,139,58,10,SS_CENTERIMAGE\r
-    CONTROL         "",IDC_DF0WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,245,137,10,15\r
-    PUSHBUTTON      "Eject",IDC_EJECT0Q,260,136,30,15\r
-    COMBOBOX        IDC_DF0TEXTQ,9,154,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
-    LTEXT           "Floppy drive DF1:",IDC_STATIC,10,176,56,10,SS_CENTERIMAGE\r
-    PUSHBUTTON      "Select disk image",IDC_DF1QQ,77,172,98,15\r
-    RTEXT           "Write-protected",IDC_STATIC,180,175,58,10,SS_CENTERIMAGE\r
-    CONTROL         "",IDC_DF1WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,245,173,10,15\r
-    PUSHBUTTON      "Eject",IDC_EJECT1Q,260,172,30,15\r
-    COMBOBOX        IDC_DF1TEXTQ,9,190,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Set configuration",IDC_QUICKSTART_SETCONFIG,9,219,72,15,NOT WS_VISIBLE\r
-    GROUPBOX        "Mode",IDC_STATIC,190,211,107,27,BS_LEFT\r
-    CONTROL         "Start in Quickstart mode",IDC_QUICKSTARTMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,199,222,94,10\r
-END\r
-\r
-IDD_FRONTEND DIALOGEX 0, 0, 420, 242\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    CONTROL         "",IDC_FE_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,6,9,235,124\r
-    GROUPBOX        "",IDC_FE_INFO,249,140,160,95\r
-    GROUPBOX        "",IDC_FE_SCREENSHOT,249,7,160,128\r
-END\r
-\r
-IDD_PROGRESSBAR DIALOGEX 0, 0, 229, 58\r
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Processing..."\r
-FONT 8, "MS Sans Serif", 0, 0, 0x0\r
-BEGIN\r
-    PUSHBUTTON      "Cancel",IDCANCEL,88,40,50,14\r
-    CONTROL         "",IDC_PROGRESSBAR,"msctls_progress32",WS_BORDER | 0x1,7,19,215,14\r
-    CTEXT           "x",IDC_PROGRESSBAR_TEXT,23,5,187,10,SS_CENTERIMAGE | WS_TABSTOP\r
-END\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Icon\r
-//\r
-\r
-// Icon with lowest ID value placed first to ensure application icon\r
-// remains consistent on all systems.\r
-IDI_APPICON             ICON                    "winuae.ico"\r
-IDI_FLOPPY              ICON                    "35floppy.ico"\r
-IDI_ABOUT               ICON                    "amigainfo.ico"\r
-IDI_HARDDISK            ICON                    "Drive.ico"\r
-IDI_CPU                 ICON                    "cpu.ico"\r
-IDI_PORTS               ICON                    "joystick.ico"\r
-IDI_INPUT               ICON                    "joystick.ico"\r
-IDI_MISC1               ICON                    "misc.ico"\r
-IDI_MISC2               ICON                    "misc.ico"\r
-IDI_MOVE_UP             ICON                    "move_up.ico"\r
-IDI_MOVE_DOWN           ICON                    "move_dow.ico"\r
-IDI_AVIOUTPUT           ICON                    "avioutput.ico"\r
-IDI_DISK                ICON                    "Drive.ico"\r
-IDI_CONFIGFILE          ICON                    "file.ico"\r
-IDI_FOLDER              ICON                    "folder.ico"\r
-IDI_SOUND               ICON                    "sound.ico"\r
-IDI_DISPLAY             ICON                    "screen.ico"\r
-IDI_ROOT                ICON                    "root.ico"\r
-IDI_MEMORY              ICON                    "chip.ico"\r
-IDI_QUICKSTART          ICON                    "quickstart.ico"\r
-IDI_PATHS               ICON                    "paths.ico"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Version\r
-//\r
-\r
-VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 1,4,0,0\r
- PRODUCTVERSION 1,4,0,0\r
- FILEFLAGSMASK 0x3fL\r
-#ifdef _DEBUG\r
- FILEFLAGS 0x1L\r
-#else\r
- FILEFLAGS 0x0L\r
-#endif\r
- FILEOS 0x40004L\r
- FILETYPE 0x1L\r
- FILESUBTYPE 0x0L\r
-BEGIN\r
-    BLOCK "StringFileInfo"\r
-    BEGIN\r
-        BLOCK "040904b0"\r
-        BEGIN\r
-            VALUE "FileDescription", "WinUAE"\r
-            VALUE "FileVersion", "1.4.0"\r
-            VALUE "InternalName", "WinUAE"\r
-            VALUE "LegalCopyright", "© 1996-2007 under the GNU Public License (GPL)"\r
-            VALUE "OriginalFilename", "WinUAE.exe"\r
-            VALUE "ProductName", "WinUAE"\r
-            VALUE "ProductVersion", "1.4.0"\r
-        END\r
-    END\r
-    BLOCK "VarFileInfo"\r
-    BEGIN\r
-        VALUE "Translation", 0x409, 1200\r
-    END\r
-END\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Cursor\r
-//\r
-\r
-IDC_MYHAND              CURSOR                  "H_arrow.cur"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Menu\r
-//\r
-\r
-IDM_SYSTRAY MENU \r
-BEGIN\r
-    POPUP "Menu"\r
-    BEGIN\r
-        MENUITEM "Configuration",               ID_ST_CONFIGURATION\r
-        POPUP "Floppy drives"\r
-        BEGIN\r
-            MENUITEM "Eject all drives",            ID_ST_EJECTALL\r
-            MENUITEM "DF0:",                        ID_ST_DF0\r
-            MENUITEM "DF1:",                        ID_ST_DF1\r
-            MENUITEM "DF2:",                        ID_ST_DF2\r
-            MENUITEM "DF3:",                        ID_ST_DF3\r
-        END\r
-        MENUITEM "Reset",                       ID_ST_RESET\r
-        MENUITEM "Help",                        ID_ST_HELP\r
-        MENUITEM "Quit WinUAE",                 ID_ST_QUIT\r
-    END\r
-END\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// String Table\r
-//\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_KICKSTART           "ROM"\r
-    IDS_DISK                "Disk swapper"\r
-    IDS_DISPLAY             "Display"\r
-    IDS_HARDDISK            "Hard drives"\r
-    IDS_FLOPPY              "Floppy drives"\r
-    IDS_ABOUT               "About"\r
-    IDS_LOADSAVE            "Configurations"\r
-    IDS_AVIOUTPUT           "Output"\r
-    IDS_PORTS               "Game & I/O ports"\r
-    IDS_MISC1               "Misc"\r
-    IDS_MEMORY              "RAM"\r
-    IDS_CPU                 "CPU"\r
-    IDS_CHIPSET             "Chipset"\r
-    IDS_INPUT               "Input"\r
-    IDS_FILTER              "Filter"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_MISC2               "Priority"\r
-    IDS_PATHS               "Paths"\r
-    IDS_QUICKSTART          "Quickstart"\r
-    IDS_FRONTEND            "Frontend"\r
-    IDS_CHIPSET2            "Adv. Chipset"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_EXTTEXT             "Floppy disk image files"\r
-    IDS_EXTACTUAL           "ADF"\r
-    IDS_SOUND               "Sound"\r
-    IDS_CDROM               "CD-ROM"\r
-    IDS_FRAMERATE           "Every %1Frame"\r
-    IDS_SECOND              "second "\r
-    IDS_THIRD               "third "\r
-    IDS_FOURTH              "fourth "\r
-    IDS_FIFTH               "fifth "\r
-    IDS_SIXTH               "sixth "\r
-    IDS_SEVENTH             "seventh "\r
-    IDS_EIGHTH              "eighth "\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_NINTH               "ninth "\r
-    IDS_TENTH               "tenth "\r
-    IDS_SELECTADF           "Select a floppy disk image file..."\r
-    IDS_ADF                 "Floppy disk image files"\r
-    IDS_CHOOSEBLANK         "Choose a blank floppy disk image file..."\r
-    IDS_SELECTHDF           "Select a hard disk image file..."\r
-    IDS_HDF                 "Hard disk image files"\r
-    IDS_SELECTUAE           "Select a WinUAE configuration file..."\r
-    IDS_UAE                 "WinUAE configuration files"\r
-    IDS_SELECTROM           "Select a system ROM file..."\r
-    IDS_ROM                 "System ROM files"\r
-    IDS_SELECTKEY           "Select a system ROM key file..."\r
-    IDS_KEY                 "System ROM key files"\r
-    IDS_SELECTINFO          "Select information for your configuration..."\r
-    IDS_NONE                "none"\r
-    IDS_VOLUME              "Volume"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_SELECTFILESYSROOT   "Please select the root directory of the file system..."\r
-    IDS_DEFAULTMIDIOUT      "Default MIDI-Out Device"\r
-    IDS_CONTRIBUTORS1       "Bernd Schmidt - The Grand-Master\nSam Jordan - Custom-chip, floppy-DMA, etc.\nMathias Ortmann - Original WinUAE Main Guy, BSD Socket support\nBrian King - Picasso96 Support, Integrated GUI for WinUAE, previous WinUAE Main Guy\nToni Wilen - Core updates, WinUAE Main Guy\nGustavo Goedert/Peter Remmers/Michael Sontheimer/Tomi Hakala/Tim Gunn/Nemo Pohle - DOS Port Stuff\nSamuel Devulder/Olaf Barthel/Sam Jordan - Amiga Ports\nKrister Bergman - XFree86 and OS/2 Port\nA. Blanchard/Ernesto Corvi - MacOS Port\nChristian Bauer - BeOS Port\nIan Stephenson - NextStep Port\nPeter Teichmann - Acorn/RiscOS Port\nStefan Reinauer - ZorroII/III AutoConfig, Serial Support\nChristian Schmitt/Chris Hames - Serial Support\nHerman ten Brugge - 68020/68881 Emulation Code\nTauno Taipaleenmaki - Various UAE-Control/UAE-Library Support\nBrett Eden/Tim Gunn/Paolo Besser/Nemo Pohle - Various Docs and Web-Sites\nGeorg Veichtlbauer - Help File coordinator, German GUI\nFulvio Leonardi - Italian translator for WinUAE\n"\r
-    IDS_CONTRIBUTORS2       "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\nSteven Weiser  - Postscript printing emulation idea and testing.\nPéter Tóth /Balázs Rátkai/Iván Herczeg/András Arató - Hungarian translation"\r
-    IDS_INVALIDPRTPORT      "The printer you have in this configuration is not valid on this machine.\n"\r
-    IDS_RESTOREUSS          "Restore a WinUAE snapshot file"\r
-    IDS_USS                 "WinUAE snapshot files"\r
-    IDS_WRONGOSVERSION      "WinUAE is no longer supported on Windows NT.  Please upgrade to either Windows 2000 or Windows XP or a later version."\r
-    IDS_SELECTFLASH         "Select a flash or battery-backed RAM file..."\r
-    IDS_FLASH               "WinUAE flash or battery-backed RAM file"\r
-    IDS_INPUTHOSTWIDGET     "Input source"\r
-    IDS_INPUTAMIGAEVENT     "Input target"\r
-    IDS_INPUTAUTOFIRE       "Autofire"\r
-    IDS_SAVEUSS             "Save a WinUAE snapshot file"\r
-    IDS_MIDIOVERFLOW        "Sysexbuffer overflow. Should not happen. Please report this to\nberndroesch1@compuserve.de"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_PATH                "Path"\r
-    IDS_RW                  "R/W"\r
-    IDS_SECTORS             "Sectors"\r
-    IDS_SURFACES            "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\nSteven Weiser  - Postscript printing emulation idea and testing.\nHungarian translation - Péter Tóth , Balázs Rátkai , Iván Herczeg , András Arató"\r
-    IDS_RESERVED            "Reserved"\r
-    IDS_BLOCKSIZE           "Block size"\r
-    IDS_NAME                "Name"\r
-    IDS_DESCRIPTION         "Description"\r
-    IDS_COULDNOTLOADCONFIG  "Could not load the selected configuration!\n"\r
-    IDS_NOHELP              "Online help is disabled because the HTML Help functionality is not installed on this system. HTML Help is available from http://www.microsoft.com/downloads/.\n"\r
-    IDS_MUSTSELECTCONFIG    "You must select a configuration or enter a name before selecting Load...\n"\r
-    IDS_INVALIDCOMPORT      "The serial port you have in this configuration is not valid on this machine.\n"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_HFDSIZE             "Size"\r
-    IDS_DEVICE              "Device"\r
-    IDS_BOOTPRI             "BootPri"\r
-    IDS_FLOPPY_COMPATIBLE   " (compatible)"\r
-    IDS_FLOPPY_TURBO        "Turbo"\r
-    IDS_YES                 "yes"\r
-    IDS_NO                  "no"\r
-    IDS_PRI_ABOVENORMAL     "Above Normal"\r
-    IDS_PRI_NORMAL          "Normal"\r
-    IDS_PRI_BELOWNORMAL     "Below Normal"\r
-    IDS_PRI_LOW             "Low"\r
-    IDS_OLDRTGLIBRARY       "The installed LIBS:Picasso96/rtg.library (%d.%d) file needs to be updated.\nA newer version is included in the ""Amiga Programs"" directory of the WinUAE distribution archive.\nThe new library fixes graphics problems and increases performance."\r
-    IDS_DEFAULT_AF2005      "Amiga Forever"\r
-    IDS_DEFAULT_AF          "Amiga Forever (old)"\r
-    IDS_DEFAULT_WINUAE      "WinUAE default"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_UNSUPPORTEDPIXELFORMAT \r
-                            "Error: unsupported pixel format. Please use a different screen mode.\n"\r
-    IDS_MUSTENTERNAME       "You must select a configuration or enter a name before selecting Save...\n"\r
-    IDS_MUSTSELECTCONFIGFORDELETE \r
-                            "You must select a configuration or enter a name before selecting Delete...\n"\r
-    IDS_DELETECONFIGCONFIRMATION \r
-                            "Are you sure you want to Delete this configuration?\n"\r
-    IDS_DELETECONFIGTITLE   "Confirm Delete"\r
-    IDS_GFXCARDCHECK        "WinUAE will now determine the 16-bit pixel format of your graphics card. Your screen will go black for two seconds, with a resolution of 640x480 @ 60Hz. This procedure is required for best rendering of the emulation environment on 16-bit display-modes, and should be done whenever you run WinUAE for the first time, or install a new graphics card in your PC. Proceed with this test?"\r
-    IDS_GFXCARDTITLE        "Pixel format detection"\r
-    IDS_MUSTSELECTPATH      "You must select a path!"\r
-    IDS_SETTINGSERROR       "Settings error"\r
-    IDS_MUSTSELECTNAME      "You must select a name for the volume!"\r
-    IDS_MUSTSELECTFILE      "You must select a file!"\r
-    IDS_FAILEDHARDFILECREATION "Failed to create hard disk image file..."\r
-    IDS_CREATIONERROR       "Creation error"\r
-    IDS_ERRORTITLE          "WinUAE message"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_INP                 "WinUAE Input Recording"\r
-    IDS_RESTOREINP          "Playback a WinUAE input recording"\r
-    IDS_SAVEINP             "Record a WinUAE input recording"\r
-    IDS_SOUND_MONO          "Mono"\r
-    IDS_SOUND_MIXED         "Mixed"\r
-    IDS_SOUND_STEREO        "Stereo"\r
-    IDS_SOUND_INTERPOL_DISABLED "Disabled"\r
-    IDS_SOUND_FILTER_OFF    "Always off"\r
-    IDS_SOUND_FILTER_EMULATED "Emulated (A500)"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_SOUND_FILTER_EMULATED_E "Emulated (A1200)"\r
-    IDS_INPUT_COMPATIBILITY "Compatibility mode"\r
-    IDS_INPUT_CUSTOM        "Configuration #%d"\r
-    IDS_INPUT_COPY_DEFAULT  "Default"\r
-    IDS_INPUT_COPY_CUSTOM   "Config #%d"\r
-    IDS_3D_NO_FILTER        "Point (%d-bit)"\r
-    IDS_3D_BILINEAR         "Bilinear (%d-bit)"\r
-    IDS_VSYNC_DEFAULT       "Default"\r
-    IDS_DRIVESOUND_NONE     "No sound"\r
-    IDS_DRIVESOUND_DEFAULT_A500 "A500 (WinUAE built-in)"\r
-    IDS_AVIOUTPUT_NOCODEC   "no codec selected"\r
-    IDS_DISK_IMAGENAME      "Disk image"\r
-    IDS_DISK_DRIVENAME      "Drive"\r
-    IDS_AGA8BIT             "AGA emulation requires a 16-bit or higher display depth.\nSwitching from 8-bit to 16-bit."\r
-    IDS_UNSUPPORTEDSCREENMODE \r
-                            "The selected screen mode can't be displayed in a window, because %s\nSwitching to full-screen display."\r
-    IDS_UNSUPPORTEDSCREENMODE_1 \r
-                            "the desktop is running in an unknown color mode."\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_UNSUPPORTEDSCREENMODE_2 \r
-                            "the desktop is running in 8-bit color depth, which WinUAE can't use in windowed mode."\r
-    IDS_UNSUPPORTEDSCREENMODE_3 \r
-                            "the desktop is too small for the specified window size."\r
-    IDS_UNSUPPORTEDSCREENMODE_4 \r
-                            "you selected an RTG (Picasso96) display with a color depth different from that of the desktop and an overlay was unavailable."\r
-    IDS_FLOPPYTYPE35DD      "3.5"" DD"\r
-    IDS_FLOPPYTYPE35HD      "3.5"" HD"\r
-    IDS_FLOPPYTYPE525SD     "5.25"" SD"\r
-    IDS_FLOPPYTYPEDISABLED  "Disabled"\r
-    IDS_STMENUNOFLOPPY      "No floppy disk inserted"\r
-    IDS_TREEVIEW_HARDWARE   "Hardware"\r
-    IDS_TREEVIEW_HOST       "Host"\r
-    IDS_TREEVIEW_MISC       "Miscellaneous"\r
-    IDS_TREEVIEW_SETTINGS   "Settings"\r
-    IDS_WINUAETITLE_MMB     "[Mouse active - press ALT+TAB or middle mouse button to cancel]"\r
-    IDS_WINUAETITLE_NORMAL  "[Mouse active - press ALT+TAB to cancel]"\r
-    IDS_STARTEMULATION      "Start"\r
-    IDS_TREEVIEW_ABOUT      "About"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_NOHARDDRIVES        "No hard disks detected that were either empty or RDB-partitioned."\r
-    IDS_DEFAULT_HOST        "Default Configuration"\r
-    IDS_SOUND_4CHANNEL      "4 Channels"\r
-    IDS_HF_FS_CUSTOM        "Custom"\r
-    IDS_SELECTFS            "Select file system handler (FastFileSystem, SmartFilesystem, etc.)"\r
-    IDS_KEYJOY              "Keyboard Layout A (Numeric keypad, 0 and 5 = Fire)\nKeyboard Layout B (Cursor keys, Right CTRL and ALT = Fire)\nKeyboard Layout C (W=Up S=Down A=Left D=Right, Left ALT = Fire)\nX-Arcade (Left)\nX-Arcade (Right)"\r
-    IDS_STATEFILE_UNCOMPRESSED "Uncompressed"\r
-    IDS_STATEFILE_RAMDUMP   "RAM dump"\r
-    IDS_STATEFILE_WAVE      "Wave audio dump"\r
-    IDS_SOUND_SWAP_PAULA    "Paula only"\r
-    IDS_SOUND_SWAP_AHI      "AHI only"\r
-    IDS_SOUND_SWAP_BOTH     "Both"\r
-    IDS_SOUND_FILTER_ON_AGA "Always on (A500)"\r
-    IDS_SOUND_FILTER_ON_A500 "Always on (A1200)"\r
-    IDS_DRIVESOUND_PC_FLOPPY "PC floppy drive %c"\r
-    IDS_FLOPPYTYPE35DDESCOM "3.5"" ESCOM"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_NUMSG_NEEDEXT2      "The software uses a non-standard floppy disk format. You may need to use a custom floppy disk image file instead of a standard one. This message will not appear again."\r
-    IDS_NUMSG_NOROMKEY      "Could not find system ROM key file."\r
-    IDS_NUMSG_KSROMCRCERROR "System ROM checksum incorrect. The system ROM image file may be corrupt."\r
-    IDS_NUMSG_KSROMREADERROR "Error while reading system ROM."\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_NUMSG_NOEXTROM      "No extended ROM found."\r
-    IDS_NUMSG_MODRIP_NOTFOUND "No music modules or packed data found."\r
-    IDS_NUMSG_MODRIP_FINISHED "Scan finished."\r
-    IDS_NUMSG_MODRIP_SAVE   "Module/packed data found\n%s\nWould you like to save it?"\r
-    IDS_NUMSG_KS68020       "The selected system ROM requires a 68020 or higher CPU."\r
-    IDS_NUMSG_ROMNEED       "One of the following system ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."\r
-    IDS_NUMSG_STATEHD       "WARNING: State saves do not support hard drive emulation. This message will not appear again."\r
-    IDS_NUMSG_NOCAPS        "Selected disk image needs the SPS plugin\nwhich is available from\nhttp//www.softpres.org/"\r
-    IDS_NUMSG_OLDCAPS       "You need an updated SPS plugin\nwhich is available from\nhttp//www.softpres.org/"\r
-    IDS_IMGCHK_BOOTBLOCKCRCERROR \r
-                            "The selected floppy disk image is not bootable (boot block checksum error)"\r
-    IDS_IMGCHK_BOOTBLOCKNO  "The selected floppy disk image is not bootable (no boot block)"\r
-    IDS_IMGCHK_DAMAGED      "The selected floppy disk image is damaged or unformatted"\r
-    IDS_IMGCHK_KS2          "The selected floppy disk image requires a 2.04 or later system ROM.\nThe configuration has been updated."\r
-    IDS_IMGCHK_KS3          "The selected floppy disk image requires a 3.0 or later system ROM.\nThe configuration has been updated."\r
-    IDS_ROMSCANEND          "Scan of ROMs finished"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_ROM_AVAILABLE       "available"\r
-    IDS_ROM_UNAVAILABLE     "unavailable"\r
-    IDS_HARDDRIVESAFETYWARNING \r
-                            "Warning: The safety test has been disabled, and non-empty hard disks were detected.\n\nHard disks marked with 'HD_*_' are not empty."\r
-    IDS_NUMSG_KS68EC020     "The selected system ROM requires a 68EC020 or higher CPU."\r
-    IDS_ROMSCANNOROMS       "No supported system ROMs detected."\r
-    IDS_NUMSG_KICKREP       "You need to have a floppy disk (image file) in DF0: to use the system ROM replacement."\r
-    IDS_NUMSG_KICKREPNO     "The floppy disk (image file) in DF0: is not compatible with the system ROM replacement functionality."\r
-    IDS_NUMSG_NOROM         "Could not load system ROM, trying system ROM replacement."\r
-    IDS_HDCLONE_OK          "Hard drive image file created succesfully."\r
-    IDS_HDCLONE_FAIL        "Hard drive image file creation failed.\nError code %d:%d."\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_QS_MODELS           "A500\nA500+\nA600\nA1000\nA1200\nCD32\nCDTV\nArcadia Multi Select system\nExpanded WinUAE example configuration"\r
-    IDS_QS_MODEL_A500       "1.3 ROM, OCS, 512 KB Chip + 512 KB Slow RAM (most common)\nThis configuration is capable of running most games and demos produced for first-generation hardware. Only few exceptions need a different configuration (e.g. the oldest games tend to be incompatible with this configuration).\n1.3 ROM, ECS Agnus, 512 KB Chip RAM + 512 KB Slow RAM\nLater hardware revision of the A500. Nearly 100% compatible with the previous configuration.\n1.3 ROM, ECS Agnus, 1 MB Chip RAM\nFew newer games and demos require this configuration.\n1.3 ROM, OCS Agnus, 512 KB Chip RAM\nVery old (e.g. pre-1988) games and demos may require this configuration.\n1.2 ROM, OCS Agnus, 512 KB Chip RAM\nAs available for the A1000, and installed on the first A500 and A2000 series. Some very old programs only work correctly with this configuration. Note: This system ROM version can only boot from floppy disk (no hard disk boot support).\n1.2 ROM, OCS Agnus, 512 KB Chip RAM + 512 KB Slow RAM\nThis configuration adds expansion memory to the first A500 produced. Try this if your game does not work with newer configurations, but works with the previous one. It could add some features to the game, including faster loading times. Note: This system ROM version can only boot from floppy disk (no hard disk boot support)."\r
-    IDS_QS_MODEL_A500P      "Basic non-expanded configuration\nThe A500+ adds an ECS Agnus chip, 1 MB of Chip RAM and a 2.0 ROM to the A500. Many A500 games and demos don't work properly on an A500+.\n2 MB Chip RAM expanded configuration\n\n4 MB Fast RAM expanded configuration\n"\r
-    IDS_QS_MODEL_A600       "Basic non-expanded configuration\nThe A600 is smaller than the A500+ and has an updated 2.0 ROM.\n2 MB Chip RAM expanded configuration\n\n4 MB Fast RAM expanded configuration\n"\r
-    IDS_QS_MODEL_A1000      "512 KB Chip RAM\nThe A1000 was the first model produced, with a configuration equivalent to that of an A500 with OCS chipset. You normally don't need to use this configuration, unless you are nostalgic and would like to hear the short A1000 boot tune\n256 KB Chip RAM\nUnexpanded A1000. All later A1000 models were sold with a 256 KB RAM expansion built-in."\r
-    IDS_QS_MODEL_A1200      "Basic non-expanded configuration\nUse this configuration to run most AGA demos and games\n4 MB Fast RAM expanded configuration\nSome newer AGA games and demos need an expanded A1200 to run."\r
-    IDS_QS_MODEL_CD32       "CD32\nThe CD32 was one the first 32-bit consoles on the market. It is basically an A1200 with a built-in CD-ROM drive. Insert your CD32 or CDTV CD-ROM into a free CD-ROM drive before starting the emulation."\r
-    IDS_QS_MODEL_CDTV       "CDTV\nThe CDTV was the first model with a built-in CD-ROM drive. Looking like a black CD player, it featured a configuration equivalent to that of an A500 with 1 MB RAM and an ECS chipset.\nFloppy drive and 64KB SRAM card expanded CDTV\n"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_QS_MODEL_UAE        "High-end expanded configuration"\r
-    IDS_QS_MODEL_ARCADIA    "Arcadia\nArcadia Multi Select system is arcade platform developed by Arcadia and  Mastertronic. It is based on an A500 mainboard with ROM cage attached to expansion port. Arcadia ROM files go to ""Cartridge ROM File"" in ROM-panel."\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_SOUND_STEREO2       "Cloned Stereo"\r
-END\r
-\r
-#endif    // English (U.S.) resources\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// Finnish resources\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FIN)\r
-#ifdef _WIN32\r
-LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// TEXTINCLUDE\r
-//\r
-\r
-1 TEXTINCLUDE \r
-BEGIN\r
-    "resource.\0"\r
-END\r
-\r
-3 TEXTINCLUDE \r
-BEGIN\r
-    "\r\0"\r
-END\r
-\r
-2 TEXTINCLUDE \r
-BEGIN\r
-    "#include ""afxres.h""\r\0"\r
-END\r
-\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-#endif    // Finnish resources\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-\r
-#ifndef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 3 resource.\r
-//\r
-\r\r
-/////////////////////////////////////////////////////////////////////////////\r
-#endif    // not APSTUDIO_INVOKED\r
-\r
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_KICKSTART DIALOGEX 0, 0, 300, 176
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+EXSTYLE WS_EX_CONTEXTHELP
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "System ROM Settings",-1,5,0,290,74
+    RTEXT           "Main ROM file:",IDC_ROMTEXT,10,15,75,10
+    COMBOBOX        IDC_ROMFILE,89,12,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "...",IDC_KICKCHOOSER,280,10,10,15
+    RTEXT           "Extended ROM file:",IDC_ROMFILE2TEXT,10,35,75,10
+    COMBOBOX        IDC_ROMFILE2,89,31,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "...",IDC_ROMCHOOSER2,280,30,10,15
+    CONTROL         "MapROM emulation [] Creates a BlizKick-compatible memory area.",IDC_MAPROM,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,54,82,10
+    CONTROL         "ShapeShifter support [] Patches the system ROM for ShapeShifter compatibility.",IDC_KICKSHIFTER,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,54,80,10
+    GROUPBOX        "Miscellaneous",-1,5,76,290,57
+    RTEXT           "Cartridge ROM file:",IDC_FLASHTEXT2,8,93,75,10
+    COMBOBOX        IDC_CARTFILE,89,90,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "...",IDC_CARTCHOOSER,280,90,10,15
+    RTEXT           "Flash RAM file:",IDC_FLASHTEXT,8,112,75,10
+    EDITTEXT        IDC_FLASHFILE,89,110,185,13,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_FLASHCHOOSER,280,110,10,15
+    GROUPBOX        "HRTMon Settings",-1,5,136,290,31
+    CONTROL         "Enable HRTMon [] HRTMon is monitor/debugger similar to Action Replay series, default activation key is Page Up.",IDC_HRTMON,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,148,75,10
+END
+
+IDD_DISPLAY DIALOGEX 0, 0, 300, 202
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Screen",IDC_SCREENRESTEXT,12,0,199,67,BS_LEFT
+    RTEXT           "Full screen:",IDC_SELECTRESTEXT,17,17,38,15,SS_CENTERIMAGE
+    COMBOBOX        IDC_DISPLAYSELECT,59,10,147,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_RESOLUTION,59,27,52,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_REFRESHRATE,145,27,61,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Windowed:",IDC_WINDOWEDTEXT,18,51,37,8
+    EDITTEXT        IDC_XSIZE,59,48,35,12,ES_NUMBER
+    EDITTEXT        IDC_YSIZE,103,48,35,12,ES_NUMBER
+    CONTROL         "Vertical sync",IDC_VSYNC,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,147,49,54,10
+    GROUPBOX        "Settings",IDC_SETTINGSTEXT,12,73,199,93
+    CONTROL         "Full-screen native modes",IDC_AFULLSCREEN,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,21,85,92,10
+    CONTROL         "Full-screen RTG modes",IDC_PFULLSCREEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,85,87,10
+    CONTROL         "Correct aspect ratio",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,21,99,92,10
+    CONTROL         "Force low resolution",IDC_LORES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,99,85,10
+    LTEXT           "Refresh:",IDC_REFRESHTEXT,18,129,28,8
+    CONTROL         "Slider1",IDC_FRAMERATE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,124,75,20
+    EDITTEXT        IDC_RATETEXT,127,128,77,12,ES_CENTER | ES_READONLY
+    GROUPBOX        "Centering",IDC_STATIC,221,0,61,67
+    CONTROL         "Horizontal",IDC_XCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,16,45,10
+    CONTROL         "Vertical",IDC_YCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,32,39,10
+    GROUPBOX        "Line Mode",IDC_LINEMODE,222,73,61,73
+    CONTROL         "Normal",IDC_LM_NORMAL,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,231,89,44,10
+    CONTROL         "Double",IDC_LM_DOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,105,45,10
+    CONTROL         "Scanlines",IDC_LM_SCANLINES,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,121,46,10
+    COMBOBOX        IDC_DA_MODE,35,183,58,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | NOT WS_VISIBLE | WS_TABSTOP,99,179,101,20
+    PUSHBUTTON      "Detect Pixel Format",IDC_TEST16BIT,210,181,73,14
+    LTEXT           "FPS adj.:",IDC_REFRESH2TEXT,17,149,30,8
+    CONTROL         "",IDC_FRAMERATE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,144,127,20
+    EDITTEXT        IDC_RATE2TEXT,178,148,26,12,ES_CENTER | ES_READONLY
+    COMBOBOX        IDC_RESOLUTIONDEPTH,112,27,32,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "Filtered low resolution",IDC_LORES_SMOOTHED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,113,85,10
+END
+
+IDD_MEMORY DIALOGEX 0, 0, 300, 175
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+EXSTYLE WS_EX_CONTEXTHELP
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Memory Settings",-1,14,7,274,91
+    RTEXT           "Chip:",-1,24,31,20,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_CHIPMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,22,50,20
+    EDITTEXT        IDC_CHIPRAM,105,26,30,12,ES_CENTER | ES_READONLY
+    RTEXT           "Slow:",-1,149,31,20,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_SLOWMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,22,60,20
+    EDITTEXT        IDC_SLOWRAM,243,25,30,12,ES_CENTER | ES_READONLY
+    RTEXT           "Fast:",IDC_FASTTEXT,24,52,20,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_FASTMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,47,50,20
+    EDITTEXT        IDC_FASTRAM,105,53,30,12,ES_CENTER | ES_READONLY
+    RTEXT           "Z3 Fast:",IDC_Z3TEXT,139,52,30,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_Z3FASTMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,47,60,20
+    EDITTEXT        IDC_Z3FASTRAM,243,52,30,12,ES_CENTER | ES_READONLY
+    RTEXT           "RTG: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,81,77,90,10,SS_NOTIFY | SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,72,60,20
+    EDITTEXT        IDC_P96RAM,243,75,30,12,ES_CENTER | ES_READONLY
+    GROUPBOX        "Advanced Memory Settings",-1,13,104,275,65
+    RTEXT           "Motherboard RAM (Low area):",-1,39,122,129,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_MBMEM1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,180,117,59,20
+    EDITTEXT        IDC_MBRAM1,243,121,30,12,ES_CENTER | ES_READONLY
+    RTEXT           "Motherboard RAM (High area):",-1,39,144,127,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_MBMEM2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,180,139,59,20
+    EDITTEXT        IDC_MBRAM2,243,142,30,12,ES_CENTER | ES_READONLY
+END
+
+IDD_CPU DIALOGEX 0, 0, 300, 177
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    GROUPBOX        "CPU",IDC_STATIC,5,5,81,166,BS_LEFT
+    CONTROL         "68000",IDC_CPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,10,18,63,10
+    CONTROL         "68010",IDC_CPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,33,65,10
+    CONTROL         "68EC020",IDC_CPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,48,65,10
+    CONTROL         "68EC020 + FPU",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,63,68,10
+    CONTROL         "68020",IDC_CPU4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,78,63,10
+    CONTROL         "68020 + FPU",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,93,64,10
+    CONTROL         "68040",IDC_CPU6,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,108,66,10
+    CONTROL         "More compatible [] Emulate 68000's prefetch registers. More compatible but slower.",IDC_COMPATIBLE,
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,126,73,10
+    CONTROL         "JIT [] Enable just-in-time CPU emulator. Significantly increases the speed of the CPU emulation. Requires 68020 or 68040 CPU.",IDC_JITENABLE,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,149,73,10
+    GROUPBOX        "CPU Emulation Speed",IDC_STATIC,90,5,205,86
+    CONTROL         "Fastest possible, but maintain chipset timing",IDC_CS_HOST,
+                    "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,95,18,195,10
+    CONTROL         "Match A500 speed",IDC_CS_68000,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,95,32,195,10
+    CONTROL         "Adjustable between CPU and chipset",IDC_CS_ADJUSTABLE,
+                    "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,95,47,195,10
+    RTEXT           "CPU",IDC_CS_CPU_TEXT,96,71,15,10,SS_CENTERIMAGE | WS_TABSTOP
+    CONTROL         "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,114,66,67,20
+    LTEXT           "Chipset",IDC_CS_CHIPSET_TEXT,182,71,25,10,SS_CENTERIMAGE | NOT WS_GROUP | WS_TABSTOP
+    RTEXT           "CPU idle",IDC_CS_CPU_TEXT2,236,56,32,10,SS_CENTERIMAGE | WS_TABSTOP
+    CONTROL         "",IDC_CPUIDLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,219,66,69,20
+    GROUPBOX        "Advanced JIT Settings",IDC_STATIC,90,92,205,79
+    RTEXT           "Cache size:",IDC_CS_CACHE_TEXT,95,109,45,10,SS_CENTERIMAGE | WS_TABSTOP
+    CONTROL         "Slider1",IDC_CACHE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,140,104,115,20
+    EDITTEXT        IDC_CACHETEXT,255,109,30,12,ES_CENTER | ES_READONLY
+    CONTROL         "Hard flush",IDC_HARDFLUSH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,128,60,10
+    CONTROL         "Constant jump",IDC_CONSTJUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,142,60,10
+    CONTROL         "FPU support",IDC_JITFPU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,155,60,10
+    CONTROL         "Force settings",IDC_FORCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,128,61,10
+    CONTROL         "No flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,142,60,10
+    CONTROL         "Direct",IDC_TRUST0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,230,128,34,10
+    CONTROL         "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,230,142,45,10
+    CONTROL         "After RTG",IDC_TRUST2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,230,155,64,10
+    CONTROL         "More accurate FPU [] More compatible but slower FPU emulation.",IDC_COMPATIBLE_FPU,
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,137,73,10
+END
+
+IDD_FLOPPY DIALOGEX 0, 0, 300, 240
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    RTEXT           "DF0:",IDC_STATIC,10,7,20,10,SS_CENTERIMAGE
+    COMBOBOX        IDC_DF0TEXT,2,22,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_DF0TYPE,123,6,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Write-protected",IDC_STATIC,174,8,59,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_DF0WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,4,10,15
+    PUSHBUTTON      "Eject",IDC_EJECT0,253,4,30,15
+    PUSHBUTTON      "...",IDC_DF0,287,4,10,15
+    RTEXT           "DF1:",IDC_STATIC,10,42,20,10,SS_CENTERIMAGE
+    COMBOBOX        IDC_DF1TEXT,2,58,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_DF1TYPE,123,42,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Write-protected",IDC_STATIC,174,43,59,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_DF1WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,40,10,15
+    PUSHBUTTON      "Eject",IDC_EJECT1,253,40,30,15
+    PUSHBUTTON      "...",IDC_DF1,287,40,10,15
+    RTEXT           "DF2:",IDC_STATIC,10,77,20,10,SS_CENTERIMAGE
+    COMBOBOX        IDC_DF2TEXT,2,93,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_DF2TYPE,123,77,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Write-protected",IDC_STATIC,174,77,59,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_DF2WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,75,9,15
+    PUSHBUTTON      "Eject",IDC_EJECT2,253,75,30,15
+    PUSHBUTTON      "...",IDC_DF2,287,75,10,15
+    RTEXT           "DF3:",IDC_STATIC,10,112,20,9,SS_CENTERIMAGE
+    COMBOBOX        IDC_DF3TEXT,2,128,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_DF3TYPE,123,112,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Write-protected",IDC_STATIC,174,113,59,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_DF3WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,111,9,15
+    PUSHBUTTON      "Eject",IDC_EJECT3,253,110,30,15
+    PUSHBUTTON      "...",IDC_DF3,287,109,10,15
+    GROUPBOX        "New Floppy Disk Image",IDC_SETTINGSTEXT,5,183,289,49
+    COMBOBOX        IDC_FLOPPYTYPE,16,196,51,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Create Standard Disk [] Creates a standard 880 or 1760 KB ADF disk image.",IDC_CREATE,76,196,97,15
+    PUSHBUTTON      "Create Custom Disk [] Creates a low level (MFM) ADF disk image (about 2MB). Useful for programs that use non-standard disk formats (for example some save disks or DOS-formatted floppies)",IDC_CREATE_RAW,183,196,101,15
+    GROUPBOX        "Floppy Drive Emulation Speed",IDC_SETTINGSTEXT2,5,144,289,35
+    CONTROL         "",IDC_FLOPPYSPD,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,32,152,116,20
+    EDITTEXT        IDC_FLOPPYSPDTEXT,169,155,107,12,ES_CENTER | ES_READONLY
+    PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE0,43,5,70,15,NOT WS_VISIBLE
+    PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE1,43,40,70,15,NOT WS_VISIBLE
+    PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE2,43,75,70,15,NOT WS_VISIBLE
+    PUSHBUTTON      "Delete save image",IDC_SAVEIMAGE3,43,110,70,15,NOT WS_VISIBLE
+    EDITTEXT        IDC_CREATE_NAME,75,215,98,13,ES_AUTOHSCROLL
+    RTEXT           "Disk label:",IDC_STATIC,14,216,52,10,SS_CENTERIMAGE
+END
+
+IDD_HARDDISK DIALOGEX 0, 0, 300, 231
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+EXSTYLE WS_EX_CONTEXTHELP
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    CONTROL         "List1",IDC_VOLUMELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,0,290,182
+    PUSHBUTTON      "Add &Directory...",IDC_NEW_FS,5,186,60,15
+    PUSHBUTTON      "Add &Hardfile...",IDC_NEW_HF,70,186,60,15
+    PUSHBUTTON      "Add Ha&rd Drive...",IDC_NEW_HD,135,186,60,15
+    PUSHBUTTON      "Remove",IDC_REMOVE,235,186,60,15
+    PUSHBUTTON      "&Properties",IDC_EDIT,235,207,60,15
+    CONTROL         "Add PC drives at startup",IDC_MAPDRIVES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,205,100,10
+    CONTROL         "Disable UAEFSDB-support",IDC_NOUAEFSDB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,205,115,10
+    CONTROL         "Don't use Windows Recycle Bin",IDC_NORECYCLEBIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,216,115,10
+    CONTROL         "Include network drives",IDC_MAPDRIVES_NET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,216,101,10
+END
+
+IDD_SOUND DIALOGEX 0, 0, 300, 231
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    RTEXT           "Sound device:",IDC_SOUNDCARD,8,9,51,13,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDCARDLIST,64,9,229,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "Sound Emulation",IDC_SOUNDSETTINGS,5,30,120,81
+    CONTROL         "Disabled",IDC_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,45,43,10
+    CONTROL         "Disabled, but emulated",IDC_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,57,88,10
+    CONTROL         "Enabled",IDC_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,69,42,10
+    CONTROL         "Enabled, 100% accurate",IDC_SOUND3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,81,93,10
+    GROUPBOX        "Volume",IDC_STATIC,131,36,164,31
+    CONTROL         "",IDC_SOUNDVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,137,44,105,20
+    EDITTEXT        IDC_SOUNDVOLUME2,247,47,40,12,ES_CENTER | ES_READONLY
+    GROUPBOX        "Sound Buffer Size",IDC_STATIC,132,73,164,31
+    CONTROL         "Slider1",IDC_SOUNDBUFFERRAM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,138,81,106,19
+    EDITTEXT        IDC_SOUNDBUFFERMEM,248,84,40,12,ES_CENTER | ES_READONLY
+    GROUPBOX        "Settings",IDC_SOUNDINTERPOLATION2,6,114,290,60
+    LTEXT           "Frequency:",IDC_SOUNDFREQTXT,11,124,37,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDFREQ,13,133,51,75,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Audio filter:",IDC_SOUNDFILTERTXT,209,148,34,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDFILTER,209,157,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Stereo mode:",IDC_SOUNDSTEREOTXT,74,124,41,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDSTEREO,73,133,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,209,124,41,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDINTERPOLATION,209,132,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Stereo separation:",IDC_SOUNDSTEREOSEPTXT,141,124,56,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDSTEREOSEP,142,133,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Stereo mixing delay:",IDC_SOUNDSTEREOMIXTXT,141,148,63,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDSTEREOMIX,142,157,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "Floppy Drive Sound Emulation",IDC_STATIC,6,177,290,46
+    CONTROL         "",IDC_SOUNDDRIVEVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,14,185,107,19
+    EDITTEXT        IDC_SOUNDDRIVEVOLUME2,124,191,40,12,ES_CENTER | ES_READONLY
+    COMBOBOX        IDC_SOUNDDRIVE,237,187,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_SOUNDDRIVESELECT,18,205,265,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_SOUNDSWAP,73,157,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Swap channels:",IDC_SOUNDSWAPTXT,74,148,50,8,SS_CENTERIMAGE
+    CONTROL         "Automatic switching",IDC_SOUND_AUTO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,14,95,103,10
+END
+
+IDD_LOADSAVE DIALOGEX 0, 0, 302, 241
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    CONTROL         "",IDC_CONFIGTREE,"SysTreeView32",TVS_HASLINES | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,6,3,289,153,WS_EX_CLIENTEDGE
+    RTEXT           "Name:",IDC_STATIC,0,161,40,15,SS_CENTERIMAGE
+    EDITTEXT        IDC_EDITNAME,44,162,150,13,ES_AUTOHSCROLL
+    RTEXT           "Description:",IDC_STATIC,4,183,37,15,SS_CENTERIMAGE
+    EDITTEXT        IDC_EDITDESCRIPTION,44,183,150,13,ES_AUTOHSCROLL
+    RTEXT           "Link:",IDC_STATIC,0,204,40,15,SS_CENTERIMAGE
+    COMBOBOX        IDC_CONFIGLINK,44,205,97,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "Ignore link",IDC_CONFIGNOLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,146,206,48,10
+    EDITTEXT        IDC_EDITPATH,199,161,49,15,ES_AUTOHSCROLL | WS_DISABLED
+    CONTROL         "Autoload",IDC_CONFIGAUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,253,163,42,10
+    GROUPBOX        "Additional Information",IDC_STATIC,199,179,96,38,BS_LEFT
+    PUSHBUTTON      "View",IDC_VIEWINFO,210,195,35,15
+    PUSHBUTTON      "Set",IDC_SETINFO,250,195,35,15
+    PUSHBUTTON      "Load",IDC_QUICKLOAD,5,225,40,15
+    PUSHBUTTON      "Save",IDC_QUICKSAVE,50,225,40,15
+    PUSHBUTTON      "Load From...",IDC_LOAD,125,225,45,15
+    PUSHBUTTON      "Delete",IDC_DELETE,255,225,40,15
+    PUSHBUTTON      "Save As...",IDC_SAVE,175,225,40,15
+END
+
+IDD_PORTS DIALOGEX 0, 0, 300, 238
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Parallel Port",IDC_SERPARFRAME,5,2,291,68
+    RTEXT           "Printer:",IDC_STATIC,12,15,25,15,SS_CENTERIMAGE
+    COMBOBOX        IDC_PRINTERLIST,49,15,153,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Flush print job",IDC_FLUSHPRINTER,220,14,58,12
+    CONTROL         "PostScript detection",IDC_PSPRINTERDETECT,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,11,33,78,12
+    CONTROL         "PostScript printer emulation",IDC_PSPRINTER,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,93,33,100,12
+    RTEXT           "Autoflush timeout [] Time in seconds after a pending print job is automatically flushed.",IDC_PRINTERAUTOFLUSHTXT,202,32,57,15,SS_NOTIFY | SS_CENTERIMAGE
+    EDITTEXT        IDC_PRINTERAUTOFLUSH,263,33,25,12,ES_NUMBER
+    RTEXT           "Ghostscript extra parameters:",IDC_STATIC,12,49,91,15,SS_CENTERIMAGE
+    EDITTEXT        IDC_PS_PARAMS,120,50,169,12,ES_AUTOHSCROLL
+    GROUPBOX        "Serial Port",IDC_SERIALFRAME,4,72,292,48
+    COMBOBOX        IDC_SERIAL,49,84,232,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "Shared",IDC_SER_SHARED,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,11,102,48,13
+    CONTROL         "RTS/CTS",IDC_SER_CTSRTS,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,65,102,55,12
+    GROUPBOX        "MIDI",IDC_MIDIFRAME,4,123,292,33
+    RTEXT           "Out:",IDC_MIDI,10,134,34,15,SS_CENTERIMAGE
+    COMBOBOX        IDC_MIDIOUTLIST,50,134,95,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "In:",IDC_MIDI2,150,134,29,15,SS_CENTERIMAGE
+    COMBOBOX        IDC_MIDIINLIST,185,134,95,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "Mouse/Joystick Ports",IDC_PORT0,4,158,292,75
+    COMBOBOX        IDC_PORT0_JOYS,45,174,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_PORT1_JOYS,45,195,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Swap ports",IDC_SWAP,211,214,75,14
+    RTEXT           "Port 0:",IDC_STATIC,11,173,25,15,SS_CENTERIMAGE
+    RTEXT           "Port 1:",IDC_STATIC,11,194,25,15,SS_CENTERIMAGE
+    LTEXT           "X-Arcade layout information []#1",IDC_STATIC,16,213,106,15,SS_NOTIFY | SS_CENTERIMAGE
+    CONTROL         "Direct []Use when emulating serial-link games on two PCs running WinUAE",IDC_SER_DIRECT,
+                    "Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,132,103,65,12
+    CONTROL         "uaeserial.device",IDC_UAESERIAL,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,207,103,78,13
+END
+
+IDD_CONTRIBUTORS DIALOGEX 0, 0, 411, 242
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION
+CAPTION "UAE Authors and Contributors..."
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    DEFPUSHBUTTON   "Ok",ID_OK,177,219,53,14
+    CONTROL         "",IDC_CONTRIBUTORS,"RICHEDIT",TCS_HOTTRACK | TCS_VERTICAL | TCS_RAGGEDRIGHT | TCS_OWNERDRAWFIXED | TCS_MULTISELECT | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,4,5,404,206
+END
+
+IDD_ABOUT DIALOGEX 0, 0, 300, 191
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    CONTROL         "",IDC_RICHEDIT1,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,45,10,210,15
+    CONTROL         "",IDC_RICHEDIT2,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,30,260,13
+    PUSHBUTTON      "Contributors",IDC_CONTRIBUTORS,110,55,80,15
+    CONTROL         "",IDC_UAEHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,120,80,15
+    CONTROL         "",IDC_PICASSOHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,90,80,20
+    CONTROL         "",IDC_AMIGAHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,109,90,80,20
+    CONTROL         "",IDC_WINUAEHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,120,80,15
+    CONTROL         "",IDC_AIABHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,110,120,80,15
+    CONTROL         "",IDC_THEROOTS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,145,80,15
+    CONTROL         "",IDC_CAPS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,145,80,15
+    CONTROL         "",IDC_ABIME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,110,145,80,15
+    CONTROL         "",IDC_CLOANTOHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,90,80,20
+    CONTROL         "",IDC_AMIGASYS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,63,169,80,15
+    CONTROL         "",IDC_AMIKIT,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,157,169,80,15
+END
+
+IDD_MISC1 DIALOGEX 0, 0, 300, 237
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced",IDC_STATIC,8,2,285,110
+    CONTROL         "Untrap mouse with middle button",IDC_JULIAN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,15,120,10
+    CONTROL         "Show GUI on startup",IDC_SHOWGUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,27,120,10
+    CONTROL         "On-screen LEDs",IDC_SHOWLEDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,40,115,10
+    CONTROL         "uaescsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,53,117,10
+    CONTROL         "Don't show taskbar button",IDC_NOTASKBARBUTTON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,66,117,10
+    CONTROL         "bsdsocket.library emulation",IDC_SOCKETS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,15,120,10
+    CONTROL         "Use CTRL-F11 to quit",IDC_CTRLF11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,27,120,10
+    CONTROL         "Don't use RGB overlays",IDC_NOOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,40,120,10
+    CONTROL         "Synchronize clock",IDC_CLOCKSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,66,115,10
+    GROUPBOX        "Keyboard LEDs",IDC_STATIC,7,140,85,94
+    COMBOBOX        IDC_KBLED1,22,154,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_KBLED2,22,173,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_KBLED3,22,193,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "Logging",IDC_STATIC,97,140,195,25
+    CONTROL         "Create log file",IDC_CREATELOGFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,151,72,10
+    CONTROL         "Illegal memory accesses",IDC_ILLEGAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,189,151,95,10
+    GROUPBOX        "State Files",IDC_STATIC,98,165,195,69
+    PUSHBUTTON      "Load state...",IDC_DOLOADSTATE,105,182,49,14
+    PUSHBUTTON      "Save state...",IDC_DOSAVESTATE,105,208,49,14
+    CONTROL         "Enable state recording",IDC_STATE_CAPTURE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,188,181,88,10
+    RTEXT           "Recording rate (seconds):",IDC_STATIC,157,199,86,10,SS_CENTERIMAGE | WS_TABSTOP
+    COMBOBOX        IDC_STATE_RATE,248,197,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Recording buffer (MB):",IDC_STATIC,157,219,83,10,SS_CENTERIMAGE | WS_TABSTOP
+    COMBOBOX        IDC_STATE_BUFFERSIZE,248,217,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "Always on top",IDC_ALWAYSONTOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,79,117,10
+    CONTROL         "Catweasel",IDC_CATWEASEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,79,115,10
+    CONTROL         "USB mode",IDC_KBLED_USB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,216,64,10
+    COMBOBOX        IDC_SCSIMODE,159,51,104,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_LANGUAGE,103,121,179,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "Language",IDC_STATIC,7,112,285,25
+    CONTROL         "Disable powersaving features",IDC_POWERSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,92,117,10
+    CONTROL         "Magic Mouse",IDC_MOUSETRICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,92,119,10
+END
+
+IDD_HARDFILE DIALOGEX 0, 0, 299, 212
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Hardfile Settings"
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    GROUPBOX        "Settings",IDC_STATIC,10,5,280,113
+    RTEXT           "Path:",IDC_HARDFILE_DIR_TEXT,26,18,22,10
+    EDITTEXT        IDC_PATH_NAME,52,15,213,15,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_SELECTOR,271,15,11,15
+    RTEXT           "FileSys:",IDC_HARDFILE_FILESYS_TEXT,14,37,34,10
+    EDITTEXT        IDC_PATH_FILESYS,52,34,213,15,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_FILESYS_SELECTOR,271,34,11,15
+    RTEXT           "Device:",IDC_HARDFILE_DEVICE_TEXT,17,58,31,10
+    EDITTEXT        IDC_HARDFILE_DEVICE,52,54,40,15,ES_AUTOHSCROLL
+    RTEXT           "Boot priority:",IDC_HARDFILE_BOOTPRI_TEXT,15,101,44,8
+    EDITTEXT        IDC_HARDFILE_BOOTPRI,65,96,40,15
+    CONTROL         "Read/write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,57,50,10
+    PUSHBUTTON      "Enable RDB mode",IDC_HDF_RDB,192,55,92,14
+    RTEXT           "Surfaces:",IDC_SURFACES_TEXT,112,79,30,10
+    EDITTEXT        IDC_HEADS,147,75,35,15,ES_NUMBER
+    RTEXT           "Reserved:",IDC_RESERVED_TEXT,197,79,35,10
+    EDITTEXT        IDC_RESERVED,237,75,35,15,ES_NUMBER
+    RTEXT           "Sectors:",IDC_SECTORS_TEXT,112,101,30,10
+    EDITTEXT        IDC_SECTORS,147,96,35,15,ES_NUMBER
+    RTEXT           "Block size:",IDC_BLOCKSIZE_TEXT,197,101,35,10
+    EDITTEXT        IDC_BLOCKSIZE,237,96,35,15,ES_NUMBER
+    GROUPBOX        "New hard disk image file",IDC_STATIC,10,120,280,62
+    PUSHBUTTON      "Create",IDC_HF_CREATE,50,135,80,14
+    EDITTEXT        IDC_HF_SIZE,146,135,61,15,ES_NUMBER
+    PUSHBUTTON      "OK",IDOK,102,191,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,158,191,50,14
+    EDITTEXT        IDC_HF_DOSTYPE,146,158,61,15
+    COMBOBOX        IDC_HF_TYPE,50,158,80,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "DOS type",IDC_STATIC,212,160,30,10,SS_CENTERIMAGE
+    RTEXT           "MB",IDC_STATIC,212,138,11,10,SS_CENTERIMAGE
+    RTEXT           "Type:",IDC_STATIC,18,160,25,10,SS_CENTERIMAGE
+END
+
+IDD_FILESYS DIALOGEX 15, 25, 299, 111
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Volume Settings"
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    LTEXT           "Device name:",-1,5,9,54,10
+    EDITTEXT        IDC_VOLUME_DEVICE,65,5,86,15,ES_AUTOHSCROLL
+    LTEXT           "Volume label:",-1,5,31,54,10
+    EDITTEXT        IDC_VOLUME_NAME,65,25,85,15,ES_AUTOHSCROLL
+    LTEXT           "Path:",-1,5,51,44,10
+    EDITTEXT        IDC_PATH_NAME,65,46,213,15,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_SELECTOR,283,46,10,15
+    CONTROL         "Read/write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,72,70,50,10
+    RTEXT           "Boot priority:",IDC_VOLUME_BOOTPRI_TEXT,135,70,51,8
+    EDITTEXT        IDC_VOLUME_BOOTPRI,199,68,27,15
+    PUSHBUTTON      "OK",IDOK,120,91,48,15
+    PUSHBUTTON      "Cancel",IDCANCEL,175,91,48,15
+END
+
+IDD_SETINFO DIALOGEX 0, 0, 229, 85
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Additional Information Settings"
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    RTEXT           "Path:",-1,5,20,24,15,SS_CENTERIMAGE
+    EDITTEXT        IDC_PATH_NAME,35,20,169,15,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_SELECTOR,210,20,10,15
+    PUSHBUTTON      "OK",IDOK,120,65,48,15
+    PUSHBUTTON      "Cancel",IDCANCEL,175,65,48,15
+END
+
+IDD_CHIPSET DIALOGEX 0, 65490, 300, 229
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    GROUPBOX        "Chipset",IDC_STATIC,14,11,145,90
+    CONTROL         "OCS [] Original chipset. A1000 and most A500s.",IDC_OCS,
+                    "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,37,26,51,10
+    CONTROL         "ECS Agnus [] Enhanced chipset (ECS Agnus chip only). Later A500 and A2000 hardware revisions.",IDC_ECS_AGNUS,
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,42,55,10
+    CONTROL         "Full ECS [] Full ECS chipset (ECS Agnus and ECS Denise chips). A500+, A600 and A3000.",IDC_ECS,
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,58,52,10
+    CONTROL         "AGA [] Advanced Graphics Architecture chipset. A1200, A4000 and CD32.",IDC_AGA,
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,26,51,10
+    CONTROL         "NTSC [] North American and Japanese display standard, 60Hz refresh rate. Other countries use PAL (50Hz. display refresh rate)",IDC_NTSC,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,101,58,50,10
+    GROUPBOX        "Options",IDC_STATIC,168,11,114,89
+    CONTROL         "Immediate Blitter [] Faster but less compatible blitter emulation.",IDC_BLITIMM,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,174,30,96,10
+    CONTROL         "Cycle-exact CPU and Blitter [] The most compatible A500 emulation mode. Very fast PC recommended.",IDC_CYCLEEXACT,
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,174,43,100,10
+    GROUPBOX        "Collision Level",IDC_STATIC,14,105,267,48
+    CONTROL         "None [] Collision hardware emulation disabled.",IDC_COLLISION0,
+                    "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,40,121,50,10
+    CONTROL         "Sprites only [] Emulate only sprite vs. sprite collisions.",IDC_COLLISION1,
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,39,137,50,10
+    CONTROL         "Sprites and Sprites vs. Playfield [] Recommended collision emulation level.",IDC_COLLISION2,
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,104,121,161,10
+    CONTROL         "Full [] 100% collision hardware emulation. Only very few games need this option. Slowest.",IDC_COLLISION3,
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,104,137,82,10
+    GROUPBOX        "Sound Emulation",IDC_STATIC,13,159,268,65
+    CONTROL         "Disabled",IDC_CS_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,39,175,102,10
+    CONTROL         "Emulated",IDC_CS_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,39,190,91,10
+    CONTROL         "Emulated, 100% accurate",IDC_CS_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,39,205,95,10
+    CONTROL         "Genlock connected [] Allow boot sequence to detect genlock. Genlock is not emulated.",IDC_GENLOCK,
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,174,56,100,10
+    CONTROL         "Faster RTG [] Enables less accurate custom chipset emulation mode when Picasso96 is enabled.",IDC_FASTERRTG,
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,174,68,100,10
+    COMBOBOX        IDC_CS_EXT,101,80,49,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Chipset Extra",IDC_STATIC,25,79,52,15,SS_CENTERIMAGE
+END
+
+IDD_CHIPSET2 DIALOGEX 0, 65490, 300, 247
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    GROUPBOX        "Advanced Chipset Options",IDC_STATIC,7,6,287,239
+    GROUPBOX        "Battery Backed Up Real Time Clock",IDC_STATIC,14,37,275,29
+    CONTROL         "None",IDC_CS_RTC1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,22,49,55,10
+    CONTROL         "MSM6242B",IDC_CS_RTC2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,91,49,52,10
+    CONTROL         "RF5C01A",IDC_CS_RTC3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,160,49,46,10
+    EDITTEXT        IDC_CS_RTCADJUST,218,47,64,13,ES_AUTOHSCROLL
+    GROUPBOX        "CIA-A TOD Clock Source",IDC_STATIC,12,69,275,29
+    CONTROL         "Vertical Sync",IDC_CS_CIAA_TOD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,25,81,63,10
+    CONTROL         "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,95,81,85,10
+    CONTROL         "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,192,81,88,10
+    CONTROL         "Boot ROM Mirror",IDC_CS_KSMIRROR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,128,80,10
+    CONTROL         "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,128,86,10
+    CONTROL         "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,141,76,10
+    CONTROL         "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,141,85,10
+    CONTROL         "CD32 NVRAM",IDC_CS_CD32NVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,141,84,10
+    CONTROL         "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,154,47,10
+    CONTROL         "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,153,85,10
+    CONTROL         "CDTV SRAM Expansion",IDC_CS_CDTVRAMEXP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,153,90,10
+    CONTROL         "A600/A1200 IDE",IDC_CS_IDE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,166,79,10
+    CONTROL         "A4000 IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,166,84,10
+    CONTROL         "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,201,71,10
+    EDITTEXT        IDC_CS_RAMSEYREV,94,199,45,13,ES_AUTOHSCROLL
+    CONTROL         "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,214,71,10
+    EDITTEXT        IDC_CS_FATGARYREV,94,213,45,13,ES_AUTOHSCROLL
+    CONTROL         "Motherboard Super DMAC",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,227,118,10
+    CONTROL         "Compatible Settings",IDC_CS_COMPATIBLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,21,234,10
+    CONTROL         "DF0: ID Hardware",IDC_CS_DF0IDHW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,128,92,10
+    CONTROL         "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,150,201,81,10
+    EDITTEXT        IDC_CS_AGNUSREV,235,199,45,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
+    CONTROL         "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,150,214,81,10
+    EDITTEXT        IDC_CS_DENISEREV,235,213,45,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
+END
+
+IDD_AVIOUTPUT DIALOGEX 0, 0, 288, 203
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Output Properties",IDC_STATIC,5,8,274,118
+    EDITTEXT        IDC_AVIOUTPUT_FILETEXT,15,21,226,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_CLIENTEDGE
+    PUSHBUTTON      "...",IDC_AVIOUTPUT_FILE,249,20,19,12
+    CONTROL         "Audio",IDC_AVIOUTPUT_AUDIO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,36,32,11
+    CONTROL         "",IDC_AVIOUTPUT_AUDIO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,36,209,11
+    CONTROL         "Video",IDC_AVIOUTPUT_VIDEO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,50,32,11
+    CONTROL         "",IDC_AVIOUTPUT_VIDEO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,50,209,11
+    CONTROL         "Disable frame rate limit while recording",IDC_AVIOUTPUT_FRAMELIMITER,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,68,136,10
+    CONTROL         "AVI output enabled",IDC_AVIOUTPUT_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,15,103,108,14
+    CONTROL         "PAL",IDC_AVIOUTPUT_PAL,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,133,103,66,14
+    CONTROL         "NTSC",IDC_AVIOUTPUT_NTSC,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,204,103,66,14
+    CONTROL         "Slider1",IDC_AVIOUTPUT_FPS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_TABSTOP,156,84,97,11
+    LTEXT           "fps",IDC_AVIOUTPUT_FPS_STATIC,255,84,19,8
+    PUSHBUTTON      "Save screenshot",IDC_SCREENSHOT,16,141,76,14
+    GROUPBOX        "Ripper",IDC_STATIC,5,127,274,38
+    PUSHBUTTON      "Pro Wizard",IDC_PROWIZARD,100,141,76,14,WS_DISABLED
+    CONTROL         "Sample ripper",IDC_SAMPLERIPPER_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,141,77,14
+    GROUPBOX        "Input Recorder",IDC_STATIC,5,166,274,33
+    CONTROL         "Record",IDC_INPREC_RECORD,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,191,177,77,14
+    CONTROL         "Playback",IDC_INPREC_PLAY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,16,178,77,14
+    CONTROL         "Alt. playback mode",IDC_INPREC_PLAYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,180,78,10
+    CONTROL         "Disable sound output while recording",IDC_AVIOUTPUT_NOSOUNDOUTPUT,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,85,136,10
+END
+
+IDD_INPUT DIALOGEX 0, 0, 300, 242
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    COMBOBOX        IDC_INPUTTYPE,5,5,98,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_INPUTDEVICE,109,5,167,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "",IDC_INPUTDEVICEDISABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,282,8,9,8
+    CONTROL         "List1",IDC_INPUTLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,22,290,146
+    COMBOBOX        IDC_INPUTAMIGACNT,5,174,24,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_INPUTAMIGA,33,174,262,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Joystick dead zone (%):",-1,8,196,76,10,SS_CENTERIMAGE
+    EDITTEXT        IDC_INPUTDEADZONE,89,195,25,12,ES_NUMBER
+    RTEXT           "Autofire rate (frames):",-1,9,212,68,10,SS_CENTERIMAGE
+    EDITTEXT        IDC_INPUTAUTOFIRERATE,89,210,25,12,ES_NUMBER
+    RTEXT           "Digital joy-mouse speed:",-1,121,196,76,10,SS_CENTERIMAGE
+    EDITTEXT        IDC_INPUTSPEEDD,207,195,25,12,ES_NUMBER
+    RTEXT           "Analog joy-mouse speed:",-1,120,212,80,10,SS_CENTERIMAGE
+    EDITTEXT        IDC_INPUTSPEEDA,207,211,25,12,ES_NUMBER
+    RTEXT           "Mouse speed:",-1,132,228,68,10,SS_CENTERIMAGE
+    EDITTEXT        IDC_INPUTSPEEDM,207,227,25,12,ES_NUMBER
+    PUSHBUTTON      "Copy from:",IDC_INPUTCOPY,249,195,45,14
+    COMBOBOX        IDC_INPUTCOPYFROM,249,211,45,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Swap 1<>2",IDC_INPUTSWAP,249,226,45,14
+END
+
+IDD_FILTER DIALOGEX 0, 0, 296, 224
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Filter Settings",-1,0,0,294,186
+    CONTROL         "Enable",IDC_FILTERENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,26,17,38,10
+    COMBOBOX        IDC_FILTERMODE,67,15,56,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_FILTERFILTER,128,15,65,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Reset to defaults",IDC_FILTERDEFAULT,197,15,73,14
+    RTEXT           "Horizontal size:",-1,9,44,59,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_FILTERHZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,37,142,19
+    EDITTEXT        IDC_FILTERHZV,253,40,34,12,ES_CENTER | ES_READONLY
+    RTEXT           "Vertical size:",-1,10,64,59,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_FILTERVZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,57,142,19
+    EDITTEXT        IDC_FILTERVZV,253,59,34,12,ES_CENTER | ES_READONLY
+    RTEXT           "Horizontal position:",-1,10,84,59,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_FILTERHO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,77,141,19
+    EDITTEXT        IDC_FILTERHOV,253,79,34,12,ES_CENTER | ES_READONLY
+    RTEXT           "Vertical position:",-1,10,103,59,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_FILTERVO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,108,99,141,19
+    EDITTEXT        IDC_FILTERVOV,253,101,34,12,ES_CENTER | ES_READONLY
+    RTEXT           "Scanlines:",-1,27,133,57,10,SS_CENTERIMAGE
+    CONTROL         "Slider1",IDC_FILTERSL,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,94,126,157,19
+    EDITTEXT        IDC_FILTERSLV,253,128,34,12,ES_CENTER | ES_READONLY
+    COMBOBOX        IDC_FILTERSLR,56,146,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "Slider1",IDC_FILTERSL2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,94,146,157,19
+    EDITTEXT        IDC_FILTERSL2V,253,151,34,12,ES_CENTER | ES_READONLY
+    GROUPBOX        "Presets",-1,0,187,296,36
+    COMBOBOX        IDC_FILTERPRESETS,8,201,119,150,CBS_DROPDOWN | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Load",IDC_FILTERPRESETLOAD,132,200,47,14
+    PUSHBUTTON      "Save",IDC_FILTERPRESETSAVE,184,200,47,14
+    PUSHBUTTON      "Delete",IDC_FILTERPRESETDELETE,236,200,47,14
+    COMBOBOX        IDC_FILTERHZMULT,77,43,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_FILTERVZMULT,77,63,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "Autoscale",IDC_FILTERAUTORES,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,26,168,63,10
+END
+
+IDD_HARDDRIVE DIALOGEX 0, 0, 380, 66
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Harddrive Settings"
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    LTEXT           "Hard drive:",-1,7,11,35,10
+    COMBOBOX        IDC_HARDDRIVE,49,9,325,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "Read/write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,245,33,50,10
+    DEFPUSHBUTTON   "Add hard drive",IDOK,176,30,57,14
+    PUSHBUTTON      "Cancel",IDCANCEL,321,30,54,14
+    DEFPUSHBUTTON   "Create hard disk image file",IDC_HARDDRIVE_IMAGE,49,30,95,14
+    EDITTEXT        IDC_PATH_NAME,89,49,169,15,ES_AUTOHSCROLL | NOT WS_VISIBLE
+END
+
+IDD_MISC2 DIALOGEX 0, 0, 300, 92
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "When Active",IDC_STATIC,8,7,88,73
+    RTEXT           "Run at priority:",IDC_ACTIVE_PRI,14,17,45,10,SS_CENTERIMAGE | WS_TABSTOP
+    COMBOBOX        IDC_ACTIVE_PRIORITY,14,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "When Inactive",IDC_STATIC,102,7,92,73
+    RTEXT           "Run at priority:",IDC_INACTIVE_PRI,109,17,45,10,SS_CENTERIMAGE | WS_TABSTOP
+    COMBOBOX        IDC_INACTIVE_PRIORITY,109,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "Pause emulation",IDC_INACTIVE_PAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,50,69,10
+    CONTROL         "Disable sound output",IDC_INACTIVE_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,63,79,10
+    GROUPBOX        "When Minimized",IDC_STATIC,199,7,92,73
+    RTEXT           "Run at priority:",IDC_MINIMIZED_PRI,207,18,45,10,SS_CENTERIMAGE | WS_TABSTOP
+    COMBOBOX        IDC_MINIMIZED_PRIORITY,207,30,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "Pause emulation",IDC_MINIMIZED_PAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,50,69,10
+    CONTROL         "Disable sound output",IDC_MINIMIZED_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,63,79,10
+END
+
+IDD_DISK DIALOGEX 0, 0, 300, 242
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_CONTROL | DS_CENTER | DS_CENTERMOUSE | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    CONTROL         "",IDC_DISKLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,4,6,292,196
+    PUSHBUTTON      "Remove floppy disk image",IDC_DISKLISTREMOVE,153,223,93,15
+    COMBOBOX        IDC_DISKTEXT,3,205,293,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Insert floppy disk image",IDC_DISKLISTINSERT,38,223,93,15
+END
+
+IDD_PANEL DIALOGEX 0, 0, 420, 278
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_ACCEPTFILES | WS_EX_CONTROLPARENT
+CAPTION "WinUAE Properties"
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    GROUPBOX        "",IDC_PANEL_FRAME,112,4,303,247,NOT WS_VISIBLE
+    CONTROL         "",IDC_PANELTREE,"SysTreeView32",TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_NOSCROLL | WS_BORDER | WS_TABSTOP,5,5,101,248,WS_EX_CLIENTEDGE
+    GROUPBOX        "",IDC_PANEL_FRAME_OUTER,110,2,307,251
+    PUSHBUTTON      "Reset",IDC_RESETAMIGA,6,259,47,14
+    PUSHBUTTON      "Quit",IDC_QUITEMU,57,259,47,14
+    DEFPUSHBUTTON   "OK",IDOK,260,259,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,313,259,50,14
+    PUSHBUTTON      "Help",IDHELP,366,259,50,14,WS_DISABLED
+END
+
+IDD_PATHS DIALOGEX 0, 0, 300, 237
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    LTEXT           "System ROMs:",IDC_PATHS_ROML,14,9,260,8,SS_CENTERIMAGE
+    EDITTEXT        IDC_PATHS_ROM,14,22,261,15,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_PATHS_ROMS,281,22,11,15
+    LTEXT           "Configuration files:",IDC_PATHS_CONFIGL,14,40,260,8,SS_CENTERIMAGE
+    EDITTEXT        IDC_PATHS_CONFIG,14,52,261,15,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_PATHS_CONFIGS,281,52,11,15
+    LTEXT           "Screenshots:",IDC_PATHS_SCREENSHOTL,14,71,260,8,SS_CENTERIMAGE
+    EDITTEXT        IDC_PATHS_SCREENSHOT,14,83,261,15,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_PATHS_SCREENSHOTS,281,83,11,15
+    LTEXT           "State files:",IDC_PATHS_STATEFILEL,14,102,260,8,SS_CENTERIMAGE
+    EDITTEXT        IDC_PATHS_SAVESTATE,14,114,261,15,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_PATHS_SAVESTATES,281,114,11,15
+    LTEXT           "Videos:",IDC_PATHS_AVIOUTPUTL,14,132,260,8,SS_CENTERIMAGE
+    EDITTEXT        IDC_PATHS_AVIOUTPUT,14,144,261,15,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_PATHS_AVIOUTPUTS,282,144,11,15
+    LTEXT           "Saveimages:",IDC_PATHS_SAVEIMAGEL,14,163,260,8,SS_CENTERIMAGE
+    EDITTEXT        IDC_PATHS_SAVEIMAGE,14,175,261,15,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_PATHS_SAVEIMAGES,281,175,11,15
+    PUSHBUTTON      "Reset to defaults",IDC_PATHS_DEFAULT,14,199,92,14
+    PUSHBUTTON      "Rescan ROMs",IDC_ROM_RESCAN,14,218,92,14
+    PUSHBUTTON      "Clear registry",IDC_RESETREGISTRY,112,218,77,14
+    COMBOBOX        IDC_PATHS_DEFAULTTYPE,112,199,163,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Clear disk history",IDC_RESETDISKHISTORY,198,218,77,14
+END
+
+IDD_QUICKSTART DIALOGEX 0, 0, 300, 242
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Emulated Hardware",IDC_QUICKSTART_CONFIG,3,0,294,54
+    RTEXT           "Model:",IDC_STATIC,5,14,56,10,SS_CENTERIMAGE
+    COMBOBOX        IDC_QUICKSTART_MODEL,65,12,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Configuration:",IDC_STATIC,5,33,56,10,SS_CENTERIMAGE
+    COMBOBOX        IDC_QUICKSTART_CONFIGURATION,65,31,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "Compatibility vs Required CPU Power ",IDC_QUICKSTART_COMPA,3,56,294,33
+    RTEXT           "Best compatibility",IDC_STATIC,13,70,67,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_QUICKSTART_COMPATIBILITY,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,65,115,21
+    RTEXT           "Low compatibility",IDC_STATIC,215,70,63,10,SS_CENTERIMAGE
+    GROUPBOX        "Host Configuration",IDC_QUICKSTART_HOST,3,91,294,33
+    RTEXT           "Configuration:",IDC_STATIC,5,105,55,10,SS_CENTERIMAGE
+    COMBOBOX        IDC_QUICKSTART_HOSTCONFIG,65,103,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "Emulated Floppy Drives",IDC_QUICKSTART_DF,3,126,294,84
+    LTEXT           "Floppy drive DF0:",IDC_STATIC,10,138,56,10,SS_CENTERIMAGE
+    PUSHBUTTON      "Select disk image",IDC_DF0QQ,77,135,98,15
+    RTEXT           "Write-protected",IDC_STATIC,180,139,58,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_DF0WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,245,137,10,15
+    PUSHBUTTON      "Eject",IDC_EJECT0Q,260,136,30,15
+    COMBOBOX        IDC_DF0TEXTQ,9,154,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Floppy drive DF1:",IDC_STATIC,10,176,56,10,SS_CENTERIMAGE
+    PUSHBUTTON      "Select disk image",IDC_DF1QQ,77,172,98,15
+    RTEXT           "Write-protected",IDC_STATIC,180,175,58,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_DF1WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,245,173,10,15
+    PUSHBUTTON      "Eject",IDC_EJECT1Q,260,172,30,15
+    COMBOBOX        IDC_DF1TEXTQ,9,190,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Set configuration",IDC_QUICKSTART_SETCONFIG,9,219,72,15,NOT WS_VISIBLE
+    GROUPBOX        "Mode",IDC_STATIC,190,211,107,27,BS_LEFT
+    CONTROL         "Start in Quickstart mode",IDC_QUICKSTARTMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,199,222,94,10
+END
+
+IDD_FRONTEND DIALOGEX 0, 0, 420, 242
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    CONTROL         "",IDC_FE_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,6,9,235,124
+    GROUPBOX        "",IDC_FE_INFO,249,140,160,95
+    GROUPBOX        "",IDC_FE_SCREENSHOT,249,7,160,128
+END
+
+IDD_PROGRESSBAR DIALOGEX 0, 0, 229, 58
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Processing..."
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    PUSHBUTTON      "Cancel",IDCANCEL,88,40,50,14
+    CONTROL         "",IDC_PROGRESSBAR,"msctls_progress32",WS_BORDER | 0x1,7,19,215,14
+    CTEXT           "x",IDC_PROGRESSBAR_TEXT,23,5,187,10,SS_CENTERIMAGE | WS_TABSTOP
+END
+
+IDD_STRINGBOX DIALOGEX 0, 0, 229, 58
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Enter text..."
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+    DEFPUSHBUTTON   "OK",IDOK,48,39,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,151,39,50,14
+    EDITTEXT        IDC_STRINGBOXEDIT,7,17,214,14,ES_AUTOHSCROLL | ES_WANTRETURN
+    CTEXT           "Custom input event",IDC_STRINGBOX_TEXT,23,5,187,10,SS_CENTERIMAGE | WS_TABSTOP
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_APPICON             ICON                    "winuae.ico"
+IDI_FLOPPY              ICON                    "35floppy.ico"
+IDI_ABOUT               ICON                    "amigainfo.ico"
+IDI_HARDDISK            ICON                    "Drive.ico"
+IDI_CPU                 ICON                    "cpu.ico"
+IDI_PORTS               ICON                    "joystick.ico"
+IDI_INPUT               ICON                    "joystick.ico"
+IDI_MISC1               ICON                    "misc.ico"
+IDI_MISC2               ICON                    "misc.ico"
+IDI_MOVE_UP             ICON                    "move_up.ico"
+IDI_MOVE_DOWN           ICON                    "move_dow.ico"
+IDI_AVIOUTPUT           ICON                    "avioutput.ico"
+IDI_DISK                ICON                    "Drive.ico"
+IDI_CONFIGFILE          ICON                    "file.ico"
+IDI_FOLDER              ICON                    "folder.ico"
+IDI_SOUND               ICON                    "sound.ico"
+IDI_DISPLAY             ICON                    "screen.ico"
+IDI_ROOT                ICON                    "root.ico"
+IDI_MEMORY              ICON                    "chip.ico"
+IDI_QUICKSTART          ICON                    "quickstart.ico"
+IDI_PATHS               ICON                    "paths.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,4,1,0
+ PRODUCTVERSION 1,4,1,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "FileDescription", "WinUAE"
+            VALUE "FileVersion", "1.4.1"
+            VALUE "InternalName", "WinUAE"
+            VALUE "LegalCopyright", "© 1996-2007 under the GNU Public License (GPL)"
+            VALUE "OriginalFilename", "WinUAE.exe"
+            VALUE "ProductName", "WinUAE"
+            VALUE "ProductVersion", "1.4.1"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Cursor
+//
+
+IDC_MYHAND              CURSOR                  "H_arrow.cur"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDM_SYSTRAY MENU 
+BEGIN
+    POPUP "Menu"
+    BEGIN
+        MENUITEM "Configuration",               ID_ST_CONFIGURATION
+        POPUP "Floppy drives"
+        BEGIN
+            MENUITEM "Eject all drives",            ID_ST_EJECTALL
+            MENUITEM "DF0:",                        ID_ST_DF0
+            MENUITEM "DF1:",                        ID_ST_DF1
+            MENUITEM "DF2:",                        ID_ST_DF2
+            MENUITEM "DF3:",                        ID_ST_DF3
+        END
+        MENUITEM "Reset",                       ID_ST_RESET
+        MENUITEM "Help",                        ID_ST_HELP
+        MENUITEM "Quit WinUAE",                 ID_ST_QUIT
+    END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE 
+BEGIN
+    IDS_KICKSTART           "ROM"
+    IDS_DISK                "Disk swapper"
+    IDS_DISPLAY             "Display"
+    IDS_HARDDISK            "Hard drives"
+    IDS_FLOPPY              "Floppy drives"
+    IDS_ABOUT               "About"
+    IDS_LOADSAVE            "Configurations"
+    IDS_AVIOUTPUT           "Output"
+    IDS_PORTS               "Game & I/O ports"
+    IDS_MISC1               "Misc"
+    IDS_MEMORY              "RAM"
+    IDS_CPU                 "CPU"
+    IDS_CHIPSET             "Chipset"
+    IDS_INPUT               "Input"
+    IDS_FILTER              "Filter"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MISC2               "Priority"
+    IDS_PATHS               "Paths"
+    IDS_QUICKSTART          "Quickstart"
+    IDS_FRONTEND            "Frontend"
+    IDS_CHIPSET2            "Adv. Chipset"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_EXTTEXT             "Floppy disk image files"
+    IDS_EXTACTUAL           "ADF"
+    IDS_SOUND               "Sound"
+    IDS_CDROM               "CD-ROM"
+    IDS_FRAMERATE           "Every %1Frame"
+    IDS_SECOND              "second "
+    IDS_THIRD               "third "
+    IDS_FOURTH              "fourth "
+    IDS_FIFTH               "fifth "
+    IDS_SIXTH               "sixth "
+    IDS_SEVENTH             "seventh "
+    IDS_EIGHTH              "eighth "
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_NINTH               "ninth "
+    IDS_TENTH               "tenth "
+    IDS_SELECTADF           "Select a floppy disk image file..."
+    IDS_ADF                 "Floppy disk image files"
+    IDS_CHOOSEBLANK         "Choose a blank floppy disk image file..."
+    IDS_SELECTHDF           "Select a hard disk image file..."
+    IDS_HDF                 "Hard disk image files"
+    IDS_SELECTUAE           "Select a WinUAE configuration file..."
+    IDS_UAE                 "WinUAE configuration files"
+    IDS_SELECTROM           "Select a system ROM file..."
+    IDS_ROM                 "System ROM files"
+    IDS_SELECTKEY           "Select a system ROM key file..."
+    IDS_KEY                 "System ROM key files"
+    IDS_SELECTINFO          "Select information for your configuration..."
+    IDS_NONE                "none"
+    IDS_VOLUME              "Volume"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_SELECTFILESYSROOT   "Please select the root directory of the file system..."
+    IDS_DEFAULTMIDIOUT      "Default MIDI-Out Device"
+    IDS_CONTRIBUTORS1       "Bernd Schmidt - The Grand-Master\nSam Jordan - Custom-chip, floppy-DMA, etc.\nMathias Ortmann - Original WinUAE Main Guy, BSD Socket support\nBrian King - Picasso96 Support, Integrated GUI for WinUAE, previous WinUAE Main Guy\nToni Wilen - Core updates, WinUAE Main Guy\nGustavo Goedert/Peter Remmers/Michael Sontheimer/Tomi Hakala/Tim Gunn/Nemo Pohle - DOS Port Stuff\nSamuel Devulder/Olaf Barthel/Sam Jordan - Amiga Ports\nKrister Bergman - XFree86 and OS/2 Port\nA. Blanchard/Ernesto Corvi - MacOS Port\nChristian Bauer - BeOS Port\nIan Stephenson - NextStep Port\nPeter Teichmann - Acorn/RiscOS Port\nStefan Reinauer - ZorroII/III AutoConfig, Serial Support\nChristian Schmitt/Chris Hames - Serial Support\nHerman ten Brugge - 68020/68881 Emulation Code\nTauno Taipaleenmaki - Various UAE-Control/UAE-Library Support\nBrett Eden/Tim Gunn/Paolo Besser/Nemo Pohle - Various Docs and Web-Sites\nGeorg Veichtlbauer - Help File coordinator, German GUI\nFulvio Leonardi - Italian translator for WinUAE\n"
+    IDS_CONTRIBUTORS2       "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\nSteven Weiser  - Postscript printing emulation idea and testing.\nPéter Tóth /Balázs Rátkai/Iván Herczeg/András Arató - Hungarian translation"
+    IDS_INVALIDPRTPORT      "The printer you have in this configuration is not valid on this machine.\n"
+    IDS_RESTOREUSS          "Restore a WinUAE snapshot file"
+    IDS_USS                 "WinUAE snapshot files"
+    IDS_WRONGOSVERSION      "WinUAE is no longer supported on Windows NT.  Please upgrade to either Windows 2000 or Windows XP or a later version."
+    IDS_SELECTFLASH         "Select a flash or battery-backed RAM file..."
+    IDS_FLASH               "WinUAE flash or battery-backed RAM file"
+    IDS_INPUTHOSTWIDGET     "Input source"
+    IDS_INPUTAMIGAEVENT     "Input target"
+    IDS_INPUTAUTOFIRE       "Autofire"
+    IDS_SAVEUSS             "Save a WinUAE snapshot file"
+    IDS_MIDIOVERFLOW        "Sysexbuffer overflow. Should not happen. Please report this to\nberndroesch1@compuserve.de"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_PATH                "Path"
+    IDS_RW                  "R/W"
+    IDS_SECTORS             "Sectors"
+    IDS_SURFACES            "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\nSteven Weiser  - Postscript printing emulation idea and testing.\nHungarian translation - Péter Tóth , Balázs Rátkai , Iván Herczeg , András Arató"
+    IDS_RESERVED            "Reserved"
+    IDS_BLOCKSIZE           "Block size"
+    IDS_NAME                "Name"
+    IDS_DESCRIPTION         "Description"
+    IDS_COULDNOTLOADCONFIG  "Could not load the selected configuration!\n"
+    IDS_NOHELP              "Online help is disabled because the HTML Help functionality is not installed on this system. HTML Help is available from http://www.microsoft.com/downloads/.\n"
+    IDS_MUSTSELECTCONFIG    "You must select a configuration or enter a name before selecting Load...\n"
+    IDS_INVALIDCOMPORT      "The serial port you have in this configuration is not valid on this machine.\n"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_HFDSIZE             "Size"
+    IDS_DEVICE              "Device"
+    IDS_BOOTPRI             "BootPri"
+    IDS_FLOPPY_COMPATIBLE   " (compatible)"
+    IDS_FLOPPY_TURBO        "Turbo"
+    IDS_YES                 "yes"
+    IDS_NO                  "no"
+    IDS_PRI_ABOVENORMAL     "Above Normal"
+    IDS_PRI_NORMAL          "Normal"
+    IDS_PRI_BELOWNORMAL     "Below Normal"
+    IDS_PRI_LOW             "Low"
+    IDS_OLDRTGLIBRARY       "The installed LIBS:Picasso96/rtg.library (%d.%d) file needs to be updated.\nA newer version is included in the ""Amiga Programs"" directory of the WinUAE distribution archive.\nThe new library fixes graphics problems and increases performance."
+    IDS_DEFAULT_AF2005      "Amiga Forever"
+    IDS_DEFAULT_AF          "Amiga Forever (old)"
+    IDS_DEFAULT_WINUAE      "WinUAE default"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_UNSUPPORTEDPIXELFORMAT 
+                            "Error: unsupported pixel format. Please use a different screen mode.\n"
+    IDS_MUSTENTERNAME       "You must select a configuration or enter a name before selecting Save...\n"
+    IDS_MUSTSELECTCONFIGFORDELETE 
+                            "You must select a configuration or enter a name before selecting Delete...\n"
+    IDS_DELETECONFIGCONFIRMATION 
+                            "Are you sure you want to Delete this configuration?\n"
+    IDS_DELETECONFIGTITLE   "Confirm Delete"
+    IDS_GFXCARDCHECK        "WinUAE will now determine the 16-bit pixel format of your graphics card. Your screen will go black for two seconds, with a resolution of 640x480 @ 60Hz. This procedure is required for best rendering of the emulation environment on 16-bit display-modes, and should be done whenever you run WinUAE for the first time, or install a new graphics card in your PC. Proceed with this test?"
+    IDS_GFXCARDTITLE        "Pixel format detection"
+    IDS_MUSTSELECTPATH      "You must select a path!"
+    IDS_SETTINGSERROR       "Settings error"
+    IDS_MUSTSELECTNAME      "You must select a name for the volume!"
+    IDS_MUSTSELECTFILE      "You must select a file!"
+    IDS_FAILEDHARDFILECREATION "Failed to create hard disk image file..."
+    IDS_CREATIONERROR       "Creation error"
+    IDS_ERRORTITLE          "WinUAE message"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_INP                 "WinUAE Input Recording"
+    IDS_RESTOREINP          "Playback a WinUAE input recording"
+    IDS_SAVEINP             "Record a WinUAE input recording"
+    IDS_SOUND_MONO          "Mono"
+    IDS_SOUND_MIXED         "Mixed"
+    IDS_SOUND_STEREO        "Stereo"
+    IDS_SOUND_INTERPOL_DISABLED "Disabled"
+    IDS_SOUND_FILTER_OFF    "Always off"
+    IDS_SOUND_FILTER_EMULATED "Emulated (A500)"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_SOUND_FILTER_EMULATED_E "Emulated (A1200)"
+    IDS_INPUT_COMPATIBILITY "Compatibility mode"
+    IDS_INPUT_CUSTOM        "Configuration #%d"
+    IDS_INPUT_COPY_DEFAULT  "Default"
+    IDS_INPUT_COPY_CUSTOM   "Config #%d"
+    IDS_3D_NO_FILTER        "Point (%d-bit)"
+    IDS_3D_BILINEAR         "Bilinear (%d-bit)"
+    IDS_VSYNC_DEFAULT       "Default"
+    IDS_DRIVESOUND_NONE     "No sound"
+    IDS_DRIVESOUND_DEFAULT_A500 "A500 (WinUAE built-in)"
+    IDS_AVIOUTPUT_NOCODEC   "no codec selected"
+    IDS_DISK_IMAGENAME      "Disk image"
+    IDS_DISK_DRIVENAME      "Drive"
+    IDS_AGA8BIT             "AGA emulation requires a 16-bit or higher display depth.\nSwitching from 8-bit to 16-bit."
+    IDS_UNSUPPORTEDSCREENMODE 
+                            "The selected screen mode can't be displayed in a window, because %s\nSwitching to full-screen display."
+    IDS_UNSUPPORTEDSCREENMODE_1 
+                            "the desktop is running in an unknown color mode."
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_UNSUPPORTEDSCREENMODE_2 
+                            "the desktop is running in 8-bit color depth, which WinUAE can't use in windowed mode."
+    IDS_UNSUPPORTEDSCREENMODE_3 
+                            "the desktop is too small for the specified window size."
+    IDS_UNSUPPORTEDSCREENMODE_4 
+                            "you selected an RTG (Picasso96) display with a color depth different from that of the desktop and an overlay was unavailable."
+    IDS_FLOPPYTYPE35DD      "3.5"" DD"
+    IDS_FLOPPYTYPE35HD      "3.5"" HD"
+    IDS_FLOPPYTYPE525SD     "5.25"" SD"
+    IDS_FLOPPYTYPEDISABLED  "Disabled"
+    IDS_STMENUNOFLOPPY      "No floppy disk inserted"
+    IDS_TREEVIEW_HARDWARE   "Hardware"
+    IDS_TREEVIEW_HOST       "Host"
+    IDS_TREEVIEW_MISC       "Miscellaneous"
+    IDS_TREEVIEW_SETTINGS   "Settings"
+    IDS_WINUAETITLE_MMB     "[Mouse active - press ALT+TAB or middle mouse button to cancel]"
+    IDS_WINUAETITLE_NORMAL  "[Mouse active - press ALT+TAB to cancel]"
+    IDS_STARTEMULATION      "Start"
+    IDS_TREEVIEW_ABOUT      "About"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_NOHARDDRIVES        "No hard disks detected that were either empty or RDB-partitioned."
+    IDS_DEFAULT_HOST        "Default Configuration"
+    IDS_SOUND_4CHANNEL      "4 Channels"
+    IDS_HF_FS_CUSTOM        "Custom"
+    IDS_SELECTFS            "Select file system handler (FastFileSystem, SmartFilesystem, etc.)"
+    IDS_KEYJOY              "Keyboard Layout A (Numeric keypad, 0 and 5 = Fire)\nKeyboard Layout B (Cursor keys, Right CTRL and ALT = Fire)\nKeyboard Layout C (W=Up S=Down A=Left D=Right, Left ALT = Fire)\nX-Arcade (Left)\nX-Arcade (Right)"
+    IDS_STATEFILE_UNCOMPRESSED "Uncompressed"
+    IDS_STATEFILE_RAMDUMP   "RAM dump"
+    IDS_STATEFILE_WAVE      "Wave audio dump"
+    IDS_SOUND_SWAP_PAULA    "Paula only"
+    IDS_SOUND_SWAP_AHI      "AHI only"
+    IDS_SOUND_SWAP_BOTH     "Both"
+    IDS_SOUND_FILTER_ON_AGA "Always on (A500)"
+    IDS_SOUND_FILTER_ON_A500 "Always on (A1200)"
+    IDS_DRIVESOUND_PC_FLOPPY "PC floppy drive %c"
+    IDS_FLOPPYTYPE35DDESCOM "3.5"" ESCOM"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_NUMSG_NEEDEXT2      "The software uses a non-standard floppy disk format. You may need to use a custom floppy disk image file instead of a standard one. This message will not appear again."
+    IDS_NUMSG_NOROMKEY      "Could not find system ROM key file."
+    IDS_NUMSG_KSROMCRCERROR "System ROM checksum incorrect. The system ROM image file may be corrupt."
+    IDS_NUMSG_KSROMREADERROR "Error while reading system ROM."
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_NUMSG_NOEXTROM      "No extended ROM found."
+    IDS_NUMSG_MODRIP_NOTFOUND "No music modules or packed data found."
+    IDS_NUMSG_MODRIP_FINISHED "Scan finished."
+    IDS_NUMSG_MODRIP_SAVE   "Module/packed data found\n%s\nWould you like to save it?"
+    IDS_NUMSG_KS68020       "The selected system ROM requires a 68020 or higher CPU."
+    IDS_NUMSG_ROMNEED       "One of the following system ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."
+    IDS_NUMSG_STATEHD       "WARNING: State saves do not support hard drive emulation. This message will not appear again."
+    IDS_NUMSG_NOCAPS        "Selected disk image needs the SPS plugin\nwhich is available from\nhttp//www.softpres.org/"
+    IDS_NUMSG_OLDCAPS       "You need an updated SPS plugin\nwhich is available from\nhttp//www.softpres.org/"
+    IDS_IMGCHK_BOOTBLOCKCRCERROR 
+                            "The selected floppy disk image is not bootable (boot block checksum error)"
+    IDS_IMGCHK_BOOTBLOCKNO  "The selected floppy disk image is not bootable (no boot block)"
+    IDS_IMGCHK_DAMAGED      "The selected floppy disk image is damaged or unformatted"
+    IDS_IMGCHK_KS2          "The selected floppy disk image requires a 2.04 or later system ROM.\nThe configuration has been updated."
+    IDS_IMGCHK_KS3          "The selected floppy disk image requires a 3.0 or later system ROM.\nThe configuration has been updated."
+    IDS_ROMSCANEND          "Scan of ROMs finished"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_ROM_AVAILABLE       "available"
+    IDS_ROM_UNAVAILABLE     "unavailable"
+    IDS_HARDDRIVESAFETYWARNING 
+                            "Warning: The safety test has been disabled, and non-empty hard disks were detected.\n\nHard disks marked with 'HD_*_' are not empty."
+    IDS_NUMSG_KS68EC020     "The selected system ROM requires a 68EC020 or higher CPU."
+    IDS_ROMSCANNOROMS       "No supported system ROMs detected."
+    IDS_NUMSG_KICKREP       "You need to have a floppy disk (image file) in DF0: to use the system ROM replacement."
+    IDS_NUMSG_KICKREPNO     "The floppy disk (image file) in DF0: is not compatible with the system ROM replacement functionality."
+    IDS_NUMSG_NOROM         "Could not load system ROM, trying system ROM replacement."
+    IDS_HDCLONE_OK          "Hard drive image file created succesfully."
+    IDS_HDCLONE_FAIL        "Hard drive image file creation failed.\nError code %d:%d."
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_QS_MODELS           "A500\nA500+\nA600\nA1000\nA1200\nCD32\nCDTV\nArcadia Multi Select system\nExpanded WinUAE example configuration"
+    IDS_QS_MODEL_A500       "1.3 ROM, OCS, 512 KB Chip + 512 KB Slow RAM (most common)\nThis configuration is capable of running most games and demos produced for first-generation hardware. Only few exceptions need a different configuration (e.g. the oldest games tend to be incompatible with this configuration).\n1.3 ROM, ECS Agnus, 512 KB Chip RAM + 512 KB Slow RAM\nLater hardware revision of the A500. Nearly 100% compatible with the previous configuration.\n1.3 ROM, ECS Agnus, 1 MB Chip RAM\nFew newer games and demos require this configuration.\n1.3 ROM, OCS Agnus, 512 KB Chip RAM\nVery old (e.g. pre-1988) games and demos may require this configuration.\n1.2 ROM, OCS Agnus, 512 KB Chip RAM\nAs available for the A1000, and installed on the first A500 and A2000 series. Some very old programs only work correctly with this configuration. Note: This system ROM version can only boot from floppy disk (no hard disk boot support).\n1.2 ROM, OCS Agnus, 512 KB Chip RAM + 512 KB Slow RAM\nThis configuration adds expansion memory to the first A500 produced. Try this if your game does not work with newer configurations, but works with the previous one. It could add some features to the game, including faster loading times. Note: This system ROM version can only boot from floppy disk (no hard disk boot support)."
+    IDS_QS_MODEL_A500P      "Basic non-expanded configuration\nThe A500+ adds an ECS Agnus chip, 1 MB of Chip RAM and a 2.0 ROM to the A500. Many A500 games and demos don't work properly on an A500+.\n2 MB Chip RAM expanded configuration\n\n4 MB Fast RAM expanded configuration\n"
+    IDS_QS_MODEL_A600       "Basic non-expanded configuration\nThe A600 is smaller than the A500+ and has an updated 2.0 ROM.\n2 MB Chip RAM expanded configuration\n\n4 MB Fast RAM expanded configuration\n"
+    IDS_QS_MODEL_A1000      "512 KB Chip RAM\nThe A1000 was the first model produced, with a configuration equivalent to that of an A500 with OCS chipset. You normally don't need to use this configuration, unless you are nostalgic and would like to hear the short A1000 boot tune\n256 KB Chip RAM\nUnexpanded A1000. All later A1000 models were sold with a 256 KB RAM expansion built-in."
+    IDS_QS_MODEL_A1200      "Basic non-expanded configuration\nUse this configuration to run most AGA demos and games\n4 MB Fast RAM expanded configuration\nSome newer AGA games and demos need an expanded A1200 to run."
+    IDS_QS_MODEL_CD32       "CD32\nThe CD32 was one the first 32-bit consoles on the market. It is basically an A1200 with a built-in CD-ROM drive. Insert your CD32 or CDTV CD-ROM into a free CD-ROM drive before starting the emulation."
+    IDS_QS_MODEL_CDTV       "CDTV\nThe CDTV was the first model with a built-in CD-ROM drive. Looking like a black CD player, it featured a configuration equivalent to that of an A500 with 1 MB RAM and an ECS chipset.\nFloppy drive and 64KB SRAM card expanded CDTV\n"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_QS_MODEL_UAE        "High-end expanded configuration"
+    IDS_QS_MODEL_ARCADIA    "Arcadia\nArcadia Multi Select system is arcade platform developed by Arcadia and  Mastertronic. It is based on an A500 mainboard with ROM cage attached to expansion port. Arcadia ROM files go to ""Cartridge ROM File"" in ROM-panel."
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_SOUND_STEREO2       "Cloned Stereo"
+    IDS_INPUT_CUSTOMEVENT   "<Custom event>"
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Finnish resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FIN)
+#ifdef _WIN32
+LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "resource.\0"
+END
+
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+#endif    // Finnish resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
index 8da22a670da0fc8d7e0101fefecf24d3c23debc1..791c37f101c0600d916e8b724362d63821ddacb9 100755 (executable)
@@ -495,7 +495,7 @@ void setmouseactive (int active)
     recapture = 0;
 #if 0
     if (active > 0 && mousehack_allowed () && mousehack_alive ()) {
-       if (!isfullscreen ())
+       if (isfullscreen () <= 0)
            return;
     }
 #endif
@@ -588,7 +588,7 @@ static void winuae_active (HWND hWnd, int minimized)
     inputdevice_acquire ();
     wait_keyrelease ();
     inputdevice_acquire ();
-    if (isfullscreen())
+    if (isfullscreen() > 0)
        setmouseactive (1);
     manual_palette_refresh_needed = 1;
 
@@ -648,7 +648,7 @@ extern void setamigamouse(int,int);
 void setmouseactivexy(int x, int y, int dir)
 {
     int diff = 8;
-    if (isfullscreen())
+    if (isfullscreen() > 0)
        return;
     x += amigawin_rect.left;
     y += amigawin_rect.top;
@@ -708,7 +708,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
 #if MSGDEBUG
        write_log ("WM_SIZE %x %d %d\n", hWnd, wParam, minimized);
 #endif
-       if (isfullscreen ()) {
+       if (isfullscreen () > 0) {
            v = minimized;
            switch (wParam)
            {
@@ -742,7 +742,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
 #if MSGDEBUG
        write_log ("WM_ACTIVATE %x %d %d %d\n", hWnd, HIWORD (wParam), LOWORD (wParam), minimized);
 #endif
-       if (!isfullscreen ()) {
+       if (isfullscreen () <= 0) {
            minimized = HIWORD (wParam);
            if (LOWORD (wParam) != WA_INACTIVE) {
                winuae_active (hWnd, minimized);
@@ -805,7 +805,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
     return 0;
     case WM_LBUTTONDOWN:
     case WM_LBUTTONDBLCLK:
-       if (!mouseactive && !isfullscreen() && !gui_active) {
+       if (!mouseactive && isfullscreen() <= 0 && !gui_active) {
            setmouseactive (1);
        }
        if (dinput_winmouse () >= 0)
@@ -830,7 +830,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
     case WM_MBUTTONDBLCLK:
        if (currprefs.win32_middle_mouse) {
 #ifndef _DEBUG
-           if (isfullscreen ())
+           if (isfullscreen () > 0)
                minimizewindow ();
 #endif
            if (mouseactive)
@@ -905,7 +905,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
 
     case WM_WINDOWPOSCHANGED:
        GetWindowRect (hWnd, &amigawin_rect);
-       if (!isfullscreen()) {
+       if (isfullscreen() == 0) {
            changed_prefs.gfx_size_win.x = amigawin_rect.left;
            changed_prefs.gfx_size_win.y = amigawin_rect.top;
        }
@@ -915,7 +915,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
     {
        mx = (signed short) LOWORD (lParam);
        my = (signed short) HIWORD (lParam);
-       if (recapture && !isfullscreen()) {
+       if (recapture && isfullscreen() <= 0) {
            setmouseactive(1);
            setamigamouse(mx, my);
            return 0;
@@ -937,7 +937,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
                setmousestate (dinput_winmouse (), 0, mx, 0);
                setmousestate (dinput_winmouse (), 1, my, 0);
            }
-       } else if ((!mouseactive && !isfullscreen())) {
+       } else if ((!mouseactive && isfullscreen() <= 0)) {
            setmousestate (0, 0, mx, 1);
            setmousestate (0, 1, my, 1);
        }
@@ -1097,19 +1097,19 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
                disk_eject (3);
            break;
            case ID_ST_DF0:
-               DiskSelection (isfullscreen() ? NULL : hWnd, IDC_DF0, 0, &changed_prefs, 0);
+               DiskSelection (isfullscreen() > 0 ? NULL : hWnd, IDC_DF0, 0, &changed_prefs, 0);
                disk_insert (0, changed_prefs.df[0]);
            break;
            case ID_ST_DF1:
-               DiskSelection (isfullscreen() ? NULL : hWnd, IDC_DF1, 0, &changed_prefs, 0);
+               DiskSelection (isfullscreen() > 0 ? NULL : hWnd, IDC_DF1, 0, &changed_prefs, 0);
                disk_insert (1, changed_prefs.df[0]);
            break;
            case ID_ST_DF2:
-               DiskSelection (isfullscreen() ? NULL : hWnd, IDC_DF2, 0, &changed_prefs, 0);
+               DiskSelection (isfullscreen() > 0 ? NULL : hWnd, IDC_DF2, 0, &changed_prefs, 0);
                disk_insert (2, changed_prefs.df[0]);
            break;
            case ID_ST_DF3:
-               DiskSelection (isfullscreen() ? NULL : hWnd, IDC_DF3, 0, &changed_prefs, 0);
+               DiskSelection (isfullscreen() > 0 ? NULL : hWnd, IDC_DF3, 0, &changed_prefs, 0);
                disk_insert (3, changed_prefs.df[0]);
            break;
        }
@@ -1173,7 +1173,7 @@ static LRESULT CALLBACK MainWindowProc (HWND hWnd, UINT message, WPARAM wParam,
        return AmigaWindowProc (hWnd, message, wParam, lParam);
 
      case WM_DISPLAYCHANGE:
-       if (!isfullscreen() && !currprefs.gfx_filter && (wParam + 7) / 8 != DirectDraw_GetBytesPerPixel() )
+       if (isfullscreen() <= 0 && !currprefs.gfx_filter && (wParam + 7) / 8 != DirectDraw_GetBytesPerPixel() )
            WIN32GFX_DisplayChangeRequested();
        break;
 
@@ -1191,7 +1191,7 @@ static LRESULT CALLBACK MainWindowProc (HWND hWnd, UINT message, WPARAM wParam,
            if (in_sizemove > 0)
                break;
 
-           if (!isfullscreen() && hAmigaWnd) {
+           if (isfullscreen() == 0 && hAmigaWnd) {
                static int store_xy;
                RECT rc2;
                if (GetWindowRect(hMainWnd, &rc2)) {
@@ -1203,8 +1203,8 @@ static LRESULT CALLBACK MainWindowProc (HWND hWnd, UINT message, WPARAM wParam,
 
                    }
                    if (hWinUAEKey && store_xy++) {
-                       RegSetValueEx(hWinUAEKey, "xPos", 0, REG_DWORD, (LPBYTE)&left, sizeof(LONG));
-                       RegSetValueEx(hWinUAEKey, "yPos", 0, REG_DWORD, (LPBYTE)&top, sizeof(LONG));
+                       RegSetValueEx(hWinUAEKey, "MainPosX", 0, REG_DWORD, (LPBYTE)&left, sizeof(LONG));
+                       RegSetValueEx(hWinUAEKey, "MainPosY", 0, REG_DWORD, (LPBYTE)&top, sizeof(LONG));
                    }
                    changed_prefs.gfx_size_win.x = left;
                    changed_prefs.gfx_size_win.y = top;
@@ -2180,12 +2180,10 @@ static void WIN32_HandleRegistryStuff(void)
        initpath ("InputPath", start_path_data);
        if (disposition == REG_CREATED_NEW_KEY) {
            /* Create and initialize all our sub-keys to the default values */
-           colortype = 0;
-           RegSetValueEx(hWinUAEKey, "DisplayInfo", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof(colortype));
-           RegSetValueEx(hWinUAEKey, "xPos", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof(colortype));
-           RegSetValueEx(hWinUAEKey, "yPos", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof(colortype));
-           RegSetValueEx(hWinUAEKey, "xPosGUI", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof(colortype));
-           RegSetValueEx(hWinUAEKey, "yPosGUI", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof(colortype));
+           RegSetValueEx(hWinUAEKey, "MainPosX", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof(colortype));
+           RegSetValueEx(hWinUAEKey, "MainPosY", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof(colortype));
+           RegSetValueEx(hWinUAEKey, "GUIPosX", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof(colortype));
+           RegSetValueEx(hWinUAEKey, "GUIPosY", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof(colortype));
        }
        size = sizeof (version);
        dwType = REG_SZ;
@@ -2207,28 +2205,11 @@ static void WIN32_HandleRegistryStuff(void)
                forceroms = 1;
        }
        
-       dwType = REG_DWORD;
-       RegQueryValueEx(hWinUAEKey, "DisplayInfo", 0, &dwType, (LPBYTE)&colortype, &dwDisplayInfoSize);
-       if (colortype == 0) /* No color information stored in the registry yet */
-       {
-           char szMessage[4096];
-           char szTitle[MAX_DPATH];
-           WIN32GUI_LoadUIString(IDS_GFXCARDCHECK, szMessage, 4096);
-           WIN32GUI_LoadUIString(IDS_GFXCARDTITLE, szTitle, MAX_DPATH);
-                   
-           if(MessageBox(NULL, szMessage, szTitle, MB_YESNO | MB_ICONWARNING | MB_TASKMODAL | MB_SETFOREGROUND ) == IDYES) {
-               colortype = WIN32GFX_FigurePixelFormats(0);
-               RegSetValueEx( hWinUAEKey, "DisplayInfo", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof( colortype ) );
-           }
-       }
-       if (colortype) {
-           /* Set the 16-bit pixel format for the appropriate modes */
-           WIN32GFX_FigurePixelFormats(colortype);
-       }
        size = sizeof (quickstart);
        dwType = REG_DWORD;
        RegQueryValueEx(hWinUAEKey, "QuickStartMode", 0, &dwType, (LPBYTE)&quickstart, &size);
     }
+    reopen_console();
     fetch_path ("ConfigurationPath", path, sizeof (path));
     path[strlen (path) - 1] = 0;
     CreateDirectory (path, NULL);
@@ -2825,6 +2806,7 @@ static int PASCAL WinMain2 (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR
     closeprinter ();
 #endif
     WIN32_CleanupLibraries();
+    close_console();
     _fcloseall();
     if(hWinUAEKey)
        RegCloseKey(hWinUAEKey);
@@ -2993,7 +2975,7 @@ LONG WINAPI WIN32_ExceptionFilter(struct _EXCEPTION_POINTERS *pExceptionPointers
                        exinfo.ClientPointers = 0;
                        dump (GetCurrentProcess(), GetCurrentProcessId(), f, MiniDumpNormal, &exinfo, NULL, NULL);
                        CloseHandle (f);
-                       if (!isfullscreen ()) {
+                       if (isfullscreen () <= 0) {
                            sprintf (msg, "Crash detected. MiniDump saved as:\n%s\n", path2);
                            MessageBox( NULL, msg, "Crash", MB_OK | MB_ICONWARNING | MB_TASKMODAL | MB_SETFOREGROUND );
                        }
@@ -3068,7 +3050,7 @@ void systraymenu (HWND hwnd)
        EnableMenuItem (menu2, drvs[i], currprefs.dfxtype[i] < 0 ? MF_GRAYED : MF_ENABLED);
        i++;
     }
-    if (!isfullscreen ())
+    if (isfullscreen () <= 0)
        SetForegroundWindow (hwnd);
     TrackPopupMenu (menu2, TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON,
        pt.x, pt.y, 0, hwnd, NULL);
@@ -3146,11 +3128,13 @@ end:
     return m;
 }
 
+typedef BOOL (CALLBACK* SETPROCESSDPIAWARE)(void);
 typedef BOOL (CALLBACK* CHANGEWINDOWMESSAGEFILTER)(UINT, DWORD);
 #define MSGFLT_ADD 1
 
 int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
 {
+    SETPROCESSDPIAWARE pSetProcessDPIAware;
     HANDLE thread;
 
     thread = GetCurrentThread();
@@ -3162,6 +3146,11 @@ int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin
     if (pChangeWindowMessageFilter)
        pChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
 #endif
+    pSetProcessDPIAware = (SETPROCESSDPIAWARE)GetProcAddress(
+       GetModuleHandle("user32.dll"), "SetProcessDPIAware");
+    if (pSetProcessDPIAware)
+       pSetProcessDPIAware();
+
     __try {
        WinMain2 (hInstance, hPrevInstance, lpCmdLine, nCmdShow);
     } __except(WIN32_ExceptionFilter(GetExceptionInformation(), GetExceptionCode())) {
index de9d091862875d742223245b885dbb65939d20b1..df1ce7f65282ad621914397ec41b8c7a3ce0a26a 100755 (executable)
@@ -15,9 +15,9 @@
 #define GETBDM(x) (((x) - ((x / 10000) * 10000)) / 100)
 #define GETBDD(x) ((x) % 100)
 
-#define WINUAEBETA 0
-#define WINUAEPUBLICBETA 0
-#define WINUAEDATE MAKEBD(2007, 3, 18)
+#define WINUAEBETA 1
+#define WINUAEPUBLICBETA 1
+#define WINUAEDATE MAKEBD(2007, 3, 28)
 
 #define IHF_WINDOWHIDDEN 6
 #define NORMAL_WINDOW_STYLE (WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU)
index 234e70502463735c7b1047888866ac5787eac471..3652e71a2b34fdcd1fe804957066d3407a7ac6c7 100755 (executable)
@@ -71,10 +71,11 @@ struct winuae_modes {
 };
 struct winuae_currentmode {
     struct winuae_modes *mode;
-    struct winuae_modes *pmode[2];
-    struct winuae_modes *amode[2];
+    struct winuae_modes *pmode[3];
+    struct winuae_modes *amode[3];
     unsigned int flags;
-    int current_width, current_height, current_depth, real_depth, pitch;
+    int native_width, native_height, native_depth, pitch;
+    int current_width, current_height, current_depth;
     int amiga_width, amiga_height;
     int frequency;
     int mapping_is_mainscreen;
@@ -98,10 +99,14 @@ int b0rken_ati_overlay;
 #define SM_WINDOW_OVERLAY 1
 #define SM_FULLSCREEN_DX 2
 #define SM_OPENGL_WINDOW 3
+#define SM_OPENGL_FULLWINDOW 9
 #define SM_OPENGL_FULLSCREEN_DX 4
 #define SM_D3D_WINDOW 5
+#define SM_D3D_FULLWINDOW 10
 #define SM_D3D_FULLSCREEN_DX 6
-#define SM_NONE 7
+#define SM_FULLWINDOW 7
+#define SM_FULLWINDOW_OVERLAY 8
+#define SM_NONE 11
 
 static struct winuae_modes wmodes[] =
 {
@@ -117,7 +122,6 @@ static struct winuae_modes wmodes[] =
     },
     {
        1, "Fullscreen",
-//     DM_OVERLAY | DM_W_FULLSCREEN | DM_DX_DIRECT | DM_DDRAW,
        DM_DX_FULLSCREEN | DM_DX_DIRECT | DM_DDRAW,
        DM_DX_FULLSCREEN | DM_DX_DIRECT | DM_DDRAW | DM_PICASSO96
     },
@@ -141,6 +145,26 @@ static struct winuae_modes wmodes[] =
        DM_D3D | DM_D3D_FULLSCREEN,
        0
     },
+    {
+       1, "Fullwindow",
+       DM_W_FULLSCREEN | DM_DX_DIRECT | DM_DDRAW,
+       DM_W_FULLSCREEN | DM_DX_DIRECT | DM_DDRAW | DM_PICASSO96
+    },
+    {
+       1, "Fullwindow overlay",
+       DM_OVERLAY | DM_W_FULLSCREEN | DM_DX_DIRECT | DM_DDRAW,
+       DM_OVERLAY | DM_W_FULLSCREEN | DM_DX_DIRECT | DM_DDRAW | DM_PICASSO96
+    },
+    {
+       1, "Fullwindow OpenGL",
+       DM_W_FULLSCREEN | DM_OPENGL | DM_DX_DIRECT,
+       0
+    },
+    {
+       0, "Fullwindow Direct3D",
+       DM_W_FULLSCREEN | DM_D3D,
+       0
+    },
     {
        0, "none",
        0,
@@ -189,7 +213,7 @@ static int modefallback (unsigned int mask)
 
 int screen_is_picasso = 0;
 
-int WIN32GFX_IsPicassoScreen( void )
+int WIN32GFX_IsPicassoScreen(void)
 {
     return screen_is_picasso;
 }
@@ -218,9 +242,9 @@ int isscreen (void)
 int isfullscreen (void)
 {
     if (screen_is_picasso)
-       return currprefs.gfx_pfullscreen;
+       return currprefs.gfx_pfullscreen == 1 ? 1 : (currprefs.gfx_pfullscreen == 2 ? -1 : 0);
     else
-       return currprefs.gfx_afullscreen;
+       return currprefs.gfx_afullscreen == 1 ? 1 : (currprefs.gfx_afullscreen == 2 ? -1 : 0);
 }
 
 int is3dmode (void)
@@ -230,17 +254,17 @@ int is3dmode (void)
 
 int WIN32GFX_GetDepth (int real)
 {
-    if (!currentmode->real_depth)
+    if (!currentmode->native_depth)
        return currentmode->current_depth;
-    return real ? currentmode->real_depth : currentmode->current_depth;
+    return real ? currentmode->native_depth : currentmode->current_depth;
 }
 
-int WIN32GFX_GetWidth( void )
+int WIN32GFX_GetWidth(void)
 {
     return currentmode->current_width;
 }
 
-int WIN32GFX_GetHeight( void )
+int WIN32GFX_GetHeight(void)
 {
     return currentmode->current_height;
 }
@@ -308,8 +332,8 @@ static int set_ddraw (void)
 {
     HRESULT ddrval;
     int bits = (currentmode->current_depth + 7) & ~7;
-    int width = currentmode->current_width;
-    int height = currentmode->current_height;
+    int width = currentmode->native_width;
+    int height = currentmode->native_height;
     int freq = currentmode->frequency;
     int dxfullscreen, wfullscreen, dd, overlay;
 
@@ -630,88 +654,6 @@ void sortdisplays (void)
     displayGUID = NULL;
 }
 
-static int our_possible_depths[] = { 8, 15, 16, 24, 32 };
-
-RGBFTYPE WIN32GFX_FigurePixelFormats( RGBFTYPE colortype )
-{
-    HRESULT ddrval;
-    int got_16bit_mode = 0;
-    int window_created = 0;
-    struct PicassoResolution *dm;
-    int i;
-
-    ignore_messages_all++;
-    DirectDraw_Start (NULL);
-    if(colortype == 0) /* Need to query a 16-bit display mode for its pixel-format.  Do this by opening such a screen */
-    {
-       hAmigaWnd = CreateWindowEx (WS_EX_TOPMOST,
-                              "AmigaPowah", VersionStr,
-                              WS_VISIBLE | WS_POPUP,
-                              CW_USEDEFAULT, CW_USEDEFAULT,
-                              1,//GetSystemMetrics (SM_CXSCREEN),
-                              1,//GetSystemMetrics (SM_CYSCREEN),
-                              hHiddenWnd, NULL, 0, NULL);
-       if(hAmigaWnd)
-       {
-           window_created = 1;
-           ddrval = DirectDraw_SetCooperativeLevel( hAmigaWnd, TRUE ); /* TRUE indicates full-screen */
-           if(FAILED(ddrval))
-           {
-               gui_message("WIN32GFX_FigurePixelFormats: ERROR - %s\n", DXError(ddrval));
-               goto out;
-           }
-       }
-       else
-       {
-           gui_message("WIN32GFX_FigurePixelFormats: ERROR - test-window could not be created.\n");
-       }
-    }
-    else
-    {
-       got_16bit_mode = 1;
-    }
-
-    i = 0;
-    while (DisplayModes[i].depth >= 0) {
-       dm = &DisplayModes[i++];
-       if (!got_16bit_mode) {
-           write_log ("figure_pixel_formats: Attempting %dx%d..\n", dm->res.width, dm->res.height);
-
-           ddrval = DirectDraw_SetDisplayMode (dm->res.width, dm->res.height, 16, 0); /* 0 for default freq */
-           if (FAILED(ddrval))
-               continue;
-
-           ddrval = DirectDraw_GetDisplayMode();
-           if (FAILED(ddrval))
-               continue;
-
-           colortype = DirectDraw_GetPixelFormat();
-           if (colortype != RGBFB_NONE)  {
-               /* Clear the 16-bit information, and get the real stuff! */
-               dm->colormodes &= ~(RGBFF_R5G6B5PC|RGBFF_R5G5B5PC|RGBFF_R5G6B5|RGBFF_R5G5B5|RGBFF_B5G6R5PC|RGBFF_B5G5R5PC);
-               dm->colormodes |= 1 << colortype;
-               got_16bit_mode = 1;
-               write_log( "Got real 16-bit colour-depth information: 0x%x\n", colortype );
-           }
-       } else if (dm->colormodes & (RGBFF_R5G6B5PC|RGBFF_R5G5B5PC|RGBFF_R5G6B5|RGBFF_R5G5B5|RGBFF_B5G6R5PC|RGBFF_B5G5R5PC) )  {
-           /* Clear the 16-bit information, and set the real stuff! */
-           dm->colormodes &= ~(RGBFF_R5G6B5PC|RGBFF_R5G5B5PC|RGBFF_R5G6B5|RGBFF_R5G5B5|RGBFF_B5G6R5PC|RGBFF_B5G5R5PC);
-           dm->colormodes |= 1 << colortype;
-       }
-    }
-
-    out:
-    if (window_created)
-    {
-       Sleep (1000);
-       DestroyWindow (hAmigaWnd);
-       hAmigaWnd = NULL;
-    }
-    DirectDraw_Release ();
-    ignore_messages_all--;
-    return colortype;
-}
-
 /* DirectX will fail with "Mode not supported" if we try to switch to a full
  * screen mode that doesn't match one of the dimensions we got during enumeration.
  * So try to find a best match for the given resolution in our list.  */
@@ -829,8 +771,8 @@ void setoverlay(int quick)
     dr.right -= mi.rcMonitor.left;
     dr.bottom -= mi.rcMonitor.top;
 
-    w = currentmode->current_width;
-    h = currentmode->current_height;
+    w = currentmode->native_width;
+    h = currentmode->native_height;
 
     sr.left = 0;
     sr.top = 0;
@@ -1385,7 +1327,7 @@ void init_colors (void)
     }
     if (currentmode->current_depth > 8) {
        if (!(currentmode->flags & DM_OPENGL|DM_D3D)) {
-           if (currentmode->current_depth != currentmode->real_depth) {
+           if (currentmode->current_depth != currentmode->native_depth) {
                if (currentmode->current_depth == 16) {
                    red_bits = 5; green_bits = 6; blue_bits = 5;
                    red_shift = 11; green_shift = 5; blue_shift = 0;
@@ -1599,6 +1541,16 @@ static COLORREF BuildColorRef(int color, RGBFTYPE pixelformat)
 #endif
 }
 
+static void centerrect(RECT *r)
+{
+    if(!(currentmode->flags & (DM_DX_FULLSCREEN | DM_OVERLAY | DM_W_FULLSCREEN)))
+       OffsetRect(r, amigawin_rect.left, amigawin_rect.top);
+    if (currentmode->flags & DM_W_FULLSCREEN)
+       OffsetRect(r, (currentmode->native_width - currentmode->current_width) / 2,
+           (currentmode->native_height - currentmode->current_height) / 2);
+}
+
+
 /* This is a general purpose DirectDrawSurface filling routine.  It can fill within primary surface.
  * Definitions:
  * - primary is the displayed (visible) surface in VRAM, which may have an associated offscreen surface (or back-buffer)
@@ -1616,12 +1568,11 @@ int DX_Fill(int dstx, int dsty, int width, int height, uae_u32 color, RGBFTYPE r
 
     /* Set up our source rectangle.  This NEVER needs to be adjusted for windowed display, since the
      * source is ALWAYS in an offscreen buffer, or we're in full-screen mode. */
-    SetRect(&srcrect, dstx, dsty, dstx+width, dsty+height);
+    SetRect(&srcrect, dstx, dsty, dstx + width, dsty + height);
 
     /* Set up our destination rectangle, and adjust for blit to windowed display (if necessary ) */
     SetRect(&dstrect, dstx, dsty, dstx+width, dsty+height);
-    if(!(currentmode->flags & (DM_DX_FULLSCREEN | DM_OVERLAY)))
-       OffsetRect(&dstrect, amigawin_rect.left, amigawin_rect.top);
+    centerrect(&dstrect);
 
     /* Render our fill to the visible (primary) surface */
     hr = DirectDraw_Blt(primary_surface, &dstrect, invalid_surface, NULL, DDBLT_WAIT | DDBLT_COLORFILL, &ddbltfx);
@@ -1688,8 +1639,7 @@ int DX_Blit(int srcx, int srcy, int dstx, int dsty, int width, int height, BLIT_
     /* Set up our destination rectangle, and adjust for blit to windowed display (if necessary ) */
     SetRect(&dstrect, dstx, dsty, dstx + width, dsty + height);
     
-    if(!(currentmode->flags & (DM_DX_FULLSCREEN | DM_OVERLAY)))
-       OffsetRect(&dstrect, amigawin_rect.left, amigawin_rect.top);
+    centerrect(&dstrect);
 
     /* Render our blit within the primary surface */
     result = DirectDraw_Blt(primary_surface, &dstrect, DirectDraw_GetLockableType(), &srcrect, DDBLT_WAIT | DDBLT_ROP, &fx);
@@ -1799,18 +1749,22 @@ static void gfxmode_reset (void)
 #endif
     currentmode->amode[0] = &wmodes[currprefs.win32_no_overlay ? SM_WINDOW : SM_WINDOW_OVERLAY];
     currentmode->amode[1] = &wmodes[SM_FULLSCREEN_DX];
+    currentmode->amode[2] = &wmodes[SM_FULLWINDOW];
     currentmode->pmode[0] = &wmodes[currprefs.win32_no_overlay ? SM_WINDOW : SM_WINDOW_OVERLAY];
     currentmode->pmode[1] = &wmodes[SM_FULLSCREEN_DX];
+    currentmode->pmode[2] = &wmodes[SM_FULLWINDOW];
 #if defined (OPENGL) &&        defined (GFXFILTER)
     if (usedfilter && usedfilter->type == UAE_FILTER_OPENGL) {
        currentmode->amode[0] = &wmodes[SM_OPENGL_WINDOW];
        currentmode->amode[1] = &wmodes[SM_OPENGL_FULLSCREEN_DX];
+       currentmode->amode[2] = &wmodes[SM_OPENGL_FULLWINDOW];
     }
 #endif
 #if defined (D3D) && defined (GFXFILTER)
     if (usedfilter && usedfilter->type == UAE_FILTER_DIRECT3D) {
        currentmode->amode[0] = &wmodes[SM_D3D_WINDOW];
        currentmode->amode[1] = &wmodes[SM_D3D_FULLSCREEN_DX];
+       currentmode->amode[2] = &wmodes[SM_D3D_FULLWINDOW];
     }
 #endif
 }
@@ -1950,6 +1904,10 @@ static int create_windows (void)
     int gap = 3;
     int x, y;
 
+    if (fsw)
+       borderless = 1;
+    currentmode->native_width = currentmode->current_width;
+    currentmode->native_height = currentmode->current_height;
     window_led_drives = 0;
     window_led_drives_end = 0;
     hMainWnd = NULL;
@@ -1965,8 +1923,8 @@ static int create_windows (void)
        int oldx, oldy;
        int first = 2;
 
-       RegQueryValueEx(hWinUAEKey, "xPos", 0, &regkeytype, (LPBYTE)&stored_x, &regkeysize);
-       RegQueryValueEx(hWinUAEKey, "yPos", 0, &regkeytype, (LPBYTE)&stored_y, &regkeysize);
+       RegQueryValueEx(hWinUAEKey, "MainPosX", 0, &regkeytype, (LPBYTE)&stored_x, &regkeysize);
+       RegQueryValueEx(hWinUAEKey, "MainPosY", 0, &regkeytype, (LPBYTE)&stored_y, &regkeysize);
 
        while (first) {
            first--;
@@ -2006,8 +1964,8 @@ static int create_windows (void)
            rc = Displays[currprefs.gfx_display].rect;
            flags |= WS_EX_TOPMOST;
            style = WS_POPUP;
-           currentmode->current_width = rc.right - rc.left;
-           currentmode->current_height = rc.bottom - rc.top;
+           currentmode->native_width = rc.right - rc.left;
+           currentmode->native_height = rc.bottom - rc.top;
        }
 
        flags |= (currprefs.win32_alwaysontop ? WS_EX_TOPMOST : 0);
@@ -2037,7 +1995,7 @@ static int create_windows (void)
                                "AmigaPowah", "WinUAE",
                                WS_CLIPCHILDREN | WS_CLIPSIBLINGS | (hMainWnd ? WS_VISIBLE | WS_CHILD : WS_VISIBLE | WS_POPUP),
                                x, y,
-                               currentmode->current_width, currentmode->current_height,
+                               currentmode->native_width, currentmode->native_height,
                                hMainWnd ? hMainWnd : hhWnd, NULL, 0, NULL);
 
     if (!hAmigaWnd) {
@@ -2092,13 +2050,13 @@ static BOOL doInit (void)
 
     for (;;) {
        updatemodes ();
-       currentmode->real_depth = 0;
+       currentmode->native_depth = 0;
        tmp_depth = currentmode->current_depth;
 
        write_log("W=%d H=%d B=%d CT=%d\n",
            DirectDraw_CurrentWidth (), DirectDraw_CurrentHeight (), DirectDraw_GetSurfaceBitCount (), colortype);
 
-       if (currentmode->current_depth < 15 && (currprefs.chipset_mask & CSMASK_AGA) && isfullscreen () && !WIN32GFX_IsPicassoScreen()) {
+       if (currentmode->current_depth < 15 && (currprefs.chipset_mask & CSMASK_AGA) && isfullscreen () > 0 && !WIN32GFX_IsPicassoScreen()) {
            static int warned;
            if (!warned) {
                char szMessage[MAX_DPATH];
@@ -2109,7 +2067,7 @@ static BOOL doInit (void)
            warned = 1;
        }
 
-       if (!(currentmode->flags & DM_OVERLAY) && !isfullscreen() && !(currentmode->flags & (DM_OPENGL | DM_D3D))) {
+       if (!(currentmode->flags & DM_OVERLAY) && isfullscreen() <= 0 && !(currentmode->flags & (DM_OPENGL | DM_D3D))) {
            write_log ("using desktop depth (%d -> %d) because not using overlay or opengl mode\n",
                currentmode->current_depth, DirectDraw_GetSurfaceBitCount());
            currentmode->current_depth = DirectDraw_GetSurfaceBitCount();
@@ -2127,8 +2085,8 @@ static BOOL doInit (void)
            fs_warning = IDS_UNSUPPORTEDSCREENMODE_1;
        } else if (colortype == RGBFB_CLUT && !(currentmode->flags & DM_OVERLAY)) {
            fs_warning = IDS_UNSUPPORTEDSCREENMODE_2;
-       } else if (currentmode->current_width >= GetSystemMetrics(SM_CXVIRTUALSCREEN) ||
-           currentmode->current_height >= GetSystemMetrics(SM_CYVIRTUALSCREEN)) {
+       } else if (currentmode->native_width >= GetSystemMetrics(SM_CXVIRTUALSCREEN) ||
+           currentmode->native_height >= GetSystemMetrics(SM_CYVIRTUALSCREEN)) {
            if (!console_logging)
                fs_warning = IDS_UNSUPPORTEDSCREENMODE_3;
 #ifdef PICASSO96
@@ -2140,7 +2098,7 @@ static BOOL doInit (void)
            fs_warning = IDS_UNSUPPORTEDSCREENMODE_4;
 #endif
        }
-       if (fs_warning >= 0 && !isfullscreen ()) {
+       if (fs_warning >= 0 && isfullscreen () <= 0) {
            char szMessage[MAX_DPATH], szMessage2[MAX_DPATH];
            WIN32GUI_LoadUIString(IDS_UNSUPPORTEDSCREENMODE, szMessage, MAX_DPATH);
            WIN32GUI_LoadUIString(fs_warning, szMessage2, MAX_DPATH);
@@ -2186,7 +2144,7 @@ static BOOL doInit (void)
                if (!DirectDraw_Start (displayGUID)) break;
                continue;
            }
-           currentmode->real_depth = currentmode->current_depth;
+           currentmode->native_depth = currentmode->current_depth;
 #if defined (GFXFILTER)
            if (currentmode->flags & (DM_OPENGL | DM_D3D | DM_SWSCALE)) {
                currentmode->amiga_width = AMIGA_WIDTH_MAX >> (currprefs.gfx_lores ? 1 : 0);
@@ -2202,7 +2160,7 @@ static BOOL doInit (void)
                                j++;
                        }
                        if ((usedfilter->x[j] & (UAE_FILTER_MODE_16 | UAE_FILTER_MODE_32)) == (UAE_FILTER_MODE_16 | UAE_FILTER_MODE_32)) {
-                           currentmode->current_depth = currentmode->real_depth;
+                           currentmode->current_depth = currentmode->native_depth;
                        } else {
                            currentmode->current_depth = (usedfilter->x[j] & UAE_FILTER_MODE_16) ? 16 : 32;
                        }
@@ -2269,11 +2227,11 @@ static BOOL doInit (void)
     if (currentmode->flags & DM_SWSCALE) {
        S2X_init (currentmode->current_width, currentmode->current_height,
            currentmode->amiga_width, currentmode->amiga_height,
-           mult, currentmode->current_depth, currentmode->real_depth);
+           mult, currentmode->current_depth, currentmode->native_depth);
     }
 #if defined OPENGL
     if (currentmode->flags & DM_OPENGL) {
-       const char *err = OGL_init (hAmigaWnd, currentmode->current_width, currentmode->current_height,
+       const char *err = OGL_init (hAmigaWnd, currentmode->native_width, currentmode->native_height,
            currentmode->amiga_width, currentmode->amiga_height, currentmode->current_depth);
        if (err) {
            OGL_free ();
@@ -2281,7 +2239,7 @@ static BOOL doInit (void)
                gui_message (err);
                changed_prefs.gfx_filter = currprefs.gfx_filter = 0;
            }
-           currentmode->current_depth = currentmode->real_depth;
+           currentmode->current_depth = currentmode->native_depth;
            gfxmode_reset ();
            ret = -1;
            goto oops;
@@ -2296,7 +2254,7 @@ static BOOL doInit (void)
            D3D_free ();
            gui_message (err);
            changed_prefs.gfx_filter = currprefs.gfx_filter = 0;
-           currentmode->current_depth = currentmode->real_depth;
+           currentmode->current_depth = currentmode->native_depth;
            gfxmode_reset ();
            ret = -1;
            goto oops;
@@ -2379,7 +2337,7 @@ void updatedisplayarea (void)
 #if defined (GFXFILTER)
        if (currentmode->flags & DM_SWSCALE) {
            S2X_refresh ();
-           if(!isfullscreen()) {
+           if(isfullscreen() <= 0) {
                if(DirectDraw_GetLockableType() != overlay_surface)
                    DX_Blit(0, 0, 0, 0, WIN32GFX_GetWidth(), WIN32GFX_GetHeight(), BLIT_SRC);
            } else {
@@ -2389,7 +2347,7 @@ void updatedisplayarea (void)
            else
 #endif
        {
-           if (!isfullscreen()) {
+           if (isfullscreen() <= 0) {
                surface_type_e s;
                s = DirectDraw_GetLockableType();
                if (s != overlay_surface && s != invalid_surface)
index eaa7f90e8fe94125bf8e0dafc62fa6878902edf3..f46fdc6a1f0e67d0b09ff314895d680f23c6bffa 100755 (executable)
@@ -495,7 +495,8 @@ static int scan_rom (char *path, HKEY fkey)
            break;
     }
     if (!uae_archive_extensions[i]) {
-       if (stricmp (ext, "rom") && stricmp (ext, "adf") && stricmp (ext, "key")) {
+       if (stricmp (ext, "rom") && stricmp (ext, "adf") && stricmp (ext, "key")
+           && stricmp (ext, "a500") && stricmp (ext, "a1200") && stricmp (ext, "a4000")) {
            write_log("ROMSCAN: skipping file '%s', unknown extension\n", path);
            return 0;
        }
@@ -831,8 +832,8 @@ static void m(void)
 void gui_display(int shortcut)
 {
     static int here;
-    int flipflop = 0;
     HRESULT hr;
+    int w, h;
 
     if (here)
        return;
@@ -847,18 +848,22 @@ void gui_display(int shortcut)
     clearallkeys ();
     setmouseactive (0);
 
-    if ((!WIN32GFX_IsPicassoScreen() && currprefs.gfx_afullscreen && (currprefs.gfx_size.width < gui_width || currprefs.gfx_size.height < gui_height))
-#ifdef PICASSO96
-       || (WIN32GFX_IsPicassoScreen() && currprefs.gfx_pfullscreen && (picasso96_state.Width < gui_width || picasso96_state.Height < gui_height))
-#endif
-    ) {
-       flipflop = 1;
+    w = h = -1;
+    if (!WIN32GFX_IsPicassoScreen() && currprefs.gfx_afullscreen && (currprefs.gfx_size.width < gui_width || currprefs.gfx_size.height < gui_height)) {
+       w = currprefs.gfx_size.width;
+       h = currprefs.gfx_size.height;
     }
-
+    if (WIN32GFX_IsPicassoScreen() && currprefs.gfx_pfullscreen && (picasso96_state.Width < gui_width || picasso96_state.Height < gui_height)) {
+       w = currprefs.gfx_size.width;
+       h = currprefs.gfx_size.height;
+    }
+    scaleresource_setmaxsize (-1, -1);
+    if (w > 0 && h > 0)
+       scaleresource_setmaxsize (w, h);
     WIN32GFX_ClearPalette();
     manual_painting_needed++; /* So that WM_PAINT will refresh the display */
 
-    if (isfullscreen ()) {
+    if (isfullscreen () > 0) {
        hr = DirectDraw_FlipToGDISurface();
        if (FAILED(hr))
            write_log ("FlipToGDISurface failed, %s\n", DXError (hr));
@@ -866,11 +871,7 @@ void gui_display(int shortcut)
 
     if (shortcut == -1) {
        int ret;
-       if (flipflop)
-           ShowWindow (hAmigaWnd, SW_MINIMIZE);
-       ret = GetSettings (0, flipflop ? (currprefs.win32_notaskbarbutton ? hHiddenWnd : NULL) : hAmigaWnd);
-       if (flipflop > 0)
-           ShowWindow (hAmigaWnd, SW_RESTORE);
+       ret = GetSettings (0, hAmigaWnd);
        if (!ret) {
            savestate_state = 0;
        }
@@ -890,8 +891,7 @@ void gui_display(int shortcut)
     inputdevice_config_change_test ();
     clearallkeys ();
     inputdevice_acquire ();
-    if (flipflop >= 0)
-       setmouseactive (1);
+    setmouseactive (1);
 #ifdef D3D
     D3D_guimode (FALSE);
 #endif
@@ -2496,7 +2496,7 @@ static INT_PTR CALLBACK LoadSaveDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPA
                }
            break;
            case IDC_SETINFO:
-               if (DialogBox(hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDD_SETINFO), hDlg, InfoSettingsProc))
+               if (CustomDialogBox(IDD_SETINFO, hDlg, InfoSettingsProc))
                    EnableWindow( GetDlgItem( hDlg, IDC_VIEWINFO ), workprefs.info[0] );
            break;
            case IDC_CONFIGAUTO:
@@ -2610,19 +2610,17 @@ static INT_PTR CALLBACK ContributorsProc (HWND hDlg, UINT msg, WPARAM wParam, LP
      case WM_INITDIALOG:
        CharFormat.cbSize = sizeof (CharFormat);
 
-       WIN32GUI_LoadUIString( IDS_CONTRIBUTORS1, szContributors1, MAX_CONTRIBUTORS_LENGTH );
-       WIN32GUI_LoadUIString( IDS_CONTRIBUTORS2, szContributors2, MAX_CONTRIBUTORS_LENGTH );
-       sprintf( szContributors, "%s%s", szContributors1, szContributors2 );
+       WIN32GUI_LoadUIString(IDS_CONTRIBUTORS1, szContributors1, MAX_CONTRIBUTORS_LENGTH);
+       WIN32GUI_LoadUIString(IDS_CONTRIBUTORS2, szContributors2, MAX_CONTRIBUTORS_LENGTH);
+       sprintf(szContributors, "%s%s", szContributors1, szContributors2);
 
        SetDlgItemText (hDlg, IDC_CONTRIBUTORS, szContributors );
        SendDlgItemMessage (hDlg, IDC_CONTRIBUTORS, EM_GETCHARFORMAT, 0, (LPARAM) & CharFormat);
        CharFormat.dwMask |= CFM_SIZE | CFM_FACE;
-       CharFormat.yHeight = 10 * 20; /* height in twips, where a twip is 1/20th of a point - for a pt.size of 18 */
+       CharFormat.yHeight = 8 * 20; /* height in twips, where a twip is 1/20th of a point - for a pt.size of 18 */
 
-       strcpy (CharFormat.szFaceName, "Times New Roman");
+       strcpy (CharFormat.szFaceName, os_vista ? "Segoe UI" : (os_winnt ? "Tahoma" : "Times New Roman"));
        SendDlgItemMessage (hDlg, IDC_CONTRIBUTORS, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) & CharFormat);
-       /* SendDlgItemMessage(hDlg, IDC_CONTRIBUTORS, EM_SETBKGNDCOLOR,0,GetSysColor( COLOR_3DFACE ) ); */
-
        return TRUE;
     }
     return FALSE;
@@ -2630,7 +2628,7 @@ static INT_PTR CALLBACK ContributorsProc (HWND hDlg, UINT msg, WPARAM wParam, LP
 
 static void DisplayContributors (HWND hDlg)
 {
-    DialogBox( hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDD_CONTRIBUTORS), hDlg, ContributorsProc);
+    CustomDialogBox(IDD_CONTRIBUTORS, hDlg, ContributorsProc);
 }
 
 typedef struct url_info
@@ -3423,7 +3421,7 @@ static void enable_for_displaydlg (HWND hDlg)
 #ifndef PICASSO96
     rtg = FALSE;
 #endif
-    ew (hDlg, IDC_PFULLSCREEN, rtg);
+    ew (hDlg, IDC_SCREENMODE_RTG, rtg);
     if (!full_property_sheet)  {
        /* Disable certain controls which are only to be set once at start-up... */
        ew (hDlg, IDC_TEST16BIT, FALSE);
@@ -3713,10 +3711,10 @@ static void values_to_displaydlg (HWND hDlg)
 
     v = workprefs.cpu_cycle_exact ? 1 : workprefs.gfx_framerate;
     SendDlgItemMessage (hDlg, IDC_FRAMERATE, TBM_SETPOS, TRUE, v);
-    WIN32GUI_LoadUIString( IDS_FRAMERATE, buffer, MAX_FRAMERATE_LENGTH );
+    WIN32GUI_LoadUIString(IDS_FRAMERATE, buffer, sizeof buffer);
     LoadNthString (v - 1, Nth, MAX_NTH_LENGTH);
-    if(FormatMessage( FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_ALLOCATE_BUFFER,
-                      buffer, 0, 0, (LPTSTR)&string, MAX_FRAMERATE_LENGTH + MAX_NTH_LENGTH, (va_list *)blah ) == 0)
+    if(FormatMessage(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_ALLOCATE_BUFFER,
+           buffer, 0, 0, (LPTSTR)&string, MAX_FRAMERATE_LENGTH + MAX_NTH_LENGTH, (va_list *)blah ) == 0)
     {
        DWORD dwLastError = GetLastError();
        sprintf (buffer, "Every %s Frame", nth[v - 1]);
@@ -3727,8 +3725,25 @@ static void values_to_displaydlg (HWND hDlg)
     }
 
     CheckRadioButton (hDlg, IDC_LM_NORMAL, IDC_LM_SCANLINES, IDC_LM_NORMAL + workprefs.gfx_linedbl);
-    CheckDlgButton (hDlg, IDC_AFULLSCREEN, workprefs.gfx_afullscreen);
-    CheckDlgButton (hDlg, IDC_PFULLSCREEN, workprefs.gfx_pfullscreen);
+
+    SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE, CB_RESETCONTENT, 0, 0);
+    WIN32GUI_LoadUIString(IDS_SCREEN_WINDOWED, buffer, sizeof buffer);
+    SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE, CB_ADDSTRING, 0, (LPARAM)buffer);
+    WIN32GUI_LoadUIString(IDS_SCREEN_FULLSCREEN, buffer, sizeof buffer);
+    SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE, CB_ADDSTRING, 0, (LPARAM)buffer);
+    WIN32GUI_LoadUIString(IDS_SCREEN_FULLWINDOW, buffer, sizeof buffer);
+    SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE, CB_ADDSTRING, 0, (LPARAM)buffer);
+    SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE, CB_SETCURSEL, workprefs.gfx_afullscreen, 0);
+
+    SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG, CB_RESETCONTENT, 0, 0);
+    WIN32GUI_LoadUIString(IDS_SCREEN_WINDOWED, buffer, sizeof buffer);
+    SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG, CB_ADDSTRING, 0, (LPARAM)buffer);
+    WIN32GUI_LoadUIString(IDS_SCREEN_FULLSCREEN, buffer, sizeof buffer);
+    SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG, CB_ADDSTRING, 0, (LPARAM)buffer);
+    WIN32GUI_LoadUIString(IDS_SCREEN_FULLWINDOW, buffer, sizeof buffer);
+    SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG, CB_ADDSTRING, 0, (LPARAM)buffer);
+    SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG, CB_SETCURSEL, workprefs.gfx_pfullscreen, 0);
+
     CheckDlgButton (hDlg, IDC_ASPECT, workprefs.gfx_correct_aspect);
     CheckDlgButton (hDlg, IDC_LORES, workprefs.gfx_lores);
     CheckDlgButton (hDlg, IDC_LORES_SMOOTHED, workprefs.gfx_lores_mode);
@@ -3751,7 +3766,7 @@ static void init_resolution_combo (HWND hDlg)
     while (DisplayModes[i].depth >= 0) {
        if (DisplayModes[i].residx != idx) {
            sprintf (tmp, "%dx%d", DisplayModes[i].res.width, DisplayModes[i].res.height);
-           SendDlgItemMessage( hDlg, IDC_RESOLUTION, CB_ADDSTRING, 0, (LPARAM)tmp);
+           SendDlgItemMessage(hDlg, IDC_RESOLUTION, CB_ADDSTRING, 0, (LPARAM)tmp);
            idx = DisplayModes[i].residx;
        }
        i++;
@@ -3776,15 +3791,20 @@ static void values_from_displaydlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
     int i, j;
     int gfx_width = workprefs.gfx_size_win.width;
     int gfx_height = workprefs.gfx_size_win.height;
+    LRESULT posn;
 
-    workprefs.gfx_pfullscreen    = IsDlgButtonChecked (hDlg, IDC_PFULLSCREEN);
-    workprefs.gfx_afullscreen    = IsDlgButtonChecked (hDlg, IDC_AFULLSCREEN);
+    posn = SendDlgItemMessage (hDlg, IDC_SCREENMODE_NATIVE, CB_GETCURSEL, 0, 0);
+    if (posn != CB_ERR)
+       workprefs.gfx_afullscreen = posn;
+    posn = SendDlgItemMessage (hDlg, IDC_SCREENMODE_RTG, CB_GETCURSEL, 0, 0);
+    if (posn != CB_ERR)
+       workprefs.gfx_pfullscreen = posn;
 
     workprefs.gfx_lores          = IsDlgButtonChecked (hDlg, IDC_LORES);
     workprefs.gfx_lores_mode     = IsDlgButtonChecked (hDlg, IDC_LORES_SMOOTHED);
     workprefs.gfx_correct_aspect = IsDlgButtonChecked (hDlg, IDC_ASPECT);
-    workprefs.gfx_linedbl = ( IsDlgButtonChecked( hDlg, IDC_LM_SCANLINES ) ? 2 :
-                             IsDlgButtonChecked( hDlg, IDC_LM_DOUBLED ) ? 1 : 0 );
+    workprefs.gfx_linedbl = (IsDlgButtonChecked(hDlg, IDC_LM_SCANLINES) ? 2 :
+                             IsDlgButtonChecked(hDlg, IDC_LM_DOUBLED) ? 1 : 0);
 
     workprefs.gfx_framerate = SendDlgItemMessage (hDlg, IDC_FRAMERATE, TBM_GETPOS, 0, 0);
     workprefs.chipset_refreshrate = SendDlgItemMessage (hDlg, IDC_FRAMERATE2, TBM_GETPOS, 0, 0);
@@ -3796,19 +3816,19 @@ static void values_from_displaydlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
        LPSTR blah[1] = { Nth };
        LPTSTR string = NULL;
 
-       WIN32GUI_LoadUIString( IDS_FRAMERATE, buffer, MAX_FRAMERATE_LENGTH );
-       LoadNthString( workprefs.gfx_framerate - 1, Nth, MAX_NTH_LENGTH );
-       if( FormatMessage( FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_ALLOCATE_BUFFER,
-                          buffer, 0, 0, (LPTSTR)&string, MAX_FRAMERATE_LENGTH + MAX_NTH_LENGTH, (va_list *)blah ) == 0 )
+       WIN32GUI_LoadUIString(IDS_FRAMERATE, buffer, MAX_FRAMERATE_LENGTH);
+       LoadNthString(workprefs.gfx_framerate - 1, Nth, MAX_NTH_LENGTH);
+       if(FormatMessage(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_ALLOCATE_BUFFER,
+                          buffer, 0, 0, (LPTSTR)&string, MAX_FRAMERATE_LENGTH + MAX_NTH_LENGTH, (va_list *)blah ) == 0)
        {
            DWORD dwLastError = GetLastError();
            sprintf (buffer, "Every %s Frame", nth[workprefs.gfx_framerate - 1]);
-           SetDlgItemText( hDlg, IDC_RATETEXT, buffer );
+           SetDlgItemText(hDlg, IDC_RATETEXT, buffer);
        }
        else
        {
-           SetDlgItemText( hDlg, IDC_RATETEXT, string );
-           LocalFree( string );
+           SetDlgItemText(hDlg, IDC_RATETEXT, string);
+           LocalFree(string);
        }
        sprintf (buffer, "%d", workprefs.chipset_refreshrate);
        SetDlgItemText (hDlg, IDC_RATE2TEXT, buffer);
@@ -3827,7 +3847,7 @@ static void values_from_displaydlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
     if (msg == WM_COMMAND && HIWORD (wParam) == CBN_SELCHANGE) 
     {
        if (LOWORD (wParam) == IDC_DISPLAYSELECT) {
-           LRESULT posn = SendDlgItemMessage (hDlg, IDC_DISPLAYSELECT, CB_GETCURSEL, 0, 0);
+           posn = SendDlgItemMessage (hDlg, IDC_DISPLAYSELECT, CB_GETCURSEL, 0, 0);
            if (posn != CB_ERR && posn != workprefs.gfx_display) {
                if (Displays[posn].disabled)
                    posn = 0;
@@ -3910,10 +3930,6 @@ static int hw3d_changed;
 static INT_PTR CALLBACK DisplayDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
 {
     static int recursive = 0;
-    HKEY hPixelFormatKey;
-    RGBFTYPE colortype      = RGBFB_NONE;
-    DWORD dwType            = REG_DWORD;
-    DWORD dwDisplayInfoSize = sizeof( colortype );
 
     switch (msg) 
     {
@@ -3942,27 +3958,12 @@ static INT_PTR CALLBACK DisplayDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPAR
        if (recursive > 0)
            break;
        recursive++;
-       if((wParam == IDC_TEST16BIT) && DirectDraw_Start(NULL)) {
-           if(RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\Arabuusimiehet\\WinUAE", 0, KEY_WRITE | KEY_READ, &hPixelFormatKey) == ERROR_SUCCESS) {
-               char szMessage[4096];
-               char szTitle[MAX_DPATH];
-               WIN32GUI_LoadUIString(IDS_GFXCARDCHECK, szMessage, 4096);
-               WIN32GUI_LoadUIString(IDS_GFXCARDTITLE, szTitle, MAX_DPATH);
-                   
-               if(MessageBox(NULL, szMessage, szTitle, MB_YESNO | MB_ICONWARNING | MB_TASKMODAL | MB_SETFOREGROUND) == IDYES) {
-                   colortype = WIN32GFX_FigurePixelFormats(0);
-                   RegSetValueEx(hPixelFormatKey, "DisplayInfo", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof(colortype));
-               }
-               RegCloseKey(hPixelFormatKey);
-           }
-           DirectDraw_Release();
-       } else {
 #if 0
-           handle_da (hDlg);
+        handle_da (hDlg);
 #endif
-           values_from_displaydlg (hDlg, msg, wParam, lParam);
-           enable_for_displaydlg (hDlg);
-       }
+        values_from_displaydlg (hDlg, msg, wParam, lParam);
+        enable_for_displaydlg (hDlg);
+
        recursive--;
        break;
 
@@ -6202,7 +6203,7 @@ static void harddisk_edit (HWND hDlg)
        }
        current_hfdlg.rw = !uci->readonly;
        current_hfdlg.bootpri = uci->bootpri;
-       if (DialogBox( hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDD_HARDFILE), hDlg, HardfileSettingsProc)) 
+       if (CustomDialogBox(IDD_HARDFILE, hDlg, HardfileSettingsProc)) 
        {
            int result = add_filesys_config (&workprefs, entry, current_hfdlg.devicename, 0, current_hfdlg.filename,
                                        ! current_hfdlg.rw, current_hfdlg.sectors, current_hfdlg.surfaces,
@@ -6214,7 +6215,7 @@ static void harddisk_edit (HWND hDlg)
        current_hfdlg.rw = !uci->readonly;
        strncpy (current_hfdlg.filename, uci->rootdir, (sizeof current_hfdlg.filename) - 1);
        current_hfdlg.filename[(sizeof current_hfdlg.filename) - 1] = '\0';
-       if (DialogBox(hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDD_HARDDRIVE), hDlg, HarddriveSettingsProc)) 
+       if (CustomDialogBox(IDD_HARDDRIVE, hDlg, HarddriveSettingsProc)) 
        {
            int result = add_filesys_config (&workprefs, entry, 0, 0, current_hfdlg.filename,
                                        ! current_hfdlg.rw, 0, 0,
@@ -6234,7 +6235,7 @@ static void harddisk_edit (HWND hDlg)
        }
        current_fsvdlg.rw = !uci->readonly;
        current_fsvdlg.bootpri = uci->bootpri;
-       if (DialogBox( hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDD_FILESYS), hDlg, VolumeSettingsProc)) {
+       if (CustomDialogBox(IDD_FILESYS, hDlg, VolumeSettingsProc)) {
            int result = add_filesys_config (&workprefs, entry, current_fsvdlg.device, current_fsvdlg.volume,
                                        current_fsvdlg.rootdir, ! current_fsvdlg.rw, 0, 0, 0, 0, current_fsvdlg.bootpri, 0, 0);
        }
@@ -6253,13 +6254,13 @@ static void harddiskdlg_button (HWND hDlg, int button)
     switch (button) {
      case IDC_NEW_FS:
        current_fsvdlg = empty_fsvdlg;
-       if (DialogBox (hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDD_FILESYS), hDlg, VolumeSettingsProc))
+       if (CustomDialogBox(IDD_FILESYS, hDlg, VolumeSettingsProc))
            new_filesys (hDlg);
        break;
 
      case IDC_NEW_HF:
        current_hfdlg = empty_hfdlg;
-       if (DialogBox (hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDD_HARDFILE), hDlg, HardfileSettingsProc))
+       if (CustomDialogBox (IDD_HARDFILE, hDlg, HardfileSettingsProc))
            new_hardfile (hDlg);
        break;
 
@@ -6270,7 +6271,7 @@ static void harddiskdlg_button (HWND hDlg, int button)
            WIN32GUI_LoadUIString (IDS_NOHARDDRIVES, tmp, sizeof (tmp));
            gui_message (tmp);
        } else {
-           if (DialogBox (hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDD_HARDDRIVE), hDlg, HarddriveSettingsProc))
+           if (CustomDialogBox (IDD_HARDDRIVE, hDlg, HarddriveSettingsProc))
                new_harddrive (hDlg);
        }
        break;
@@ -7651,7 +7652,7 @@ static int askinputcustom(HWND hDlg, char *custom, int maxlen)
     char txt[MAX_DPATH];
 
     stringboxdialogactive = 1;
-    hwnd = CreateDialog (hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDD_STRINGBOX), hDlg, StringBoxDialogProc);
+    hwnd = CustomCreateDialog (IDD_STRINGBOX, hDlg, StringBoxDialogProc);
     if (hwnd == NULL)
        return 0;
     SendMessage(GetDlgItem(hwnd, IDC_STRINGBOXEDIT), WM_SETTEXT, 0, (LPARAM)custom);
@@ -8506,6 +8507,7 @@ static void enable_for_avioutputdlg(HWND hDlg)
 #endif
 
     ew (hDlg, IDC_SCREENSHOT, full_property_sheet ? FALSE : TRUE);
+    ew (hDlg, IDC_SAMPLERIPPER_ACTIVATED, full_property_sheet ? FALSE : TRUE);
 
     ew (hDlg, IDC_AVIOUTPUT_PAL, TRUE);
     ew (hDlg, IDC_AVIOUTPUT_NTSC, TRUE);
@@ -8735,14 +8737,16 @@ static INT_PTR CALLBACK AVIOutputDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPA
 #endif
 
 struct GUIPAGE {
-    PROPSHEETPAGE pp;
+    DLGPROC dlgproc;
+    LPCTSTR title;
+    LPCTSTR icon;
     HTREEITEM tv;
     int himg;
     int idx;
     const char *help;
     HACCEL accel;
     int fullpanel;
-    int tmpl;
+    struct newresource *nres;
 };
 
 static int GetPanelRect (HWND hDlg, RECT *r)
@@ -8968,6 +8972,7 @@ static HWND updatePanel (HWND hDlg, int id)
     RECT r1c, r1w, r2c, r2w, r3c, r3w;
     int w, h, pw, ph, x , y, i;
     int fullpanel;
+    struct newresource *tres;
 
     ew (guiDlg, IDC_RESETAMIGA, full_property_sheet ? FALSE : TRUE);
     ew (guiDlg, IDOK, TRUE);
@@ -8986,15 +8991,14 @@ static HWND updatePanel (HWND hDlg, int id)
     }
     hAccelTable = NULL;
     if (id < 0) {
-       if (!isfullscreen ()) {
+       if (isfullscreen () <= 0) {
            RECT r;
-           LONG left, top;
-           GetWindowRect (hDlg, &r);
-           left = r.left;
-           top = r.top;
-           if (hWinUAEKey) {
-               RegSetValueEx (hWinUAEKey, "xPosGUI", 0, REG_DWORD, (LPBYTE)&left, sizeof(LONG));
-               RegSetValueEx (hWinUAEKey, "yPosGUI", 0, REG_DWORD, (LPBYTE)&top, sizeof(LONG));
+           if (GetWindowRect (hDlg, &r) && hWinUAEKey) {
+               LONG left, top;
+               left = r.left;
+               top = r.top;
+               RegSetValueEx (hWinUAEKey, "GUIPosX", 0, REG_DWORD, (LPBYTE)&left, sizeof(LONG));
+               RegSetValueEx (hWinUAEKey, "GUIPosY", 0, REG_DWORD, (LPBYTE)&top, sizeof(LONG));
            }
        }
        ew (hDlg, IDHELP, FALSE);
@@ -9008,7 +9012,9 @@ static HWND updatePanel (HWND hDlg, int id)
     GetClientRect (hDlg, &r2c);
     gui_width = r2c.right;
     gui_height = r2c.bottom;
-    panelDlg = CreateDialogParam (hUIDLL ? hUIDLL : hInst, ppage[id].pp.pszTemplate, hDlg, ppage[id].pp.pfnDlgProc, id);
+    tres = scaleresource(ppage[id].nres, hDlg);
+    panelDlg = CreateDialogIndirectParam (tres->inst, tres->resource, hDlg, ppage[id].dlgproc, id);
+    freescaleresource(tres);
     GetWindowRect (hDlg, &r3w);
     GetClientRect (panelDlg, &r3c);
     x = r1w.left - r2w.left;
@@ -9048,7 +9054,7 @@ static HWND updatePanel (HWND hDlg, int id)
     SendMessage(ToolTipHWND, TTM_SETDELAYTIME, (WPARAM)TTDT_AUTOPOP, (LPARAM)MAKELONG(20000, 0));
     SendMessage(ToolTipHWND, TTM_SETMAXTIPWIDTH, 0, 400);
 
-    EnumChildWindows (panelDlg, &childenumproc, (LPARAM)ppage[currentpage].tmpl);
+    EnumChildWindows (panelDlg, &childenumproc, (LPARAM)ppage[currentpage].nres->tmpl);
     SendMessage (panelDlg, WM_NULL, 0, 0);
 
     hAccelTable = ppage[currentpage].accel;
@@ -9087,7 +9093,7 @@ static void CreateNode (HWND TVhDlg, int page, HTREEITEM parent)
     is.hInsertAfter = TVI_LAST;
     is.hParent = parent;
     is.itemex.mask = TVIF_TEXT | TVIF_PARAM | TVIF_STATE | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
-    is.itemex.pszText = (char*)p->pp.pszTitle;
+    is.itemex.pszText = (char*)p->title;
     is.itemex.lParam = (LPARAM)p->idx;
     is.itemex.iImage = p->himg;
     is.itemex.iSelectedImage = is.itemex.iImage;
@@ -9106,7 +9112,7 @@ static void createTreeView (HWND hDlg, int currentpage)
     if (himl) {
        HICON icon;
        for (i = 0; i < C_PAGES; i++) {
-           icon = LoadIcon (hInst, (LPCSTR)ppage[i].pp.pszIcon);
+           icon = LoadIcon (hInst, (LPCSTR)ppage[i].icon);
            ppage[i].himg = ImageList_AddIcon (himl, icon);
        }
        icon = LoadIcon (hInst, MAKEINTRESOURCE (IDI_ROOT));
@@ -9147,6 +9153,8 @@ static void createTreeView (HWND hDlg, int currentpage)
     TreeView_SelectItem (TVhDlg, ppage[currentpage].tv);
 }
 
+static int dialog_x_offset, dialog_y_offset;
+
 static void centerWindow (HWND hDlg)
 {
     RECT rc, rcDlg, rcOwner;
@@ -9156,13 +9164,13 @@ static void centerWindow (HWND hDlg)
 
     if (owner == NULL)
        owner = GetDesktopWindow();
-    if (!isfullscreen ()) {
+    if (isfullscreen () <= 0) {
        DWORD regkeytype;
        DWORD regkeysize = sizeof(LONG);
        if (hWinUAEKey) {
-           if (RegQueryValueEx (hWinUAEKey, "xPosGUI", 0, &regkeytype, (LPBYTE)&x, &regkeysize) != ERROR_SUCCESS)
+           if (RegQueryValueEx (hWinUAEKey, "GUIPosX", 0, &regkeytype, (LPBYTE)&x, &regkeysize) != ERROR_SUCCESS)
                x = 0;
-           if (RegQueryValueEx (hWinUAEKey, "yPosGUI", 0, &regkeytype, (LPBYTE)&y, &regkeysize) != ERROR_SUCCESS)
+           if (RegQueryValueEx (hWinUAEKey, "GUIPosY", 0, &regkeytype, (LPBYTE)&y, &regkeysize) != ERROR_SUCCESS)
                y = 0;
        } else {
            x = y = 0;
@@ -9183,7 +9191,7 @@ static void centerWindow (HWND hDlg)
     pt2.x = x + 16;
     pt2.y = y + GetSystemMetrics (SM_CYMENU) + GetSystemMetrics (SM_CYBORDER);
     if (MonitorFromPoint (pt1, MONITOR_DEFAULTTONULL) == NULL || MonitorFromPoint (pt2, MONITOR_DEFAULTTONULL) == NULL) {
-       if (isfullscreen()) {
+       if (isfullscreen() > 0) {
            x = 0;
            y = 0;
        } else {
@@ -9191,6 +9199,8 @@ static void centerWindow (HWND hDlg)
            y = 16;
        }
     }
+    dialog_x_offset = x;
+    dialog_y_offset = y;
     SetWindowPos (hDlg,  HWND_TOP, x, y, 0, 0, SWP_NOSIZE);
 }
 
@@ -9368,13 +9378,14 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP
            centerWindow (hDlg);
            createTreeView (hDlg, currentpage);
            updatePanel (hDlg, currentpage);
-           return TRUE;
+       return TRUE;
        case WM_DROPFILES:
            if (dragdrop (hDlg, (HDROP)wParam, (gui_active || full_property_sheet) ? &workprefs : &changed_prefs, currentpage))
                SendMessage (hDlg, WM_COMMAND, IDOK, 0);
            updatePanel (hDlg, currentpage);
-           return FALSE;
+       return FALSE;
        case WM_NOTIFY:
+       {
            switch (((LPNMHDR)lParam)->code)
            {
                case TVN_SELCHANGING:
@@ -9395,7 +9406,9 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP
                break;
            }
            break;
+       }
        case WM_COMMAND:
+       {
            switch (LOWORD(wParam))
            {
                case IDC_RESETAMIGA:
@@ -9428,7 +9441,8 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP
                    guiDlg = NULL;
                    return TRUE;
            }
-       break;
+           break;
+       }
     }
     return FALSE;
 }
@@ -9438,23 +9452,93 @@ static ACCEL EmptyAccel[] = {
     { 0, 0, 0 }
 };
 
+struct newresource *getresource(int tmpl)
+{
+    char rid[10];
+    HRSRC hrsrc;
+    HGLOBAL res;
+    HINSTANCE inst = hUIDLL ? hUIDLL : hInst;
+    void *resdata, *newres;
+    struct newresource *nr;
+    int size;
+
+    sprintf(rid,"#%d", tmpl);
+    hrsrc = FindResource (inst, rid, RT_DIALOG);
+    if (!hrsrc) {
+       inst = hInst;
+       hrsrc = FindResource (inst, rid, RT_DIALOG);
+    }
+    if (!hrsrc)
+       return NULL;
+    res = LoadResource(inst, hrsrc);
+    if (!res)
+       return NULL;
+    resdata = LockResource(res);
+    size = SizeofResource(inst, hrsrc);
+    nr = xcalloc (sizeof (struct newresource), 1);
+    newres = xmalloc (size);
+    memcpy (newres, resdata, size);
+    nr->resource = newres;
+    nr->size = size;
+    nr->tmpl = tmpl;
+    nr->inst = inst;
+    return nr;
+}
+
+INT_PTR CustomDialogBox(int templ, HWND hDlg, DLGPROC proc)
+{
+    struct newresource *res, *r;
+    INT_PTR h = -1;
+
+    res = getresource (templ);
+    if (!res)
+       return h;
+    r = scaleresource (res, hDlg);
+    if (r) {
+       h = DialogBoxIndirect (r->inst, r->resource, hDlg, proc);
+       freescaleresource (r);
+    }
+    freescaleresource (res);
+    return h;
+}
+
+HWND CustomCreateDialog (int templ, HWND hDlg, DLGPROC proc)
+{
+    struct newresource *res, *r;
+    HWND h = NULL;
+
+    res = getresource (templ);
+    if (!res)
+       return h;
+    r = scaleresource (res, hDlg);
+    if (r) {
+       h = CreateDialogIndirect (r->inst, r->resource, hDlg, proc);
+       freescaleresource (r);
+    }
+    freescaleresource (res);
+    return h;
+}
+
 static int init_page (int tmpl, int icon, int title,
     INT_PTR (CALLBACK FAR *func) (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam), ACCEL *accels, char *help)
 {
+    LPTSTR lpstrTitle;
     static id = 0;
     int i = -1;
+    struct newresource *res;
 
-    LPTSTR lpstrTitle;
-    ppage[id].pp.pszTemplate = MAKEINTRESOURCE (tmpl);
-    ppage[id].pp.pszIcon = MAKEINTRESOURCE (icon);
+    res = getresource(tmpl);
+    if (!res)
+       return -1;
+    ppage[id].nres = res;
+    ppage[id].icon = MAKEINTRESOURCE (icon);
     lpstrTitle = calloc (1, MAX_DPATH);
     LoadString (hUIDLL, title, lpstrTitle, MAX_DPATH);
-    ppage[id].pp.pszTitle = lpstrTitle;
-    ppage[id].pp.pfnDlgProc = func;
+    ppage[id].title = lpstrTitle;
+    ppage[id].dlgproc = func;
     ppage[id].help = help;
     ppage[id].idx = id;
     ppage[id].accel = NULL;
-    ppage[id].tmpl = tmpl;
     if (!accels)
        accels = EmptyAccel;
     while (accels[++i].key);
@@ -9465,12 +9549,68 @@ static int init_page (int tmpl, int icon, int title,
     return id - 1;
 }
 
+static RECT dialog_rect;
+
+static void dialogmousemove(HWND hDlg, MSG *msg)
+{
+    int edge2 = 80;
+    int rate = 32;
+    int qual = msg->wParam;
+    int newmx, newmy;
+    static int oldx, oldy, ignorenext;
+    int mx, my;
+
+    mx = (signed short) LOWORD (msg->lParam);
+    my = (signed short) HIWORD (msg->lParam);
+
+    if (!(qual & MK_CONTROL) || ignorenext > 0) {
+       oldx = mx;
+       oldy = my;
+       if (ignorenext > 0)
+           ignorenext--;
+       return;
+    }
+
+    newmx = mx - oldx;
+    newmy = my - oldy;
+
+    oldx = mx;
+    oldy = my;
+
+    if (newmx < -edge2 || newmy < -edge2 || newmx > edge2 || newmy > edge2) {
+       ignorenext++;
+       return;
+    }
+
+    write_log("%dx%d\n", newmx, newmy);
+
+    dialog_x_offset += newmx;
+    dialog_y_offset += newmy;
+
+    /*
+    if (dialog_x_offset >= dialog_rect.right - WIN32GFX_GetWidth() + edge2)
+       dialog_x_offset = dialog_rect.right - WIN32GFX_GetWidth() + edge2;
+    if (dialog_y_offset >= dialog_rect.bottom - WIN32GFX_GetHeight() + edge2)
+       dialog_y_offset = dialog_rect.bottom - WIN32GFX_GetHeight() + edge2;
+    if (dialog_x_offset < -edge2)
+       dialog_x_offset = -edge2;
+    if (dialog_y_offset < -edge2)
+       dialog_y_offset = -edge2;
+*/
+    SetWindowPos(hDlg, 0, dialog_x_offset, dialog_y_offset, 0, 0,
+       SWP_NOOWNERZORDER | SWP_NOREDRAW | SWP_NOSIZE | SWP_NOACTIVATE | SWP_DEFERERASE);
+    ignorenext++;
+
+}
+
 static int GetSettings (int all_options, HWND hwnd)
 {
     static int init_called = 0;
     int psresult;
     HWND dhwnd;
     int first = 0;
+    static struct newresource *panelresource;
+    struct newresource *tres;
 
     gui_active++;
 
@@ -9484,6 +9624,7 @@ static int GetSettings (int all_options, HWND hwnd)
 
     if (!init_called) {
        first = 1;
+       panelresource = getresource(IDD_PANEL);
        LOADSAVE_ID = init_page (IDD_LOADSAVE, IDI_CONFIGFILE, IDS_LOADSAVE, LoadSaveDlgProc, NULL, "gui/configurations.htm");
        MEMORY_ID = init_page (IDD_MEMORY, IDI_MEMORY, IDS_MEMORY, MemoryDlgProc, NULL, "gui/ram.htm");
        KICKSTART_ID = init_page (IDD_KICKSTART, IDI_MEMORY, IDS_KICKSTART, KickstartDlgProc, NULL, "gui/rom.htm");
@@ -9527,7 +9668,13 @@ static int GetSettings (int all_options, HWND hwnd)
     DragAcceptFiles(hwnd, TRUE);
     if (first)
        write_log("Entering GUI idle loop\n");
-    dhwnd = CreateDialog (hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDD_PANEL), hwnd, DialogProc);
+    scaleresource_setmaxsize(800, 600);
+    tres = scaleresource(panelresource, hwnd);
+    dhwnd = CreateDialogIndirect (tres->inst, tres->resource, hwnd, DialogProc);
+    dialog_rect.top = dialog_rect.left = 0;
+    dialog_rect.right = tres->width;
+    dialog_rect.bottom = tres->height;
+    freescaleresource(tres);
     psresult = 0;
     if (dhwnd != NULL) {
        MSG msg;
@@ -9539,6 +9686,7 @@ static int GetSettings (int all_options, HWND hwnd)
            SetWindowText (dhwnd, tmp);
        }
        ShowWindow (dhwnd, SW_SHOW);
+       MapDialogRect(dhwnd, &dialog_rect);
        for (;;) {
            HANDLE IPChandle;
            IPChandle = geteventhandleIPC();
@@ -9756,7 +9904,7 @@ static int fsdialog (HWND *hwnd, DWORD *flags)
        return 0;
     }
     *hwnd = hAmigaWnd;
-    if (!isfullscreen ())
+    if (isfullscreen () <= 0)
        return 0;
     hr = DirectDraw_FlipToGDISurface();
     if (FAILED(hr))
index 0d25899ed6f2ecbf6e00c159390f35a98cefed92..942aa1d3d78f21396a833466e87c5cd7916e4f10 100755 (executable)
@@ -19,4 +19,21 @@ int dragdrop (HWND hDlg, HDROP hd, struct uae_prefs *prefs, int currentpage);
 HKEY read_disk_history (void);
 void write_disk_history (void);
 
+struct newresource
+{
+    void *resource;
+    HINSTANCE inst;
+    int size;
+    int tmpl;
+    int width, height;
+};
+
+extern struct newresource *scaleresource(struct newresource *res, HWND);
+extern void freescaleresource(struct newresource*);
+extern void scaleresource_setmaxsize(int w, int h);
+extern HWND CustomCreateDialog (int templ, HWND hDlg, DLGPROC proc);
+extern INT_PTR CustomDialogBox(int templ, HWND hDlg, DLGPROC proc);
+extern struct newresource *getresource(int tmpl);
+extern struct newresource *resourcefont(struct newresource*, char *font, int size);
+
 #endif
diff --git a/od-win32/win32gui_extra.c b/od-win32/win32gui_extra.c
new file mode 100755 (executable)
index 0000000..08806f2
--- /dev/null
@@ -0,0 +1,208 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <windows.h>
+#include <winspool.h>
+#include <winuser.h>
+#include <mmsystem.h>
+#include <commctrl.h>
+#include <commdlg.h>
+#include <dlgs.h>
+#include <process.h>
+#include <prsht.h>
+#include <richedit.h>
+#include <shellapi.h>
+#include <Shlobj.h>
+#include <shlwapi.h>
+#include <ddraw.h>
+#include <shobjidl.h>
+
+#include "sysconfig.h"
+#include "sysdeps.h"
+
+#include "resource.h"
+#include "win32.h"
+#include "win32gui.h"
+
+static int max_w, max_h, mult, pointsize;
+
+typedef struct {
+    WORD dlgVer;
+    WORD signature;
+    DWORD helpID;
+    DWORD exStyle;
+    DWORD style;
+    WORD cDlgItems;
+    short x;
+    short y;
+    short cx;
+    short cy;
+/*
+    sz_Or_Ord menu;
+    sz_Or_Ord windowClass;
+*/
+} DLGTEMPLATEEX;
+
+typedef struct {
+    WORD pointsize;
+    WORD weight;
+    BYTE italic;
+    BYTE charset;
+    WCHAR typeface[0];
+} DLGTEMPLATEEX_END;
+
+typedef struct {
+    DWORD helpID;
+    DWORD exStyle;
+    DWORD style;
+    short x;
+    short y;
+    short cx;
+    short cy;
+    WORD id;
+    WCHAR windowClass[0];
+    /* variable data after this */
+    /* sz_Or_Ord title; */
+    /* WORD extraCount; */
+} DLGITEMTEMPLATEEX;
+
+static wchar_t font_vista[] = L"Segoe UI";
+static wchar_t font_xp[] = L"Tahoma";
+static wchar_t font_old[] = L"MS Sans Serif";
+
+
+static BYTE *skiptext(BYTE *s)
+{
+    if (s[0] == 0xff && s[1] == 0xff) {
+       s += 4;
+       return s;
+    }
+    while (s[0] != 0 || s[1] != 0)
+       s += 2;
+    s += 2;
+    return s;
+}
+
+static BYTE *todword(BYTE *p)
+{
+    while ((LONG_PTR)p & 3)
+        p++;
+    return p;
+}
+
+static void modifytemplate(DLGTEMPLATEEX *d, DLGTEMPLATEEX_END *d2, int id, int mult)
+{
+
+    d->cx = d->cx * mult / 100;
+    d->cy = d->cy * mult / 100;
+}
+
+static void modifytemplatefont(DLGTEMPLATEEX *d, DLGTEMPLATEEX_END *d2)
+{
+    wchar_t *p = NULL;
+
+    if (os_vista)
+       p = font_vista;
+    else if (os_winnt)
+       p = font_xp;
+    if (p && !wcscmp (d2->typeface, font_old))
+       wcscpy (d2->typeface, p);
+}
+
+static void modifyitem(DLGTEMPLATEEX *d, DLGTEMPLATEEX_END *d2, DLGITEMTEMPLATEEX *dt, int id, int mult)
+{
+    dt->cy = dt->cy * mult / 100;
+    dt->cx = dt->cx * mult / 100;
+    dt->y = dt->y * mult / 100;
+    dt->x = dt->x * mult / 100;
+}
+
+static INT_PTR CALLBACK DummyProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+    switch(msg)
+    {
+       case WM_DESTROY:
+       PostQuitMessage (0);
+       return TRUE;
+       case WM_CLOSE:
+       DestroyWindow(hDlg);
+       return TRUE;
+       case WM_INITDIALOG:
+       return TRUE;
+    }
+    return FALSE;
+}
+
+struct newresource *scaleresource(struct newresource *res, HWND parent)
+{
+    DLGTEMPLATEEX *d;
+    DLGTEMPLATEEX_END *d2;
+    DLGITEMTEMPLATEEX *dt;
+    BYTE *p, *p2;
+    int i;
+    struct newresource *ns;
+
+    d = res->resource;
+    d2 = res->resource;
+
+    if (d->dlgVer != 1 || d->signature != 0xffff)
+       return 0;
+    if (!(d->style & (DS_SETFONT | DS_SHELLFONT)))
+       return 0;
+
+    ns = xcalloc (sizeof (struct newresource), 1);
+    ns->inst = res->inst;
+    ns->size = res->size;
+    ns->tmpl = res->tmpl;
+    ns->resource = xmalloc (ns->size);
+    memcpy (ns->resource, res->resource, ns->size);
+
+    d = ns->resource;
+    d2 = ns->resource;
+    p = (BYTE*)d + sizeof (DLGTEMPLATEEX);
+    p = skiptext(p);
+    p = skiptext(p);
+    d2 = (DLGTEMPLATEEX_END*)p;
+    p2 = p;
+    p2 += sizeof (DLGTEMPLATEEX_END);
+    p2 = skiptext(p2);
+    p2 = todword(p2);
+
+    modifytemplatefont(d, d2);
+
+    p += sizeof (DLGTEMPLATEEX_END);
+    p = skiptext(p);
+    p = todword(p);
+
+    if (p != p2)
+       memmove (p, p2, ns->size - (p2 - (BYTE*)ns->resource));
+
+    modifytemplate(d, d2, ns->tmpl, mult);
+
+    for (i = 0; i < d->cDlgItems; i++) {
+       dt = (DLGITEMTEMPLATEEX*)p;
+       modifyitem(d, d2, dt, ns->tmpl, mult);
+       p += sizeof (DLGITEMTEMPLATEEX);
+       p = skiptext(p);
+       p = skiptext(p);
+       p += ((WORD*)p)[0];
+       p += sizeof (WORD);
+       p = todword(p);
+    }
+
+    ns->width = d->cx;
+    ns->height = d->cy;
+    return ns;
+}
+
+void freescaleresource(struct newresource *ns)
+{
+    xfree (ns->resource);
+    xfree (ns);
+}
+
+void scaleresource_setmaxsize(int w, int h)
+{
+    max_w = w;
+    max_h = h;
+    mult = 100;
+}
index 2645b1ce991886ac5c49fb907aa10c5eca9678ee..63925ee306c74ec96961924331563790ec7b737a 100755 (executable)
                                RelativePath="..\caps\caps_win32.c"
                                >
                        </File>
+                       <File
+                               RelativePath="..\debug_win32.c"
+                               >
+                       </File>
                        <File
                                RelativePath="..\dinput.c"
                                >
                                RelativePath="..\win32gui.c"
                                >
                        </File>
+                       <File
+                               RelativePath="..\win32gui_extra.c"
+                               >
+                       </File>
                        <File
                                RelativePath="..\writelog.c"
                                >
                        RelativePath="..\resources\resource.h"
                        >
                </File>
-               <File
-                       RelativePath="..\resources\resource.hm"
-                       >
-               </File>
        </Files>
        <Globals>
        </Globals>
index 3aaa8549d409ff4ae786ddf5a2e1b8a068cc4b31..a11697e905ba1dcf41ec711edc8191a62b61aee0 100755 (executable)
@@ -1,4 +1,45 @@
 
+
+Beta 1:
+
+- Chip set extra config load/save missed some models (crash when
+  saving if using missing models)
+- GUI font dynamically switches to "Segoe UI" (Vista) or "Tahoma"
+  (XP or 2000). Old font still in resource file to keep compatibility
+  with older Windows versions. TODO: new GUI tree icons.
+- dynamically modifying resources and resizing dialogs is "fun"...
+- finally removed pixel format detection. It has not been needed for
+  years..
+- merged (and modified) "GUI" debugger by Karsten Bock. WIP.
+  F1-F6: switch between different pages
+  F1 and F2: two work areas
+  F3 and F4: memory viewer
+  F5 and F6: disassembler
+  F3-F6: alt+cursor up/down/left/right modifies current address
+- x closes debugger, xx switches between console and GUI debuggers
+- extended debugger 'm' instruction, 'm r<cpu register>' 
+- direct harddrive support now works with drives that return empty
+  vendor and product id (confirmed: SyQuest removable harddrive)
+- log window position and size stored in registry. (Log window first
+  appearing in default position before jumping to stored position
+  is normal, logging must be initialized before registry handling)
+  Windows 2000 or newer only.
+- GUI/Main window registry entry names changed, positions will reset
+- blitter CE-mode ABC channel combination cycle allocation fixed
+- rar archives left "temporary" files around (stupid unrar.dll..)
+- added combination of fullscreen and windowed mode. If you have two
+  (or more) monitors, load your favorite WB configuration, select
+  non-primary monitor and "full-window" mode to both native and RTG,
+  also make sure "Magic mouse" is enabled, adjust P96 resolution.
+  D3D/OGL filter may also be good idea.
+  Result will be near-seamless Windows/Amiga integration :)
+- "Magic mouse" didn't work with some system patches, also adjusted
+  sensitivity
+- tweaked vblank interrupt delay by 1 cycle (game Feud)
+- refresh rate switching (PAL/NTSC or by poking VPOSW) improved
+
+1.4.1
+
 Beta 4:
 
 - skip unknown extensions (or files without extension) when scanning
index cce095d7118266f6088f7bc088728de095b8bbe2..fd2d34608274f552a2bddc90c72cabce504c0772 100755 (executable)
@@ -7,10 +7,13 @@
 
 #include "custom.h"
 #include "events.h"
+#include "debug.h"
+#include "debug_win32.h"
+#include "win32.h"
 
 #define SHOW_CONSOLE 0
 
-static int consoleopen = 0;
+int consoleopen = 0;
 static HANDLE stdinput,stdoutput;
 static int bootlogmode;
 static CRITICAL_SECTION cs;
@@ -18,53 +21,179 @@ static int cs_init;
 
 FILE *debugfile = NULL;
 int console_logging;
+static LONG debugger_type = -1;
 
 #define WRITE_LOG_BUF_SIZE 4096
 
 /* console functions for debugger */
 
-static void openconsole(void)
+typedef HWND (CALLBACK* GETCONSOLEWINDOW)(void);
+
+static HWND myGetConsoleWindow(void)
+{
+    GETCONSOLEWINDOW pGetConsoleWindow;
+    /* Windows 2000 or newer only */
+    pGetConsoleWindow = (GETCONSOLEWINDOW)GetProcAddress(
+        GetModuleHandle("kernel32.dll"), "GetConsoleWindow");
+    if (pGetConsoleWindow)
+       return pGetConsoleWindow();
+    return NULL;
+}
+
+static void open_console_window(void)
 {
-    if(consoleopen)
-       return;
     AllocConsole();
     stdinput = GetStdHandle(STD_INPUT_HANDLE);
     stdoutput = GetStdHandle(STD_OUTPUT_HANDLE);
     SetConsoleMode(stdinput,ENABLE_PROCESSED_INPUT|ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT|ENABLE_PROCESSED_OUTPUT);
-    consoleopen = 1;
+    consoleopen = -1;
+    reopen_console();
+}
+
+static void openconsole(void)
+{
+    if (debugger_active && (debugger_type < 0 || debugger_type == 2)) {
+       if (consoleopen > 0)
+           return;
+       if (debugger_type < 0) {
+           DWORD regkeytype;
+           DWORD regkeysize = sizeof(LONG);
+           if (hWinUAEKey)
+               RegQueryValueEx (hWinUAEKey, "DebuggerType", 0, &regkeytype, (LPBYTE)&debugger_type, &regkeysize);
+           if (debugger_type <= 0)
+               debugger_type = 2;
+           openconsole();
+           return;
+       }
+       close_console();
+       if (open_debug_window()) {
+           consoleopen = 1;
+           return;
+       }
+       open_console_window();
+    } else {
+       if (consoleopen < 0)
+           return;
+       close_console();
+       open_console_window();
+    }
+}
+
+void debugger_change(int mode)
+{
+    if (mode < 0)
+       debugger_type = debugger_type == 2 ? 1 : 2;
+    else
+       debugger_type = mode;
+    if (debugger_type != 1 && debugger_type != 2)
+       debugger_type = 2;
+    if (hWinUAEKey)
+       RegSetValueEx (hWinUAEKey, "DebuggerType", 0, REG_DWORD, (LPBYTE)&debugger_type, sizeof(LONG));
+    openconsole();
+}
+
+void reopen_console(void)
+{
+    HWND hwnd;
+
+    if (consoleopen >= 0)
+       return;
+    hwnd = myGetConsoleWindow();
+    if (hwnd && hWinUAEKey) {
+        int newpos = 1;
+        LONG x, y, w, h;
+       DWORD regkeytype;
+       DWORD regkeysize = sizeof(LONG);
+       if (RegQueryValueEx (hWinUAEKey, "LoggerPosX", 0, &regkeytype, (LPBYTE)&x, &regkeysize) != ERROR_SUCCESS)
+           newpos = 0;
+       if (RegQueryValueEx (hWinUAEKey, "LoggerPosY", 0, &regkeytype, (LPBYTE)&y, &regkeysize) != ERROR_SUCCESS)
+           newpos = 0;
+       if (RegQueryValueEx (hWinUAEKey, "LoggerPosW", 0, &regkeytype, (LPBYTE)&w, &regkeysize) != ERROR_SUCCESS)
+           newpos = 0;
+       if (RegQueryValueEx (hWinUAEKey, "LoggerPosH", 0, &regkeytype, (LPBYTE)&h, &regkeysize) != ERROR_SUCCESS)
+           newpos = 0;
+       if (newpos) {
+           RECT rc;
+           rc.left = x;
+           rc.top = y;
+           rc.right = x + w;
+           rc.bottom = y + h;
+           if (MonitorFromRect (&rc, MONITOR_DEFAULTTONULL) != NULL)
+               SetWindowPos(hwnd, HWND_TOP, x, y, w, h, SWP_NOACTIVATE | SWP_DEFERERASE);
+       }
+    }
+}
+
+void close_console(void)
+{
+    if (consoleopen > 0) {
+       close_debug_window();
+    } else if (consoleopen < 0) {
+       HWND hwnd = myGetConsoleWindow();
+       if (hwnd && hWinUAEKey) {
+           RECT r;
+           if (GetWindowRect (hwnd, &r)) {
+               r.bottom -= r.top;
+               r.right -= r.left;
+               RegSetValueEx (hWinUAEKey, "LoggerPosX", 0, REG_DWORD, (LPBYTE)&r.left, sizeof(LONG));
+               RegSetValueEx (hWinUAEKey, "LoggerPosY", 0, REG_DWORD, (LPBYTE)&r.top, sizeof(LONG));
+               RegSetValueEx (hWinUAEKey, "LoggerPosW", 0, REG_DWORD, (LPBYTE)&r.right, sizeof(LONG));
+               RegSetValueEx (hWinUAEKey, "LoggerPosH", 0, REG_DWORD, (LPBYTE)&r.bottom, sizeof(LONG));
+           }
+       }
+       FreeConsole();
+    }
+    consoleopen = 0;
+}
+
+static void writeconsole(char *buffer)
+{
+    DWORD temp;
+    if (!consoleopen)
+       openconsole();
+    if (consoleopen > 0)
+       WriteOutput(buffer, strlen(buffer));
+    else if (consoleopen < 0)
+       WriteConsole(stdoutput, buffer, strlen(buffer), &temp,0);
 }
 
 void console_out (const char *format,...)
 {
     va_list parms;
     char buffer[WRITE_LOG_BUF_SIZE];
-    DWORD temp, tmp;
 
     va_start (parms, format);
     _vsnprintf (buffer, WRITE_LOG_BUF_SIZE-1, format, parms);
     va_end (parms);
     openconsole();
-    tmp = WriteConsole(stdoutput, buffer, strlen(buffer), &temp,0);
+    writeconsole(buffer);
 }
 
 int console_get (char *out, int maxlen)
 {
-    DWORD len,totallen;
-
     *out = 0;
-    totallen = 0;
-    while(maxlen>0) {
-       ReadConsole(stdinput, out, 1, &len, 0);
-       if(*out == 13)
-           break;
-       out++;
-       maxlen--;
-       totallen++;
+    if (consoleopen > 0) {
+       return console_get_gui (out, maxlen);
+    } else {
+       DWORD len,totallen;
+
+       *out = 0;
+       totallen=0;
+       while(maxlen>0) {
+           ReadConsole(stdinput,out,1,&len,0);
+           if(*out == 13)
+               break;
+           out++;
+           maxlen--;
+           totallen++;
+       }
+       *out=0;
+       return totallen;
     }
-    *out=0;
-    return totallen;
+    return 0;
 }
 
+
 void console_flush (void)
 {
 }
@@ -106,7 +235,6 @@ static char *writets(void)
 void write_dlog (const char *format, ...)
 {
     int count;
-    DWORD numwritten;
     char buffer[WRITE_LOG_BUF_SIZE];
     char *ts;
     va_list parms;
@@ -119,10 +247,9 @@ void write_dlog (const char *format, ...)
     count = _vsnprintf(buffer, WRITE_LOG_BUF_SIZE-1, format, parms);
     ts = writets();
     if (SHOW_CONSOLE || console_logging) {
-       openconsole();
        if (lfdetected && ts)
-           WriteConsole(stdoutput, ts, strlen(ts), &numwritten,0);
-       WriteConsole(stdoutput, buffer, strlen(buffer), &numwritten,0);
+           writeconsole(ts);
+       writeconsole(buffer);
     }
     if (debugfile) {
        if (lfdetected && ts)
@@ -139,25 +266,17 @@ void write_dlog (const char *format, ...)
 
 void write_log (const char *format, ...)
 {
-    int count, tmp;
-    DWORD numwritten;
+    int count;
     char buffer[WRITE_LOG_BUF_SIZE], *ts;
-    va_list parms;
-
-    if (!SHOW_CONSOLE && !console_logging && !debugfile)
-       return;
 
-    EnterCriticalSection(&cs);
+    va_list parms;
     va_start(parms, format);
-    count = _vsnprintf(buffer, WRITE_LOG_BUF_SIZE-1, format, parms);
+    count = _vsnprintf(buffer, WRITE_LOG_BUF_SIZE - 1, format, parms);
     ts = writets();
     if (SHOW_CONSOLE || console_logging) {
-       openconsole();
        if (lfdetected && ts)
-           WriteConsole(stdoutput, ts, strlen(ts), &numwritten,0);
-       tmp = WriteConsole(stdoutput, buffer, strlen(buffer), &numwritten, 0);
-       if (!tmp)
-           tmp = GetLastError();
+           writeconsole(ts);
+       writeconsole(buffer);
     }
     if (debugfile) {
        if (lfdetected && ts)
@@ -169,23 +288,35 @@ void write_log (const char *format, ...)
     if (strlen(buffer) > 0 && buffer[strlen(buffer) - 1] == '\n')
        lfdetected = 1;
     va_end (parms);
-    LeaveCriticalSection(&cs);
 }
 
 void f_out (void *f, const char *format, ...)
 {
     int count;
-    DWORD numwritten;
     char buffer[WRITE_LOG_BUF_SIZE];
     va_list parms;
     va_start (parms, format);
 
     if (f == NULL)
        return;
-    count = _vsnprintf (buffer, WRITE_LOG_BUF_SIZE-1, format, parms);
+    count = _vsnprintf (buffer, WRITE_LOG_BUF_SIZE - 1, format, parms);
     openconsole ();
-    WriteConsole(stdoutput, buffer, strlen(buffer), &numwritten,0);
+    writeconsole(buffer);
+    va_end (parms);
+}
+
+char* buf_out (char *buffer, int *bufsize, const char *format, ...)
+{
+    int count;
+    va_list parms;
+    va_start (parms, format);
+
+    if (buffer == NULL)
+       return 0;
+    count = _vsnprintf (buffer, (*bufsize)-1, format, parms);
     va_end (parms);
+    *bufsize -= strlen(buffer);
+    return buffer + strlen(buffer);
 }
 
 void *log_open(const char *name, int append, int bootlog)
diff --git a/zfile.c b/zfile.c
index c8ef31e1289033448a1c236edaa2ddeed6186f9e..4e58907a9bff8a39e4f3c53012d7be693abfed30 100755 (executable)
--- a/zfile.c
+++ b/zfile.c
@@ -833,7 +833,7 @@ static struct zfile *unrar (struct zfile *z)
        if (select && !we_have_file && HeaderData.UnpSize > 0) {
            zf = zfile_fopen_empty (name, HeaderData.UnpSize);
            rarunpackzf = zf;
-           if (zf && pRARProcessFile(hArcData,RAR_EXTRACT,NULL,NULL) == 0) {
+           if (zf && pRARProcessFile(hArcData,RAR_TEST,NULL,NULL) == 0) {
                needskip = 0;
                if (select < 0 || zfile_gettype(zf))
                    we_have_file = 1;