]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc2000.zip
authorToni Wilen <twilen@winuae.net>
Sun, 13 Dec 2009 13:32:26 +0000 (15:32 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:49:53 +0000 (21:49 +0200)
blitter.c
custom.c
gencpu.c
include/events_jit.h
od-win32/WinUAE_Install.nsi
od-win32/resources/winuae.rc
od-win32/resources/winuae_minimal.rc
od-win32/win32.h
od-win32/win32gfx.c
od-win32/win32gui.c
od-win32/winuaechangelog.txt

index af1c2a71e1cc21ca43ab93c129bbd12fd7f8025a..4477fd30b148300362a5c65378c14f190799855e 100644 (file)
--- a/blitter.c
+++ b/blitter.c
@@ -40,7 +40,7 @@ static int original_ch, original_fill, original_line;
 static int blinea_shift;
 static uae_u16 blinea, blineb;
 static int blitline, blitfc, blitfill, blitife, blitsing, blitdesc;
-static int blitonedot, blitsign;
+static int blitonedot, blitsign, blitlinepixel;
 static int blit_add;
 static int blit_modadda, blit_modaddb, blit_modaddc, blit_modaddd;
 static int blit_ch;
@@ -73,7 +73,6 @@ static long blit_first_cycle;
 static int blit_last_cycle, blit_dmacount, blit_dmacount2;
 static int blit_linecycles, blit_extracycles, blit_nod;
 static const int *blit_diag;
-static int blit_line_pixel;
 static int blit_frozen, blit_faulty;
 static int blit_final;
 
@@ -589,19 +588,18 @@ static void blitter_line (void)
        uae_u16 blitbhold = blineb & 1 ? 0xFFFF : 0;
        uae_u16 blitchold = blt_info.bltcdat;
 
-       if (blitsing && blitonedot)
-               blitahold = 0;
-       blitonedot++;
+       blitlinepixel = !blitsing || (blitsing && !blitonedot);
        blt_info.bltddat = blit_func (blitahold, blitbhold, blitchold, bltcon0 & 0xFF);
+       blitonedot++;
 }
 
 static void blitter_line_proc (void)
 {
        if (bltcon0 & 0x800) {
-               if (!blitsign)
-                       bltapt += (uae_s16)blt_info.bltamod;
-               else
+               if (blitsign)
                        bltapt += (uae_s16)blt_info.bltbmod;
+               else
+                       bltapt += (uae_s16)blt_info.bltamod;
        }
 
        if (!blitsign) {
@@ -638,7 +636,6 @@ STATIC_INLINE void blitter_nxline (void)
        blineb = (blineb << 1) | (blineb >> 15);
        vblitsize--;
        bltstate = BLT_read;
-       blit_line_pixel = 0;
 }
 
 #ifdef CPUEMU_12
@@ -686,17 +683,6 @@ static void decide_blitter_line (int hsync, int hpos)
                                break;
                        }
 
-                       /* onedot mode and no pixel = bus write access is skipped */
-                       if (c == 4 && blitsing && blitonedot > 1) {
-                               if (vblitsize == 0) {
-                                       bltdpt = bltcpt;
-                                       blit_final = 1;
-                                       blit_cyclecounter = 0;
-                                       blit_waitcyclecounter = 0;
-                               }
-                               break;
-                       }
-
                        if (c == 3) {
 
                                blitter_read ();
@@ -715,9 +701,13 @@ static void decide_blitter_line (int hsync, int hpos)
 
                        } else if (c == 4) {
 
-                               blitter_write ();
-                               alloc_cycle_ext (last_blitter_hpos, CYCLE_BLITTER);
-                               record_dma_blit (0x00, blt_info.bltddat, bltdpt, last_blitter_hpos);
+                               /* onedot mode and no pixel = bus write access is skipped */
+                               if (blitlinepixel) {
+                                       blitter_write ();
+                                       alloc_cycle_ext (last_blitter_hpos, CYCLE_BLITTER);
+                                       record_dma_blit (0x00, blt_info.bltddat, bltdpt, last_blitter_hpos);
+                                       blitlinepixel = 0;
+                               }
                                if (vblitsize == 0) {
                                        bltdpt = bltcpt;
                                        blit_final = 1;
@@ -818,7 +808,7 @@ STATIC_INLINE uae_u16 blitter_doblit (void)
                int ifemode = blitife ? 2 : 0;
                int fc1 = blit_filltable[d & 255][ifemode + blitfc][1];
                ddat = (blit_filltable[d & 255][ifemode + blitfc][0]
-               + (blit_filltable[d >> 8][ifemode + fc1][0] << 8));
+                       + (blit_filltable[d >> 8][ifemode + fc1][0] << 8));
                blitfc = blit_filltable[d >> 8][ifemode + fc1][1];
        }
 
@@ -1281,6 +1271,7 @@ static void do_blitter2 (int hpos, int copper)
                blinea = blt_info.bltadat;
                blineb = (blt_info.bltbdat >> blt_info.blitbshift) | (blt_info.bltbdat << (16 - blt_info.blitbshift));
                blitonedot = 0;
