]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1540b2.zip
authorToni Wilen <twilen@winuae.net>
Sat, 22 Nov 2008 17:25:28 +0000 (19:25 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:43:53 +0000 (21:43 +0200)
20 files changed:
akiko.c
crc32.c
drawing.c
filesys.c
gayle.c
genlinetoscr.c
hardfile.c
include/filesys.h
od-win32/dxwrap.c
od-win32/hardfile_win32.c
od-win32/parser.c
od-win32/picasso96_win.c
od-win32/picasso96_win.h
od-win32/resources/resource
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/win32.c
od-win32/win32.h
od-win32/win32gui.c
od-win32/winuaechangelog.txt

diff --git a/akiko.c b/akiko.c
index 3cc9dd0b71e2c111dc25b89c3ced839dab1ecea7..c85a98cff6ec1ba2eb06017bcf73ce50ba319abf 100755 (executable)
--- a/akiko.c
+++ b/akiko.c
@@ -615,9 +615,15 @@ static int sys_cddev_open (void)
                        uae_u8 *p = sys_command_cd_read (DF_IOCTL, unitnum, 16);
                        if (p) {
                            if (!memcmp (p + 8, "CDTV", 4) || !memcmp (p + 8, "CD32", 4)) {
-                               write_log ("CD32 or CDTV\n");
+                               uae_u32 crc;
+                               write_log ("CD32 or CDTV");
                                if (cd32unit < 0)
                                    cd32unit = unitnum;
+                               p = sys_command_cd_read (DF_IOCTL, unitnum, 21);
+                               crc = get_crc32 (p, 2048);
+                               if (crc == 0xe56c340f)
+                                   write_log (" [CD32.TM]");
+                               write_log ("\n");
                            } else {
                                write_log ("non CD32/CDTV data CD\n");
                            }
diff --git a/crc32.c b/crc32.c
index 4405580f59421815c7aa637b567f377fca9bb923..9b645afba0a1cc09dea365a9fe631df027684692 100755 (executable)
--- a/crc32.c
+++ b/crc32.c
@@ -327,7 +327,7 @@ static void sha1_finish( sha1_context *ctx, unsigned char output[20] )
     PUT_UINT32_BE( ctx->state[4], output, 16 );
 }
 
-void get_sha1(uae_u8 *input, int len, uae_u8 *out)
+void get_sha1 (uae_u8 *input, int len, uae_u8 *out)
 {
     sha1_context ctx;
 
@@ -335,7 +335,7 @@ void get_sha1(uae_u8 *input, int len, uae_u8 *out)
     sha1_update( &ctx, input, len );
     sha1_finish( &ctx, out );
 }
-char *get_sha1_txt(uae_u8 *input, int len)
+char *get_sha1_txt (uae_u8 *input, int len)
 {
     static char outtxt[SHA1_SIZE * 2 + 1];
     uae_u8 out[SHA1_SIZE];
index 705b66cace1521a9e33afde30420ed227c18060e..1d4edd2dd0f7674e2f8a725b801984515815e973 100755 (executable)
--- a/drawing.c
+++ b/drawing.c
@@ -53,8 +53,6 @@
 #include "inputdevice.h"
 
 extern int sprite_buffer_res;
-int sprite_shift;
-
 int lores_factor, lores_shift;
 
 static void lores_reset (void)
@@ -115,7 +113,7 @@ struct spritepixelsbuf {
     uae_u8 stdata;
     uae_u16 data;
 };
-static struct spritepixelsbuf spritepixels[MAX_PIXELS_PER_LINE * 5]; /* used when sprite resolution > lores */
+static struct spritepixelsbuf spritepixels[MAX_PIXELS_PER_LINE];
 static int sprite_first_x, sprite_last_x;
 
 #ifdef AGA
@@ -410,7 +408,7 @@ static void pfield_init_linetoscr (void)
     if (sprite_first_x < sprite_last_x)
        memset (spritepixels + sprite_first_x, 0, sizeof (struct spritepixelsbuf) * (sprite_last_x - sprite_first_x + 1));
     sprite_last_x = 0;
-    sprite_first_x = sizeof spritepixels;
+    sprite_first_x = MAX_PIXELS_PER_LINE - 1;
 
     /* Now, compute some offsets.  */
     res_shift = lores_shift - bplres;
@@ -580,9 +578,9 @@ STATIC_INLINE void fill_line (void)
 static int linetoscr_double_offset;
 
 #define SPRITE_DEBUG 0
-STATIC_INLINE uae_u8 render_sprites (int pos, int dualpf, uae_u8 apixel, int aga, int offset)
+STATIC_INLINE uae_u8 render_sprites (int pos, int dualpf, uae_u8 apixel, int aga)
 {
-    struct spritepixelsbuf *spb = &spritepixels[(pos << sprite_shift) + offset];
+    struct spritepixelsbuf *spb = &spritepixels[pos];
     unsigned int v = spb->data;
     int *shift_lookup = dualpf ? (bpldualpfpri ? dblpf_ms2 : dblpf_ms1) : dblpf_ms;
     int maskshift, plfmask;
@@ -661,7 +659,7 @@ STATIC_INLINE uae_u32 shsprite (int dpix, uae_u32 spix_val, uae_u32 v, int spr)
     uae_u8 sprcol;
     if (!spr)
        return v;
-    sprcol = render_sprites (dpix, 0, spix_val, 0, 0);
+    sprcol = render_sprites (dpix, 0, spix_val, 0);
     if (sprcol)
         return colors_for_drawing.color_regs_ecs[sprcol];
     return v;
@@ -2756,15 +2754,9 @@ void reset_drawing (void)
     frame_res_cnt = FRAMES_UNTIL_RES_SWITCH;
     lightpen_y1 = lightpen_y2 = -1;
 
-    sprite_shift = 0;
     sprite_buffer_res = currprefs.gfx_resolution;
     if (doublescan > 0 && sprite_buffer_res < RES_SUPERHIRES)
        sprite_buffer_res++;
-    if (((currprefs.chipset_mask & CSMASK_AGA) || ecsshres) && sprite_buffer_res < RES_SUPERHIRES) {
-       sprite_buffer_res++;
-       sprite_shift = 1;
-    }
-
 }
 
 void drawing_init (void)
index c62e661201abbd71284d102822edcf6d45809bbd..d9a0ee25b57e6343414c074c1b50e93cc7f68e54 100755 (executable)
--- a/filesys.c
+++ b/filesys.c
@@ -272,8 +272,8 @@ int get_filesys_unitconfig (struct uae_prefs *p, int index, struct mountedinfo *
                mi->ismedia = 1;
        }
     }
-    mi->size = ui->hf.size;
-    mi->nrcyls = (int)(uci->sectors * uci->surfaces ? (ui->hf.size / uci->blocksize) / (uci->sectors * uci->surfaces) : 0);
+    mi->size = ui->hf.virtsize;
+    mi->nrcyls = (int)(uci->sectors * uci->surfaces ? (ui->hf.virtsize / uci->blocksize) / (uci->sectors * uci->surfaces) : 0);
     if (!uci->ishdf)
        return FILESYS_VIRTUAL;
     if (uci->reserved == 0 && uci->sectors == 0 && uci->surfaces == 0) {
@@ -444,11 +444,11 @@ static int set_filesys_unit_1 (int nr,
                    write_log ("Hardfile %s bad hardfile geometry\n", ui->hf.device_name);
                    goto err;
            }
-           if (ui->hf.blocksize > ui->hf.size || ui->hf.size == 0) {
+           if (ui->hf.blocksize > ui->hf.virtsize || ui->hf.virtsize == 0) {
                write_log ("Hardfile %s too small\n", ui->hf.device_name);
                goto err;
            }
-           ui->hf.nrcyls = (int)(ui->hf.secspertrack * ui->hf.surfaces ? (ui->hf.size / ui->hf.blocksize) / (ui->hf.secspertrack * ui->hf.surfaces) : 0);
+           ui->hf.nrcyls = (int)(ui->hf.secspertrack * ui->hf.surfaces ? (ui->hf.virtsize / ui->hf.blocksize) / (ui->hf.secspertrack * ui->hf.surfaces) : 0);
        }
     }
     ui->self = 0;
@@ -597,7 +597,7 @@ int sprintf_filesys_unit (char *buffer, int num)
                 uip[num].rootdir, uip[num].readonly ? "ro" : "");
     else
        sprintf (buffer, "(DH%d:) Hardfile, \"%s\", size %d Mbytes", num,
-       uip[num].rootdir, uip[num].hf.size / (1024 * 1024));
+       uip[num].rootdir, uip[num].hf.virtsize / (1024 * 1024));
     return 0;
 }
 
@@ -4944,7 +4944,7 @@ static int legalrdbblock (UnitInfo *uip, int block)
 {
     if (block <= 0)
        return 0;
-    if (block >= uip->hf.size / uip->hf.blocksize)
+    if (block >= uip->hf.virtsize / uip->hf.blocksize)
        return 0;
     return 1;
 }
@@ -5028,7 +5028,7 @@ static void dump_partinfo (char *name, int num, uaecptr pp, int partblock)
               get_long (pp + 60), get_long (pp + 64), get_long (pp + 68), get_long (pp + 76));
 }
 