+               blitlinepixel = 0;
                blitsing = bltcon1 & 0x2;
                cycles = vblitsize;
        } else {
index 6435529ad3a466e24d1972b28a422850d2343042..f9819e44c9b20e404f5869d57cef3de27a9ea41d 100644 (file)
--- a/custom.c
+++ b/custom.c
@@ -54,8 +54,8 @@
 
 #define CUSTOM_DEBUG 0
 #define SPRITE_DEBUG 0
-#define SPRITE_DEBUG_MINY 0xb0
-#define SPRITE_DEBUG_MAXY 0xf8
+#define SPRITE_DEBUG_MINY 0x0
+#define SPRITE_DEBUG_MAXY 0x100
 #define SPR0_HPOS 0x15
 #define MAX_SPRITES 8
 #define SPRITE_COLLISIONS
@@ -340,7 +340,8 @@ static struct color_change color_changes[2][MAX_REG_CHANGE];
 
 struct decision line_decisions[2 * (MAXVPOS + 1) + 1];
 static struct draw_info line_drawinfo[2][2 * (MAXVPOS + 1) + 1];
-static struct color_entry color_tables[2][(MAXVPOS + 1) * 2];
+#define COLOR_TABLE_SIZE (MAXVPOS + 1) * 2
+static struct color_entry color_tables[2][COLOR_TABLE_SIZE];
 
 static int next_sprite_entry = 0;
 static int prev_next_sprite_entry;
@@ -1852,10 +1853,8 @@ STATIC_INLINE void decide_line (int hpos)
 
        if (hpos <= last_decide_line_hpos)
                return;
-       if (fetch_state != fetch_not_started)
-               return;
 
-       if (diwstate == DIW_waiting_stop) {
+       if (fetch_state == fetch_not_started && diwstate == DIW_waiting_stop) {
                int ok = 0;
                if (last_decide_line_hpos < plfstrt_start && hpos >= plfstrt_start) {
                        if (plf_state == plf_idle)
@@ -2996,7 +2995,9 @@ static void VPOSW (uae_u16 v)
        hack_vpos2vpos = vpos;
        if (hack_vpos2 > maxvpos)
                hack_vpos2 = maxvpos;
-       vpos = hack_vpos2;
+       // do not allow changing vpos backwards or vsync may never happen..
+       if (vpos < hack_vpos2)
+               vpos = hack_vpos2;
 }
 
 static void VHPOSW (uae_u16 v)
@@ -3014,7 +3015,8 @@ static void VHPOSW (uae_u16 v)
        hack_vpos2vpos = vpos;
        if (hack_vpos2 > maxvpos)
                hack_vpos2 = maxvpos;
-       vpos = hack_vpos2;
+       if (vpos < hack_vpos2)
+               vpos = hack_vpos2;
 }
 
 STATIC_INLINE uae_u16 VHPOSR (void)
@@ -4118,20 +4120,7 @@ static void update_copper (int until_hpos)
                                custom_wput_copper (c_hpos, cop_state.moveaddr, cop_state.movedata, 0);
                        }
                }
-#if 0
-               if (cop_state.movedelay100 > 0) {
-                       cop_state.movedelay100--;
-                       if (cop_state.movedelay100 == 1) {
-                               // Denise reacts to BPLCON0 change a bit earlier than Agnus
-                               BPLCON0_Denise (c_hpos, cop_state.movedata100);
-                       }
-                       if (cop_state.movedelay100 == 0) {
-                               decide_line (c_hpos);
-                               decide_fetch (c_hpos);
-                               custom_wput_copper (c_hpos, 0x100, cop_state.movedata100, 0);
-                       }
-               }
-#endif
+
                if ((c_hpos == maxhpos - 3) && (maxhpos & 1))
                        c_hpos += 1;
                else
@@ -4284,7 +4273,7 @@ static void update_copper (int until_hpos)
                        incrementing vpos and setting c_hpos to 0.  Especially the various speedup
                        hacks really assume that vpos remains constant during one line.  Hence,
                        this hack: defer the entire decision until the next line if necessary.  */
-                       if (c_hpos >= (maxhpos & ~1))
+                       if (c_hpos >= (maxhpos & ~1) || (c_hpos & 1))
                                break;
 
                        cop_state.state = COP_wait;
@@ -4343,7 +4332,7 @@ static void update_copper (int until_hpos)
                        {
                                unsigned int vcmp, hcmp, vp1, hp1;
 
-                               if (c_hpos >= (maxhpos & ~1))
+                               if (c_hpos >= (maxhpos & ~1) || (c_hpos & 1))
                                        break;
                                if (copper_cant_read (old_hpos, 0))
                                        continue;
@@ -4392,10 +4381,10 @@ static void compute_spcflag_copper (int hpos)
        }
        // do not use past cycles if starting for the first time in this line
        // (write to DMACON for example) hpos+1 for long lines