-#define rdbmnt write_log ("Mounting uaehf.device %d (%d) (size=%I64u):\n", unit_no, partnum, hfd->size);
+#define rdbmnt write_log ("Mounting uaehf.device %d (%d) (size=%I64u):\n", unit_no, partnum, hfd->virtsize);
 
 static int rdb_mount (UnitInfo *uip, int unit_no, int partnum, uaecptr parmpacket)
 {
@@ -5055,9 +5055,9 @@ static int rdb_mount (UnitInfo *uip, int unit_no, int partnum, uaecptr parmpacke
        write_log ("failed, blocksize == 0\n");
        return -1;
     }
-    if (lastblock * hfd->blocksize > hfd->size) {
+    if (lastblock * hfd->blocksize > hfd->virtsize) {
        rdbmnt
-       write_log ("failed, too small (%d*%d > %I64u)\n", lastblock, hfd->blocksize, hfd->size);
+       write_log ("failed, too small (%d*%d > %I64u)\n", lastblock, hfd->blocksize, hfd->virtsize);
        return -2;
     }
     for (rdblock = 0; rdblock < lastblock; rdblock++) {
@@ -5152,7 +5152,7 @@ static int rdb_mount (UnitInfo *uip, int unit_no, int partnum, uaecptr parmpacke
        goto error;
     }
 
-    if (hfd->cylinders * hfd->sectors * hfd->heads * blocksize > hfd->size)
+    if (hfd->cylinders * hfd->sectors * hfd->heads * blocksize > hfd->virtsize)
        write_log ("RDB: WARNING: end of partition > size of disk!\n");
 
     err = 2;
@@ -5266,7 +5266,8 @@ static int dofakefilesys (UnitInfo *uip, uaecptr parmpacket)
     struct zfile *zf;
     uae_u32 dostype, fsres, fsnode;
 
-    hdf_read (&uip->hf, tmp, 0, 4);
+    memset (tmp, 0, 4);
+    hdf_read (&uip->hf, tmp, 0, 512);
     dostype = (tmp[0] << 24) | (tmp[1] << 16) |(tmp[2] << 8) | tmp[3];
     if (dostype == 0)
        return FILESYS_HARDFILE;
@@ -5344,8 +5345,8 @@ static void get_new_device (int type, uaecptr parmpacket, char **devname, uaecpt
        write_log ("FS: mounted virtual unit %s (%s)\n", buffer, mountinfo.ui[unit_no].rootdir);
     else
        write_log ("FS: mounted HDF unit %s (%04x-%08x, %s)\n", buffer,
-           (uae_u32)(mountinfo.ui[unit_no].hf.size >> 32),
-           (uae_u32)(mountinfo.ui[unit_no].hf.size),
+           (uae_u32)(mountinfo.ui[unit_no].hf.virtsize >> 32),
+           (uae_u32)(mountinfo.ui[unit_no].hf.virtsize),
            mountinfo.ui[unit_no].rootdir);
 }
 
@@ -5484,7 +5485,7 @@ static uae_u8 *restore_filesys_hardfile (UnitInfo *ui, uae_u8 *src)
     struct hardfiledata *hfd = &ui->hf;
     char *s;
 
-    hfd->size = restore_u64();
+    hfd->virtsize = restore_u64();
     hfd->offset = restore_u64();
     hfd->nrcyls = restore_u32();
     hfd->secspertrack = restore_u32();
@@ -5515,7 +5516,7 @@ static uae_u8 *save_filesys_hardfile (UnitInfo *ui, uae_u8 *dst)
 {
     struct hardfiledata *hfd = &ui->hf;
 
-    save_u64 (hfd->size);
+    save_u64 (hfd->virtsize);
     save_u64 (hfd->offset);
     save_u32 (hfd->nrcyls);
     save_u32 (hfd->secspertrack);
diff --git a/gayle.c b/gayle.c
index 1fdc64f3c357d5ee9724b242e70e5d95ad732771..fb0d23054ae0c1cc8e990ff8755cc219e0390c26 100755 (executable)
--- a/gayle.c
+++ b/gayle.c
@@ -1527,9 +1527,9 @@ static int initpcmcia (const char *path, int readonly, int reset)
     pcmcia_attrs_size = 256;
     pcmcia_attrs = xcalloc (pcmcia_attrs_size, 1);
     if (!pcmcia_sram->hfd.drive_empty) {
-       pcmcia_common_size = pcmcia_sram->hfd.size;
-       if (pcmcia_sram->hfd.size > 4 * 1024 * 1024) {
-           write_log ("PCMCIA SRAM: too large device, %d bytes\n", pcmcia_sram->hfd.size);
+       pcmcia_common_size = pcmcia_sram->hfd.virtsize;
+       if (pcmcia_sram->hfd.virtsize > 4 * 1024 * 1024) {
+           write_log ("PCMCIA SRAM: too large device, %d bytes\n", pcmcia_sram->hfd.virtsize);
            pcmcia_common_size = 4 * 1024 * 1024;
        }
        pcmcia_common = xcalloc (pcmcia_common_size, 1);
index 2d301230e95a168466b177c341f90c47d58de22d..af8bb052f0be88ae36744ffe284e38fb830a9236 100755 (executable)
@@ -149,7 +149,7 @@ static void out_linetoscr_do_dstpix (DEPTH_T bpp, HMODE_T hmode, int aga, CMODE_
            outln (     "    sprpix_val = dpix_val;");
     } else if (aga && cmode == CMODE_DUALPF) {
        if (spr) {
-           outlnf (    "    sprcol = render_sprites (dpix, 1, sprpix_val, %d, 0);", aga);
+           outlnf (    "    sprcol = render_sprites (dpix, 1, sprpix_val, %d);", aga);
            outln (     "    if (sprcol) {");
            outln (     "        dpix_val = colors_for_drawing.acolors[sprcol];");
            outln (     "    } else {");
@@ -220,20 +220,76 @@ static void out_linetoscr_do_incspix (DEPTH_T bpp, HMODE_T hmode, int aga, CMODE
     }
 }
 
-static void out_sprite (DEPTH_T bpp, HMODE_T hmode, CMODE_T cmode, int aga)
+static void out_sprite (DEPTH_T bpp, HMODE_T hmode, CMODE_T cmode, int aga, int cnt)
 {
-    outlnf ( "    sprcol = render_sprites (dpix, %d, sprpix_val, %d, 0);", cmode == CMODE_DUALPF ? 1 : 0, aga);
-    outlnf ( "    if (sprcol) {");
-    outlnf ( "        uae_u32 spcol = colors_for_drawing.acolors[sprcol];");
-    outlnf ( "        if (sprite_shift) {");
-    outlnf ( "            uae_u8 sprcol2 = render_sprites (dpix, %d, sprpix_val, %d, 1);", cmode == CMODE_DUALPF ? 1 : 0, aga);
-    outlnf ( "            spcol = merge_2pixel%d (spcol, colors_for_drawing.acolors[sprcol2]);", bpp == 0 ? 8 : bpp == 1 ? 16 : 32);
-    outlnf ( "        }");
-    outlnf ( "        buf[dpix] = spcol;");
-    outlnf ( "    } else {");
-    outlnf ( "        buf[dpix] = out_val;");
-    outlnf ( "    }");
-    outlnf ( "    dpix++;");
+    if (aga) {
+       if (cnt == 1) {
+           outlnf ( "    if (spritepixels[dpix].data) {");
+           outlnf ( "        sprcol = render_sprites (dpix + 0, %d, sprpix_val, %d);", cmode == CMODE_DUALPF ? 1 : 0, aga);
+           outlnf ( "        if (sprcol)");
+           outlnf ( "            out_val = colors_for_drawing.acolors[sprcol];");
+           outlnf ( "    }");
+           outlnf ( "    buf[dpix++] = out_val;");
+       } else if (cnt == 2) {
+           outlnf ( "    {");
+           outlnf ( "    uae_u32 out_val1 = out_val;");
+           outlnf ( "    uae_u32 out_val2 = out_val;");
+           outlnf ( "    if (spritepixels[dpix + 0].data) {");
+           outlnf ( "        sprcol = render_sprites (dpix + 0, %d, sprpix_val, %d);", cmode == CMODE_DUALPF ? 1 : 0, aga);
+           outlnf ( "        if (sprcol)");
+           outlnf ( "            out_val1 = colors_for_drawing.acolors[sprcol];");
+           outlnf ( "    }");
+           outlnf ( "    if (spritepixels[dpix + 1].data) {");
+           outlnf ( "        sprcol = render_sprites (dpix + 1, %d, sprpix_val, %d);", cmode == CMODE_DUALPF ? 1 : 0, aga);
+           outlnf ( "        if (sprcol)");
+           outlnf ( "            out_val2 = colors_for_drawing.acolors[sprcol];");
+           outlnf ( "    }");
+           outlnf ( "    buf[dpix++] = out_val1;");
+           outlnf ( "    buf[dpix++] = out_val2;");
+           outlnf ( "    }");
+       } else if (cnt == 4) {
+           outlnf ( "    {");
+           outlnf ( "    uae_u32 out_val1 = out_val;");
+           outlnf ( "    uae_u32 out_val2 = out_val;");
+           outlnf ( "    uae_u32 out_val3 = out_val;");
+           outlnf ( "    uae_u32 out_val4 = out_val;");
+           outlnf ( "    if (spritepixels[dpix + 0].data) {");
+           outlnf ( "        sprcol = render_sprites (dpix + 0, %d, sprpix_val, %d);", cmode == CMODE_DUALPF ? 1 : 0, aga);
+           outlnf ( "        if (sprcol)");
+           outlnf ( "            out_val1 = colors_for_drawing.acolors[sprcol];");
+           outlnf ( "    }");
+           outlnf ( "    if (spritepixels[dpix + 1].data) {");
+           outlnf ( "        sprcol = render_sprites (dpix + 1, %d, sprpix_val, %d);", cmode == CMODE_DUALPF ? 1 : 0, aga);
+           outlnf ( "        if (sprcol)");
+           outlnf ( "            out_val2 = colors_for_drawing.acolors[sprcol];");
+           outlnf ( "    }");
+           outlnf ( "    if (spritepixels[dpix + 2].data) {");
+           outlnf ( "        sprcol = render_sprites (dpix + 2, %d, sprpix_val, %d);", cmode == CMODE_DUALPF ? 1 : 0, aga);
+           outlnf ( "        if (sprcol)");
+           outlnf ( "            out_val3 = colors_for_drawing.acolors[sprcol];");
+           outlnf ( "    }");
+           outlnf ( "    if (spritepixels[dpix + 3].data) {");
+           outlnf ( "        sprcol = render_sprites (dpix + 3, %d, sprpix_val, %d);", cmode == CMODE_DUALPF ? 1 : 0, aga);
+           outlnf ( "        if (sprcol)");
+           outlnf ( "            out_val4 = colors_for_drawing.acolors[sprcol];");
+           outlnf ( "    }");
+           outlnf ( "    buf[dpix++] = out_val1;");
+           outlnf ( "    buf[dpix++] = out_val2;");
+           outlnf ( "    buf[dpix++] = out_val3;");
+           outlnf ( "    buf[dpix++] = out_val4;");
+           outlnf ( "    }");
+       }
+    } else {
+       outlnf ( "    if (spritepixels[dpix].data) {");
+       outlnf ( "        sprcol = render_sprites (dpix, %d, sprpix_val, %d);", cmode == CMODE_DUALPF ? 1 : 0, aga);
+       outlnf ( "        if (sprcol) {");
+       outlnf ( "            uae_u32 spcol = colors_for_drawing.acolors[sprcol];");
+        outlnf ( "            out_val = spcol;");
+       outlnf ( "        }");
+       outlnf ( "    }");
+       while (cnt-- > 0)
+           outlnf ( "    buf[dpix++] = out_val;");
+    }
 }
 
 static void out_linetoscr_mode (DEPTH_T bpp, HMODE_T hmode, int aga, int spr, CMODE_T cmode)
@@ -300,16 +356,14 @@ static void out_linetoscr_mode (DEPTH_T bpp, HMODE_T hmode, int aga, int spr, CM
            outln (     "    dpix += 2;");
        } else if (bpp == DEPTH_16BPP) {
            if (spr) {
-               out_sprite (bpp, hmode, cmode, aga);
-               out_sprite (bpp, hmode, cmode, aga);
+               out_sprite (bpp, hmode, cmode, aga, 2);
            } else {
                outln ( "    *((uae_u32 *)&buf[dpix]) = out_val;");
                outln ( "    dpix += 2;");
            }
        } else {
            if (spr) {
-               out_sprite (bpp, hmode, cmode, aga);
-               out_sprite (bpp, hmode, cmode, aga);
+               out_sprite (bpp, hmode, cmode, aga, 2);
            } else {
                outln ( "    buf[dpix++] = out_val;");
                outln ( "    buf[dpix++] = out_val;");
@@ -321,10 +375,7 @@ static void out_linetoscr_mode (DEPTH_T bpp, HMODE_T hmode, int aga, int spr, CM
            outln (     "    dpix += 4;");
        } else if (bpp == DEPTH_16BPP) {
            if (spr) {
-               out_sprite (bpp, hmode, cmode, aga);
-               out_sprite (bpp, hmode, cmode, aga);
-               out_sprite (bpp, hmode, cmode, aga);
-               out_sprite (bpp, hmode, cmode, aga);
+               out_sprite (bpp, hmode, cmode, aga, 4);
            } else {
                outln ( "    *((uae_u32 *)&buf[dpix]) = out_val;");
                outln ( "    dpix += 2;");
@@ -333,10 +384,7 @@ static void out_linetoscr_mode (DEPTH_T bpp, HMODE_T hmode, int aga, int spr, CM
            }
        } else {
            if (spr) {
-               out_sprite (bpp, hmode, cmode, aga);
-               out_sprite (bpp, hmode, cmode, aga);
-               out_sprite (bpp, hmode, cmode, aga);
-               out_sprite (bpp, hmode, cmode, aga);
+               out_sprite (bpp, hmode, cmode, aga, 4);
            } else {
                outln ( "    buf[dpix++] = out_val;");
                outln ( "    buf[dpix++] = out_val;");
@@ -347,14 +395,14 @@ static void out_linetoscr_mode (DEPTH_T bpp, HMODE_T hmode, int aga, int spr, CM
     } else {
        if (bpp == DEPTH_16BPP) {
            if (spr) {
-               out_sprite (bpp, hmode, cmode, aga);
+               out_sprite (bpp, hmode, cmode, aga, 1);
            } else {
                outln ( "    *((uae_u32 *)&buf[dpix]) = out_val;");
                outln ( "    dpix += 2;");
            }
        } else {
            if (spr) {
-               out_sprite (bpp, hmode, cmode, aga);
+               out_sprite (bpp, hmode, cmode, aga, 1);
            } else {
                outln ( "    buf[dpix++] = out_val;");
            }
index 80d0a2b587754e00f95c930499152f1946a65ad3..1be67eef77e446144e22241f30c7e42a1813d45f 100755 (executable)
@@ -26,6 +26,7 @@
 #include "scsi.h"
 #include "gayle.h"
 #include "execio.h"
+#include "zfile.h"
 
 #undef DEBUGME
 #define hf_log
@@ -61,6 +62,14 @@ struct hardfileprivdata {
     int changenum;
 };
 
+#define VHD_DYNAMIC 3
+#define VHD_FIXED 2
+
+STATIC_INLINE uae_u32 gl (uae_u8 *p)
+{
+    return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0);
+}
+
 static uae_sem_t change_sem;
 
 static struct hardfileprivdata hardfpd[MAX_FILESYSTEM_UNITS];
@@ -87,7 +96,7 @@ static int rl (uae_u8 *p)
 
 static void getchs2 (struct hardfiledata *hfd, int *cyl, int *cylsec, int *head, int *tracksec)
 {
-    unsigned int total = (unsigned int)(hfd->size / 1024);
+    unsigned int total = (unsigned int)(hfd->virtsize / 1024);
     int heads;
     int sectors = 63;
 
@@ -104,7 +113,7 @@ static void getchs2 (struct hardfiledata *hfd, int *cyl, int *cylsec, int *head,
        *head = hfd->surfaces;
        *tracksec = hfd->secspertrack;
        *cylsec = (*head) * (*tracksec);
-       *cyl = (unsigned int)(hfd->size / hfd->blocksize) / ((*tracksec) * (*head));
+       *cyl = (unsigned int)(hfd->virtsize / hfd->blocksize) / ((*tracksec) * (*head));
        return;
     }
     /* no, lets guess something.. */
@@ -118,7 +127,7 @@ static void getchs2 (struct hardfiledata *hfd, int *cyl, int *cylsec, int *head,
        heads = 128;
     else
        heads = 255;
-    *cyl = (unsigned int)(hfd->size / hfd->blocksize) / (sectors * heads);
+    *cyl = (unsigned int)(hfd->virtsize / hfd->blocksize) / (sectors * heads);
     *cylsec = sectors * heads;
     *tracksec = sectors;
     *head = heads;
@@ -128,13 +137,13 @@ static void getchs (struct hardfiledata *hfd, int *cyl, int *cylsec, int *head,
 {
     getchs2 (hfd, cyl, cylsec, head, tracksec);
     hf_log ("CHS: %08X-%08X %d %d %d %d %d\n",
-       (uae_u32)(hfd->size >> 32),(uae_u32)hfd->size,
+       (uae_u32)(hfd->virtsize >> 32),(uae_u32)hfd->virtsize,
        *cyl, *cylsec, *head, *tracksec);
 }
 
 void getchshd (struct hardfiledata *hfd, int *pcyl, int *phead, int *psectorspertrack)
 {
-    unsigned int total = (unsigned int)(hfd->size / 512);
+    unsigned int total = (unsigned int)(hfd->virtsize / 512);
     int i, head , cyl, spt;
     int sptt[] = { 63, 127, 255, -1 };
 
@@ -150,7 +159,7 @@ void getchshd (struct hardfiledata *hfd, int *pcyl, int *phead, int *psectorsper
        spt = sptt[i];
        for (head = 4; head <= 16;head++) {
            cyl = total / (head * spt);
-           if (hfd->size <= 512 * 1024 * 1024) {
+           if (hfd->virtsize <= 512 * 1024 * 1024) {
                if (cyl <= 1023)
                    break;
            } else {
@@ -280,8 +289,7 @@ static void create_virtual_rdb (struct hardfiledata *hfd, uae_u32 dostype, int b
     pl(denv, 16, dostype);
     rdb_crc (part);
 
-    hfd->size += size;
-    hfd->size2 += size;
+    hfd->virtsize += size;
 
 }
 
@@ -316,17 +324,397 @@ int hdf_hd_open (struct hd_hardfiledata *hfd, const char *path, int blocksize, i
        uae_u8 buf[512] = { 0 };
        hdf_read (&hfd->hfd, buf, 0, 512);
        if (buf[0] != 0 && memcmp (buf, "RDSK", 4)) {
-           hfd->hfd.nrcyls = (hfd->hfd.size / blocksize) / (sectors * surfaces);
+           hfd->hfd.nrcyls = (hfd->hfd.virtsize / blocksize) / (sectors * surfaces);
            create_virtual_rdb (&hfd->hfd, rl (buf), hfd->bootpri, filesys);
            while (hfd->hfd.nrcyls * surfaces * sectors > hfd->cyls_def * hfd->secspertrack_def * hfd->heads_def) {
                hfd->cyls_def++;
            }
        }
     }
-    hfd->size = hfd->hfd.size;
+    hfd->size = hfd->hfd.virtsize;
+    return 1;
+}
+
+static uae_u32 vhd_checksum (uae_u8 *p, int offset)
+{
+    int i;
+    uae_u32 sum, psum;
+
+    sum = 0;
+    for (i = 0; i < 512; i++) {
+       if (offset >= 0 && i >= offset && i < offset + 4)
+           continue;
+       psum = sum;
+       if ((sum += p[i]) < psum)
+           sum++;
+    }
+    return ~sum;
+}
+
+int hdf_open (struct hardfiledata *hfd, const char *pname)
+{
+    uae_u8 tmp[512], tmp2[512];
+    uae_u32 v;
+
+    if (!hdf_open_target (hfd, pname))
+       return 0;
+    if (hdf_read_target (hfd, tmp, 0, 512) != 512)
+       goto end;
+    v = gl (tmp + 8); // features
+    if ((v & 3) != 2)
+       goto nonvhd;
+    v = gl (tmp + 8 + 4); // version
+    if ((v >> 16) != 1)
+       goto nonvhd;
+    hfd->vhd_type = gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 + 4 + 4 + 8 + 8 + 4);
+    if (hfd->vhd_type != VHD_FIXED && hfd->vhd_type != VHD_DYNAMIC)
+       goto nonvhd;
+    v = gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 + 4 + 4 + 8 + 8 + 4 + 4);
+    if (v == 0)
+       goto nonvhd;
+    if (vhd_checksum (tmp, 8 + 4 + 4 + 8 + 4 + 4 + 4 + 4 + 8 + 8 + 4 + 4) != v)
+       goto nonvhd;
+    if (hdf_read_target (hfd, tmp2, hfd->physsize - sizeof tmp2, 512) != 512)
+       goto end;
+    if (memcmp (tmp, tmp2, sizeof tmp))
+       goto nonvhd;
+    hfd->vhd_footerblock = hfd->physsize - 512;
+    hfd->virtsize = (uae_u64)(gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 +4 + 4 + 8)) << 32;
+    hfd->virtsize |= gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 +4 + 4 + 8 + 4);
+    if (hfd->vhd_type == VHD_DYNAMIC) {
+       uae_u32 size;
+       hfd->vhd_bamoffset = gl (tmp + 8 + 4 + 4 + 4);
+       if (hfd->vhd_bamoffset == 0 || hfd->vhd_bamoffset >= hfd->physsize)
+           goto end;
+       if (hdf_read_target (hfd, tmp, hfd->vhd_bamoffset, 512) != 512)
+           goto end;
+       v = gl (tmp + 8 + 8 + 8 + 4 + 4 + 4);
+       if (vhd_checksum (tmp, 8 + 8 + 8 + 4 + 4 + 4) != v)
+           goto end;
+       v = gl (tmp + 8 + 8 + 8);
+       if ((v >> 16) != 1)
+           goto end;
+       hfd->vhd_blocksize = gl (tmp + 8 + 8 + 8 + 4 + 4);
+       hfd->vhd_bamoffset = gl (tmp + 8 + 8 + 4);
+       hfd->vhd_bamsize = (((hfd->virtsize + hfd->vhd_blocksize - 1) / hfd->vhd_blocksize) * 4 + 511) & ~511;
+       size = hfd->vhd_bamoffset + hfd->vhd_bamsize;
+       hfd->vhd_header = xmalloc (size);
+       if (hdf_read_target (hfd, hfd->vhd_header, 0, size) != size)
+           goto end;
+       hfd->vhd_sectormap = xmalloc (512);
+       hfd->vhd_sectormapblock = -1;
+       hfd->vhd_bitmapsize = ((hfd->vhd_blocksize / (8 * 512)) + 511) & ~511;
+    }
+    write_log ("HDF is VHD %s image, virtual size=%dK\n",
+       hfd->vhd_type == 2 ? "fixed" : "dynamic",
+       hfd->virtsize / 1024);
+    return 1;
+nonvhd:
+    hfd->vhd_type = 0;
+    return 1;
+end:
+    hdf_close_target (hfd);
+    return 0;
+}
+
+void hdf_close (struct hardfiledata *hfd)
+{
+    hdf_close_target (hfd);
+    hfd->vhd_type = 0;
+    xfree (hfd->vhd_header);
+    hfd->vhd_header = NULL;
+    xfree (hfd->vhd_sectormap);
+    hfd->vhd_sectormap = NULL;
+}
+
+int hdf_dup (struct hardfiledata *dhfd, const struct hardfiledata *shfd)
+{
+    return hdf_dup_target (dhfd, shfd);
+}
+
+extern int get_guid_target (uae_u8 *out);
+
+int vhd_create (const char *name, uae_u64 size)
+{
+    struct hardfiledata hfd;
+    struct zfile *zf;
+    uae_u8 *b;
+    int cyl, cylsec, head, tracksec;
+    uae_u32 crc, blocksize, batsize, batentrysize;
+    int ret, i;
+    time_t tm;
+
+    if (size >= (uae_u64)10 * 1024 * 1024 * 1024)
+       blocksize = 2 * 1024 * 1024;
+    else
+       blocksize = 512 * 1024;
+    batsize = (size + blocksize - 1) / blocksize;
+    batentrysize = batsize;
+    batsize *= 4;
+    batsize += 511;
+    batsize &= ~511;
+    ret = 0;
+    b = NULL;
+    zf = zfile_fopen (name, "w");
+    if (!zf)
+       goto end;
+    b = xcalloc (512 + 1024 + batsize + 512, 1);
+    if (zfile_fwrite (b, 512 + 1024 + batsize + 512, 1, zf) != 1)
+       goto end;
+
+    memset (&hfd, 0, sizeof hfd);
+    hfd.virtsize = hfd.physsize = size;
+    hfd.blocksize = 512;
+    strcpy (b, "conectix"); // cookie
+    b[0x0b] = 2; // features
+    b[0x0d] = 1; // version
+    b[0x10 + 6] = 2; // data offset
+    // time stamp
+    tm = time (NULL) - 946684800;
+    b[0x18] = tm >> 24;
+    b[0x19] = tm >> 16;
+    b[0x1a] = tm >>  8;
+    b[0x1b] = tm >>  0;
+    strcpy (b + 0x1c, "vpc "); // creator application
+    b[0x21] = 5; // creator version
+    strcpy (b + 0x24, "Wi2k"); // creator host os
+    // original and current size
+    b[0x28] = b[0x30] = size >> 56;
+    b[0x29] = b[0x31] = size >> 48;
+    b[0x2a] = b[0x32] = size >> 40;
+    b[0x2b] = b[0x33] = size >> 32;
+    b[0x2c] = b[0x34] = size >> 24;
+    b[0x2d] = b[0x35] = size >> 16;
+    b[0x2e] = b[0x36] = size >>  8;
+    b[0x2f] = b[0x37] = size >>  0;
+    getchs2 (&hfd, &cyl, &cylsec, &head, &tracksec);
+    // cylinders
+    b[0x38] = cyl >> 8;
+    b[0x39] = cyl;
+    // heads
+    b[0x3a] = head;
+    // sectors per track
+    b[0x3b] = tracksec;
+    // disk type
+    b[0x3c + 3] = VHD_DYNAMIC;
+    get_guid_target (b + 0x44);
+    crc = vhd_checksum (b, -1);
+    b[0x40] = crc >> 24;
+    b[0x41] = crc >> 16;
+    b[0x42] = crc >>  8;
+    b[0x43] = crc >>  0;
+
+    // write header
+    zfile_fseek (zf, 0, SEEK_SET);
+    zfile_fwrite (b, 512, 1, zf);
+    // write footer
+    zfile_fseek (zf, 512 + 1024 + batsize, SEEK_SET);
+    zfile_fwrite (b, 512, 1, zf);
+
+    // dynamic disk header
+    memset (b, 0, 1024);
+    // cookie
+    strcpy (b, "cxsparse");
+    // data offset
+    for (i = 0; i < 8; i++)
+       b[0x08 + i] = 0xff;
+    // table offset (bat)
+    b[0x10 + 6] = 0x06;
+    // version
+    b[0x19] = 1;
+    // max table entries
+    b[0x1c] = batentrysize >> 24;
+    b[0x1d] = batentrysize >> 16;
+    b[0x1e] = batentrysize >>  8;
+    b[0x1f] = batentrysize >>  0;
+    b[0x20] = blocksize >> 24;
+    b[0x21] = blocksize >> 16;
+    b[0x22] = blocksize >>  8;
+    b[0x23] = blocksize >>  0;
+    crc = vhd_checksum (b, -1);
+    b[0x24] = crc >> 24;
+    b[0x25] = crc >> 16;
+    b[0x26] = crc >>  8;
+    b[0x27] = crc >>  0;
+
+    // write dynamic header
+    zfile_fseek (zf, 512, SEEK_SET);
+    zfile_fwrite (b, 1024, 1, zf);
+
+    // bat
+    memset (b, 0xff, batsize);
+    zfile_fwrite (b, batsize, 1, zf);
+
+    ret = 1;
+
+end:
+    xfree (b);
+    zfile_fclose (zf);
+    return ret;
+}
+
+
+static uae_u64 vhd_read (struct hardfiledata *hfd, uae_u8 *dataptr, uae_u64 offset, uae_u64 len)
+{
+    uae_u32 bamoffset;
+    uae_u32 sectoroffset;
+    uae_u64 read;
+
+    //write_log ("%08x %08x\n", (uae_u32)offset, (uae_u32)len);
+    read = 0;
+    if (offset & 511)
+       return read;
+    if (len & 511)
+       return read;
+    while (len > 0) {
+       bamoffset = (offset / hfd->vhd_blocksize) * 4 + hfd->vhd_bamoffset;
+       sectoroffset = gl (hfd->vhd_header + bamoffset);
+       if (sectoroffset == 0xffffffff) {
+           memset (dataptr, 0, 512);
+           read += 512;
+       } else {
+           int bitmapoffsetbits;
+           int bitmapoffsetbytes;
+           int sectormapblock;
+
+           bitmapoffsetbits = (offset / 512) % (hfd->vhd_blocksize / 512);
+           bitmapoffsetbytes = bitmapoffsetbits / 8;
+           sectormapblock = sectoroffset * 512 + (bitmapoffsetbytes & ~511);
+           if (hfd->vhd_sectormapblock != sectormapblock) {
+               // read sector bitmap
+               //write_log ("BM %08x\n", sectormapblock);
+               if (hdf_read_target (hfd, hfd->vhd_sectormap, sectormapblock, 512) != 512)
+                   return read;
+               hfd->vhd_sectormapblock = sectormapblock;
+           }
+           // block allocated in bitmap?
+           if (hfd->vhd_sectormap[bitmapoffsetbytes & 511] & (1 << (7 - (bitmapoffsetbits & 7)))) {
+               // read data block
+               int block = sectoroffset * 512 + hfd->vhd_bitmapsize + bitmapoffsetbits * 512;
+               //write_log ("DB %08x\n", block);
+               if (hdf_read_target (hfd, dataptr, block, 512) != 512)
+                   return read;
+           } else {
+               memset (dataptr, 0, 512);
+           }
+           read += 512;
+       }
+       len -= 512;
+       dataptr += 512;
+       offset += 512;
+    }
+    return read;
+}
+
+static int vhd_write_enlarge (struct hardfiledata *hfd, uae_u32 bamoffset)
+{
+    uae_u8 *buf, *p;
+    int len = hfd->vhd_blocksize + hfd->vhd_bitmapsize + 512;
+    uae_u32 block;
+    int v;
+
+    buf = xcalloc (len, 1);
+    if (!hdf_resize_target (hfd, hfd->physsize + len - 512))
+       return 0;
+    // add footer (same as 512 byte header)
+    memcpy (buf + hfd->vhd_bitmapsize + hfd->vhd_blocksize, hfd->vhd_header, 512);
+    v = hdf_write_target (hfd, buf, hfd->vhd_footerblock, len);
+    xfree (buf);
+    if (v != len)
+       return 0;
+    // write new offset to BAM
+    p = hfd->vhd_header + bamoffset;
+    block = hfd->vhd_footerblock / 512;
+    p[0] = block >> 24;
+    p[1] = block >> 16;
+    p[2] = block >>  8;
+    p[3] = block >>  0;
+    // write to disk
+    if (hdf_write_target (hfd, hfd->vhd_header + hfd->vhd_bamoffset, hfd->vhd_bamoffset, hfd->vhd_bamsize) != hfd->vhd_bamsize)
+       return 0;
+    hfd->vhd_footerblock += len - 512;
     return 1;
 }
 
+static uae_u64 vhd_write (struct hardfiledata *hfd, uae_u8 *dataptr, uae_u64 offset, uae_u64 len)
+{
+    uae_u32 bamoffset;
+    uae_u32 sectoroffset;
+    uae_u64 written;
+
+    //write_log ("%08x %08x\n", (uae_u32)offset, (uae_u32)len);
+    written = 0;
+    if (offset & 511)
+       return written;
+    if (len & 511)
+       return written;
+    while (len > 0) {
+       bamoffset = (offset / hfd->vhd_blocksize) * 4 + hfd->vhd_bamoffset;
+       sectoroffset = gl (hfd->vhd_header + bamoffset);
+       if (sectoroffset == 0xffffffff) {
+           if (!vhd_write_enlarge (hfd, bamoffset))
+               return written;
+           continue;
+       } else {
+           int bitmapoffsetbits;
+           int bitmapoffsetbytes;
+           int sectormapblock;
+
+           bitmapoffsetbits = (offset / 512) % (hfd->vhd_blocksize / 512);
+           bitmapoffsetbytes = bitmapoffsetbits / 8;
+           sectormapblock = sectoroffset * 512 + (bitmapoffsetbytes & ~511);
+           if (hfd->vhd_sectormapblock != sectormapblock) {
+               // read sector bitmap
+               if (hdf_read_target (hfd, hfd->vhd_sectormap, sectormapblock, 512) != 512)
+                   return written;
+               hfd->vhd_sectormapblock = sectormapblock;
+           }
+           // write data
+           if (hdf_write_target (hfd, dataptr, sectoroffset * 512 + hfd->vhd_bitmapsize + bitmapoffsetbits * 512, 512) != 512)
+               return written;
+           // block already allocated in bitmap?
+           if (!(hfd->vhd_sectormap[bitmapoffsetbytes & 511] & (1 << (7 - (bitmapoffsetbits & 7))))) {
+               // no, we need to mark it allocated and write the modified bitmap back to the disk
+               int j;
+               for (j = 0; j < 512 / 4; j++) {
+                   if (((uae_u32*)dataptr)[j])
+                       break;
+               }
+               if (j < 512 / 4) {
+                   // only mark it if there was non-zero data written
+                   hfd->vhd_sectormap[bitmapoffsetbytes & 511] |= (1 << (7 - (bitmapoffsetbits & 7)));
+                   if (hdf_write_target (hfd, hfd->vhd_sectormap, sectormapblock, 512) != 512)
+                       return written;
+               }
+           }
+           written += 512;
+       }
+       len -= 512;
+       dataptr += 512;
+       offset += 512;
+    }
+    return written;
+}
+
+int hdf_read (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len)
+{
+    if (hfd->vhd_type == VHD_DYNAMIC)
+       return vhd_read (hfd, buffer, offset, len);
+    else if (hfd->vhd_type == VHD_FIXED)
+       return hdf_read_target (hfd, buffer, offset + 512, len);
+    else
+       return hdf_read_target (hfd, buffer, offset, len);
+}
+int hdf_write (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len)
+{
+    if (hfd->vhd_type == VHD_DYNAMIC)
+       return vhd_write (hfd, buffer, offset, len);
+    else if (hfd->vhd_type == VHD_FIXED)
+       return hdf_write_target (hfd, buffer, offset + 512, len);
+    else
+       return hdf_write_target (hfd, buffer, offset, len);
+}
+
 static uae_u64 cmd_readx (struct hardfiledata *hfd, uae_u8 *dataptr, uae_u64 offset, uae_u64 len)
 {
     gui_hd_led (hfd->unitnum, 1);
@@ -359,9 +747,9 @@ static uae_u64 cmd_write (struct hardfiledata *hfd, uaecptr dataptr, uae_u64 off
 
 static int checkbounds(struct hardfiledata *hfd, uae_u64 offset, uae_u64 len)
 {
-    if (offset >= hfd->size)
+    if (offset >= hfd->physsize)
        return 0;
-    if (offset + len > hfd->size)
+    if (offset + len > hfd->physsize)
        return 0;
     return 1;
 }
@@ -483,7 +871,7 @@ int scsi_emulate(struct hardfiledata *hfd, struct hd_hardfiledata *hdhfd, uae_u8
            p[3] = 0;
            p += 4;
            if (!dbd) {
-               uae_u32 blocks = (uae_u32)(hfd->size / hfd->blocksize);
+               uae_u32 blocks = (uae_u32)(hfd->virtsize / hfd->blocksize);
                p[-1] = 8;
                wl(p + 0, blocks);
                wl(p + 4, hfd->blocksize);
@@ -532,7 +920,7 @@ int scsi_emulate(struct hardfiledata *hfd, struct hd_hardfiledata *hdhfd, uae_u8
            int cyl, cylsec, head, tracksec;
            if (nodisk (hfd))
                goto nodisk;
-           blocks = (uae_u32)(hfd->size / hfd->blocksize - 1);
+           blocks = (uae_u32)(hfd->virtsize / hfd->blocksize - 1);
            if (hdhfd) {
                cyl = hdhfd->cyls;
                head = hdhfd->heads;
@@ -950,8 +1338,8 @@ static uae_u32 hardfile_do_io (struct hardfiledata *hfd, struct hardfileprivdata
            unaligned (cmd, offset, len, hfd->blocksize);
            goto bad_len;
        }
-       if (len + offset > hfd->size) {
-           outofbounds (cmd, offset, len, hfd->size);
+       if (len + offset > hfd->virtsize) {
+           outofbounds (cmd, offset, len, hfd->virtsize);
            goto bad_len;
        }
        actual = (uae_u32)cmd_read (hfd, dataptr, offset, len);
@@ -971,8 +1359,8 @@ static uae_u32 hardfile_do_io (struct hardfiledata *hfd, struct hardfileprivdata
            unaligned (cmd, offset64, len, hfd->blocksize);
            goto bad_len;
        }
-       if (len + offset64 > hfd->size) {
-           outofbounds (cmd, offset64, len, hfd->size);
+       if (len + offset64 > hfd->virtsize) {
+           outofbounds (cmd, offset64, len, hfd->virtsize);
            goto bad_len;
         }
        actual = (uae_u32)cmd_read (hfd, dataptr, offset64, len);
@@ -995,8 +1383,8 @@ static uae_u32 hardfile_do_io (struct hardfiledata *hfd, struct hardfileprivdata
                unaligned (cmd, offset, len, hfd->blocksize);
                goto bad_len;
            }
-           if (len + offset > hfd->size) {
-               outofbounds (cmd, offset, len, hfd->size);
+           if (len + offset > hfd->virtsize) {
+               outofbounds (cmd, offset, len, hfd->virtsize);
                goto bad_len;
            }
            actual = (uae_u32)cmd_write (hfd, dataptr, offset, len);
@@ -1022,8 +1410,8 @@ static uae_u32 hardfile_do_io (struct hardfiledata *hfd, struct hardfileprivdata
                unaligned (cmd, offset64, len, hfd->blocksize);
                goto bad_len;
            }
-           if (len + offset64 > hfd->size) {
-               outofbounds (cmd, offset64, len, hfd->size);
+           if (len + offset64 > hfd->virtsize) {
+               outofbounds (cmd, offset64, len, hfd->virtsize);
                goto bad_len;
            }
            put_long (request + 32, (uae_u32)cmd_write (hfd, dataptr, offset64, len));
@@ -1066,7 +1454,7 @@ static uae_u32 hardfile_do_io (struct hardfiledata *hfd, struct hardfileprivdata
            uae_u64 size;
            getchs (hfd, &cyl, &cylsec, &head, &tracksec);
            put_long (dataptr + 0, hfd->blocksize);
-           size = hfd->size / hfd->blocksize;
+           size = hfd->virtsize / hfd->blocksize;
            if (size > 0x00ffffffff)
                size = 0xffffffff;
            put_long (dataptr + 4, (uae_u32)size);
index f98fcc37b47b6f914d0cfdbfe39ed97c1d315c78..8c5ea5b777818172b225ab060784049abf0676ca 100755 (executable)
@@ -7,7 +7,8 @@
   */
 
 struct hardfiledata {
-    uae_u64 size;
+    uae_u64 virtsize; // virtual size
+    uae_u64 physsize; // physical size (dynamic disk)
     uae_u64 offset;
     int nrcyls;
     int secspertrack;
@@ -29,13 +30,21 @@ struct hardfiledata {
     unsigned int cylinders;
     unsigned int sectors;
     unsigned int heads;
-    uae_u64 size2;
-    uae_u64 offset2;
     int warned;
     uae_u8 *virtual_rdb;
     uae_u64 virtual_size;
     int unitnum;
 
+    uae_u8 *vhd_header;
+    uae_u32 vhd_bamoffset;
+    uae_u32 vhd_bamsize;
+    uae_u32 vhd_blocksize;
+    uae_u32 vhd_type;
+    uae_u8 *vhd_sectormap;
+    uae_u64 vhd_sectormapblock;
+    uae_u32 vhd_bitmapsize;
+    uae_u64 vhd_footerblock;
+
     int drive_empty;
     char *emptyname;
 };
@@ -90,7 +99,6 @@ extern int hdf_read (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int
 extern int hdf_write (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len);
 extern int hdf_getnumharddrives (void);
 extern char *hdf_getnameharddrive (int index, int flags, int *sectorsize);
-extern int hdf_init (void);
 extern int isspecialdrive(const char *name);
 extern int get_native_path(uae_u32 lock, char *out);
 extern void hardfile_do_disk_change (struct uaedev_config_info *uci, int insert);
@@ -99,3 +107,14 @@ void hdf_hd_close(struct hd_hardfiledata *hfd);
 int hdf_hd_open(struct hd_hardfiledata *hfd, const char *path, int blocksize, int readonly,
                       const char *devname, int sectors, int surfaces, int reserved,
                       int bootpri, const char *filesys);
+
+
+extern int vhd_create (const char *name, uae_u64 size);
+
+extern int hdf_init_target (void);
+extern int hdf_open_target (struct hardfiledata *hfd, const char *name);
+extern int hdf_dup_target (struct hardfiledata *dhfd, const struct hardfiledata *shfd);
+extern void hdf_close_target (struct hardfiledata *hfd);
+extern int hdf_read_target (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len);
+extern int hdf_write_target (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len);
+extern int hdf_resize_target (struct hardfiledata *hfd, uae_u64 newsize);
index 883684f3c4399fcb4b2cea053df02b58e633a7b3..eb9e565cbecd14c48ed0cb446c111bb5b79487c9 100755 (executable)
@@ -1202,7 +1202,7 @@ int dx_islost (void)
 void dx_check (void)
 {
     dxdata.islost = 0;
-    if (dxdata.fsmodeset <= 0)
+    if (dxdata.fsmodeset <= 0 || dxdata.primary == NULL)
        return;
     if (IDirectDrawSurface7_IsLost (dxdata.primary) != DDERR_SURFACELOST)
        return;
index 1dd7f08699625499063db030cd16dc875fa97b35..4795a17285a8f8555ba84377a6688f849f0b3837 100755 (executable)
@@ -31,8 +31,6 @@
 static int usefloppydrives = 0;
 
 struct uae_driveinfo {
-    uae_u64 offset2;
-    uae_u64 size2;
     char vendor_id[128];
     char product_id[128];
     char product_rev[128];
@@ -166,7 +164,7 @@ int isharddrive (const char *name)
 
 static char *hdz[] = { "hdz", "zip", "rar", "7z", NULL };
 
-int hdf_open (struct hardfiledata *hfd, const char *pname)
+int hdf_open_target (struct hardfiledata *hfd, const char *pname)
 {
     HANDLE h = INVALID_HANDLE_VALUE;
     DWORD flags;
@@ -187,7 +185,7 @@ int hdf_open (struct hardfiledata *hfd, const char *pname)
     }
     hfd_log ("hfd open: '%s'\n", name);
     if (strlen (name) > 4 && !memcmp (name, "HD_", 3)) {
-       hdf_init ();
+       hdf_init_target ();
        i = isharddrive (name);
        if (i >= 0) {
            DWORD r;
@@ -210,12 +208,8 @@ int hdf_open (struct hardfiledata *hfd, const char *pname)
            strncpy (hfd->vendor_id, udi->vendor_id, 8);
            strncpy (hfd->product_id, udi->product_id, 16);
            strncpy (hfd->product_rev, udi->product_rev, 4);
-           hfd->offset2 = hfd->offset = udi->offset;
-           hfd->size2 = hfd->size = udi->size;
-           if (hfd->offset != udi->offset2 || hfd->size != udi->size2) {
-               gui_message ("Harddrive safety check: fatal memory corruption\n");
-               abort ();
-           }
+           hfd->offset = udi->offset;
+           hfd->physsize = hfd->virtsize = udi->size;
            hfd->blocksize = udi->bytespersector;
            if (hfd->offset == 0 && !hfd->drive_empty) {
                int sf = safetycheck (hfd->handle, 0, hfd->cache, hfd->blocksize);
@@ -276,16 +270,16 @@ int hdf_open (struct hardfiledata *hfd, const char *pname)
            if (low == INVALID_FILE_SIZE && GetLastError() != NO_ERROR)
                goto end;
            low &= ~(hfd->blocksize - 1);
-           hfd->size = hfd->size2 = ((uae_u64)high << 32) | low;
+           hfd->physsize = hfd->virtsize = ((uae_u64)high << 32) | low;
            hfd->handle_valid = HDF_HANDLE_WIN32;
-           if (hfd->size < 64 * 1024 * 1024 && zmode) {
+           if (hfd->physsize < 64 * 1024 * 1024 && zmode) {
                write_log ("HDF '%s' re-opened in zfile-mode\n", name);
                CloseHandle (h);
                hfd->handle = h = zfile_fopen(name, hfd->readonly ? "rb" : "r+b");
                if (!h)
                    goto end;
                zfile_fseek (h, 0, SEEK_END);
-               hfd->size = hfd->size2 = zfile_ftell (h);
+               hfd->physsize = hfd->virtsize = zfile_ftell (h);
                zfile_fseek (h, 0, SEEK_SET);
                hfd->handle_valid = HDF_HANDLE_ZFILE;
            }
@@ -296,7 +290,7 @@ int hdf_open (struct hardfiledata *hfd, const char *pname)
     hfd->handle = h;
     if (hfd->handle_valid || hfd->drive_empty) {
        hfd_log ("HDF '%s' opened, size=%dK mode=%d empty=%d\n",
-           name, hfd->size / 1024, hfd->handle_valid, hfd->drive_empty);
+           name, hfd->physsize / 1024, hfd->handle_valid, hfd->drive_empty);
        return 1;
     }
 end:
@@ -305,7 +299,7 @@ end:
     return 0;
 }
 
-void hdf_close (struct hardfiledata *hfd)
+void hdf_close_target (struct hardfiledata *hfd)
 {
     if (hfd->handle_valid) {
        if (hfd->handle && hfd->handle != INVALID_HANDLE_VALUE) {
@@ -329,7 +323,7 @@ void hdf_close (struct hardfiledata *hfd)
     hfd->drive_empty = 0;
 }
 
-int hdf_dup (struct hardfiledata *dhfd, const struct hardfiledata *shfd)
+int hdf_dup_target (struct hardfiledata *dhfd, const struct hardfiledata *shfd)
 {
     if (!shfd->handle_valid)
        return 0;
@@ -364,17 +358,14 @@ static int hdf_seek (struct hardfiledata *hfd, uae_u64 offset)
        gui_message ("hd: hdf handle is not valid. bug.");
        abort();
     }
-    if (hfd->offset != hfd->offset2 || hfd->size != hfd->size2) {
-       gui_message ("hd: memory corruption detected in seek");
-       abort ();
-    }
-    if (offset >= hfd->size - hfd->virtual_size) {
-       gui_message ("hd: tried to seek out of bounds! (%I64X >= %I64X)\n", offset, hfd->size);
+    if (offset >= hfd->physsize - hfd->virtual_size) {
+       gui_message ("hd: tried to seek out of bounds! (%I64X >= %I64X)\n", offset, hfd->physsize);
        abort ();
     }
     offset += hfd->offset;
     if (offset & (hfd->blocksize - 1)) {
-       gui_message ("hd: poscheck failed, offset not aligned to blocksize! (%I64X & %04X = %04X)\n", offset, hfd->blocksize, offset & (hfd->blocksize - 1));
+       gui_message ("hd: poscheck failed, offset not aligned to blocksize! (%I64X & %04X = %04X)\n",
+           offset, hfd->blocksize, offset & (hfd->blocksize - 1));
        abort ();
     }
     if (hfd->handle_valid == HDF_HANDLE_WIN32) {
@@ -393,10 +384,6 @@ static void poscheck (struct hardfiledata *hfd, int len)
     DWORD high, ret, err;
     uae_u64 pos;
 
-    if (hfd->offset != hfd->offset2 || hfd->size != hfd->size2) {
-       gui_message ("hd: memory corruption detected in poscheck");
-       abort ();
-    }
     if (hfd->handle_valid == HDF_HANDLE_WIN32) {
        high = 0;
        ret = SetFilePointer (hfd->handle, 0, &high, FILE_CURRENT);
@@ -417,8 +404,8 @@ static void poscheck (struct hardfiledata *hfd, int len)
        gui_message ("hd: poscheck failed, offset out of bounds! (%I64d < %I64d)", pos, hfd->offset);
        abort ();
     }
-    if (pos >= hfd->offset + hfd->size - hfd->virtual_size || pos >= hfd->offset + hfd->size + len - hfd->virtual_size) {
-       gui_message ("hd: poscheck failed, offset out of bounds! (%I64d >= %I64d, LEN=%d)", pos, hfd->offset + hfd->size, len);
+    if (pos >= hfd->offset + hfd->physsize - hfd->virtual_size || pos >= hfd->offset + hfd->physsize + len - hfd->virtual_size) {
+       gui_message ("hd: poscheck failed, offset out of bounds! (%I64d >= %I64d, LEN=%d)", pos, hfd->offset + hfd->physsize, len);
        abort ();
     }
     if (pos & (hfd->blocksize - 1)) {
@@ -555,8 +542,8 @@ static int hdf_read_2 (struct hardfiledata *hfd, void *buffer, uae_u64 offset, i
        return len;
     }
     hfd->cache_offset = offset;
-    if (offset + CACHE_SIZE > hfd->offset + (hfd->size - hfd->virtual_size))
-       hfd->cache_offset = hfd->offset + (hfd->size - hfd->virtual_size) - CACHE_SIZE;
+    if (offset + CACHE_SIZE > hfd->offset + (hfd->physsize - hfd->virtual_size))
+       hfd->cache_offset = hfd->offset + (hfd->physsize - hfd->virtual_size) - CACHE_SIZE;
     hdf_seek (hfd, hfd->cache_offset);
     poscheck (hfd, CACHE_SIZE);
     if (hfd->handle_valid == HDF_HANDLE_WIN32)
@@ -577,7 +564,7 @@ static int hdf_read_2 (struct hardfiledata *hfd, void *buffer, uae_u64 offset, i
     return 0;
 }
 
-int hdf_read (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len)
+int hdf_read_target (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len)
 {
     int got = 0;
     uae_u8 *p = buffer;
@@ -593,8 +580,20 @@ int hdf_read (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len)
     }
     offset -= hfd->virtual_size;
     while (len > 0) {
-       int maxlen = len > CACHE_SIZE ? CACHE_SIZE : len;
-       int ret = hdf_read_2(hfd, p, offset, maxlen);
+       int ret, maxlen;
+       if (hfd->physsize < CACHE_SIZE) {
+           hfd->cache_valid = 0;
+           hdf_seek (hfd, offset);
+           poscheck (hfd, len);
+           if (hfd->handle_valid == HDF_HANDLE_WIN32)
+               ReadFile (hfd->handle, buffer, len, &ret, NULL);
+           else if (hfd->handle_valid == HDF_HANDLE_ZFILE)
+               ret = zfile_fread (buffer, 1, len, hfd->handle);
+           maxlen = len;
+       } else {
+           maxlen = len > CACHE_SIZE ? CACHE_SIZE : len;
+           ret = hdf_read_2 (hfd, p, offset, maxlen);
+       }
        got += ret;
        if (ret != maxlen)
            return got;
@@ -620,8 +619,7 @@ static int hdf_write_2 (struct hardfiledata *hfd, void *buffer, uae_u64 offset,
        outlen = zfile_fwrite (hfd->cache, 1, len, hfd->handle);
     return outlen;
 }
-
-int hdf_write (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len)
+int hdf_write_target (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len)
 {
     int got = 0;
     uae_u8 *p = buffer;
@@ -644,6 +642,26 @@ int hdf_write (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len)
     return got;
 }
 
+int hdf_resize_target (struct hardfiledata *hfd, uae_u64 newsize)
+{
+    LONG highword = 0;
+    DWORD ret;
+
+    if (newsize >= 0x80000000) {
+        highword = (DWORD)(newsize >> 32);
+       ret = SetFilePointer (hfd->handle, (DWORD)newsize, &highword, FILE_BEGIN);
+    } else {
+        ret = SetFilePointer (hfd->handle, (DWORD)newsize, NULL, FILE_BEGIN);
+    }
+    if (ret == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR)
+       return 0;
+    if (SetEndOfFile (hfd->handle)) {
+       hfd->physsize = newsize;
+       return 1;
+    }
+    return 0;
+}
+
 #endif
 
 #ifdef WINDDK
@@ -868,13 +886,13 @@ static BOOL GetDevicePropertyFromName(const char *DevicePath, DWORD Index, DWORD
        ret = 1;
        goto end;
     }
-    udi->offset = udi->offset2 = 0;
+    udi->offset = 0;
     write_log ("BPS=%d Cyls=%I64d TPC=%d SPT=%d MediaType=%d\n",
        dg.BytesPerSector, dg.Cylinders.QuadPart, dg.TracksPerCylinder, dg.SectorsPerTrack, dg.MediaType);
-    udi->size = udi->size2 = (uae_u64)dg.BytesPerSector * (uae_u64)dg.Cylinders.QuadPart *
+    udi->size = (uae_u64)dg.BytesPerSector * (uae_u64)dg.Cylinders.QuadPart *
        (uae_u64)dg.TracksPerCylinder * (uae_u64)dg.SectorsPerTrack;
     if (gli_ok)
-       udi->size = udi->size2 = gli.Length.QuadPart;
+       udi->size = gli.Length.QuadPart;
     write_log ("device size %I64d (0x%I64x) bytes\n", udi->size, udi->size);
     trim (orgname);
 
@@ -913,8 +931,8 @@ static BOOL GetDevicePropertyFromName(const char *DevicePath, DWORD Index, DWORD
            }
            memmove (udi, udi2, sizeof (*udi));
            udi->device_name[0] = 0;
-           udi->offset = udi->offset2 = pi->StartingOffset.QuadPart;
-           udi->size = udi->size2 = pi->PartitionLength.QuadPart;
+           udi->offset = pi->StartingOffset.QuadPart;
+           udi->size = pi->PartitionLength.QuadPart;
            write_log ("used\n");
            if (safetycheck (hDevice, udi->offset, buffer, dg.BytesPerSector) <= 0) {
                sprintf (udi->device_name, "HD_P#%d_%s", pi->PartitionNumber, orgname);
@@ -1144,7 +1162,7 @@ static int hdf_init2 (int force)
     return num_drives;
 }
 
-int hdf_init (void)
+int hdf_init_target (void)
 {
     return hdf_init2 (0);
 }
index e6256cd10f5d3746c1fa6e52ce6e33cf693caa5a..30d1146df71e153c41c3b9ca4593e4a3aba4aaed 100755 (executable)
@@ -697,7 +697,7 @@ int uaeser_open (struct uaeserialdatawin32 *sd, void *user, int unit)
     COMMTIMEOUTS CommTimeOuts;
 
     sd->user = user;
-    sprintf (buf, "\\.\\\\COM%d", unit);
+    sprintf (buf, "\\\\.\\COM%d", unit);
     sd->evtr = CreateEvent (NULL, TRUE, FALSE, NULL);
     sd->evtw = CreateEvent (NULL, TRUE, FALSE, NULL);
     sd->evtt = CreateEvent (NULL, FALSE, FALSE, NULL);
@@ -710,8 +710,13 @@ int uaeser_open (struct uaeserialdatawin32 *sd, void *user, int unit)
     sd->hCom = CreateFile (buf, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
                FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);
     if (sd->hCom == INVALID_HANDLE_VALUE) {
-       write_log ("UAESER: '%s' failed to open, err=%d\n", buf, GetLastError());
-       goto end;
+       sprintf (buf, "\\.\\\\COM%d", unit);
+       sd->hCom = CreateFile (buf, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
+           FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);
+       if (sd->hCom == INVALID_HANDLE_VALUE) {
+           write_log ("UAESER: '%s' failed to open, err=%d\n", buf, GetLastError());
+           goto end;
+       }
     }
     uae_sem_init (&sd->sync_sem, 0, 0);
     uae_sem_init (&sd->change_sem, 0, 1);
index 17c4342c88eff5c154490b672c88176afbb82356..236acb5f80e36ea0b59636d12d242be33e06d591 100755 (executable)
@@ -661,12 +661,13 @@ static int doskip (void)
 
 static void picasso_trigger_vblank (void)
 {
-    if (!boardinfo || !uaegfx_base || !interrupt_enabled) {
+    if (!boardinfo || !uaegfx_base || !interrupt_enabled || currprefs.win32_rtgvblankrate < -1) {
        return;
     }
-    put_long (uaegfx_base + CARD_VBLANKCODE + 6 + 2, boardinfo + PSSO_BoardInfo_SoftInterrupt);
-    put_byte (uaegfx_base + CARD_VBLANKFLAG, 1);
-    INTREQ_f (0x8000 | 0x2000);
+    put_long (uaegfx_base + CARD_IRQPTR, boardinfo + PSSO_BoardInfo_SoftInterrupt);
+    put_byte (uaegfx_base + CARD_IRQFLAG, 1);
+    if (currprefs.win32_rtgvblankrate != 0)
+       INTREQ_f (0x8000 | 0x0008);
 }
 
 static int isvsync (void)
@@ -684,7 +685,7 @@ void picasso_handle_vsync (void)
 #endif
 
     if (currprefs.chipset_refreshrate >= 100) {
-       thisisvsync++;
+       vsynccnt++;
        if (vsynccnt < 2)
            thisisvsync = 0;
        vsynccnt = 0;
@@ -2145,7 +2146,8 @@ static void inituaegfx (uaecptr ABI)
     if (flags & BIF_NOBLITTER)
        write_log ("P96: blitter disabled in devs:monitors/uaegfx!\n");
 
-    flags |= BIF_VBLANKINTERRUPT;
+    if (currprefs.win32_rtgvblankrate >= -1)
+       flags |= BIF_VBLANKINTERRUPT;
 
     put_long (ABI + PSSO_BoardInfo_Flags, flags);
 
@@ -3259,28 +3261,28 @@ void picasso_handle_hsync (void)
        return;
     if (currprefs.win32_rtgvblankrate == 0 && !isvsync ())
        return;
-    if (p96hsync < 0) {
-       p96hsync++;
-       if (p96hsync == 0)
-           p96hsync = p96syncrate;
-       return;
-    }
     if (WIN32GFX_IsPicassoScreen () && isvsync ()) {
-       if (DirectDraw_GetVerticalBlankStatus ())
-           p96hsync = -maxvpos / 3;
+       int vbs = DirectDraw_GetVerticalBlankStatus ();
+       if (vbs == 0) {
+           if (p96hsync > 0)
+               p96hsync = -1;
+           return;
+       } else {
+           if (p96hsync >= 0)
+               return;
+           p96hsync = 0;
+       }
     } else {
        p96hsync--;
     }
     if (p96hsync <= 0) {
        picasso_trigger_vblank ();
-       if (p96hsync == 0)
-           p96hsync = p96syncrate;
+        p96hsync = p96syncrate;
     }
 }
 
 void init_hz_p96 (void)
 {
-    p96syncrate = maxvpos * vblank_hz;
     if (currprefs.win32_rtgvblankrate < 0 || isvsync ()) 
        p96vblank = DirectDraw_CurrentRefreshRate ();
     else if (currprefs.win32_rtgvblankrate == 0)
@@ -3289,7 +3291,10 @@ void init_hz_p96 (void)
        p96vblank = currprefs.win32_rtgvblankrate;
     if (p96vblank <= 0)
        p96vblank = 60;
-    p96syncrate /= p96vblank;
+    if (p96vblank >= 300)
+       p96vblank = 300;
+    p96syncrate = maxvpos * vblank_hz / p96vblank;
+    write_log ("P96FREQ: %d*%d = %d / %d = %d\n", maxvpos, vblank_hz, maxvpos * vblank_hz, p96vblank, p96syncrate);
 }
 
 /* NOTE: Watch for those planeptrs of 0x00000000 and 0xFFFFFFFF for all zero / all one bitmaps !!!! */
@@ -4248,29 +4253,37 @@ static uae_u32 REGPARAM2 gfx_expunge (TrapContext *context)
     return 0;
 }
 
-static uaecptr uaegfx_vblankname;
+static uaecptr uaegfx_vblankname, uaegfx_portsname;
 static void initvblankirq (TrapContext *ctx, uaecptr base)
 {
-    uaecptr p = base + CARD_VBLANKIRQ;
-    uaecptr c = base + CARD_VBLANKCODE;
-
-    put_word (p + 8, 0x020a);
-    put_long (p + 10, uaegfx_vblankname);
-    put_long (p + 18, c);
-
-    put_word (c, 0x41f9); c += 2;                  // lea CARD_VBLANKLAG,a0
-    put_long (c, base + CARD_VBLANKFLAG); c += 4;
-    put_word (c, 0x43f9); c += 2;                  // lea uaegfx_base + PSSO_BoardInfo_SoftInterrupt,a1
-    put_long (c, 0); c += 4;
-    put_word (c, 0x4a10); c += 2;                  // tst.b (a0)
-    put_word (c, 0x670a); c += 2;                  // beq.s label
-    put_word (c, 0x4210); c += 2;                  // clr.b (a0)
+    uaecptr p1 = base + CARD_VBLANKIRQ;
+    uaecptr p2 = base + CARD_PORTSIRQ;
+    uaecptr c = base + CARD_IRQCODE;
+
+    put_word (p1 + 8, 0x0205);
+    put_long (p1 + 10, uaegfx_vblankname);
+    put_long (p1 + 14, base + CARD_IRQFLAG);
+    put_long (p1 + 18, c);
+
+    put_word (p2 + 8, 0x0205);
+    put_long (p2 + 10, uaegfx_portsname);
+    put_long (p2 + 14, base + CARD_IRQFLAG);
+    put_long (p2 + 18, c);
+
+    put_word (c, 0x4a11); c += 2;                  // tst.b (a1)
+    put_word (c, 0x670e); c += 2;                  // beq.s label
+    put_word (c, 0x4211); c += 2;                  // clr.b (a1)
+    put_long (c, 0x22690004); c += 4;              // move.l 4(a1),a1
     put_long (c, 0x2c780004); c += 4;              // move.l 4.w,a6
     put_long (c, 0x4eaeff4c); c += 4;              // jsr Cause(a6)
     put_word (c, 0x7000); c += 2;                  // label: moveq #0,d0
-    put_word (c, RTS); c += 2;                     // rts
-    m68k_areg (&ctx->regs, 1) = p;
-    m68k_dreg (&ctx->regs, 0) = 13; /* EXTER */
+    put_word (c, RTS);                             // rts
+
+    m68k_areg (&ctx->regs, 1) = p1;
+    m68k_dreg (&ctx->regs, 0) = 5; /* VERTB */
+    CallLib (ctx, get_long (4), -168); /* AddIntServer */
+    m68k_areg (&ctx->regs, 1) = p2;
+    m68k_dreg (&ctx->regs, 0) = 3; /* PORTS */
     CallLib (ctx, get_long (4), -168); /* AddIntServer */
 }
 
@@ -4281,8 +4294,9 @@ static uaecptr uaegfx_card_install (TrapContext *ctx, uae_u32 extrasize)
     uaecptr findcardfunc, initcardfunc;
     uaecptr exec = get_long (4);
 
-    uaegfx_resid = ds ("UAE Graphics Card 3.1");
+    uaegfx_resid = ds ("UAE Graphics Card 3.2");
     uaegfx_vblankname = ds ("UAE Graphics Card VBLANK");
+    uaegfx_vblankname = ds ("UAE Graphics Card PORTS");
 
     /* Open */
     openfunc = here ();
@@ -4335,7 +4349,8 @@ static uaecptr uaegfx_card_install (TrapContext *ctx, uae_u32 extrasize)
     put_long (uaegfx_base + CARD_RESLIST, uaegfx_base + CARD_SIZEOF);
     put_long (uaegfx_base + CARD_RESLISTSIZE, extrasize);
 
-    initvblankirq (ctx, uaegfx_base);
+    if (currprefs.win32_rtgvblankrate >= -1)
+       initvblankirq (ctx, uaegfx_base);
 
     write_log ("uaegfx.card %d.%d init @%08X\n", UAEGFX_VERSION, UAEGFX_REVISION, uaegfx_base);
     return uaegfx_base;
index b2560cd342df15e940d34fad91eabda489769264..e5db286fdd4bfd9a0910fa3fd895eca02ca6f84f 100755 (executable)
@@ -597,9 +597,11 @@ extern int p96hsync_counter;
 #define CARD_RESLISTSIZE (CARD_RESLIST + 4)
 #define CARD_BOARDINFO (CARD_RESLISTSIZE + 4)
 #define CARD_VBLANKIRQ (CARD_BOARDINFO + 4)
-#define CARD_VBLANKFLAG (CARD_VBLANKIRQ + 22)
-#define CARD_VBLANKCODE (CARD_VBLANKFLAG + 4)
-#define CARD_END (CARD_VBLANKCODE + 16 * 2)
+#define CARD_PORTSIRQ (CARD_VBLANKIRQ + 22)
+#define CARD_IRQFLAG (CARD_PORTSIRQ + 22)
+#define CARD_IRQPTR (CARD_IRQFLAG + 4)
+#define CARD_IRQCODE (CARD_IRQPTR + 4)
+#define CARD_END (CARD_IRQCODE + 11 * 2)
 #define CARD_SIZEOF CARD_END
 
 #endif
index 6891c960515228ef9fc270327d5a7b3413c5f02e..2c8345561ed085e555332e2f34d15a48cf57c602 100755 (executable)
 #define IDC_DBG_AUTOSET                 1780
 #define IDC_HF_SPARSE                   1780
 #define IDC_DBG_DASM2                   1781
+#define IDC_HF_DYNAMIC                  1781
 #define IDC_DBG_MEM2                    1782
 #define IDC_DBG_MEMINPUT2               1783
 #define IDC_DBG_ADDRINPUTTXT            1784
index 6891c960515228ef9fc270327d5a7b3413c5f02e..2c8345561ed085e555332e2f34d15a48cf57c602 100755 (executable)
 #define IDC_DBG_AUTOSET                 1780
 #define IDC_HF_SPARSE                   1780
 #define IDC_DBG_DASM2                   1781
+#define IDC_HF_DYNAMIC                  1781
 #define IDC_DBG_MEM2                    1782
 #define IDC_DBG_MEMINPUT2               1783
 #define IDC_DBG_ADDRINPUTTXT            1784
index f496a0dbbec69cdefcfb2439900e881841229c68..1f551e8646d360a8ea063573846a74f6a342982f 100755 (executable)
-// 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
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// 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_F7,          ID_DBG_PAGE7,           VIRTKEY, NOINVERT
-    VK_F8,          ID_DBG_PAGE8,           VIRTKEY, NOINVERT
-    VK_F9,          ID_DBG_PAGE9,           VIRTKEY, NOINVERT
-    VK_F11,         ID_DBG_STEP_OVER,       VIRTKEY, NOINVERT
-    VK_F12,         ID_DBG_STEP_INTO,       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
-    "H",            IDC_DBG_HELP,           VIRTKEY, ALT, NOINVERT
-    "P",            IDC_DBG_MEMTOPC,        VIRTKEY, ALT, NOINVERT
-    "A",            IDC_DBG_AUTOSET,        VIRTKEY, ALT, NOINVERT
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// 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,93
-    RTEXT           "Main ROM file:",IDC_ROMTEXT,10,13,75,10
-    COMBOBOX        IDC_ROMFILE,12,26,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "...",IDC_KICKCHOOSER,280,25,10,15
-    RTEXT           "Extended ROM file:",IDC_ROMFILE2TEXT,10,43,75,10
-    COMBOBOX        IDC_ROMFILE2,12,56,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "...",IDC_ROMCHOOSER2,280,55,10,15
-    CONTROL         "MapROM emulation [] Creates a BlizKick-compatible memory area.",IDC_MAPROM,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,77,87,10
-    CONTROL         "ShapeShifter support [] Patches the system ROM for ShapeShifter compatibility.",IDC_KICKSHIFTER,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,77,87,10
-    GROUPBOX        "Miscellaneous",-1,5,99,290,75
-    RTEXT           "Cartridge ROM file:",IDC_FLASHTEXT2,8,110,75,10
-    COMBOBOX        IDC_CARTFILE,12,123,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "...",IDC_CARTCHOOSER,280,122,10,15
-    RTEXT           "Flash RAM file:",IDC_FLASHTEXT,8,142,75,10
-    EDITTEXT        IDC_FLASHFILE,12,155,262,13,ES_AUTOHSCROLL
-    PUSHBUTTON      "...",IDC_FLASHCHOOSER,280,154,10,15
-END
-
-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,270,67,BS_LEFT
-    RTEXT           "Full screen:",IDC_SELECTRESTEXT,15,17,40,15,SS_CENTERIMAGE
-    COMBOBOX        IDC_DISPLAYSELECT,59,10,215,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_RESOLUTION,59,27,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_REFRESHRATE,187,27,87,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    EDITTEXT        IDC_XSIZE,59,48,48,12,ES_NUMBER
-    EDITTEXT        IDC_YSIZE,114,48,47,12,ES_NUMBER
-    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
-    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,124,161,77,12,ES_CENTER | ES_READONLY
-    GROUPBOX        "Centering",IDC_STATIC,221,73,61,49
-    CONTROL         "Horizontal",IDC_XCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,87,49,10
-    CONTROL         "Vertical",IDC_YCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,103,49,10
-    GROUPBOX        "Line Mode",IDC_LINEMODE,222,126,61,73
-    CONTROL         "Normal",IDC_LM_NORMAL,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,231,142,44,10
-    CONTROL         "Double",IDC_LM_DOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,158,45,10
-    CONTROL         "Scanlines",IDC_LM_SCANLINES,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,174,46,10
-    COMBOBOX        IDC_DA_MODE,20,211,58,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,84,207,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,175,181,26,12,ES_CENTER | ES_READONLY
-    COMBOBOX        IDC_RESOLUTIONDEPTH,134,27,46,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "Filtered low resolution",IDC_LORES_SMOOTHED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,126,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
-    PUSHBUTTON      "Reset to defaults",IDC_DA_RESET,212,211,73,14
-    RTEXT           "Resolution:",IDC_STATIC,27,140,59,15,SS_CENTERIMAGE
-    COMBOBOX        IDC_LORES,100,140,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-END
-
-IDD_MEMORY DIALOGEX 0, 0, 300, 239
-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,69
-    RTEXT           "Chip:",-1,24,26,20,10,SS_CENTERIMAGE
-    CONTROL         "Slider1",IDC_CHIPMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,22,50,20
-    EDITTEXT        IDC_CHIPRAM,105,25,34,12,ES_CENTER | ES_READONLY
-    RTEXT           "Slow:",-1,149,26,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,34,12,ES_CENTER | ES_READONLY
-    RTEXT           "Fast:",IDC_FASTTEXT,24,51,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,34,12,ES_CENTER | ES_READONLY
-    RTEXT           "Z3 Fast:",IDC_Z3TEXT,139,51,30,10,SS_CENTERIMAGE
-    CONTROL         "Slider1",IDC_Z3FASTMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,47,60,20
-    EDITTEXT        IDC_Z3FASTRAM,243,50,34,12,ES_CENTER | ES_READONLY
-    RTEXT           "Memory: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,25,98,53,10,SS_NOTIFY | SS_CENTERIMAGE
-    CONTROL         "Slider1",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,94,60,20
-    EDITTEXT        IDC_P96RAM,152,97,34,12,ES_CENTER | ES_READONLY
-    GROUPBOX        "Advanced Memory Settings",-1,13,179,275,57
-    RTEXT           "Motherboard RAM (Low area):",-1,39,194,129,10,SS_CENTERIMAGE
-    CONTROL         "",IDC_MBMEM1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,180,190,59,20
-    EDITTEXT        IDC_MBRAM1,243,193,34,12,ES_CENTER | ES_READONLY
-    RTEXT           "Motherboard RAM (High area):",-1,39,217,129,10,SS_CENTERIMAGE
-    CONTROL         "",IDC_MBMEM2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,180,213,59,20
-    EDITTEXT        IDC_MBRAM2,243,216,34,12,ES_CENTER | ES_READONLY
-    GROUPBOX        "RTG Graphics Card Settings",-1,14,81,275,95
-    CONTROL         "Scale if smaller than display size setting",IDC_RTG_SCALE,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,128,162,10
-    CONTROL         "Match host and RTG color depth if possible",IDC_RTG_MATCH_DEPTH,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,116,163,10
-    COMBOBOX        IDC_RTG_8BIT,211,91,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_RTG_16BIT,211,106,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_RTG_24BIT,211,121,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_RTG_32BIT,211,136,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "Always scale in windowed mode",IDC_RTG_SCALE_ALLOW,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,140,162,10
-    COMBOBOX        IDC_RTG_SCALE_ASPECTRATIO,211,155,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    RTEXT           "Aspect ratio:",-1,153,156,52,10,SS_CENTERIMAGE
-    RTEXT           "Refresh rate:",-1,22,157,51,10,SS_CENTERIMAGE
-    COMBOBOX        IDC_RTG_VBLANKRATE,77,155,68,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-END
-
-IDD_CPU DIALOGEX 0, 0, 300, 226
-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,3,81,139,BS_LEFT
-    CONTROL         "68000",IDC_CPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,16,63,10
-    CONTROL         "68010",IDC_CPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,30,65,10
-    CONTROL         "68020",IDC_CPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,44,63,10
-    CONTROL         "68030",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,58,64,10
-    CONTROL         "68040",IDC_CPU4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,72,66,10
-    CONTROL         "68060",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,86,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,10,114,73,8
-    CONTROL         "JIT [] Enable just-in-time CPU emulator. Significantly increases the speed of the CPU emulation. Requires 68020 or higher CPU.",IDC_JITENABLE,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,127,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,46,195,10
-    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,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,63,10
-    CONTROL         "Constant jump",IDC_CONSTJUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,155,63,10
-    CONTROL         "FPU support",IDC_JITFPU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,169,62,10
-    CONTROL         "No flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,168,141,62,10
-    CONTROL         "Direct",IDC_TRUST0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,235,141,52,10
-    CONTROL         "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,235,155,52,10
-    CONTROL         "More compatible [] More compatible but slower FPU emulation.",IDC_COMPATIBLE_FPU,
-                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,210,73,10
-    GROUPBOX        "FPU",IDC_STATIC,6,146,81,80,BS_LEFT
-    CONTROL         "24-bit addressing",IDC_COMPATIBLE24,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,100,73,8
-    CONTROL         "None",IDC_FPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,157,63,10
-    CONTROL         "68881",IDC_FPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,171,63,10
-    CONTROL         "68882",IDC_FPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,185,63,10
-    CONTROL         "CPU internal",IDC_FPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,199,63,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
-    COMBOBOX        IDC_DF0TEXT,2,22,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_DF0TYPE,115,6,57,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
-    COMBOBOX        IDC_DF1TEXT,2,58,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_DF1TYPE,115,42,57,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
-    COMBOBOX        IDC_DF2TEXT,2,93,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_DF2TYPE,115,77,57,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
-    COMBOBOX        IDC_DF3TEXT,2,128,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_DF3TYPE,115,112,57,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,197,51,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Create Standard Disk [] Creates a standard 880 or 1760 KB ADF disk image.",IDC_CREATE,77,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,154,116,20
-    EDITTEXT        IDC_FLOPPYSPDTEXT,183,157,101,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,77,215,97,13,ES_AUTOHSCROLL
-    RTEXT           "Disk label:",IDC_STATIC,15,216,52,10,SS_CENTERIMAGE
-    CONTROL         "DF0:",IDC_DF0ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,6,34,15
-    CONTROL         "DF1:",IDC_DF1ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,41,34,15
-    CONTROL         "DF2:",IDC_DF2ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,76,34,15
-    CONTROL         "DF3:",IDC_DF3ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,111,34,15
-END
-
-IDD_HARDDISK DIALOGEX 0, 0, 300, 237
-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,176
-    PUSHBUTTON      "Add &Directory or Archive...",IDC_NEW_FS,10,179,103,15
-    PUSHBUTTON      "Add &Hardfile...",IDC_NEW_HF,130,179,74,15
-    PUSHBUTTON      "Add Ha&rd Drive...",IDC_NEW_HD,220,179,75,15
-    PUSHBUTTON      "Remove",IDC_REMOVE,235,203,60,15
-    PUSHBUTTON      "&Properties",IDC_EDIT,235,220,60,15
-    CONTROL         "Add PC drives at startup",IDC_MAPDRIVES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,202,100,10
-    CONTROL         "Disable UAEFSDB-support",IDC_NOUAEFSDB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,202,119,10
-    CONTROL         "Don't use Windows Recycle Bin",IDC_NORECYCLEBIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,213,121,10
-    CONTROL         "Include network drives..",IDC_MAPDRIVES_NET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,225,101,10
-    CONTROL         "Include CD/DVD drives..",IDC_MAPDRIVES_CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,213,100,10
-    CONTROL         "Automount removable drives",IDC_MAPDRIVES_AUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,225,115,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,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,132,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,137,81,105,19
-    EDITTEXT        IDC_SOUNDBUFFERMEM,247,84,40,12,ES_CENTER | ES_READONLY
-    GROUPBOX        "Settings",IDC_SOUNDINTERPOLATION2,6,114,290,60
-    LTEXT           "Frequency:",IDC_SOUNDFREQTXT,11,148,53,8,SS_CENTERIMAGE
-    COMBOBOX        IDC_SOUNDFREQ,13,157,51,75,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
-    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           "Channel mode:",IDC_SOUNDSTEREOTXT,11,124,57,8,SS_CENTERIMAGE
-    COMBOBOX        IDC_SOUNDSTEREO,13,133,122,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,209,124,75,8,SS_CENTERIMAGE
-    COMBOBOX        IDC_SOUNDINTERPOLATION,209,133,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    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 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,187,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,61,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,4,161,40,15,SS_CENTERIMAGE
-    EDITTEXT        IDC_EDITNAME,48,162,146,13,ES_AUTOHSCROLL
-    RTEXT           "Description:",IDC_STATIC,2,182,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,207,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,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
-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,15,58,12
-    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,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,15,103,48,12
-    CONTROL         "RTS/CTS",IDC_SER_CTSRTS,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,75,103,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,135,103,65,12
-    CONTROL         "uaeserial.device",IDC_UAESERIAL,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,200,103,78,12
-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,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,63,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         "Synchronize clock",IDC_CLOCKSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,40,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,167,195,68
-    PUSHBUTTON      "Load state...",IDC_DOLOADSTATE,105,180,49,14
-    PUSHBUTTON      "Save state...",IDC_DOSAVESTATE,105,208,49,14
-    CONTROL         "Enable state recording",IDC_STATE_CAPTURE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,182,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,160,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,23,79,117,10
-    CONTROL         "Catweasel",IDC_CATWEASEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,53,115,10
-    CONTROL         "USB mode",IDC_KBLED_USB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,216,64,10
-    COMBOBOX        IDC_SCSIMODE,92,51,64,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,113,285,25
-    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,66,119,10
-    CONTROL         "uaenet.device",IDC_SANA2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,79,94,10
-    COMBOBOX        IDC_DD_SURFACETYPE,217,93,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    RTEXT           "Display buffer:",IDC_STATIC,159,94,52,10,SS_CENTERIMAGE
-END
-
-IDD_HARDFILE DIALOGEX 0, 0, 299, 249
-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,146
-    RTEXT           "Path:",IDC_HARDFILE_DIR_TEXT,25,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,13,38,34,10
-    EDITTEXT        IDC_PATH_FILESYS,52,35,213,15,ES_AUTOHSCROLL
-    PUSHBUTTON      "...",IDC_FILESYS_SELECTOR,271,35,11,15
-    RTEXT           "Device:",IDC_HARDFILE_DEVICE_TEXT,16,58,31,10
-    EDITTEXT        IDC_HARDFILE_DEVICE,52,55,66,15,ES_AUTOHSCROLL
-    RTEXT           "Boot priority:",IDC_HARDFILE_BOOTPRI_TEXT,20,94,48,8
-    EDITTEXT        IDC_HARDFILE_BOOTPRI,73,90,44,15
-    CONTROL         "Read/write",IDC_HDF_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,53,74,64,10
-    PUSHBUTTON      "Enable RDB mode",IDC_HDF_RDB,174,55,92,14
-    RTEXT           "Surfaces:",IDC_SURFACES_TEXT,118,94,32,10
-    EDITTEXT        IDC_HEADS,155,90,40,15,ES_NUMBER
-    RTEXT           "Reserved:",IDC_RESERVED_TEXT,197,94,35,10
-    EDITTEXT        IDC_RESERVED,237,90,40,15,ES_NUMBER
-    RTEXT           "Sectors:",IDC_SECTORS_TEXT,120,113,30,10
-    EDITTEXT        IDC_SECTORS,155,111,40,15,ES_NUMBER
-    RTEXT           "Block size:",IDC_BLOCKSIZE_TEXT,197,113,35,10
-    EDITTEXT        IDC_BLOCKSIZE,237,111,40,15,ES_NUMBER
-    GROUPBOX        "New hard disk image file",IDC_STATIC,10,156,280,62
-    PUSHBUTTON      "Create",IDC_HF_CREATE,23,171,80,14
-    EDITTEXT        IDC_HF_SIZE,119,171,61,15,ES_NUMBER
-    PUSHBUTTON      "OK",IDOK,102,226,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,158,226,50,14
-    EDITTEXT        IDC_HF_DOSTYPE,119,194,61,15
-    COMBOBOX        IDC_HF_TYPE,23,195,80,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_HDF_CONTROLLER,73,112,44,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    RTEXT           "DOS type",IDC_STATIC,187,196,32,10,SS_CENTERIMAGE
-    RTEXT           "MB",IDC_STATIC,185,174,17,10,SS_CENTERIMAGE
-    RTEXT           "HD Controller:",IDC_STATIC,16,113,52,10,SS_CENTERIMAGE
-    CONTROL         "Bootable",IDC_HDF_AUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,136,74,53,10
-    CONTROL         "Do not mount",IDC_HDF_DONOTMOUNT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,217,74,67,10
-    EDITTEXT        IDC_HDFINFO,16,131,268,12,ES_CENTER | ES_READONLY
-    CONTROL         "Sparse file",IDC_HF_SPARSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,220,174,62,10
-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,11,7,54,10
-    EDITTEXT        IDC_VOLUME_DEVICE,65,5,104,15,ES_AUTOHSCROLL
-    LTEXT           "Volume label:",-1,13,28,54,10
-    EDITTEXT        IDC_VOLUME_NAME,65,25,104,15,ES_AUTOHSCROLL
-    LTEXT           "Path:",-1,38,49,44,10
-    EDITTEXT        IDC_PATH_NAME,65,46,227,15,ES_AUTOHSCROLL
-    PUSHBUTTON      "Select Directory",IDC_FS_SELECT_DIR,65,66,103,15
-    CONTROL         "Read/write",IDC_FS_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,174,7,55,10
-    RTEXT           "Boot priority:",IDC_VOLUME_BOOTPRI_TEXT,178,28,49,8
-    EDITTEXT        IDC_VOLUME_BOOTPRI,236,25,30,15
-    PUSHBUTTON      "OK",IDOK,65,91,48,15
-    PUSHBUTTON      "Cancel",IDCANCEL,120,91,48,15
-    PUSHBUTTON      "Select Archive or Plain File",IDC_FS_SELECT_FILE,190,66,103,15
-    PUSHBUTTON      "Eject",IDC_FS_SELECT_EJECT,230,91,62,15
-    CONTROL         "Bootable",IDC_FS_AUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,236,7,53,10
-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). CDTV and later A500 and A2000 hardware revisions.",IDC_ECS_AGNUS,
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,42,55,10
-    CONTROL         "ECS Denise [] Enhanced chipset (ECS Denise chip only). Normally paired with ECS Agnus.",IDC_ECS_DENISE,
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,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,100,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,179,33,96,10
-    CONTROL         "Cycle-exact [] The most compatible A500 emulation mode. Very fast PC recommended.",IDC_CYCLEEXACT,
-                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,179,46,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,37,121,59,10
-    CONTROL         "Sprites only [] Emulate only sprite vs. sprite collisions.",IDC_COLLISION1,
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,137,62,10
-    CONTROL         "Sprites and Sprites vs. Playfield [] Recommended collision emulation level.",IDC_COLLISION2,
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,121,161,10
-    CONTROL         "Full [] 100% collision hardware emulation. Only very few games need this option. Slowest.",IDC_COLLISION3,
-                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,137,119,10
-    GROUPBOX        "Sound Emulation",IDC_STATIC,13,159,268,65
-    CONTROL         "Disabled",IDC_CS_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,37,175,102,10
-    CONTROL         "Emulated",IDC_CS_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,190,91,10
-    CONTROL         "Emulated, 100% accurate",IDC_CS_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,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,179,59,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,179,72,100,10
-    COMBOBOX        IDC_CS_EXT,100,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        "Battery Backed Up Real Time Clock",IDC_STATIC,11,24,275,29
-    CONTROL         "None",IDC_CS_RTC1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,36,55,10
-    CONTROL         "MSM6242B",IDC_CS_RTC2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,90,36,52,10
-    CONTROL         "RF5C01A",IDC_CS_RTC3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,159,36,46,10
-    EDITTEXT        IDC_CS_RTCADJUST,215,34,64,13,ES_AUTOHSCROLL
-    GROUPBOX        "CIA-A TOD Clock Source",IDC_STATIC,11,56,275,29
-    CONTROL         "Vertical Sync",IDC_CS_CIAA_TOD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,68,63,10
-    CONTROL         "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,90,68,85,10
-    CONTROL         "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,186,68,88,10
-    CONTROL         "ROM Mirror (A8)",IDC_CS_KSMIRROR_A8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,146,80,10
-    CONTROL         "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,95,88,10
-    CONTROL         "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,108,76,10
-    CONTROL         "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,108,87,10
-    CONTROL         "CD32 NVRAM",IDC_CS_CD32NVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,108,84,10
-    CONTROL         "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,121,47,10
-    CONTROL         "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,120,87,10
-    CONTROL         "CDTV SRAM Expansion",IDC_CS_CDTVRAMEXP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,120,90,10
-    CONTROL         "A600/A1200 IDE",IDC_CS_IDE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,133,79,10
-    CONTROL         "A4000/A4000T IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,133,88,10
-    CONTROL         "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,216,71,10
-    EDITTEXT        IDC_CS_RAMSEYREV,91,214,45,13,ES_AUTOHSCROLL
-    CONTROL         "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,229,71,10
-    EDITTEXT        IDC_CS_FATGARYREV,91,228,45,13,ES_AUTOHSCROLL
-    CONTROL         "A3000 SCSI",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,188,76,10
-    CONTROL         "Compatible Settings",IDC_CS_COMPATIBLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,8,234,10
-    CONTROL         "DF0: ID Hardware",IDC_CS_DF0IDHW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,95,92,10
-    CONTROL         "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,216,81,10
-    EDITTEXT        IDC_CS_AGNUSREV,232,214,45,13,ES_AUTOHSCROLL
-    CONTROL         "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,229,81,10
-    EDITTEXT        IDC_CS_DENISEREV,232,228,45,13,ES_AUTOHSCROLL
-    CONTROL         "A590/A2091 SCSI",IDC_CS_A2091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,188,76,10
-    CONTROL         "A4000T SCSI",IDC_CS_DMAC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,188,88,10
-    LTEXT           "A4091/A4000T SCSI not yet implemented.",IDC_STATIC,22,174,224,8,SS_CENTERIMAGE
-    CONTROL         "PCMCIA",IDC_CS_PCMCIA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,133,92,10
-    CONTROL         "A4091 SCSI",IDC_CS_A4091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,200,76,10
-    CONTROL         "CDTV SCSI",IDC_CS_CDTVSCSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,200,76,10
-    CONTROL         "Include host SCSI devices",IDC_CS_SCSIMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,200,101,10
-    CONTROL         "C00000 is Fast RAM",IDC_CS_SLOWISFAST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,146,92,10
-    CONTROL         "ROM Mirror (E0)",IDC_CS_KSMIRROR_E0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,146,80,10
-    CONTROL         "CIA ROM Overlay",IDC_CS_CIAOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,95,80,10
-    CONTROL         "KB Reset Warning",IDC_CS_RESETWARNING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,159,80,10
-    CONTROL         "No-EHB Denise",IDC_CS_NOEHB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,159,80,10
-    CONTROL         "Blitter Busy Bug",IDC_CS_BLITTERBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,159,80,10
-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,0,274,126
-    EDITTEXT        IDC_AVIOUTPUT_FILETEXT,15,15,226,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_CLIENTEDGE
-    PUSHBUTTON      "...",IDC_AVIOUTPUT_FILE,249,15,19,12
-    CONTROL         "Audio",IDC_AVIOUTPUT_AUDIO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,33,39,14
-    CONTROL         "",IDC_AVIOUTPUT_AUDIO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,34,209,13
-    CONTROL         "Video",IDC_AVIOUTPUT_VIDEO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,50,39,14
-    CONTROL         "",IDC_AVIOUTPUT_VIDEO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,51,209,13
-    CONTROL         "Disable frame rate limit while recording",IDC_AVIOUTPUT_FRAMELIMITER,
-                    "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,131,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,166,84,87,11
-    LTEXT           "fps",IDC_AVIOUTPUT_FPS_STATIC,255,84,19,8
-    PUSHBUTTON      "Save screenshot",IDC_SCREENSHOT,16,141,77,14
-    GROUPBOX        "Ripper",IDC_STATIC,5,127,274,38
-    PUSHBUTTON      "Pro Wizard 1.62",IDC_PROWIZARD,104,141,77,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,192,178,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,148,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,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
-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,9,16,40,11
-    COMBOBOX        IDC_FILTERMODE,53,15,83,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_FILTERFILTER,142,15,74,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Reset to defaults",IDC_FILTERDEFAULT,221,15,67,14
-    RTEXT           "Horiz. size:",-1,7,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,39,34,12,ES_CENTER | ES_READONLY
-    RTEXT           "Vert. size:",-1,7,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           "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           "Vert. position:",-1,5,103,55,10,SS_CENTERIMAGE
-    CONTROL         "Slider1",IDC_FILTERVO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,97,151,19
-    EDITTEXT        IDC_FILTERVOV,253,99,34,12,ES_CENTER | ES_READONLY
-    RTEXT           "Extra settings:",-1,27,137,57,10,SS_CENTERIMAGE
-    CONTROL         "Slider1",IDC_FILTERXL,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,157,151,19
-    EDITTEXT        IDC_FILTERXLV,253,159,34,12,ES_CENTER | ES_READONLY
-    COMBOBOX        IDC_FILTERSLR,253,134,33,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    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,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,9,168,83,10
-    COMBOBOX        IDC_FILTERXTRA,105,134,138,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_FILTERASPECT,21,118,73,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "Keep aspect ratio",IDC_FILTERKEEPASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,153,85,10
-END
-
-IDD_HARDDRIVE DIALOGEX 0, 0, 380, 76
-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:",IDC_STATIC,7,11,80,10
-    COMBOBOX        IDC_HARDDRIVE,49,9,325,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "Read/write",IDC_HDF_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,51,55,10
-    DEFPUSHBUTTON   "Add hard drive",IDOK,231,48,65,14
-    PUSHBUTTON      "Cancel",IDCANCEL,319,48,54,14
-    DEFPUSHBUTTON   "Create hard disk image file",IDC_HARDDRIVE_IMAGE,49,30,115,14
-    EDITTEXT        IDC_PATH_NAME,183,27,97,15,ES_AUTOHSCROLL | NOT WS_VISIBLE
-    COMBOBOX        IDC_HDF_CONTROLLER,102,50,41,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    RTEXT           "HD Controller:",IDC_STATIC,42,51,52,10,SS_CENTERIMAGE
-END
-
-IDD_MISC2 DIALOGEX 0, 0, 300, 244
-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,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,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",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,51,10,SS_CENTERIMAGE | WS_TABSTOP
-    COMBOBOX        IDC_MINIMIZED_PRIORITY,207,29,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",IDC_MINIMIZED_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,63,79,10
-    CONTROL         "",IDC_ASSOCIATELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,19,94,164,100
-    GROUPBOX        "File Extension Associations",IDC_STATIC,8,83,186,138
-    PUSHBUTTON      "Deassociate all",IDC_ASSOCIATE_OFF,108,200,75,14
-    PUSHBUTTON      "Associate all",IDC_ASSOCIATE_ON,19,200,75,14
-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,156,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,41,223,101,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_HSCROLL | 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
-    PUSHBUTTON      "Restart",IDC_RESTARTEMU,109,259,47,14,NOT WS_VISIBLE
-END
-
-IDD_PATHS DIALOGEX 0, 0, 300, 243
-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,4,260,8,SS_CENTERIMAGE
-    EDITTEXT        IDC_PATHS_ROM,14,16,261,15,ES_AUTOHSCROLL
-    PUSHBUTTON      "...",IDC_PATHS_ROMS,281,16,11,15
-    LTEXT           "Configuration files:",IDC_PATHS_CONFIGL,14,34,121,8,SS_CENTERIMAGE
-    EDITTEXT        IDC_PATHS_CONFIG,14,45,261,15,ES_AUTOHSCROLL
-    PUSHBUTTON      "...",IDC_PATHS_CONFIGS,281,45,11,15
-    LTEXT           "Screenshots:",IDC_PATHS_SCREENSHOTL,14,63,260,8,SS_CENTERIMAGE
-    EDITTEXT        IDC_PATHS_SCREENSHOT,14,74,261,15,ES_AUTOHSCROLL
-    PUSHBUTTON      "...",IDC_PATHS_SCREENSHOTS,281,74,11,15
-    LTEXT           "State files:",IDC_PATHS_STATEFILEL,14,92,260,8,SS_CENTERIMAGE
-    EDITTEXT        IDC_PATHS_SAVESTATE,14,104,261,15,ES_AUTOHSCROLL
-    PUSHBUTTON      "...",IDC_PATHS_SAVESTATES,281,104,11,15
-    LTEXT           "Videos:",IDC_PATHS_AVIOUTPUTL,14,122,260,8,SS_CENTERIMAGE
-    EDITTEXT        IDC_PATHS_AVIOUTPUT,14,134,261,15,ES_AUTOHSCROLL
-    PUSHBUTTON      "...",IDC_PATHS_AVIOUTPUTS,281,134,11,15
-    LTEXT           "Saveimages:",IDC_PATHS_SAVEIMAGEL,14,152,261,8,SS_CENTERIMAGE
-    EDITTEXT        IDC_PATHS_SAVEIMAGE,14,163,261,15,ES_AUTOHSCROLL
-    PUSHBUTTON      "...",IDC_PATHS_SAVEIMAGES,281,163,11,15
-    PUSHBUTTON      "Reset to defaults",IDC_PATHS_DEFAULT,14,184,92,14
-    PUSHBUTTON      "Rescan ROMs",IDC_ROM_RESCAN,14,200,92,14
-    PUSHBUTTON      "Clear registry",IDC_RESETREGISTRY,111,200,92,14
-    COMBOBOX        IDC_PATHS_DEFAULTTYPE,112,184,163,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Clear disk history",IDC_RESETDISKHISTORY,14,216,92,14
-    CONTROL         "Cache Configuration files",IDC_PATHS_CONFIGCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,177,34,117,10
-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,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,95,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
-    CONTROL         "Floppy drive DF0:",IDC_DF0QENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,10,136,72,15
-    PUSHBUTTON      "Select disk image",IDC_DF0QQ,85,136,98,15
-    RTEXT           "Write-protected",IDC_STATIC,185,139,56,10,SS_CENTERIMAGE
-    CONTROL         "",IDC_DF0WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,246,137,10,15
-    PUSHBUTTON      "Eject",IDC_EJECT0Q,261,136,30,15
-    COMBOBOX        IDC_DF0TEXTQ,9,154,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "Floppy drive DF1:",IDC_DF1QENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,172,71,15
-    PUSHBUTTON      "Select disk image",IDC_DF1QQ,85,172,98,15
-    RTEXT           "Write-protected",IDC_STATIC,185,175,55,10,SS_CENTERIMAGE
-    CONTROL         "",IDC_DF1WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,246,173,10,15
-    PUSHBUTTON      "Eject",IDC_EJECT1Q,261,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,197,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",PBS_SMOOTH | WS_BORDER,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
-END
-
-IDD_DEBUGGER DIALOGEX 0, 0, 454, 368
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
-EXSTYLE WS_EX_CONTROLPARENT
-CAPTION "WinUAE Debugger"
-FONT 8, "Courier New", 0, 0, 0x0
-BEGIN
-    EDITTEXT        IDC_DBG_OUTPUT1,1,255,370,86,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT WS_TABSTOP
-    EDITTEXT        IDC_DBG_OUTPUT2,1,79,370,262,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT WS_TABSTOP
-    LISTBOX         IDC_DBG_MEM,1,92,370,249,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
-    LISTBOX         IDC_DBG_DASM,1,92,370,249,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
-    EDITTEXT        IDC_DBG_MEMINPUT,1,79,36,12,ES_AUTOHSCROLL | ES_WANTRETURN
-    EDITTEXT        IDC_DBG_INPUT,1,342,354,12,ES_AUTOHSCROLL | ES_WANTRETURN
-    PUSHBUTTON      "?",IDC_DBG_HELP,356,342,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_MMISC,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,218,81,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
-    LISTBOX         IDC_DBG_FPSR,372,285,81,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
-    LISTBOX         IDC_DBG_MISCCPU,372,320,81,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
-    CONTROL         "",IDC_DBG_STATUS,"msctls_statusbar32",0x103,0,355,453,12
-    LISTBOX         IDC_DBG_BRKPTS,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL
-    LISTBOX         IDC_DBG_MCUSTOM,372,79,81,138,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
-    LISTBOX         IDC_DBG_MISC,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL
-    LISTBOX         IDC_DBG_CUSTOM,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL
-    CONTROL         "Auto set",IDC_DBG_AUTOSET,"Button",BS_AUTOCHECKBOX,84,79,50,12
-    LISTBOX         IDC_DBG_DASM2,1,79,370,87,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
-    LISTBOX         IDC_DBG_MEM2,1,167,370,87,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
-END
-
-IDD_DBGMEMINPUT DIALOGEX 0, 0, 150, 58
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Enter address..."
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
-    DEFPUSHBUTTON   "OK",IDOK,15,39,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,75,39,50,14
-    EDITTEXT        IDC_DBG_MEMINPUT2,20,12,100,14,ES_AUTOHSCROLL | ES_WANTRETURN
-    CTEXT           "Enter address",IDC_DBG_ADDRINPUTTXT,20,1,100,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,5,3,0
- PRODUCTVERSION 1,5,3,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.5.3"
-            VALUE "InternalName", "WinUAE"
-            VALUE "LegalCopyright", "© 1996-2008 under the GNU Public License (GPL)"
-            VALUE "OriginalFilename", "WinUAE.exe"
-            VALUE "ProductName", "WinUAE"
-            VALUE "ProductVersion", "1.5.3"
-        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
-
-IDM_DBGCONTEXTMENU MENU 
-BEGIN
-    POPUP "Inactive"
-    BEGIN
-        POPUP "Copy"
-        BEGIN
-            MENUITEM "Copy line",                   ID_DBG_COPYLBLINE
-            MENUITEM "Copy all",                    ID_DBG_COPYLB
-        END
-    END
-    POPUP "Memory"
-    BEGIN
-        POPUP "Copy"
-        BEGIN
-            MENUITEM "Copy line",                   ID_DBG_COPYLBLINE
-            MENUITEM "Copy all",                    ID_DBG_COPYLB
-        END
-        POPUP "Set top address"
-        BEGIN
-            MENUITEM "Set to A0",                   ID_DBG_SETTOA0
-            MENUITEM "Set to A1",                   ID_DBG_SETTOA1
-            MENUITEM "Set to A2",                   ID_DBG_SETTOA2
-            MENUITEM "Set to A3",                   ID_DBG_SETTOA3
-            MENUITEM "Set to A4",                   ID_DBG_SETTOA4
-            MENUITEM "Set to A5",                   ID_DBG_SETTOA5
-            MENUITEM "Set to A6",                   ID_DBG_SETTOA6
-            MENUITEM "Set to A7",                   ID_DBG_SETTOA7
-            MENUITEM "Enter address",               ID_DBG_ENTERADDR
-        END
-    END
-    POPUP "Disassembly"
-    BEGIN
-        POPUP "Copy"
-        BEGIN
-            MENUITEM "Copy line",                   ID_DBG_COPYLBLINE
-            MENUITEM "Copy all",                    ID_DBG_COPYLB
-        END
-        POPUP "Breakpoints"
-        BEGIN
-            MENUITEM "Toggle breakpoint",           ID_DBG_TOGGLEBP
-            MENUITEM "Clear all breakpoints",       ID_DBG_DELETEBPS
-        END
-        POPUP "Set top address"
-        BEGIN
-            MENUITEM "Set to PC",                   ID_DBG_SETTOPC
-            MENUITEM "Enter address",               ID_DBG_ENTERADDR
-        END
-    END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// WAVE
-//
-
-IDR_DRIVE_STARTUP_A500_1 WAVE                    "drive_startup.wav"
-IDR_DRIVE_CLICK_A500_1  WAVE                    "drive_click.wav"
-IDR_DRIVE_SPIN_A500_1   WAVE                    "drive_spin.wav"
-IDR_DRIVE_SNATCH_A500_1 WAVE                    "drive_snatch.wav"
-IDR_DRIVE_SPINND_A500_1 WAVE                    "drive_spinnd.wav"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_XARCADE             BITMAP                  "xarcade-winuae.bmp"
-IDB_LCD160X43           BITMAP                  "lcd.bmp"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// 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 & IO ports"
-    IDS_MISC1               "Miscellaneous"
-    IDS_MEMORY              "RAM"
-    IDS_CPU                 "CPU and FPU"
-    IDS_CHIPSET             "Chipset"
-    IDS_INPUT               "Input"
-    IDS_FILTER              "Filter"
-END
-
-STRINGTABLE 
-BEGIN
-    IDS_MISC2               "Pri. & Extensions"
-    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.\nKarsten Bock, Gavin Fance, Dirk Trowe, Christoph Meier and Christian Schindler - Freezer cartridge hardware support."
-    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) should be updated.\nA newer version is included in the ""Amiga Programs"" directory\n of the WinUAE distribution archive.\n\nNewer library version fixes graphics problems and increases performance."
-    IDS_DEFAULT_AF2005      "Amiga Forever 2005+"
-    IDS_DEFAULT_AF          "Amiga Forever"
-    IDS_DEFAULT_WINUAE      "WinUAE default (old)"
-END
-
-STRINGTABLE 
-BEGIN
-    IDS_SOUND_STEREO2       "Cloned Stereo (4 Channels)"
-    IDS_INPUT_CUSTOMEVENT   "<Custom event>"
-    IDS_DEFAULT_NEWWINUAE   "WinUAE default (new)"
-    IDS_SOUND_CLONED51      "Cloned Stereo (5.1)"
-    IDS_SOUND_51            "5.1 Channels"
-    IDS_AUTOMATIC           "Automatic"
-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_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_SCREEN_WINDOWED     "Windowed"
-    IDS_SCREEN_FULLSCREEN   "Fullscreen"
-    IDS_SCREEN_FULLWINDOW   "Full-window"
-    IDS_SCREEN_VSYNC        "VSync"
-    IDS_SOUND_MONO          "Mono"
-    IDS_SOUND_MIXED         "Mixed"
-    IDS_SOUND_STEREO        "Stereo"
-    IDS_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 unsupported color depth."
-    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\nStart address %08.8X, Size %d bytes\nWould you like to save it?"
-    IDS_NUMSG_KS68020       "The selected system ROM requires a 68020 with 32-bit addressing or 68030 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: Current configuration is not fully compatible with state saves.\nThis 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_HARDDRIVESAFETYWARNING1 
-                            "Warning: The drive safety check is active. Selected drive is not empty and non-RDB partitioned."
-    IDS_NUMSG_KS68EC020     "The selected system ROM requires a 68020 with 24-bit addressing 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."
-    IDS_NUMSG_KS68030       "The selected system ROM requires a 68030 CPU."
-    IDS_NUMSG_EXPROMNEED    "One of the following expansion boot ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."
-    IDS_HARDDRIVESAFETYWARNING2 
-                            "Warning: The drive safety check has been disabled, and non-empty and non-RDB partitioned hard disk(s) were detected."
-    IDS_SB_FAVORITENAME     "Enter name..."
-    IDS_SB_CUSTOMEVENT      "Enter custom event string.."
-END
-
-STRINGTABLE 
-BEGIN
-    IDS_QS_MODELS           "A500\nA500+\nA600\nA1000\nA1200\nA3000\nA4000\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\n""ICS"" Denise without EHB support\nVery first A1000 models had Denise without EHB capability.\n256 KB Chip RAM\n Unexpanded 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.\nCD32 + MPEG Full Motion Video Cartridge (not emulated yet)\n"
-    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."
-    IDS_QS_MODEL_A3000      "1.4 ROM, 2MB Chip + 8MB Fast\n\n2.04 ROM, 2MB Chip + 8MB Fast\n\n3.1 ROM, 2MB Chip + 8MB Fast\n"
-    IDS_QS_MODEL_A4000      "68030, 3.1 ROM, 2MB Chip + 8MB Fast\n\n68040, 3.1 ROM, 2MB Chip + 8MB Fast\n"
-    IDS_QS_MODEL_A4000T     "A4000T (test)\nA4000T"
-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
-
-2 TEXTINCLUDE 
-BEGIN
-    "#include ""afxres.h""\r\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-#endif    // Finnish resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-/////////////////////////////////////////////////////////////////////////////
-#endif    // not APSTUDIO_INVOKED
-
+// 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
+// Accelerator\r
+//\r
+\r
+IDR_DBGACCEL ACCELERATORS \r
+BEGIN\r
+    VK_F1,          ID_DBG_PAGE1,           VIRTKEY, NOINVERT\r
+    VK_F2,          ID_DBG_PAGE2,           VIRTKEY, NOINVERT\r
+    VK_F3,          ID_DBG_PAGE3,           VIRTKEY, NOINVERT\r
+    VK_F4,          ID_DBG_PAGE4,           VIRTKEY, NOINVERT\r
+    VK_F5,          ID_DBG_PAGE5,           VIRTKEY, NOINVERT\r
+    VK_F6,          ID_DBG_PAGE6,           VIRTKEY, NOINVERT\r
+    VK_F7,          ID_DBG_PAGE7,           VIRTKEY, NOINVERT\r
+    VK_F8,          ID_DBG_PAGE8,           VIRTKEY, NOINVERT\r
+    VK_F9,          ID_DBG_PAGE9,           VIRTKEY, NOINVERT\r
+    VK_F11,         ID_DBG_STEP_OVER,       VIRTKEY, NOINVERT\r
+    VK_F12,         ID_DBG_STEP_INTO,       VIRTKEY, NOINVERT\r
+    VK_DOWN,        IDC_DBG_MEMDOWN,        VIRTKEY, ALT, NOINVERT\r
+    VK_RIGHT,       IDC_DBG_MEMDOWNFAST,    VIRTKEY, ALT, NOINVERT\r
+    VK_UP,          IDC_DBG_MEMUP,          VIRTKEY, ALT, NOINVERT\r
+    VK_LEFT,        IDC_DBG_MEMUPFAST,      VIRTKEY, ALT, NOINVERT\r
+    "H",            IDC_DBG_HELP,           VIRTKEY, ALT, NOINVERT\r
+    "P",            IDC_DBG_MEMTOPC,        VIRTKEY, ALT, NOINVERT\r
+    "A",            IDC_DBG_AUTOSET,        VIRTKEY, ALT, NOINVERT\r
+END\r
+\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,93\r
+    RTEXT           "Main ROM file:",IDC_ROMTEXT,10,13,75,10\r
+    COMBOBOX        IDC_ROMFILE,12,26,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    PUSHBUTTON      "...",IDC_KICKCHOOSER,280,25,10,15\r
+    RTEXT           "Extended ROM file:",IDC_ROMFILE2TEXT,10,43,75,10\r
+    COMBOBOX        IDC_ROMFILE2,12,56,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    PUSHBUTTON      "...",IDC_ROMCHOOSER2,280,55,10,15\r
+    CONTROL         "MapROM emulation [] Creates a BlizKick-compatible memory area.",IDC_MAPROM,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,77,87,10\r
+    CONTROL         "ShapeShifter support [] Patches the system ROM for ShapeShifter compatibility.",IDC_KICKSHIFTER,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,77,87,10\r
+    GROUPBOX        "Miscellaneous",-1,5,99,290,75\r
+    RTEXT           "Cartridge ROM file:",IDC_FLASHTEXT2,8,110,75,10\r
+    COMBOBOX        IDC_CARTFILE,12,123,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+    PUSHBUTTON      "...",IDC_CARTCHOOSER,280,122,10,15\r
+    RTEXT           "Flash RAM file:",IDC_FLASHTEXT,8,142,75,10\r
+    EDITTEXT        IDC_FLASHFILE,12,155,262,13,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_FLASHCHOOSER,280,154,10,15\r
+END\r
+\r
+IDD_DISPLAY DIALOGEX 0, 0, 300, 235\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,270,67,BS_LEFT\r
+    RTEXT           "Full screen:",IDC_SELECTRESTEXT,15,17,40,15,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_DISPLAYSELECT,59,10,215,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_RESOLUTION,59,27,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_REFRESHRATE,187,27,87,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    EDITTEXT        IDC_XSIZE,59,48,48,12,ES_NUMBER\r
+    EDITTEXT        IDC_YSIZE,114,48,47,12,ES_NUMBER\r
+    GROUPBOX        "Settings",IDC_SETTINGSTEXT,12,73,199,125\r
+    CONTROL         "Correct aspect ratio",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,19,126,92,10\r
+    LTEXT           "Refresh:",IDC_REFRESHTEXT,18,162,28,8\r
+    CONTROL         "Slider1",IDC_FRAMERATE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,157,75,20\r
+    EDITTEXT        IDC_RATETEXT,124,161,77,12,ES_CENTER | ES_READONLY\r
+    GROUPBOX        "Centering",IDC_STATIC,221,73,61,49\r
+    CONTROL         "Horizontal",IDC_XCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,87,49,10\r
+    CONTROL         "Vertical",IDC_YCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,103,49,10\r
+    GROUPBOX        "Line Mode",IDC_LINEMODE,222,126,61,73\r
+    CONTROL         "Normal",IDC_LM_NORMAL,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,231,142,44,10\r
+    CONTROL         "Double",IDC_LM_DOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,158,45,10\r
+    CONTROL         "Scanlines",IDC_LM_SCANLINES,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,174,46,10\r
+    COMBOBOX        IDC_DA_MODE,20,211,58,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,84,207,101,20\r
+    LTEXT           "FPS adj.:",IDC_REFRESH2TEXT,16,182,32,8\r
+    CONTROL         "",IDC_FRAMERATE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,177,127,20\r
+    EDITTEXT        IDC_RATE2TEXT,175,181,26,12,ES_CENTER | ES_READONLY\r
+    COMBOBOX        IDC_RESOLUTIONDEPTH,134,27,46,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Filtered low resolution",IDC_LORES_SMOOTHED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,126,89,10\r
+    COMBOBOX        IDC_SCREENMODE_NATIVE,100,85,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_SCREENMODE_RTG,100,103,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    RTEXT           "Native mode:",IDC_STATIC,19,85,59,15,SS_CENTERIMAGE\r
+    RTEXT           "Windowed:",IDC_WINDOWEDTEXT,15,51,40,8\r
+    RTEXT           "RTG mode:",IDC_STATIC,19,101,59,15,SS_CENTERIMAGE\r
+    PUSHBUTTON      "Reset to defaults",IDC_DA_RESET,212,211,73,14\r
+    RTEXT           "Resolution:",IDC_STATIC,27,140,59,15,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_LORES,100,140,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+END\r
+\r
+IDD_MEMORY DIALOGEX 0, 0, 300, 239\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,69\r
+    RTEXT           "Chip:",-1,24,26,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,25,34,12,ES_CENTER | ES_READONLY\r
+    RTEXT           "Slow:",-1,149,26,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,34,12,ES_CENTER | ES_READONLY\r
+    RTEXT           "Fast:",IDC_FASTTEXT,24,51,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,34,12,ES_CENTER | ES_READONLY\r
+    RTEXT           "Z3 Fast:",IDC_Z3TEXT,139,51,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,50,34,12,ES_CENTER | ES_READONLY\r
+    RTEXT           "Memory: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,25,98,53,10,SS_NOTIFY | SS_CENTERIMAGE\r
+    CONTROL         "Slider1",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,94,60,20\r
+    EDITTEXT        IDC_P96RAM,152,97,34,12,ES_CENTER | ES_READONLY\r
+    GROUPBOX        "Advanced Memory Settings",-1,13,179,275,57\r
+    RTEXT           "Motherboard RAM (Low area):",-1,39,194,129,10,SS_CENTERIMAGE\r
+    CONTROL         "",IDC_MBMEM1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,180,190,59,20\r
+    EDITTEXT        IDC_MBRAM1,243,193,34,12,ES_CENTER | ES_READONLY\r
+    RTEXT           "Motherboard RAM (High area):",-1,39,217,129,10,SS_CENTERIMAGE\r
+    CONTROL         "",IDC_MBMEM2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,180,213,59,20\r
+    EDITTEXT        IDC_MBRAM2,243,216,34,12,ES_CENTER | ES_READONLY\r
+    GROUPBOX        "RTG Graphics Card Settings",-1,14,81,275,95\r
+    CONTROL         "Scale if smaller than display size setting",IDC_RTG_SCALE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,128,162,10\r
+    CONTROL         "Match host and RTG color depth if possible",IDC_RTG_MATCH_DEPTH,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,116,163,10\r
+    COMBOBOX        IDC_RTG_8BIT,211,91,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_RTG_16BIT,211,106,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_RTG_24BIT,211,121,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_RTG_32BIT,211,136,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Always scale in windowed mode",IDC_RTG_SCALE_ALLOW,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,140,162,10\r
+    COMBOBOX        IDC_RTG_SCALE_ASPECTRATIO,211,155,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    RTEXT           "Aspect ratio:",-1,153,156,52,10,SS_CENTERIMAGE\r
+    RTEXT           "Refresh rate:",-1,22,157,51,10,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_RTG_VBLANKRATE,77,155,68,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+END\r
+\r
+IDD_CPU DIALOGEX 0, 0, 300, 226\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,3,81,139,BS_LEFT\r
+    CONTROL         "68000",IDC_CPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,16,63,10\r
+    CONTROL         "68010",IDC_CPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,30,65,10\r
+    CONTROL         "68020",IDC_CPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,44,63,10\r
+    CONTROL         "68030",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,58,64,10\r
+    CONTROL         "68040",IDC_CPU4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,72,66,10\r
+    CONTROL         "68060",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,86,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,10,114,73,8\r
+    CONTROL         "JIT [] Enable just-in-time CPU emulator. Significantly increases the speed of the CPU emulation. Requires 68020 or higher CPU.",IDC_JITENABLE,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,127,73,10\r
+    GROUPBOX        "CPU Emulation Speed",IDC_STATIC,90,3,205,90\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,46,195,10\r
+    RTEXT           "CPU",IDC_CS_CPU_TEXT,96,73,15,10,SS_CENTERIMAGE | WS_TABSTOP\r
+    CONTROL         "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,114,68,67,20\r
+    LTEXT           "Chipset",IDC_CS_CHIPSET_TEXT,182,73,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,68,69,20\r
+    GROUPBOX        "Advanced JIT Settings",IDC_STATIC,90,94,205,93\r
+    RTEXT           "Cache size:",IDC_CS_CACHE_TEXT,95,113,45,10,SS_CENTERIMAGE | WS_TABSTOP\r
+    CONTROL         "Slider1",IDC_CACHE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,140,108,115,20\r
+    EDITTEXT        IDC_CACHETEXT,255,113,30,12,ES_CENTER | ES_READONLY\r
+    CONTROL         "Hard flush",IDC_HARDFLUSH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,141,63,10\r
+    CONTROL         "Constant jump",IDC_CONSTJUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,155,63,10\r
+    CONTROL         "FPU support",IDC_JITFPU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,169,62,10\r
+    CONTROL         "No flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,168,141,62,10\r
+    CONTROL         "Direct",IDC_TRUST0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,235,141,52,10\r
+    CONTROL         "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,235,155,52,10\r
+    CONTROL         "More compatible [] More compatible but slower FPU emulation.",IDC_COMPATIBLE_FPU,\r
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,210,73,10\r
+    GROUPBOX        "FPU",IDC_STATIC,6,146,81,80,BS_LEFT\r
+    CONTROL         "24-bit addressing",IDC_COMPATIBLE24,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,100,73,8\r
+    CONTROL         "None",IDC_FPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,157,63,10\r
+    CONTROL         "68881",IDC_FPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,171,63,10\r
+    CONTROL         "68882",IDC_FPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,185,63,10\r
+    CONTROL         "CPU internal",IDC_FPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,199,63,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
+    COMBOBOX        IDC_DF0TEXT,2,22,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_DF0TYPE,115,6,57,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
+    COMBOBOX        IDC_DF1TEXT,2,58,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_DF1TYPE,115,42,57,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
+    COMBOBOX        IDC_DF2TEXT,2,93,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_DF2TYPE,115,77,57,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
+    COMBOBOX        IDC_DF3TEXT,2,128,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_DF3TYPE,115,112,57,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,197,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,77,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,154,116,20\r
+    EDITTEXT        IDC_FLOPPYSPDTEXT,183,157,101,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,77,215,97,13,ES_AUTOHSCROLL\r
+    RTEXT           "Disk label:",IDC_STATIC,15,216,52,10,SS_CENTERIMAGE\r
+    CONTROL         "DF0:",IDC_DF0ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,6,34,15\r
+    CONTROL         "DF1:",IDC_DF1ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,41,34,15\r
+    CONTROL         "DF2:",IDC_DF2ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,76,34,15\r
+    CONTROL         "DF3:",IDC_DF3ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,111,34,15\r
+END\r
+\r
+IDD_HARDDISK DIALOGEX 0, 0, 300, 237\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,176\r
+    PUSHBUTTON      "Add &Directory or Archive...",IDC_NEW_FS,10,179,103,15\r
+    PUSHBUTTON      "Add &Hardfile...",IDC_NEW_HF,130,179,74,15\r
+    PUSHBUTTON      "Add Ha&rd Drive...",IDC_NEW_HD,220,179,75,15\r
+    PUSHBUTTON      "Remove",IDC_REMOVE,235,203,60,15\r
+    PUSHBUTTON      "&Properties",IDC_EDIT,235,220,60,15\r
+    CONTROL         "Add PC drives at startup",IDC_MAPDRIVES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,202,100,10\r
+    CONTROL         "Disable UAEFSDB-support",IDC_NOUAEFSDB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,202,119,10\r
+    CONTROL         "Don't use Windows Recycle Bin",IDC_NORECYCLEBIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,213,121,10\r
+    CONTROL         "Include network drives..",IDC_MAPDRIVES_NET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,225,101,10\r
+    CONTROL         "Include CD/DVD drives..",IDC_MAPDRIVES_CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,213,100,10\r
+    CONTROL         "Automount removable drives",IDC_MAPDRIVES_AUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,225,115,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,101,10\r
+    CONTROL         "Disabled, but emulated",IDC_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,57,102,10\r
+    CONTROL         "Enabled",IDC_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,69,102,10\r
+    CONTROL         "Enabled, 100% accurate",IDC_SOUND3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,81,101,10\r
+    GROUPBOX        "Volume",IDC_STATIC,132,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,137,81,105,19\r
+    EDITTEXT        IDC_SOUNDBUFFERMEM,247,84,40,12,ES_CENTER | ES_READONLY\r
+    GROUPBOX        "Settings",IDC_SOUNDINTERPOLATION2,6,114,290,60\r
+    LTEXT           "Frequency:",IDC_SOUNDFREQTXT,11,148,53,8,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_SOUNDFREQ,13,157,51,75,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP\r
+    LTEXT           "Audio filter:",IDC_SOUNDFILTERTXT,209,148,77,8,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_SOUNDFILTER,209,157,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+    LTEXT           "Channel mode:",IDC_SOUNDSTEREOTXT,11,124,57,8,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_SOUNDSTEREO,13,133,122,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+    LTEXT           "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,209,124,75,8,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_SOUNDINTERPOLATION,209,133,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+    LTEXT           "Stereo separation:",IDC_SOUNDSTEREOSEPTXT,141,124,63,8,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_SOUNDSTEREOSEP,142,133,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+    LTEXT           "Stereo 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,187,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,61,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,4,161,40,15,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_EDITNAME,48,162,146,13,ES_AUTOHSCROLL\r
+    RTEXT           "Description:",IDC_STATIC,2,182,41,15,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_EDITDESCRIPTION,48,183,146,13,ES_AUTOHSCROLL\r
+    RTEXT           "Link:",IDC_STATIC,4,204,40,15,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_CONFIGLINK,48,205,93,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Ignore link",IDC_CONFIGNOLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,146,207,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,208,195,37,15\r
+    PUSHBUTTON      "Set",IDC_SETINFO,250,195,37,15\r
+    PUSHBUTTON      "Load",IDC_QUICKLOAD,5,225,44,15\r
+    PUSHBUTTON      "Save",IDC_QUICKSAVE,54,225,44,15\r
+    PUSHBUTTON      "Load From...",IDC_LOAD,121,225,49,15\r
+    PUSHBUTTON      "Delete",IDC_DELETE,251,225,44,15\r
+    PUSHBUTTON      "Save As...",IDC_SAVE,175,225,44,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,15,58,12\r
+    CONTROL         "PostScript detection",IDC_PSPRINTERDETECT,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,11,33,79,12\r
+    CONTROL         "PostScript printer emulation",IDC_PSPRINTER,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,95,33,110,12\r
+    RTEXT           "Autoflush [] 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,102,15,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PS_PARAMS,124,50,165,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,15,103,48,12\r
+    CONTROL         "RTS/CTS",IDC_SER_CTSRTS,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,75,103,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,135,103,65,12\r
+    CONTROL         "uaeserial.device",IDC_UAESERIAL,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,200,103,78,12\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,23,15,129,10\r
+    CONTROL         "Show GUI on startup",IDC_SHOWGUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,27,120,10\r
+    CONTROL         "On-screen LEDs",IDC_SHOWLEDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,40,115,10\r
+    CONTROL         "uaescsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,53,63,10\r
+    CONTROL         "Don't show taskbar button",IDC_NOTASKBARBUTTON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,66,117,10\r
+    CONTROL         "bsdsocket.library emulation",IDC_SOCKETS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,15,120,10\r
+    CONTROL         "Use CTRL-F11 to quit",IDC_CTRLF11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,27,120,10\r
+    CONTROL         "Synchronize clock",IDC_CLOCKSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,40,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,167,195,68\r
+    PUSHBUTTON      "Load state...",IDC_DOLOADSTATE,105,180,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,200,182,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,160,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,23,79,117,10\r
+    CONTROL         "Catweasel",IDC_CATWEASEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,53,115,10\r
+    CONTROL         "USB mode",IDC_KBLED_USB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,216,64,10\r
+    COMBOBOX        IDC_SCSIMODE,92,51,64,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,113,285,25\r
+    CONTROL         "Disable powersaving features",IDC_POWERSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,92,120,10\r
+    CONTROL         "Magic Mouse",IDC_MOUSETRICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,66,119,10\r
+    CONTROL         "uaenet.device",IDC_SANA2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,79,94,10\r
+    COMBOBOX        IDC_DD_SURFACETYPE,217,93,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    RTEXT           "Display buffer:",IDC_STATIC,159,94,52,10,SS_CENTERIMAGE\r
+END\r
+\r
+IDD_HARDFILE DIALOGEX 0, 0, 299, 249\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,146\r
+    RTEXT           "Path:",IDC_HARDFILE_DIR_TEXT,25,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,13,38,34,10\r
+    EDITTEXT        IDC_PATH_FILESYS,52,35,213,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_FILESYS_SELECTOR,271,35,11,15\r
+    RTEXT           "Device:",IDC_HARDFILE_DEVICE_TEXT,16,58,31,10\r
+    EDITTEXT        IDC_HARDFILE_DEVICE,52,55,66,15,ES_AUTOHSCROLL\r
+    RTEXT           "Boot priority:",IDC_HARDFILE_BOOTPRI_TEXT,20,94,48,8\r
+    EDITTEXT        IDC_HARDFILE_BOOTPRI,73,90,44,15\r
+    CONTROL         "Read/write",IDC_HDF_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,53,74,64,10\r
+    PUSHBUTTON      "Enable RDB mode",IDC_HDF_RDB,174,55,92,14\r
+    RTEXT           "Surfaces:",IDC_SURFACES_TEXT,118,94,32,10\r
+    EDITTEXT        IDC_HEADS,155,90,40,15,ES_NUMBER\r
+    RTEXT           "Reserved:",IDC_RESERVED_TEXT,197,94,35,10\r
+    EDITTEXT        IDC_RESERVED,237,90,40,15,ES_NUMBER\r
+    RTEXT           "Sectors:",IDC_SECTORS_TEXT,120,113,30,10\r
+    EDITTEXT        IDC_SECTORS,155,111,40,15,ES_NUMBER\r
+    RTEXT           "Block size:",IDC_BLOCKSIZE_TEXT,197,113,35,10\r
+    EDITTEXT        IDC_BLOCKSIZE,237,111,40,15,ES_NUMBER\r
+    GROUPBOX        "New hard disk image file",IDC_STATIC,10,156,280,62\r
+    PUSHBUTTON      "Create",IDC_HF_CREATE,23,171,80,14\r
+    EDITTEXT        IDC_HF_SIZE,119,171,61,15,ES_NUMBER\r
+    PUSHBUTTON      "OK",IDOK,102,226,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,158,226,50,14\r
+    EDITTEXT        IDC_HF_DOSTYPE,119,194,61,15\r
+    COMBOBOX        IDC_HF_TYPE,23,195,80,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_HDF_CONTROLLER,73,112,44,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    RTEXT           "DOS type",IDC_STATIC,187,196,32,10,SS_CENTERIMAGE\r
+    RTEXT           "MB",IDC_STATIC,185,174,17,10,SS_CENTERIMAGE\r
+    RTEXT           "HD Controller:",IDC_STATIC,16,113,52,10,SS_CENTERIMAGE\r
+    CONTROL         "Bootable",IDC_HDF_AUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,136,74,53,10\r
+    CONTROL         "Do not mount",IDC_HDF_DONOTMOUNT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,217,74,67,10\r
+    EDITTEXT        IDC_HDFINFO,16,131,268,12,ES_CENTER | ES_READONLY\r
+    CONTROL         "Sparse file",IDC_HF_SPARSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,220,168,62,10\r
+    CONTROL         "Dynamic HDF",IDC_HF_DYNAMIC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,220,180,62,10\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,11,7,54,10\r
+    EDITTEXT        IDC_VOLUME_DEVICE,65,5,104,15,ES_AUTOHSCROLL\r
+    LTEXT           "Volume label:",-1,13,28,54,10\r
+    EDITTEXT        IDC_VOLUME_NAME,65,25,104,15,ES_AUTOHSCROLL\r
+    LTEXT           "Path:",-1,38,49,44,10\r
+    EDITTEXT        IDC_PATH_NAME,65,46,227,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "Select Directory",IDC_FS_SELECT_DIR,65,66,103,15\r
+    CONTROL         "Read/write",IDC_FS_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,174,7,55,10\r
+    RTEXT           "Boot priority:",IDC_VOLUME_BOOTPRI_TEXT,178,28,49,8\r
+    EDITTEXT        IDC_VOLUME_BOOTPRI,236,25,30,15\r
+    PUSHBUTTON      "OK",IDOK,65,91,48,15\r
+    PUSHBUTTON      "Cancel",IDCANCEL,120,91,48,15\r
+    PUSHBUTTON      "Select Archive or Plain File",IDC_FS_SELECT_FILE,190,66,103,15\r
+    PUSHBUTTON      "Eject",IDC_FS_SELECT_EJECT,230,91,62,15\r
+    CONTROL         "Bootable",IDC_FS_AUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,236,7,53,10\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). CDTV and later A500 and A2000 hardware revisions.",IDC_ECS_AGNUS,\r
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,42,55,10\r
+    CONTROL         "ECS Denise [] Enhanced chipset (ECS Denise chip only). Normally paired with ECS Agnus.",IDC_ECS_DENISE,\r
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,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,100,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,179,33,96,10\r
+    CONTROL         "Cycle-exact [] The most compatible A500 emulation mode. Very fast PC recommended.",IDC_CYCLEEXACT,\r
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,179,46,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,37,121,59,10\r
+    CONTROL         "Sprites only [] Emulate only sprite vs. sprite collisions.",IDC_COLLISION1,\r
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,137,62,10\r
+    CONTROL         "Sprites and Sprites vs. Playfield [] Recommended collision emulation level.",IDC_COLLISION2,\r
+                    "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,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,100,137,119,10\r
+    GROUPBOX        "Sound Emulation",IDC_STATIC,13,159,268,65\r
+    CONTROL         "Disabled",IDC_CS_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,37,175,102,10\r
+    CONTROL         "Emulated",IDC_CS_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,190,91,10\r
+    CONTROL         "Emulated, 100% accurate",IDC_CS_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,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,179,59,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,179,72,100,10\r
+    COMBOBOX        IDC_CS_EXT,100,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        "Battery Backed Up Real Time Clock",IDC_STATIC,11,24,275,29\r
+    CONTROL         "None",IDC_CS_RTC1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,36,55,10\r
+    CONTROL         "MSM6242B",IDC_CS_RTC2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,90,36,52,10\r
+    CONTROL         "RF5C01A",IDC_CS_RTC3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,159,36,46,10\r
+    EDITTEXT        IDC_CS_RTCADJUST,215,34,64,13,ES_AUTOHSCROLL\r
+    GROUPBOX        "CIA-A TOD Clock Source",IDC_STATIC,11,56,275,29\r
+    CONTROL         "Vertical Sync",IDC_CS_CIAA_TOD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,68,63,10\r
+    CONTROL         "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,90,68,85,10\r
+    CONTROL         "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,186,68,88,10\r
+    CONTROL         "ROM Mirror (A8)",IDC_CS_KSMIRROR_A8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,146,80,10\r
+    CONTROL         "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,95,88,10\r
+    CONTROL         "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,108,76,10\r
+    CONTROL         "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,108,87,10\r
+    CONTROL         "CD32 NVRAM",IDC_CS_CD32NVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,108,84,10\r
+    CONTROL         "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,121,47,10\r
+    CONTROL         "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,120,87,10\r
+    CONTROL         "CDTV SRAM Expansion",IDC_CS_CDTVRAMEXP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,120,90,10\r
+    CONTROL         "A600/A1200 IDE",IDC_CS_IDE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,133,79,10\r
+    CONTROL         "A4000/A4000T IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,133,88,10\r
+    CONTROL         "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,216,71,10\r
+    EDITTEXT        IDC_CS_RAMSEYREV,91,214,45,13,ES_AUTOHSCROLL\r
+    CONTROL         "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,229,71,10\r
+    EDITTEXT        IDC_CS_FATGARYREV,91,228,45,13,ES_AUTOHSCROLL\r
+    CONTROL         "A3000 SCSI",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,188,76,10\r
+    CONTROL         "Compatible Settings",IDC_CS_COMPATIBLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,8,234,10\r
+    CONTROL         "DF0: ID Hardware",IDC_CS_DF0IDHW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,95,92,10\r
+    CONTROL         "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,216,81,10\r
+    EDITTEXT        IDC_CS_AGNUSREV,232,214,45,13,ES_AUTOHSCROLL\r
+    CONTROL         "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,229,81,10\r
+    EDITTEXT        IDC_CS_DENISEREV,232,228,45,13,ES_AUTOHSCROLL\r
+    CONTROL         "A590/A2091 SCSI",IDC_CS_A2091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,188,76,10\r
+    CONTROL         "A4000T SCSI",IDC_CS_DMAC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,188,88,10\r
+    LTEXT           "A4091/A4000T SCSI not yet implemented.",IDC_STATIC,22,174,224,8,SS_CENTERIMAGE\r
+    CONTROL         "PCMCIA",IDC_CS_PCMCIA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,133,92,10\r
+    CONTROL         "A4091 SCSI",IDC_CS_A4091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,200,76,10\r
+    CONTROL         "CDTV SCSI",IDC_CS_CDTVSCSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,200,76,10\r
+    CONTROL         "Include host SCSI devices",IDC_CS_SCSIMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,200,101,10\r
+    CONTROL         "C00000 is Fast RAM",IDC_CS_SLOWISFAST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,146,92,10\r
+    CONTROL         "ROM Mirror (E0)",IDC_CS_KSMIRROR_E0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,146,80,10\r
+    CONTROL         "CIA ROM Overlay",IDC_CS_CIAOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,95,80,10\r
+    CONTROL         "KB Reset Warning",IDC_CS_RESETWARNING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,159,80,10\r
+    CONTROL         "No-EHB Denise",IDC_CS_NOEHB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,159,80,10\r
+    CONTROL         "Blitter Busy Bug",IDC_CS_BLITTERBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,159,80,10\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,0,274,126\r
+    EDITTEXT        IDC_AVIOUTPUT_FILETEXT,15,15,226,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_CLIENTEDGE\r
+    PUSHBUTTON      "...",IDC_AVIOUTPUT_FILE,249,15,19,12\r
+    CONTROL         "Audio",IDC_AVIOUTPUT_AUDIO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,33,39,14\r
+    CONTROL         "",IDC_AVIOUTPUT_AUDIO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,34,209,13\r
+    CONTROL         "Video",IDC_AVIOUTPUT_VIDEO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,50,39,14\r
+    CONTROL         "",IDC_AVIOUTPUT_VIDEO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,51,209,13\r
+    CONTROL         "Disable frame rate limit while recording",IDC_AVIOUTPUT_FRAMELIMITER,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,68,158,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,131,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,166,84,87,11\r
+    LTEXT           "fps",IDC_AVIOUTPUT_FPS_STATIC,255,84,19,8\r
+    PUSHBUTTON      "Save screenshot",IDC_SCREENSHOT,16,141,77,14\r
+    GROUPBOX        "Ripper",IDC_STATIC,5,127,274,38\r
+    PUSHBUTTON      "Pro Wizard 1.62",IDC_PROWIZARD,104,141,77,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,192,178,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,148,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,7,196,79,10,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_INPUTDEADZONE,92,195,25,12,ES_NUMBER\r
+    RTEXT           "Autofire rate (frames):",-1,10,212,76,10,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_INPUTAUTOFIRERATE,92,210,25,12,ES_NUMBER\r
+    RTEXT           "Digital joy-mouse speed:",-1,124,196,84,10,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_INPUTSPEEDD,215,195,25,12,ES_NUMBER\r
+    RTEXT           "Analog joy-mouse speed:",-1,120,212,88,10,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_INPUTSPEEDA,215,211,25,12,ES_NUMBER\r
+    RTEXT           "Mouse speed:",-1,132,228,76,10,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_INPUTSPEEDM,215,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,9,16,40,11\r
+    COMBOBOX        IDC_FILTERMODE,53,15,83,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FILTERFILTER,142,15,74,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    PUSHBUTTON      "Reset to defaults",IDC_FILTERDEFAULT,221,15,67,14\r
+    RTEXT           "Horiz. size:",-1,7,44,54,10,SS_CENTERIMAGE\r
+    CONTROL         "Slider1",IDC_FILTERHZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,37,152,19\r
+    EDITTEXT        IDC_FILTERHZV,253,39,34,12,ES_CENTER | ES_READONLY\r
+    RTEXT           "Vert. size:",-1,7,64,54,10,SS_CENTERIMAGE\r
+    CONTROL         "Slider1",IDC_FILTERVZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,57,152,19\r
+    EDITTEXT        IDC_FILTERVZV,253,59,34,12,ES_CENTER | ES_READONLY\r
+    RTEXT           "Horiz. position:",-1,5,84,55,10,SS_CENTERIMAGE\r
+    CONTROL         "Slider1",IDC_FILTERHO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,77,151,19\r
+    EDITTEXT        IDC_FILTERHOV,253,79,34,12,ES_CENTER | ES_READONLY\r
+    RTEXT           "Vert. position:",-1,5,103,55,10,SS_CENTERIMAGE\r
+    CONTROL         "Slider1",IDC_FILTERVO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,97,151,19\r
+    EDITTEXT        IDC_FILTERVOV,253,99,34,12,ES_CENTER | ES_READONLY\r
+    RTEXT           "Extra settings:",-1,27,137,57,10,SS_CENTERIMAGE\r
+    CONTROL         "Slider1",IDC_FILTERXL,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,157,151,19\r
+    EDITTEXT        IDC_FILTERXLV,253,159,34,12,ES_CENTER | ES_READONLY\r
+    COMBOBOX        IDC_FILTERSLR,253,134,33,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\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,67,43,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FILTERVZMULT,67,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,9,168,83,10\r
+    COMBOBOX        IDC_FILTERXTRA,105,134,138,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    COMBOBOX        IDC_FILTERASPECT,21,118,73,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Keep aspect ratio",IDC_FILTERKEEPASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,153,85,10\r
+END\r
+\r
+IDD_HARDDRIVE DIALOGEX 0, 0, 380, 76\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:",IDC_STATIC,7,11,80,10\r
+    COMBOBOX        IDC_HARDDRIVE,49,9,325,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Read/write",IDC_HDF_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,51,55,10\r
+    DEFPUSHBUTTON   "Add hard drive",IDOK,231,48,65,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,319,48,54,14\r
+    DEFPUSHBUTTON   "Create hard disk image file",IDC_HARDDRIVE_IMAGE,49,30,115,14\r
+    EDITTEXT        IDC_PATH_NAME,183,27,97,15,ES_AUTOHSCROLL | NOT WS_VISIBLE\r
+    COMBOBOX        IDC_HDF_CONTROLLER,102,50,41,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    RTEXT           "HD Controller:",IDC_STATIC,42,51,52,10,SS_CENTERIMAGE\r
+END\r
+\r
+IDD_MISC2 DIALOGEX 0, 0, 300, 244\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,52,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,51,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",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,51,10,SS_CENTERIMAGE | WS_TABSTOP\r
+    COMBOBOX        IDC_MINIMIZED_PRIORITY,207,29,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",IDC_MINIMIZED_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,63,79,10\r
+    CONTROL         "",IDC_ASSOCIATELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,19,94,164,100\r
+    GROUPBOX        "File Extension Associations",IDC_STATIC,8,83,186,138\r
+    PUSHBUTTON      "Deassociate all",IDC_ASSOCIATE_OFF,108,200,75,14\r
+    PUSHBUTTON      "Associate all",IDC_ASSOCIATE_ON,19,200,75,14\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,156,223,101,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,41,223,101,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_HSCROLL | 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
+    PUSHBUTTON      "Restart",IDC_RESTARTEMU,109,259,47,14,NOT WS_VISIBLE\r
+END\r
+\r
+IDD_PATHS DIALOGEX 0, 0, 300, 243\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,4,260,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_ROM,14,16,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_ROMS,281,16,11,15\r
+    LTEXT           "Configuration files:",IDC_PATHS_CONFIGL,14,34,121,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_CONFIG,14,45,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_CONFIGS,281,45,11,15\r
+    LTEXT           "Screenshots:",IDC_PATHS_SCREENSHOTL,14,63,260,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_SCREENSHOT,14,74,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_SCREENSHOTS,281,74,11,15\r
+    LTEXT           "State files:",IDC_PATHS_STATEFILEL,14,92,260,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_SAVESTATE,14,104,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_SAVESTATES,281,104,11,15\r
+    LTEXT           "Videos:",IDC_PATHS_AVIOUTPUTL,14,122,260,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_AVIOUTPUT,14,134,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_AVIOUTPUTS,281,134,11,15\r
+    LTEXT           "Saveimages:",IDC_PATHS_SAVEIMAGEL,14,152,261,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_SAVEIMAGE,14,163,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_SAVEIMAGES,281,163,11,15\r
+    PUSHBUTTON      "Reset to defaults",IDC_PATHS_DEFAULT,14,184,92,14\r
+    PUSHBUTTON      "Rescan ROMs",IDC_ROM_RESCAN,14,200,92,14\r
+    PUSHBUTTON      "Clear registry",IDC_RESETREGISTRY,111,200,92,14\r
+    COMBOBOX        IDC_PATHS_DEFAULTTYPE,112,184,163,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    PUSHBUTTON      "Clear disk history",IDC_RESETDISKHISTORY,14,216,92,14\r
+    CONTROL         "Cache Configuration files",IDC_PATHS_CONFIGCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,177,34,117,10\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,50,10,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_QUICKSTART_MODEL,59,12,233,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+    RTEXT           "Configuration:",IDC_STATIC,5,33,50,10,SS_CENTERIMAGE\r
+    COMBOBOX        IDC_QUICKSTART_CONFIGURATION,59,31,233,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,95,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
+    CONTROL         "Floppy drive DF0:",IDC_DF0QENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,10,136,72,15\r
+    PUSHBUTTON      "Select disk image",IDC_DF0QQ,85,136,98,15\r
+    RTEXT           "Write-protected",IDC_STATIC,185,139,56,10,SS_CENTERIMAGE\r
+    CONTROL         "",IDC_DF0WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,246,137,10,15\r
+    PUSHBUTTON      "Eject",IDC_EJECT0Q,261,136,30,15\r
+    COMBOBOX        IDC_DF0TEXTQ,9,154,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+    CONTROL         "Floppy drive DF1:",IDC_DF1QENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,172,71,15\r
+    PUSHBUTTON      "Select disk image",IDC_DF1QQ,85,172,98,15\r
+    RTEXT           "Write-protected",IDC_STATIC,185,175,55,10,SS_CENTERIMAGE\r
+    CONTROL         "",IDC_DF1WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,246,173,10,15\r
+    PUSHBUTTON      "Eject",IDC_EJECT1Q,261,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,197,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",PBS_SMOOTH | WS_BORDER,7,19,215,14\r
+    CTEXT           "x",IDC_PROGRESSBAR_TEXT,23,5,187,10,SS_CENTERIMAGE | WS_TABSTOP\r
+END\r
+\r
+IDD_STRINGBOX DIALOGEX 0, 0, 229, 58\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Enter text..."\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,48,39,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,151,39,50,14\r
+    EDITTEXT        IDC_STRINGBOXEDIT,7,17,214,14,ES_AUTOHSCROLL | ES_WANTRETURN\r
+END\r
+\r
+IDD_DEBUGGER DIALOGEX 0, 0, 454, 368\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME\r
+EXSTYLE WS_EX_CONTROLPARENT\r
+CAPTION "WinUAE Debugger"\r
+FONT 8, "Courier New", 0, 0, 0x0\r
+BEGIN\r
+    EDITTEXT        IDC_DBG_OUTPUT1,1,255,370,86,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT WS_TABSTOP\r
+    EDITTEXT        IDC_DBG_OUTPUT2,1,79,370,262,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT WS_TABSTOP\r
+    LISTBOX         IDC_DBG_MEM,1,92,370,249,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_DASM,1,92,370,249,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    EDITTEXT        IDC_DBG_MEMINPUT,1,79,36,12,ES_AUTOHSCROLL | ES_WANTRETURN\r
+    EDITTEXT        IDC_DBG_INPUT,1,342,354,12,ES_AUTOHSCROLL | ES_WANTRETURN\r
+    PUSHBUTTON      "?",IDC_DBG_HELP,356,342,15,12,NOT WS_TABSTOP\r
+    PUSHBUTTON      "Set to PC",IDC_DBG_MEMTOPC,38,79,45,12,NOT WS_TABSTOP\r
+    LISTBOX         IDC_DBG_DREG,1,1,52,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_AREG,54,1,52,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_AMEM,106,1,231,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_CCR,338,1,57,42,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_SP_VBR,338,44,115,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_MMISC,396,1,57,42,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_PC,1,68,52,10,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_PREFETCH,54,68,283,10,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_FPREG,372,218,81,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_FPSR,372,285,81,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_MISCCPU,372,320,81,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    CONTROL         "",IDC_DBG_STATUS,"msctls_statusbar32",0x103,0,355,453,12\r
+    LISTBOX         IDC_DBG_BRKPTS,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL\r
+    LISTBOX         IDC_DBG_MCUSTOM,372,79,81,138,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_MISC,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL\r
+    LISTBOX         IDC_DBG_CUSTOM,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL\r
+    CONTROL         "Auto set",IDC_DBG_AUTOSET,"Button",BS_AUTOCHECKBOX,84,79,50,12\r
+    LISTBOX         IDC_DBG_DASM2,1,79,370,87,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+    LISTBOX         IDC_DBG_MEM2,1,167,370,87,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+END\r
+\r
+IDD_DBGMEMINPUT DIALOGEX 0, 0, 150, 58\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Enter address..."\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+    DEFPUSHBUTTON   "OK",IDOK,15,39,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,75,39,50,14\r
+    EDITTEXT        IDC_DBG_MEMINPUT2,20,12,100,14,ES_AUTOHSCROLL | ES_WANTRETURN\r
+    CTEXT           "Enter address",IDC_DBG_ADDRINPUTTXT,20,1,100,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,5,3,0\r
+ PRODUCTVERSION 1,5,3,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.5.3"\r
+            VALUE "InternalName", "WinUAE"\r
+            VALUE "LegalCopyright", "© 1996-2008 under the GNU Public License (GPL)"\r
+            VALUE "OriginalFilename", "WinUAE.exe"\r
+            VALUE "ProductName", "WinUAE"\r
+            VALUE "ProductVersion", "1.5.3"\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
+IDM_DBGCONTEXTMENU MENU \r
+BEGIN\r
+    POPUP "Inactive"\r
+    BEGIN\r
+        POPUP "Copy"\r
+        BEGIN\r
+            MENUITEM "Copy line",                   ID_DBG_COPYLBLINE\r
+            MENUITEM "Copy all",                    ID_DBG_COPYLB\r
+        END\r
+    END\r
+    POPUP "Memory"\r
+    BEGIN\r
+        POPUP "Copy"\r
+        BEGIN\r
+            MENUITEM "Copy line",                   ID_DBG_COPYLBLINE\r
+            MENUITEM "Copy all",                    ID_DBG_COPYLB\r
+        END\r
+        POPUP "Set top address"\r
+        BEGIN\r
+            MENUITEM "Set to A0",                   ID_DBG_SETTOA0\r
+            MENUITEM "Set to A1",                   ID_DBG_SETTOA1\r
+            MENUITEM "Set to A2",                   ID_DBG_SETTOA2\r
+            MENUITEM "Set to A3",                   ID_DBG_SETTOA3\r
+            MENUITEM "Set to A4",                   ID_DBG_SETTOA4\r
+            MENUITEM "Set to A5",                   ID_DBG_SETTOA5\r
+            MENUITEM "Set to A6",                   ID_DBG_SETTOA6\r
+            MENUITEM "Set to A7",                   ID_DBG_SETTOA7\r
+            MENUITEM "Enter address",               ID_DBG_ENTERADDR\r
+        END\r
+    END\r
+    POPUP "Disassembly"\r
+    BEGIN\r
+        POPUP "Copy"\r
+        BEGIN\r
+            MENUITEM "Copy line",                   ID_DBG_COPYLBLINE\r
+            MENUITEM "Copy all",                    ID_DBG_COPYLB\r
+        END\r
+        POPUP "Breakpoints"\r
+        BEGIN\r
+            MENUITEM "Toggle breakpoint",           ID_DBG_TOGGLEBP\r
+            MENUITEM "Clear all breakpoints",       ID_DBG_DELETEBPS\r
+        END\r
+        POPUP "Set top address"\r
+        BEGIN\r
+            MENUITEM "Set to PC",                   ID_DBG_SETTOPC\r
+            MENUITEM "Enter address",               ID_DBG_ENTERADDR\r
+        END\r
+    END\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// WAVE\r
+//\r
+\r
+IDR_DRIVE_STARTUP_A500_1 WAVE                    "drive_startup.wav"\r
+IDR_DRIVE_CLICK_A500_1  WAVE                    "drive_click.wav"\r
+IDR_DRIVE_SPIN_A500_1   WAVE                    "drive_spin.wav"\r
+IDR_DRIVE_SNATCH_A500_1 WAVE                    "drive_snatch.wav"\r
+IDR_DRIVE_SPINND_A500_1 WAVE                    "drive_spinnd.wav"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Bitmap\r
+//\r
+\r
+IDB_XARCADE             BITMAP                  "xarcade-winuae.bmp"\r
+IDB_LCD160X43           BITMAP                  "lcd.bmp"\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 & IO ports"\r
+    IDS_MISC1               "Miscellaneous"\r
+    IDS_MEMORY              "RAM"\r
+    IDS_CPU                 "CPU and FPU"\r
+    IDS_CHIPSET             "Chipset"\r
+    IDS_INPUT               "Input"\r
+    IDS_FILTER              "Filter"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+    IDS_MISC2               "Pri. & Extensions"\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.\nKarsten Bock, Gavin Fance, Dirk Trowe, Christoph Meier and Christian Schindler - Freezer cartridge hardware support."\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) should be updated.\nA newer version is included in the ""Amiga Programs"" directory\n of the WinUAE distribution archive.\n\nNewer library version fixes graphics problems and increases performance."\r
+    IDS_DEFAULT_AF2005      "Amiga Forever 2005+"\r
+    IDS_DEFAULT_AF          "Amiga Forever"\r
+    IDS_DEFAULT_WINUAE      "WinUAE default (old)"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+    IDS_SOUND_STEREO2       "Cloned Stereo (4 Channels)"\r
+    IDS_INPUT_CUSTOMEVENT   "<Custom event>"\r
+    IDS_DEFAULT_NEWWINUAE   "WinUAE default (new)"\r
+    IDS_SOUND_CLONED51      "Cloned Stereo (5.1)"\r
+    IDS_SOUND_51            "5.1 Channels"\r
+    IDS_AUTOMATIC           "Automatic"\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_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_SCREEN_WINDOWED     "Windowed"\r
+    IDS_SCREEN_FULLSCREEN   "Fullscreen"\r
+    IDS_SCREEN_FULLWINDOW   "Full-window"\r
+    IDS_SCREEN_VSYNC        "VSync"\r
+    IDS_SOUND_MONO          "Mono"\r
+    IDS_SOUND_MIXED         "Mixed"\r
+    IDS_SOUND_STEREO        "Stereo"\r
+    IDS_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 unsupported color depth."\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\nStart address %08.8X, Size %d bytes\nWould you like to save it?"\r
+    IDS_NUMSG_KS68020       "The selected system ROM requires a 68020 with 32-bit addressing or 68030 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: Current configuration is not fully compatible with state saves.\nThis 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_HARDDRIVESAFETYWARNING1 \r
+                            "Warning: The drive safety check is active. Selected drive is not empty and non-RDB partitioned."\r
+    IDS_NUMSG_KS68EC020     "The selected system ROM requires a 68020 with 24-bit addressing 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
+    IDS_NUMSG_KS68030       "The selected system ROM requires a 68030 CPU."\r
+    IDS_NUMSG_EXPROMNEED    "One of the following expansion boot ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."\r
+    IDS_HARDDRIVESAFETYWARNING2 \r
+                            "Warning: The drive safety check has been disabled, and non-empty and non-RDB partitioned hard disk(s) were detected."\r
+    IDS_SB_FAVORITENAME     "Enter name..."\r
+    IDS_SB_CUSTOMEVENT      "Enter custom event string.."\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+    IDS_QS_MODELS           "A500\nA500+\nA600\nA1000\nA1200\nA3000\nA4000\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\n""ICS"" Denise without EHB support\nVery first A1000 models had Denise without EHB capability.\n256 KB Chip RAM\n Unexpanded 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.\nCD32 + MPEG Full Motion Video Cartridge (not emulated yet)\n"\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
+    IDS_QS_MODEL_A3000      "1.4 ROM, 2MB Chip + 8MB Fast\n\n2.04 ROM, 2MB Chip + 8MB Fast\n\n3.1 ROM, 2MB Chip + 8MB Fast\n"\r
+    IDS_QS_MODEL_A4000      "68030, 3.1 ROM, 2MB Chip + 8MB Fast\n\n68040, 3.1 ROM, 2MB Chip + 8MB Fast\n"\r
+    IDS_QS_MODEL_A4000T     "A4000T (test)\nA4000T"\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
index 463145d06d15ad6460836fb4527e0b52ffd9e996..a7085380ecb971294d0637d4d02a6afca3572fe1 100755 (executable)
@@ -2003,7 +2003,7 @@ void target_save_options (struct zfile *f, struct uae_prefs *p)
        p->win32_rtgscaleaspectratio >= 0 ? (p->win32_rtgscaleaspectratio >> 8) : -1,
        p->win32_rtgscaleaspectratio >= 0 ? (p->win32_rtgscaleaspectratio & 0xff) : -1);
     if (p->win32_rtgvblankrate <= 0)
-       cfgfile_target_dwrite (f, "rtg_vblank=%s\n", p->win32_rtgvblankrate < 0 ? "real" : "chipset");
+       cfgfile_target_dwrite (f, "rtg_vblank=%s\n", p->win32_rtgvblankrate == -1 ? "real" : (p->win32_rtgvblankrate == -2 ? "disabled" : "chipset"));
     else
        cfgfile_target_dwrite (f, "rtg_vblank=%d\n", p->win32_rtgvblankrate);
     cfgfile_target_dwrite (f, "borderless=%s\n", p->win32_borderless ? "true" : "false");
@@ -2088,6 +2088,10 @@ int target_parse_option (struct uae_prefs *p, char *option, char *value)
            p->win32_rtgvblankrate = -1;
            return 1;
        }
+       if (!strcmp (tmpbuf, "disabled")) {
+           p->win32_rtgvblankrate = -2;
+           return 1;
+       }
        if (!strcmp (tmpbuf, "chipset")) {
            p->win32_rtgvblankrate = 0;
            return 1;
@@ -3956,6 +3960,24 @@ end:
     return m;
 }
 
+int get_guid_target (uae_u8 *out)
+{
+    GUID guid;
+
+    if (CoCreateGuid (&guid) != S_OK)
+       return 0;
+    out[0] = guid.Data1 >> 24;
+    out[1] = guid.Data1 >> 16;
+    out[2] = guid.Data1 >>  8;
+    out[3] = guid.Data1 >>  0;
+    out[4] = guid.Data2 >>  8;
+    out[5] = guid.Data2 >>  0;
+    out[6] = guid.Data3 >>  8;
+    out[7] = guid.Data3 >>  0;
+    memcpy (out + 8, guid.Data4, 8);
+    return 1;
+}
+
 typedef BOOL (CALLBACK* SETPROCESSDPIAWARE)(void);
 typedef BOOL (CALLBACK* CHANGEWINDOWMESSAGEFILTER)(UINT, DWORD);
 
index 42ba812c29674046b78f1b3aa33282099715a4fe..8a895228cd835b7236d0a5cefa1c52954da263e5 100755 (executable)
@@ -17,8 +17,8 @@
 
 #define WINUAEPUBLICBETA 1
 
-#define WINUAEBETA "1"
-#define WINUAEDATE MAKEBD(2008, 11, 16)
+#define WINUAEBETA "2"
+#define WINUAEDATE MAKEBD(2008, 11, 22)
 #define WINUAEEXTRA ""
 #define WINUAEREV ""
 
index c61d9f545de861e0fa98adea354a50dccc21b1b3..2050b226964bafc89411ad10718f7910aaea329e 100755 (executable)
@@ -1744,54 +1744,63 @@ static BOOL CreateHardFile (HWND hDlg, UINT hfsizem, char *dostype, char *newpat
     uae_u64 hfsize;
     uae_u32 dt;
     uae_u8 b;
-    int sparse;
+    int sparse, dynamic;
 
     sparse = 0;
+    dynamic = 0;
     hfsize = (uae_u64)hfsizem * 1024 * 1024;
     if (IsDlgButtonChecked (hDlg, IDC_HF_SPARSE) == BST_CHECKED)
        sparse = 1;
+    if (IsDlgButtonChecked (hDlg, IDC_HF_DYNAMIC) == BST_CHECKED) {
+       dynamic = 1;
+       sparse = 0;
+    }
     if (!DiskSelection (hDlg, IDC_PATH_NAME, 3, &workprefs, newpath))
        return FALSE;
     GetDlgItemText (hDlg, IDC_PATH_NAME, init_path, MAX_DPATH);
     if (*init_path && hfsize) {
-       SetCursor (LoadCursor(NULL, IDC_WAIT));
-       if ((hf = CreateFile (init_path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE) {
-           if (sparse) {
-               DWORD ret;
-               DeviceIoControl (hf, FSCTL_SET_SPARSE, NULL, 0, NULL, 0, &ret, NULL);
-           }
-           if (hfsize >= 0x80000000) {
-               highword = (DWORD)(hfsize >> 32);
-               ret = SetFilePointer (hf, (DWORD)hfsize, &highword, FILE_BEGIN);
-           } else {
-               ret = SetFilePointer (hf, (DWORD)hfsize, NULL, FILE_BEGIN);
-           }
-           if (ret == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR)
-               write_log ("SetFilePointer() failure for %s to posn %ud\n", init_path, hfsize);
-           else
-               result = SetEndOfFile (hf);
-           SetFilePointer (hf, 0, NULL, FILE_BEGIN);
-           b = 0;
-           WriteFile (hf, &b, 1, &written, NULL);
-           WriteFile (hf, &b, 1, &written, NULL);
-           WriteFile (hf, &b, 1, &written, NULL);
-           WriteFile (hf, &b, 1, &written, NULL);
-           if (sscanf (dostype, "%x", &dt) > 0) {
+       if (dynamic) {
+           result = vhd_create (init_path, hfsize);
+       } else {
+           SetCursor (LoadCursor(NULL, IDC_WAIT));
+           if ((hf = CreateFile (init_path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE) {
+               if (sparse) {
+                   DWORD ret;
+                   DeviceIoControl (hf, FSCTL_SET_SPARSE, NULL, 0, NULL, 0, &ret, NULL);
+               }
+               if (hfsize >= 0x80000000) {
+                   highword = (DWORD)(hfsize >> 32);
+                   ret = SetFilePointer (hf, (DWORD)hfsize, &highword, FILE_BEGIN);
+               } else {
+                   ret = SetFilePointer (hf, (DWORD)hfsize, NULL, FILE_BEGIN);
+               }
+               if (ret == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR)
+                   write_log ("SetFilePointer() failure for %s to posn %ud\n", init_path, hfsize);
+               else
+                   result = SetEndOfFile (hf);
                SetFilePointer (hf, 0, NULL, FILE_BEGIN);
-               b = dt >> 24;
+               b = 0;
                WriteFile (hf, &b, 1, &written, NULL);
-               b = dt >> 16;
                WriteFile (hf, &b, 1, &written, NULL);
-               b = dt >> 8;
                WriteFile (hf, &b, 1, &written, NULL);
-               b = dt >> 0;
                WriteFile (hf, &b, 1, &written, NULL);
+               if (sscanf (dostype, "%x", &dt) > 0) {
+                   SetFilePointer (hf, 0, NULL, FILE_BEGIN);
+                   b = dt >> 24;
+                   WriteFile (hf, &b, 1, &written, NULL);
+                   b = dt >> 16;
+                   WriteFile (hf, &b, 1, &written, NULL);
+                   b = dt >> 8;
+                   WriteFile (hf, &b, 1, &written, NULL);
+                   b = dt >> 0;
+                   WriteFile (hf, &b, 1, &written, NULL);
+               }
+               CloseHandle (hf);
+           } else {
+               write_log ("CreateFile() failed to create %s\n", init_path);
            }
-           CloseHandle (hf);
-       } else {
-           write_log ("CreateFile() failed to create %s\n", init_path);
+           SetCursor (LoadCursor (NULL, IDC_ARROW));
        }
-       SetCursor (LoadCursor (NULL, IDC_ARROW));
     }
     if (!result) {
         char szMessage[MAX_DPATH];
@@ -5423,12 +5432,13 @@ static void values_to_memorydlg (HWND hDlg)
        workprefs.win32_rtgvblankrate == 70 ||
        workprefs.win32_rtgvblankrate == 75) {
        SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_SETCURSEL,
-           (workprefs.win32_rtgvblankrate == 0) ? 0 :
-           (workprefs.win32_rtgvblankrate < 0) ? 1 :
-           (workprefs.win32_rtgvblankrate == 50) ? 2 :
-           (workprefs.win32_rtgvblankrate == 60) ? 3 :
-           (workprefs.win32_rtgvblankrate == 70) ? 4 :
-           (workprefs.win32_rtgvblankrate == 75) ? 5 : 0, 0);
+           (workprefs.win32_rtgvblankrate == 0) ? 1 :
+           (workprefs.win32_rtgvblankrate == -1) ? 2 :
+           (workprefs.win32_rtgvblankrate == -2) ? 0 :
+           (workprefs.win32_rtgvblankrate == 50) ? 3 :
+           (workprefs.win32_rtgvblankrate == 60) ? 4 :
+           (workprefs.win32_rtgvblankrate == 70) ? 5 :
+           (workprefs.win32_rtgvblankrate == 75) ? 6 : 0, 0);
     } else {
        char tmp[10];
        sprintf (tmp, "%d", workprefs.win32_rtgvblankrate);
@@ -5567,6 +5577,7 @@ static INT_PTR CALLBACK MemoryDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA
            SendDlgItemMessage (hDlg, IDC_RTG_SCALE_ASPECTRATIO, CB_ADDSTRING, 0, (LPARAM)"16:9");
            SendDlgItemMessage (hDlg, IDC_RTG_SCALE_ASPECTRATIO, CB_ADDSTRING, 0, (LPARAM)"16:10");
            SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_RESETCONTENT, 0, 0);
+           SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_ADDSTRING, 0, (LPARAM)"Disabled");
            SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_ADDSTRING, 0, (LPARAM)"Chipset");
            SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_ADDSTRING, 0, (LPARAM)"Real");
            SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_ADDSTRING, 0, (LPARAM)"50");
@@ -5694,8 +5705,10 @@ static INT_PTR CALLBACK MemoryDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA
                    v = SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_GETCURSEL, 0, 0L);
                    if (v != CB_ERR) {
                        if (v == 0) {
-                           workprefs.win32_rtgvblankrate = 0;
+                           workprefs.win32_rtgvblankrate = -2;
                        } else if (v == 1) {
+                           workprefs.win32_rtgvblankrate = 0;
+                       } else if (v == 2) {
                            workprefs.win32_rtgvblankrate = -1;
                        } else {
                            v = SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_GETLBTEXT, (WPARAM)v, (LPARAM)tmp);
@@ -5705,7 +5718,6 @@ static INT_PTR CALLBACK MemoryDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA
                    }
                    if (tmp[0])
                        workprefs.win32_rtgvblankrate = atol (tmp);
-                   write_log ("%d\n", workprefs.win32_rtgvblankrate);
                    break;
                }
                workprefs.picasso96_modeflags = mask;
@@ -7321,24 +7333,20 @@ static void hardfile_testrdb (HWND hDlg, struct hfdlg_vals *hdf)
 static void updatehdfinfo (HWND hDlg, int force)
 {
     static uae_u64 bsize;
-    static uae_u8 id[8];
+    static uae_u8 id[512];
     int blocks, cyls, i;
     char tmp[200], idtmp[9], tmp2[200];
 
     if (force) {
-       struct zfile *zf = zfile_fopen (current_hfdlg.filename, "rb");
-       if (zf) {
-           FILE *fp;
-           memset (id, 0, sizeof (id));
-           zfile_fread (id, 1, sizeof (id), zf);
-           zfile_fseek (zf, 0, SEEK_END);
-           zfile_fclose (zf);
-           fp = fopen (current_hfdlg.filename, "rb");
-           if (fp) {
-               _fseeki64 (fp, 0, SEEK_END);
-               bsize = _ftelli64 (fp);
-               fclose (fp);
-           }
+       struct hardfiledata hfd;
+       memset (id, 0, sizeof id);
+       memset (&hfd, 0, sizeof hfd);
+       hfd.readonly = 1;
+       hfd.blocksize = 512;
+       if (hdf_open (&hfd, current_hfdlg.filename)) {
+           hdf_read (&hfd, id, 0, 512);
+           bsize = hfd.virtsize;
+           hdf_close (&hfd);
        }
     }
     cyls = 0;
@@ -7534,7 +7542,7 @@ static INT_PTR CALLBACK HarddriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
     {
        int index;
        oposn = -1;
-       hdf_init ();
+       hdf_init_target ();
        recursive++;
        inithdcontroller (hDlg);
        CheckDlgButton (hDlg, IDC_HDF_RW, current_hfdlg.rw);
@@ -7773,7 +7781,7 @@ static void harddiskdlg_button (HWND hDlg, int button)
 
      case IDC_NEW_HD:
        memset (&current_hfdlg, 0, sizeof (current_hfdlg));
-       if (hdf_init() == 0) {
+       if (hdf_init_target () == 0) {
            char tmp[MAX_DPATH];
            WIN32GUI_LoadUIString (IDS_NOHARDDRIVES, tmp, sizeof (tmp));
            gui_message (tmp);
index 8c62c182a68075d81e6f0373de06406b0a8b66f0..cb0ea14744103dcc01b90ab609c13da9b0e03e1b 100755 (executable)
@@ -1,4 +1,32 @@
 
+Beta 2:
+
+- fixed b1 slowdown when lots of sprites are visible
+- CD32 mode CD32.TM detection added (log only)
+- RTG vblank interrupt changes, use INTB_VERTB if RTG vblank is set
+  to "Chipset". (very compatible, no extra interrups happening) Uses
+  INTB_PORTS if different than Chipset. (Previously used INTB_EXTER but
+  some games didn't like it, Ports seems to be more compatible) Added
+  "Disabled" option which disables RTG vblank support.
+- fixed possible crash when closing fullscreen mode
+- uaeserial.device unit 10+ open failure fix
+- hardfile os-specific and common stuff separated more logically, more
+  portable (and easier to add new image types, see below)
+
+- VHD (VirtualPC) fixed and dynamic harddrive images supported. Reading
+  and writing supported, image creation supported. HDF->VHD conversion
+  is not built-in but you can use for example VHDTool or any other tool
+  that supports raw to vhd conversion (hdf is a basic raw harddrive
+  image type) "Differencing" image type may be supported in future
+  (differencing = all written data goes to another image, like adf
+  "saveimages")
+  
+  WARNING: vhd support may not be bug free yet. Remember backups!
+  
+  Why YetAnotherImageFormat? Main point is dynamic images. New empty
+  dynamic image is always very small (even if virtual size is multiple
+  gigabytes) and image grows automatically when needed.
+
 Beta 1:
 
 - DXSDK updated, D3D filters again require updated DX runtime