-       if (!wasenabled && cop_state.hpos < hpos && hpos + 1 < maxhpos) {
+       if (!wasenabled && cop_state.hpos < hpos && hpos < maxhpos) {
                hpos = (hpos + 2) & ~1;
-               if (hpos > (maxhpos & ~1))
-                       hpos = maxhpos & ~1;
+               if (hpos > (maxhpos_short & ~1))
+                       hpos = maxhpos_short & ~1;
                cop_state.hpos = hpos;
        }
        copper_enabled_thisline = 1;
@@ -5339,7 +5328,7 @@ static void hsync_handler (void)
        /* See if there's a chance of a copper wait ending this line.  */
        cop_state.hpos = 0;
        cop_state.last_write = 0;
-       compute_spcflag_copper (hpos);
+       compute_spcflag_copper (maxhpos);
        serial_hsynchandler ();
 #ifdef CUSTOM_SIMPLE
        do_sprites (0);
index e989cac08472fa6bd601aa0dcd6890c762aa45f6..880a9b8b6e231f40d3213ca92bced1b5d72f2dd2 100644 (file)
--- a/gencpu.c
+++ b/gencpu.c
@@ -1528,35 +1528,23 @@ static void gen_opcode (unsigned long int opcode)
        case i_OR:
        case i_AND:
        case i_EOR:
+       {
+               int c = 0;
                genamode (curi->smode, "srcreg", curi->size, "src", 1, 0, 0);
                genamode (curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0);
                printf ("\tsrc %c= dst;\n", curi->mnemo == i_OR ? '|' : curi->mnemo == i_AND ? '&' : '^');
                genflags (flag_logical, curi->size, "src", "", "");
-               if (curi->smode == imm) {
-                       int c = 0;
-                       if (curi->size == sz_long && curi->dmode == Dreg) {
-                               // op.L #,Dn = +2 cycles (AND), +4 cycles (EOR,OR)
-                               if (curi->mnemo == i_EOR || curi->mnemo == i_OR)
-                                       c += 4;
-                               else
-                                       c += 2;
-                       }
-                       if (c > 0)
-                               addcycles000 (c);
-               } else if (curi->smode == Dreg) {
-                       int c = 0;
-                       if (curi->dmode == Dreg) {
-                               if (curi->size == sz_long)
-                                       c += 2;
-                               if (curi->size == sz_long && curi->smode == Dreg)
-                                       c += 2;
-                       }
-                       if (c > 0)
-                               addcycles000 (c);
+               if (curi->dmode == Dreg && curi->size == sz_long) {
+                       c += 2;
+                       if (curi->smode == imm || curi->smode == Dreg)
+                               c += 2;
                }
+               if (c > 0)
+                       addcycles000 (c);
                fill_prefetch_next ();
                genastore ("src", curi->dmode, "dstreg", curi->size, "dst");
                break;
+       }
        case i_ORSR:
        case i_EORSR:
                printf ("\tMakeSR ();\n");
index 9a5157d911a267e4526fae3ce3f700faf7acaf71..e02132cb71aa410eb38baee89acb428109e0ab9c 100644 (file)
@@ -1,84 +1,84 @@
 #if 1
 
 /* Let's see whether hiding this away somewhere where the compiler can't
-   see it will cure it of its silly urge to mis-optimize the comparison */
+see it will cure it of its silly urge to mis-optimize the comparison */
 extern long int diff32(frame_time_t x, frame_time_t y);
 extern int pissoff_value;
 
 STATIC_INLINE void events_schedule (void)
 {
-    int i;
+       int i;
 
-    unsigned long int mintime = ~0L;
-    for (i = 0; i < ev_max; i++) {
-       if (eventtab[i].active) {
-           unsigned long int eventtime = eventtab[i].evtime - currcycle;
+       unsigned long int mintime = ~0L;
+       for (i = 0; i < ev_max; i++) {
+               if (eventtab[i].active) {
+                       unsigned long int eventtime = eventtab[i].evtime - currcycle;
 #ifdef EVENT_DEBUG
-           if (eventtime == 0) {
-               write_log ("event %d bug\n",i);
-           }
+                       if (eventtime == 0) {
+                               write_log ("event %d bug\n",i);
+                       }
 #endif
-           if (eventtime < mintime)
-               mintime = eventtime;
+                       if (eventtime < mintime)
+                               mintime = eventtime;
+               }
        }
-    }
-    nextevent = currcycle + mintime;
+       nextevent = currcycle + mintime;
 }
 
 extern signed long pissoff;
 
 STATIC_INLINE void cycles_do_special (void)
 {
-    if (pissoff >= 0)
-       pissoff = -1;
+       if (pissoff >= 0)
+               pissoff = -1;
 }
 
 STATIC_INLINE void do_extra_cycles (unsigned long cycles_to_add)
 {
-    pissoff -= cycles_to_add;
+       pissoff -= cycles_to_add;
 }
 
 STATIC_INLINE unsigned long int get_cycles (void)
 {
-    return currcycle;
+       return currcycle;
 }
 
 STATIC_INLINE void set_cycles (unsigned long int x)
 {
-    currcycle = x;
+       currcycle = x;
 }
 
 STATIC_INLINE void do_cycles_slow (unsigned long cycles_to_add)
 {
-    if ((pissoff -= cycles_to_add) >= 0)
-       return;
-
-    cycles_to_add = -pissoff;
-    pissoff = 0;
-
-    if (is_lastline && eventtab[ev_hsync].evtime - currcycle <= cycles_to_add) {
-       int rpt = read_processor_time ();
-       int v = rpt - vsyncmintime;
-       if (v > (int)syncbase || v < -((int)syncbase))
-           vsyncmintime = rpt;
-       if (v < 0) {
-           pissoff = pissoff_value * CYCLE_UNIT;
-           return;
+       if ((pissoff -= cycles_to_add) >= 0)
+               return;
+
+       cycles_to_add = -pissoff;
+       pissoff = 0;
+
+       if (is_lastline && eventtab[ev_hsync].evtime - currcycle <= cycles_to_add) {
+               int rpt = read_processor_time ();
+               int v = rpt - vsyncmintime;
+               if (v > (int)syncbase || v < -((int)syncbase))
+                       vsyncmintime = rpt;
+               if (v < 0) {
+                       pissoff = pissoff_value * CYCLE_UNIT;
+                       return;
+               }
        }
-    }
-    while ((nextevent - currcycle) <= cycles_to_add) {
-       int i;
-       cycles_to_add -= (nextevent - currcycle);
-       currcycle = nextevent;
-
-       for (i = 0; i < ev_max; i++) {
-           if (eventtab[i].active && eventtab[i].evtime == currcycle) {
-               (*eventtab[i].handler)();
-           }
+       while ((nextevent - currcycle) <= cycles_to_add) {
+               int i;
+               cycles_to_add -= (nextevent - currcycle);
+               currcycle = nextevent;
+
+               for (i = 0; i < ev_max; i++) {
+                       if (eventtab[i].active && eventtab[i].evtime == currcycle) {
+                               (*eventtab[i].handler)();
+                       }
+               }
+               events_schedule ();
        }
-       events_schedule ();
-    }
-    currcycle += cycles_to_add;
+       currcycle += cycles_to_add;
 }
 
 #define do_cycles do_cycles_slow
@@ -87,7 +87,7 @@ STATIC_INLINE void do_cycles_slow (unsigned long cycles_to_add)
 #else
 
 /* Let's see whether hiding this away somewhere where the compiler can't
-   see it will cure it of its silly urge to mis-optimize the comparison */ extern long int diff32(frame_time_t x, frame_time_t y);
+see it will cure it of its silly urge to mis-optimize the comparison */ extern long int diff32(frame_time_t x, frame_time_t y);
 
 extern long cycles_to_next_event;
 extern long max_cycles_to_next_event;
@@ -96,88 +96,88 @@ extern long pissoff;
 
 STATIC_INLINE void cycles_do_special(void)
 {
-    if (cycles_to_next_event >= 0) {
-       pissoff += cycles_to_next_event;
-       cycles_to_next_event = 0;
-    }
+       if (cycles_to_next_event >= 0) {
+               pissoff += cycles_to_next_event;
+               cycles_to_next_event = 0;
+       }
 }
 
 
 STATIC_INLINE void do_extra_cycles (unsigned long cycles_to_add) {
-    pissoff -= cycles_to_add;
+       pissoff -= cycles_to_add;
 }
 
 STATIC_INLINE unsigned long int get_cycles (void)
 {
-    if (cycles_to_next_event <= max_cycles_to_next_event) {
-       max_cycles_to_next_event = cycles_to_next_event;
-       return nextevent - cycles_to_next_event;
-    } else {
-       return nextevent - max_cycles_to_next_event;
-    }
+       if (cycles_to_next_event <= max_cycles_to_next_event) {
+               max_cycles_to_next_event = cycles_to_next_event;
+               return nextevent - cycles_to_next_event;
+       } else {
+               return nextevent - max_cycles_to_next_event;
+       }
 }
 
 STATIC_INLINE void events_schedule (void)
 {
-    int i;
+       int i;
 
-    unsigned long int curcycles = get_cycles();
-    unsigned long int mintime = ~0L;
+       unsigned long int curcycles = get_cycles();
+       unsigned long int mintime = ~0L;
 
-    cycles_to_hsync_event=eventtab[ev_hsync].evtime - curcycles;
-    for (i = 0; i < ev_max; i++) {
-       if (eventtab[i].active) {
-           unsigned long int eventtime = eventtab[i].evtime - curcycles;
-           if (eventtime < mintime)
-               mintime = eventtime;
+       cycles_to_hsync_event=eventtab[ev_hsync].evtime - curcycles;
+       for (i = 0; i < ev_max; i++) {
+               if (eventtab[i].active) {
+                       unsigned long int eventtime = eventtab[i].evtime - curcycles;
+                       if (eventtime < mintime)
+                               mintime = eventtime;
+               }
        }
-    }
-    nextevent = curcycles + mintime;
-    max_cycles_to_next_event = mintime;
-    cycles_to_next_event = mintime;
-    cycles_to_hsync_event = mintime - cycles_to_hsync_event;
+       nextevent = curcycles + mintime;
+       max_cycles_to_next_event = mintime;
+       cycles_to_next_event = mintime;
+       cycles_to_hsync_event = mintime - cycles_to_hsync_event;
 }
 
 STATIC_INLINE void set_cycles (unsigned long int x)
 {
-    cycles_to_next_event = nextevent - x;
-    events_schedule ();
+       cycles_to_next_event = nextevent - x;
+       events_schedule ();
 }
 
 STATIC_INLINE void do_cycles_slow (long cycles_to_add)
 {
-    cycles_to_next_event -= cycles_to_add;
-    if (cycles_to_next_event > 0)
-       return;
-
-    cycles_to_next_event += pissoff;
-    pissoff=0;
-
-    if (is_lastline
-       && /*cycles_to_next_event <= cycles_to_hsync_event*/
-       eventtab[ev_hsync].evtime == nextevent)
-    {
-       frame_time_t now=read_processor_time();
-       if (diff32(now, vsyncmintime)<0)
+       cycles_to_next_event -= cycles_to_add;
+       if (cycles_to_next_event > 0)
+               return;
+
+       cycles_to_next_event += pissoff;
+       pissoff=0;
+
+       if (is_lastline
+               && /*cycles_to_next_event <= cycles_to_hsync_event*/
+               eventtab[ev_hsync].evtime == nextevent)
        {
-           cycles_to_next_event += 3000 * CYCLE_UNIT;
-           return;
+               frame_time_t now=read_processor_time();
+               if (diff32(now, vsyncmintime)<0)
+               {
+                       cycles_to_next_event += 3000 * CYCLE_UNIT;
+                       return;
+               }
        }
-    }
-    cycles_to_add=0;
-    while (cycles_to_next_event <= cycles_to_add) {
-       int i;
-
-       cycles_to_add-=cycles_to_next_event;
-       cycles_to_next_event=0;
-       for (i = 0; i < ev_max; i++) {
-           if (eventtab[i].active && eventtab[i].evtime == nextevent) {
-               (*eventtab[i].handler) ();
-           }
+       cycles_to_add=0;
+       while (cycles_to_next_event <= cycles_to_add) {
+               int i;
+
+               cycles_to_add-=cycles_to_next_event;
+               cycles_to_next_event=0;
+               for (i = 0; i < ev_max; i++) {
+                       if (eventtab[i].active && eventtab[i].evtime == nextevent) {
+                               (*eventtab[i].handler) ();
+                       }
+               }
+               events_schedule();
        }
-       events_schedule();
-    }
-    cycles_to_next_event -= cycles_to_add;
+       cycles_to_next_event -= cycles_to_add;
 }
 
 #define do_cycles do_cycles_slow
@@ -186,13 +186,13 @@ STATIC_INLINE void do_cycles_slow (long cycles_to_add)
 #endif
 
 /* This is a special-case function.  Normally, all events should lie in the
-   future; they should only ever be active at the current cycle during
-   do_cycles.  However, a snapshot is saved during do_cycles, and so when
-   restoring it, we may have other events pending.  */ STATIC_INLINE void handle_active_events (void) {
-    int i;
-    for (i = 0; i < ev_max; i++) {
-       if (eventtab[i].active && eventtab[i].evtime == currcycle) {
-           (*eventtab[i].handler)();
+future; they should only ever be active at the current cycle during
+do_cycles.  However, a snapshot is saved during do_cycles, and so when
+restoring it, we may have other events pending.  */ STATIC_INLINE void handle_active_events (void) {
+       int i;
+       for (i = 0; i < ev_max; i++) {
+               if (eventtab[i].active && eventtab[i].evtime == currcycle) {
+                       (*eventtab[i].handler)();
+               }
        }
-    }
 }
index cf5b858f45ae920e5da1999a10b42e25391fb188..c85407def9b72c57ccae0e7682fd94df01ab978f 100644 (file)
@@ -1,5 +1,5 @@
 !define PRODUCT_NAME "WinUAE"
-!define PRODUCT_VERSION "1.6.1"
+!define PRODUCT_VERSION "2.0.0"
 !define PRODUCT_PUBLISHER "Arabuusimiehet"
 !define PRODUCT_WEB_SITE "http://www.winuae.net/"
 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\winuae.exe"
index c3e294251bb1e0df4c66d29cb4b04c60e0476e34..8dc3fb0c981c736ad17b95047be435cf8945f8a8 100644 (file)
@@ -431,8 +431,8 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK |
 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
+    DEFPUSHBUTTON   "Ok",ID_OK,177,224,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,214\r
 END\r
 \r
 IDD_ABOUT DIALOGEX 0, 0, 300, 191\r
@@ -1232,7 +1232,7 @@ BEGIN
     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_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.\nMikko Nieminen - demo compatibility testing.\nArabuusimiehet - [This information is on a need-to-know basis]"\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
@@ -1251,7 +1251,7 @@ BEGIN
     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_SURFACES            "Surfaces"\r
     IDS_RESERVED            "Reserved"\r
     IDS_BLOCKSIZE           "Block size"\r
     IDS_NAME                "Name"\r
index 34f7d197101aed37976ddf59418c15921d57bd80..e03b2ef7b9e41cc1a2afb535eba31c7489323f0e 100644 (file)
@@ -52,6 +52,7 @@ IDI_DISKIMAGE           ICON                    "diskimage.ico"
 IDI_PORTS               ICON                    "port.ico"
 IDI_CONFIGFILE          ICON                    "configfile.ico"
 IDI_FILE                ICON                    "file.ico"
+IDI_EXPANSION           ICON                    "expansion.ico"
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -92,10 +93,10 @@ 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
+    LTEXT           "Main ROM file:",IDC_ROMTEXT,14,13,263,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
+    LTEXT           "Extended ROM file:",IDC_ROMFILE2TEXT,14,43,263,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,
@@ -103,10 +104,10 @@ BEGIN
     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
+    LTEXT           "Cartridge ROM file:",IDC_FLASHTEXT2,12,110,265,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
+    LTEXT           "Flash RAM file:",IDC_FLASHTEXT,12,142,265,10
     EDITTEXT        IDC_FLASHFILE,12,155,262,13,ES_AUTOHSCROLL
     PUSHBUTTON      "...",IDC_FLASHCHOOSER,280,154,10,15
 END
@@ -152,7 +153,7 @@ BEGIN
     RTEXT           "Fullscreen:",IDC_STATIC,17,19,40,15,SS_CENTERIMAGE
 END
 
-IDD_MEMORY DIALOGEX 0, 0, 300, 239
+IDD_MEMORY DIALOGEX 0, 0, 300, 158
 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 EXSTYLE WS_EX_CONTEXTHELP
 FONT 8, "MS Sans Serif", 0, 0, 0x1
@@ -170,77 +171,65 @@ BEGIN
     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        "A3000/A4000 Advanced Memory Settings",-1,13,179,275,57
-    RTEXT           "Motherboard Fast RAM:",-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           "Prosessor Slot Fast RAM:",-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
+    GROUPBOX        "A3000/A4000 Advanced Memory Settings",-1,14,84,274,65
+    RTEXT           "Motherboard Fast RAM:",-1,40,100,129,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_MBMEM1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,181,96,59,20
+    EDITTEXT        IDC_MBRAM1,244,99,34,12,ES_CENTER | ES_READONLY
+    RTEXT           "Processor Slot Fast RAM:",-1,40,123,129,10,SS_CENTERIMAGE
+    CONTROL         "",IDC_MBMEM2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,181,119,59,20
+    EDITTEXT        IDC_MBRAM2,244,122,34,12,ES_CENTER | ES_READONLY
 END
 
-IDD_CPU DIALOGEX 0, 0, 300, 226
+IDD_CPU DIALOGEX 0, 0, 300, 241
 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
+    GROUPBOX        "CPU",IDC_STATIC,5,1,81,144,BS_LEFT
+    CONTROL         "68000",IDC_CPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,15,63,10
+    CONTROL         "68010",IDC_CPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,28,65,10
+    CONTROL         "68020",IDC_CPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,41,63,10
+    CONTROL         "68030",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,54,64,10
+    CONTROL         "68040",IDC_CPU4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,67,66,10
+    CONTROL         "68060",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,80,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
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,107,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
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,119,73,10
+    GROUPBOX        "CPU Emulation Speed",IDC_STATIC,90,3,205,92
     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         "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,114,71,67,20
+    CONTROL         "",IDC_CPUIDLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,219,71,69,20
+    GROUPBOX        "Advanced JIT Settings",IDC_STATIC,90,147,205,91
+    CONTROL         "Slider1",IDC_CACHE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,140,161,115,20
+    EDITTEXT        IDC_CACHETEXT,255,166,30,12,ES_CENTER | ES_READONLY
+    CONTROL         "Hard flush",IDC_HARDFLUSH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,194,63,10
+    CONTROL         "Constant jump",IDC_CONSTJUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,208,63,10
+    CONTROL         "FPU support",IDC_JITFPU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,222,62,10
+    CONTROL         "No flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,168,194,62,10
+    CONTROL         "Direct",IDC_TRUST0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,235,194,52,10
+    CONTROL         "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,235,208,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
+                    "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,221,73,10
+    GROUPBOX        "FPU",IDC_STATIC,5,147,81,90,BS_LEFT
+    CONTROL         "24-bit addressing",IDC_COMPATIBLE24,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,94,73,8
+    CONTROL         "None",IDC_FPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,161,63,10
+    CONTROL         "68881",IDC_FPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,175,63,10
+    CONTROL         "68882",IDC_FPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,188,63,10
+    CONTROL         "CPU internal",IDC_FPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,202,63,10
+    RTEXT           "CPU Frequency",IDC_STATIC,105,119,51,10,SS_CENTERIMAGE
+    GROUPBOX        "Cycle-exact CPU Emulation Speed",IDC_STATIC,90,99,205,46
+    RTEXT           "CPU",IDC_STATIC,96,77,17,10,SS_CENTERIMAGE
+    RTEXT           "Chipset",IDC_STATIC,182,77,26,9,SS_CENTERIMAGE
+    RTEXT           "CPU Idle",IDC_STATIC,231,60,47,9,SS_CENTERIMAGE
+    RTEXT           "Cache size:",IDC_STATIC,95,167,42,10,SS_CENTERIMAGE
+    CONTROL         "68040 MMU [] 68040 MMU emulation. Not compatible with JIT.",IDC_MMUENABLE,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,132,73,10
+    COMBOBOX        IDC_CPU_FREQUENCY,165,118,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    EDITTEXT        IDC_CPU_FREQUENCY2,218,117,70,15
 END
 
 IDD_FLOPPY DIALOGEX 0, 0, 300, 240
@@ -311,43 +300,49 @@ BEGIN
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,203,100,10
 END
 
-IDD_SOUND DIALOGEX 0, 0, 300, 231
+IDD_SOUND 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
-    COMBOBOX        IDC_SOUNDCARDLIST,5,9,291,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
+    COMBOBOX        IDC_SOUNDCARDLIST,5,3,291,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "Sound Emulation",IDC_SOUNDSETTINGS,5,20,120,85
+    CONTROL         "Disabled",IDC_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,35,101,10
+    CONTROL         "Disabled, but emulated",IDC_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,48,102,10
+    CONTROL         "Enabled",IDC_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,61,102,10
+    CONTROL         "Enabled, 100% accurate",IDC_SOUND3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,74,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
+    GROUPBOX        "Settings",IDC_SOUNDINTERPOLATION2,6,106,290,60
+    LTEXT           "Frequency:",IDC_SOUNDFREQTXT,11,140,53,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDFREQ,13,149,51,75,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Audio filter:",IDC_SOUNDFILTERTXT,209,140,77,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDFILTER,209,149,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Channel mode:",IDC_SOUNDSTEREOTXT,11,116,57,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDSTEREO,13,125,122,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,209,116,75,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDINTERPOLATION,209,125,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Stereo separation:",IDC_SOUNDSTEREOSEPTXT,141,116,63,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDSTEREOSEP,142,125,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Stereo delay:",IDC_SOUNDSTEREOMIXTXT,141,140,63,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_SOUNDSTEREOMIX,142,149,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "Floppy Drive Sound Emulation",IDC_STATIC,6,172,220,60
+    CONTROL         "",IDC_SOUNDDRIVEVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,14,186,107,19
+    EDITTEXT        IDC_SOUNDDRIVEVOLUME2,124,188,40,12,ES_CENTER | ES_READONLY
+    COMBOBOX        IDC_SOUNDDRIVE,173,187,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_SOUNDDRIVESELECT,18,209,202,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_SOUNDSWAP,73,149,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Swap channels:",IDC_SOUNDSWAPTXT,74,140,61,8,SS_CENTERIMAGE
+    CONTROL         "Automatic switching",IDC_SOUND_AUTO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,14,89,103,10
+    CONTROL         "Exclusive mode",IDC_SOUND_EXCLUSIVE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,137,25,154,10
+    CONTROL         "DirectSound",IDC_SOUND_DS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,181,55,10
+    CONTROL         "WASAPI",IDC_SOUND_WASAPI,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,193,53,10
+    CONTROL         "OpenAL",IDC_SOUND_OPENAL,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,205,53,10
+    CONTROL         "PortAudio",IDC_SOUND_PORTAUDIO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,217,58,10
+    GROUPBOX        "Drivers",IDC_STATIC,230,172,66,60
 END
 
 IDD_LOADSAVE DIALOGEX 0, 0, 302, 241
@@ -374,11 +369,11 @@ BEGIN
     PUSHBUTTON      "Save As...",IDC_SAVE,175,225,44,15
 END
 
-IDD_IOPORTS DIALOGEX 0, 0, 300, 208
+IDD_IOPORTS DIALOGEX 0, 0, 300, 228
 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,86
+    GROUPBOX        "Parallel Port",IDC_STATIC,5,2,291,86
     RTEXT           "Printer:",IDC_STATIC,12,15,25,15,SS_CENTERIMAGE
     COMBOBOX        IDC_PRINTERLIST,49,15,232,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "Flush print job",IDC_FLUSHPRINTER,114,51,58,12
@@ -386,11 +381,10 @@ BEGIN
     EDITTEXT        IDC_PRINTERAUTOFLUSH,255,50,25,12,ES_NUMBER
     RTEXT           "Type:",IDC_STATIC,15,33,21,15,SS_CENTERIMAGE
     EDITTEXT        IDC_PS_PARAMS,114,67,167,12,ES_AUTOHSCROLL
-    GROUPBOX        "Serial Port",IDC_SERIALFRAME,4,92,292,48
+    GROUPBOX        "Serial Port",IDC_STATIC,4,92,292,48
     COMBOBOX        IDC_SERIAL,49,104,232,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Shared",IDC_SER_SHARED,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,15,123,48,12
     CONTROL         "RTS/CTS",IDC_SER_CTSRTS,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,75,123,55,12
-    GROUPBOX        "MIDI",IDC_MIDIFRAME,4,143,292,50
     RTEXT           "Out:",IDC_MIDI,10,154,34,15,SS_CENTERIMAGE
     COMBOBOX        IDC_MIDIOUTLIST,49,154,232,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     RTEXT           "In:",IDC_MIDI2,10,174,29,15,SS_CENTERIMAGE
@@ -400,6 +394,9 @@ BEGIN
     CONTROL         "uaeserial.device",IDC_UAESERIAL,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,200,123,78,12
     COMBOBOX        IDC_PRINTERTYPELIST,49,33,232,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     RTEXT           "Ghostscript extra parameters:",IDC_STATIC,10,66,102,15,SS_CENTERIMAGE
+    GROUPBOX        "MIDI",IDC_STATIC,5,143,291,51,BS_LEFT
+    GROUPBOX        "Protection Dongle",IDC_STATIC,5,197,292,30,BS_LEFT
+    COMBOBOX        IDC_DONGLELIST,50,208,232,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_GAMEPORTS DIALOGEX 0, 0, 300, 236
@@ -434,8 +431,8 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK |
 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
+    DEFPUSHBUTTON   "Ok",ID_OK,177,224,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,214
 END
 
 IDD_ABOUT DIALOGEX 0, 0, 300, 191
@@ -462,23 +459,20 @@ 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        "Miscellaneous Options",IDC_STATIC,8,2,290,136
+    CONTROL         "Untrap = middle button",IDC_JULIAN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,19,110,10
+    CONTROL         "Show GUI on startup",IDC_SHOWGUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,31,109,10
+    CONTROL         "Native On-screen LEDs",IDC_SHOWLEDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,141,80,109,10
+    CONTROL         "Don't show taskbar button",IDC_NOTASKBARBUTTON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,56,109,10
+    CONTROL         "Use CTRL-F11 to quit",IDC_CTRLF11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,43,110,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
+    GROUPBOX        "Logging",IDC_STATIC,97,140,202,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
+    GROUPBOX        "State Files",IDC_STATIC,98,167,201,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
@@ -486,16 +480,19 @@ BEGIN
     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         "Always on top",IDC_ALWAYSONTOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,69,110,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         "uaenet.device",IDC_SANA2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,66,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
+    COMBOBOX        IDC_SCSIMODE,213,30,80,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_LANGUAGE,153,117,122,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        "Language",IDC_STATIC,138,107,154,27
+    CONTROL         "Disable screensaver",IDC_POWERSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,82,109,10
+    COMBOBOX        IDC_DD_SURFACETYPE,213,63,79,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "DirectDraw display buffer:",IDC_STATIC,195,50,92,10,SS_CENTERIMAGE
+    RTEXT           "SCSI and CD/DVD access method:",IDC_STATIC,151,12,126,10,SS_CENTERIMAGE
+    CONTROL         "Synchronize clock",IDC_CLOCKSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,95,111,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,19,108,100,10
+    CONTROL         "RTG On-screen LEDs",IDC_SHOWLEDSRTG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,141,93,109,10
 END
 
 IDD_HARDFILE DIALOGEX 0, 0, 299, 249
@@ -613,8 +610,6 @@ BEGIN
     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
@@ -655,7 +650,7 @@ BEGIN
     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
+    LTEXT           "A4091/A4000T SCSI not yet implemented.",IDC_STATIC,17,174,159,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
@@ -679,13 +674,13 @@ BEGIN
     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         "Disable frame rate limit",IDC_AVIOUTPUT_FRAMELIMITER,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,71,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
+    CONTROL         "Slider1",IDC_AVIOUTPUT_FPS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_TABSTOP,143,74,87,11
+    LTEXT           "fps",IDC_AVIOUTPUT_FPS_STATIC,237,74,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
@@ -694,8 +689,9 @@ BEGIN
     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
+    CONTROL         "Disable sound output",IDC_AVIOUTPUT_NOSOUNDOUTPUT,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,88,123,10
+    CONTROL         "Disable sound sync",IDC_AVIOUTPUT_NOSOUNDSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,88,120,10
 END
 
 IDD_INPUT DIALOGEX 0, 0, 300, 242
@@ -818,12 +814,12 @@ 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
+    PUSHBUTTON      "Reset",IDC_RESETAMIGA,5,259,47,14
+    PUSHBUTTON      "Quit",IDC_QUITEMU,55,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
+    PUSHBUTTON      "Restart",IDC_RESTARTEMU,106,259,47,14,NOT WS_VISIBLE
 END
 
 IDD_PATHS DIALOGEX 0, 0, 300, 243
@@ -968,6 +964,42 @@ BEGIN
     CTEXT           "Enter address",IDC_DBG_ADDRINPUTTXT,20,1,100,10,SS_CENTERIMAGE | WS_TABSTOP
 END
 
+IDD_EXPANSION DIALOGEX 0, 0, 300, 206
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    RTEXT           "Memory: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,25,44,53,10,SS_NOTIFY | SS_CENTERIMAGE
+    CONTROL         "",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,40,60,20
+    EDITTEXT        IDC_P96RAM,152,43,34,12,ES_CENTER | ES_READONLY
+    GROUPBOX        "RTG Graphics Card",IDC_STATIC,5,12,291,113
+    CONTROL         "Scale if smaller than display size setting",IDC_RTG_SCALE,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,74,162,10
+    CONTROL         "Match host and RTG color depth if possible",IDC_RTG_MATCH_DEPTH,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,163,10
+    COMBOBOX        IDC_RTG_8BIT,211,29,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_RTG_16BIT,211,44,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_RTG_24BIT,211,59,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_RTG_32BIT,211,74,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,86,162,10
+    COMBOBOX        IDC_RTG_SCALE_ASPECTRATIO,211,101,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "Aspect ratio:",IDC_STATIC,153,102,52,10,SS_CENTERIMAGE
+    RTEXT           "Refresh rate:",IDC_STATIC,22,103,51,10,SS_CENTERIMAGE
+    COMBOBOX        IDC_RTG_VBLANKRATE,77,101,68,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "bsdsocket.library [] bsdsocket network library emulation.",IDC_SOCKETS,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,142,148,120,10
+    CONTROL         "uaenet.device [] Sana 2 compatible network device emulation. WinPcap required.",IDC_SANA2,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,142,160,77,10
+    CONTROL         "A2065 Z2 [] A2065 Ethernet Zorro II card emulation. WinPcap required.",IDC_A2065,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,233,160,57,10
+    GROUPBOX        "Network",IDC_STATIC,126,130,169,66
+    COMBOBOX        IDC_NETDEVICE,132,176,156,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "uaescsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,160,102,10
+    CONTROL         "Catweasel Z2 emulation [] Catweasel MK2 Zorro II card emulation. Physical Windows compatible Catweasel card and drivers required.",IDC_CATWEASEL,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,148,101,10
+    GROUPBOX        "Miscellaneous Expansions",IDC_STATIC,5,130,117,66
+END
+
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -975,8 +1007,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,6,1,0
- PRODUCTVERSION 1,6,1,0
+ FILEVERSION 2,0,0,0
+ PRODUCTVERSION 2,0,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -992,12 +1024,12 @@ BEGIN
         BLOCK "040904b0"
         BEGIN
             VALUE "FileDescription", "WinUAE"
-            VALUE "FileVersion", "1.6.1"
+            VALUE "FileVersion", "2.0.0"
             VALUE "InternalName", "WinUAE"
             VALUE "LegalCopyright", "© 1996-2009 under the GNU Public License (GPL)"
             VALUE "OriginalFilename", "WinUAE.exe"
             VALUE "ProductName", "WinUAE"
-            VALUE "ProductVersion", "1.6.1"
+            VALUE "ProductVersion", "2.0.0"
         END
     END
     BLOCK "VarFileInfo"
@@ -1088,7 +1120,6 @@ BEGIN
     END
 END
 
-
 /////////////////////////////////////////////////////////////////////////////
 //
 // DESIGNINFO
@@ -1137,6 +1168,7 @@ BEGIN
     IDS_FRONTEND            "Frontend"
     IDS_CHIPSET2            "Adv. Chipset"
     IDS_GAMEPORTS           "Game ports"
+    IDS_EXPANSION           "Expansions"
 END
 
 STRINGTABLE 
@@ -1180,7 +1212,7 @@ 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_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.\nMikko Nieminen - demo compatibility testing.\nArabuusimiehet - [This information is on a need-to-know basis]"
     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"
@@ -1199,7 +1231,7 @@ 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_SURFACES            "Surfaces"
     IDS_RESERVED            "Reserved"
     IDS_BLOCKSIZE           "Block size"
     IDS_NAME                "Name"
@@ -1239,6 +1271,7 @@ BEGIN
     IDS_AUTOMATIC           "Automatic"
     IDS_ALL                 "All"
     IDS_INPUTTOGGLE         "Toggle"
+    IDS_NETDISCONNECTED     "Cable disconnected"
 END
 
 STRINGTABLE 
@@ -1269,6 +1302,7 @@ BEGIN
     IDS_SCREEN_FULLSCREEN   "Fullscreen"
     IDS_SCREEN_FULLWINDOW   "Full-window"
     IDS_SCREEN_VSYNC        "VSync"
+    IDS_SCREEN_VSYNC_AUTOSWITCH "AutoVSync"
     IDS_SOUND_MONO          "Mono"
     IDS_SOUND_MIXED         "Mixed"
     IDS_SOUND_STEREO        "Stereo"
@@ -1374,8 +1408,6 @@ 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."
@@ -1385,8 +1417,6 @@ BEGIN
     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
@@ -1434,7 +1464,7 @@ END
 
 STRINGTABLE 
 BEGIN
-    IDS_PRINTER_EPSON       "Epson Matrix Printer Emulation (beta, FreeType required)"
+    IDS_PRINTER_EPSON9      "Epson Matrix Printer Emulation, 9pin"
     IDS_PRINTER_POSTSCRIPT_DETECTION "PostScript (Passthrough)"
     IDS_PRINTER_POSTSCRIPT_EMULATION 
                             "PostScript (Emulation, GhostScript required)"
@@ -1442,6 +1472,7 @@ BEGIN
     IDS_RES_LORES           "Lores"
     IDS_RES_HIRES           "Hires (normal)"
     IDS_RES_SUPERHIRES      "SuperHires"
+    IDS_PRINTER_EPSON48     "Epson Matrix Printer Emulation, 48pin"
 END
 
 #endif    // English (Neutral) resources
index 3d9b883dda962a388e226563e4fd6c60826c9e50..73c03d09df1ba776cc282737bc1230587ed7c3be 100644 (file)
 #define GETBDM(x) (((x) - ((x / 10000) * 10000)) / 100)
 #define GETBDD(x) ((x) % 100)
 
-#define WINUAEPUBLICBETA 1
+#define WINUAEPUBLICBETA 0
 #define LANG_DLL 1
 
-#define WINUAEBETA L"Beta 26"
-#define WINUAEDATE MAKEBD(2009, 12, 9)
-#define WINUAEEXTRA L"RC4"
+#define WINUAEBETA L""
+#define WINUAEDATE MAKEBD(2009, 12, 13)
+#define WINUAEEXTRA L""
 #define WINUAEREV L""
 
 #define IHF_WINDOWHIDDEN 6
index 152fabd6dbfd669be87b2317d402bb653c457f0e..1cd6ebe35aa04ac4509838d96d6bcf772f6d8ade 100644 (file)
@@ -2572,7 +2572,7 @@ oops:
 }
 
 
-void WIN32GFX_PaletteChange(void)
+void WIN32GFX_PaletteChange (void)
 {
        if (!(currentmode->flags & DM_DDRAW) || (currentmode->flags & DM_D3D))
                return;
@@ -2582,7 +2582,7 @@ void WIN32GFX_PaletteChange(void)
        DirectDraw_SetPalette (0); /* Set our real palette */
 }
 
-int WIN32GFX_ClearPalette(void)
+int WIN32GFX_ClearPalette (void)
 {
        if (currentmode->current_depth > 8)
                return 1;
@@ -2592,7 +2592,7 @@ int WIN32GFX_ClearPalette(void)
        return 1;
 }
 
-int WIN32GFX_SetPalette(void)
+int WIN32GFX_SetPalette (void)
 {
        if (!(currentmode->flags & DM_DDRAW) || (currentmode->flags & DM_D3D))
                return 1;
index 0a8609d5c360b97dd7b991c16617beba362b14bb..eadd8a8f67ee30cfd49e4afed01edc489d78c768 100644 (file)
@@ -3680,7 +3680,7 @@ static INT_PTR CALLBACK ContributorsProc (HWND hDlg, UINT msg, WPARAM wParam, LP
 
 static void DisplayContributors (HWND hDlg)
 {
-       CustomDialogBox(IDD_CONTRIBUTORS, hDlg, ContributorsProc);
+       CustomDialogBox (IDD_CONTRIBUTORS, hDlg, ContributorsProc);
 }
 
 typedef struct url_info
@@ -5258,10 +5258,10 @@ static void values_from_chipsetdlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
        if (workprefs.cpu_cycle_exact != n) {
                workprefs.cpu_cycle_exact = workprefs.blitter_cycle_exact = n;
                if (n) {
-                       if (workprefs.cpu_model == 68000) {
+                       if (workprefs.cpu_model == 68000)
                                workprefs.cpu_compatible = 1;
+                       if (workprefs.cpu_model <= 68020)
                                workprefs.m68k_speed = 0;
-                       }
                        workprefs.immediate_blits = 0;
                        workprefs.gfx_framerate = 1;
                        workprefs.cachesize = 0;
index efeecbd42a6b8272b5e3b1c356d3e783fafa92ec..d685b240369d2e93a998f25bb6340331175fd295 100644 (file)
@@ -1,4 +1,10 @@
 
+- blitter linedraw onedot mode sometimes wrote to memory even if pixel
+  was written in same line previously
+- sprite DMA start and stop positions were not checked if DDFSTRT would
+  have disabled the sprite
+- copper wait and skip must not use odd cycles (last/first cycle "border")
+
 Beta 26: (RC4)
 
 - in some specific cases copper didn't use its allocated cycle