]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1600b11.zip
authorToni Wilen <twilen@winuae.net>
Thu, 5 Feb 2009 17:54:32 +0000 (19:54 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:44:40 +0000 (21:44 +0200)
36 files changed:
audio.c
blitter.c
catweasel.c
cfgfile.c
custom.c
debug.c
disk.c
drawing.c
filesys.c
filesys_bootrom.c
gayle.c
gencpu.c
include/clipboard.h
include/native2amiga_api.h
include/newcpu.h
include/uae.h
inputdevice.c
jit/compemu.h
jit/compemu_support.c
memory.c
moduleripper.c
native2amiga.c
newcpu.c
od-win32/clipboard_win32.c
od-win32/dxwrap.c
od-win32/fsdb_win32.c
od-win32/gencpu_msvc/gencpu.exe.manifest [new file with mode: 0644]
od-win32/gencpu_msvc/gencpu_msvc.vcproj
od-win32/picasso96_win.c
od-win32/resources/resource
od-win32/resources/winuae.rc
od-win32/win32.c
od-win32/win32.h
od-win32/win32_filesys.c
od-win32/win32gui.c
od-win32/winuaechangelog.txt

diff --git a/audio.c b/audio.c
index 2e20164e61e97bbc919141c293ab7b4d0e77ba77..a20ea0062a984f60334e01c585d414e4ae1d36ca 100644 (file)
--- a/audio.c
+++ b/audio.c
@@ -183,7 +183,7 @@ void audio_sampleripper (int mode)
     while (rs) {
        if (rs->changed) {
            rs->changed = 0;
-           fetch_screenshotpath (path, sizeof (path));
+           fetch_ripperpath (path, sizeof (path));
            name[0] = 0;
            if (currprefs.dfxtype[0] >= 0)
                strcpy (name, currprefs.df[0]);
@@ -233,9 +233,9 @@ static void do_samplerip (struct audio_channel_data *adp)
                break;
            /* replace old identical but shorter sample */
            if (len > rs->len && !memcmp (rs->sample, smp, rs->len)) {
-               xfree(rs->sample);
-               rs->sample = (uae_u8*)xmalloc (len);
-               memcpy(rs->sample, smp, len);
+               xfree (rs->sample);
+               rs->sample = xmalloc (len);
+               memcpy (rs->sample, smp, len);
                write_log ("SAMPLERIPPER: replaced sample %d (%d -> %d)\n", cnt, rs->len, len);
                rs->len = len;
                rs->per = adp->per / CYCLE_UNIT;
@@ -250,14 +250,14 @@ static void do_samplerip (struct audio_channel_data *adp)
     }
     if (rs || cnt > 100)
        return;
-    rs = (struct ripped_sample*)xmalloc(sizeof(struct ripped_sample));
+    rs = xmalloc(sizeof(struct ripped_sample));
     if (prev)
        prev->next = rs;
     else
        ripped_samples = rs;
     rs->len = len;
     rs->per = adp->per / CYCLE_UNIT;
-    rs->sample = (uae_u8*)xmalloc (len);
+    rs->sample = xmalloc (len);
     memcpy(rs->sample, smp, len);
     rs->next = NULL;
     rs->changed = 1;
index 1ad2309801897e0f4d2f4efcea67e48f46d27bc1..10d290953d41c93c22b0fc4cf67d623643596bb9 100644 (file)
--- a/blitter.c
+++ b/blitter.c
@@ -33,6 +33,7 @@ static int blitter_cycle_exact;
 uae_u16 bltcon0, bltcon1;
 uae_u32 bltapt, bltbpt, bltcpt, bltdpt;
 
+static int blinea_shift;
 static uae_u16 blinea, blineb;
 static int blitline, blitfc, blitfill, blitife, blitsing, blitdesc;
 static int blitonedot, blitsign;
@@ -489,23 +490,23 @@ STATIC_INLINE void blitter_write (void)
     if (bltcon0 & 0x200) {
        if (!dmaen (DMA_BLITTER))
            return;
-       chipmem_bank.wput(bltdpt, blt_info.bltddat);
+       chipmem_bank.wput (bltdpt, blt_info.bltddat);
     }
     bltstate = BLT_next;
 }
 
 STATIC_INLINE void blitter_line_incx (void)
 {
-    if (++blt_info.blitashift == 16) {
-       blt_info.blitashift = 0;
+    if (++blinea_shift == 16) {
+       blinea_shift = 0;
        bltcpt += 2;
     }
 }
 
 STATIC_INLINE void blitter_line_decx (void)
 {
-    if (blt_info.blitashift-- == 0) {
-       blt_info.blitashift = 15;
+    if (blinea_shift-- == 0) {
+       blinea_shift = 15;
        bltcpt -= 2;
     }
 }
@@ -524,7 +525,7 @@ STATIC_INLINE void blitter_line_incy (void)
 
 static void blitter_line (void)
 {
-    uae_u16 blitahold = (blinea & blt_info.bltafwm) >> blt_info.blitashift;
+    uae_u16 blitahold = (blinea & blt_info.bltafwm) >> blinea_shift;
     uae_u16 blitbhold = blineb & 1 ? 0xFFFF : 0;
     uae_u16 blitchold = blt_info.bltcdat;
 
@@ -1017,6 +1018,8 @@ static void blit_modset (void)
 
 void reset_blit (int bltcon)
 {
+    if (bltcon == 1)
+       blinea_shift = bltcon0 >> 12;
     if (bltstate == BLT_done)
        return;
     if (bltcon)
index 01a51ea8aa65cb0c9dd55c05602286503ebde599..a39c47e81422fc6bdc75845006849c8fc72d8b91 100644 (file)
@@ -285,7 +285,7 @@ uae_u32     catweasel_do_bget (uaecptr addr)
     buf1[0] = (uae_u8)addr;
     if (handle != INVALID_HANDLE_VALUE) {
        if (!DeviceIoControl (handle, CW_PEEKREG_FULL, buf1, 1, buf2, 1, &did_read, 0))
-           write_log ("catweasel_do_bget fail err=%d\n", GetLastError());
+           write_log ("catweasel_do_bget %02x fail err=%d\n", buf1[0], GetLastError ());
     } else {
        buf2[0] = ioport_read (cwc.iobase + addr);
     }
@@ -304,7 +304,7 @@ void catweasel_do_bput (uaecptr     addr, uae_u32 b)
     buf[1] = b;
     if (handle != INVALID_HANDLE_VALUE) {
        if (!DeviceIoControl (handle, CW_POKEREG_FULL, buf, 2, 0, 0, &did_read, 0))
-           write_log ("catweasel_do_bput fail err=%d\n", GetLastError());
+           write_log ("catweasel_do_bput %02x=%02x fail err=%d\n", buf[0], buf[1], GetLastError ());
     } else {
        ioport_write (cwc.iobase + addr, b);
     }
@@ -663,7 +663,7 @@ fail:
 void catweasel_free (void)
 {
     if (cwc.direct_access) {
-       if (cwc.type == 4)
+       if (cwc.type == CATWEASEL_TYPE_MK4)
            catweasel_do_bput(3, 0x61); // enable floppy passthrough
     }
     if (handle != INVALID_HANDLE_VALUE)
index eeabd91fa9de4e003a4bac71cfcfeeffdc7744a2..e7657874a032624ae10333fb9191112dcfe5f626 100644 (file)
--- a/cfgfile.c
+++ b/cfgfile.c
@@ -3008,7 +3008,7 @@ void default_prefs (struct uae_prefs *p, int type)
     p->cs_slowmemisfast = 0;
     p->cs_resetwarning = 1;
 
-    p->gfx_filter = 1;
+    p->gfx_filter = 0;
     p->gfx_filtershader[0] = 0;
     p->gfx_filter_horiz_zoom_mult = 0;
     p->gfx_filter_vert_zoom_mult = 0;
index 9f07e32286f8dd1df83acafda327559a19a00fc9..39bbfb707c8ced3387118460a7de54ec98643e72 100644 (file)
--- a/custom.c
+++ b/custom.c
@@ -64,6 +64,8 @@
 #define SPRITE_COLLISIONS
 #define SPEEDUP
 
+#define NEW_BPL 1
+
 #define SPRBORDER 0
 
 STATIC_INLINE int nocustom(void)
@@ -517,11 +519,11 @@ void notice_new_xcolors (void)
     int i;
 
     update_mirrors ();
-    docols(&current_colors);
-    docols(&colors_for_drawing);
+    docols (&current_colors);
+    docols (&colors_for_drawing);
     for (i = 0; i < (MAXVPOS + 1) * 2; i++) {
-       docols(color_tables[0] + i);
-       docols(color_tables[1] + i);
+       docols (color_tables[0] + i);
+       docols (color_tables[1] + i);
     }
 }
 
@@ -950,7 +952,12 @@ STATIC_INLINE void maybe_first_bpl1dat (int hpos)
 STATIC_INLINE void fetch (int nr, int fm)
 {
     if (nr < toscr_nr_planes) {
+#if NEW_BPL
        uaecptr p = f_bplpt[nr];
+#else
+       uaecptr p = bplpt[nr];
+       bplpt[nr] += 2 << fm;
+#endif
        switch (fm)
        {
        case 0:
@@ -987,9 +994,10 @@ STATIC_INLINE void fetch (int nr, int fm)
     }
     if (nr == 0)
        fetch_state = fetch_was_plane0;
+#if NEW_BPL
     else if (nr == 1 && t_bplcon0_res > f_bplcon0_res)
        fetch_state = fetch_was_plane0;
-
+#endif
 }
 
 static void clear_fetchbuffer (uae_u32 *ptr, int nwords)
@@ -1459,6 +1467,7 @@ static void finish_final_fetch (int pos, int fm)
  */
 STATIC_INLINE void inc_bpl (int fm, int oe)
 {
+#if NEW_BPL
     int i;
     for (i = 0; i < f_bplcon0_planes; i++) {
        if ((oe == 0) || (oe < 0 && (i & 1)) || (oe > 0 && !(i & 1))) {
@@ -1467,6 +1476,7 @@ STATIC_INLINE void inc_bpl (int fm, int oe)
            bplptx[i] += 2 << fm;
        }
     }
+#endif
 }
 
 STATIC_INLINE int one_fetch_cycle_0 (int pos, int ddfstop_to_test, int dma, int fm)
@@ -1503,9 +1513,9 @@ STATIC_INLINE int one_fetch_cycle_0 (int pos, int ddfstop_to_test, int dma, int
            break;
        case 4:
            switch (cycle_start) {
-           case 0: inc_bpl (fm, 0); fetch (3, fm); break;
+           case 0: inc_bpl (fm, -1); fetch (3, fm); break;
            case 1: fetch (1, fm); break;
-           case 2: fetch (2, fm); break;
+           case 2: inc_bpl (fm, 1); fetch (2, fm); break;
            case 3: fetch (0, fm); break;
            }
            break;
@@ -3183,7 +3193,7 @@ static void BPLxPTH (int hpos, uae_u16 v, int num)
     decide_fetch (hpos);
     bplpt[num] = (bplpt[num] & 0x0000ffff) | ((uae_u32)v << 16);
     bplptx[num] = (bplptx[num] & 0x0000ffff) | ((uae_u32)v << 16);
-    //write_log ("%d:%d:BPL%dPTH %08X\n", hpos, vpos, num, v);
+    //write_log ("%d:%d:BPL%dPTH %08X COP=%08x\n", hpos, vpos, num, v, cop_state.ip);
 }
 static void BPLxPTL (int hpos, uae_u16 v, int num)
 {
@@ -3192,21 +3202,21 @@ static void BPLxPTL (int hpos, uae_u16 v, int num)
     decide_fetch (hpos);
     /* fix for "bitplane dma fetch at the same time while updating BPLxPTL" */
     /* fixes "3v Demo" by Cave and "New Year Demo" by Phoenix */
-    if (is_bitplane_dma (hpos - 1) == num + 1 && num > 0) {
+    if (is_bitplane_dma (hpos) == num + 1 || is_bitplane_dma (hpos - 1) == num + 1) {
        delta = 2 << f_fetchmode;
     }
     bplpt[num] = (bplpt[num] & 0xffff0000) | ((v + delta) & 0x0000fffe);
     bplptx[num] = (bplptx[num] & 0xffff0000) | ((v + delta) & 0x0000fffe);
-    //write_log ("%d:%d:BPL%dPTL %08X\n", hpos, vpos, num, v);
+    //write_log ("%d:%d:BPL%dPTL %08X COP=%08x\n", hpos, vpos, num, v, cop_state.ip);
 }
 
 static int isehb (uae_u16 bplcon0, uae_u16 bplcon2)
 {
     int bplehb;
     if (currprefs.chipset_mask & CSMASK_AGA)
-       bplehb = (bplcon0 & 0x7010) == 0x6000 && !(bplcon2 & 0x200);
+       bplehb = (bplcon0 & 0x7010) == 0x6000;
     else if (currprefs.chipset_mask & CSMASK_ECS_DENISE)
-       bplehb = ((bplcon0 & 0xFC00) == 0x6000 || (bplcon0 & 0xFC00) == 0x7000) && !(bplcon2 & 0x200);
+       bplehb = ((bplcon0 & 0xFC00) == 0x6000 || (bplcon0 & 0xFC00) == 0x7000);
     else
        bplehb = ((bplcon0 & 0xFC00) == 0x6000 || (bplcon0 & 0xFC00) == 0x7000) && !currprefs.cs_denisenoehb;
     return bplehb;
@@ -3241,6 +3251,11 @@ static void BPLCON0 (int hpos, uae_u16 v)
 
     if ((bplcon0 & (0x800 | 0x400 | 0x80)) != (v & (0x800 | 0x400 | 0x80))) // HAM/EBH/DPF change is instant
         record_register_change (hpos, 0x100, (bplcon0 & ~(0x800 | 0x400 | 0x80)) | (v & (0x0800 | 0x400 | 0x80)));
+
+    // don't ask..
+    if (GET_PLANES (v) > GET_PLANES (bplcon0) && GET_RES (v) >= GET_RES (bplcon0) && fetch_state != fetch_not_started)
+       fetch_state = fetch_was_plane0;
+
     bplcon0 = v;
 
 #ifdef ECS_DENISE
@@ -3250,7 +3265,7 @@ static void BPLCON0 (int hpos, uae_u16 v)
     }
 #endif
     expand_fmodes ();
-
+#if NEW_BPL
     if (fetch_state == fetch_not_started || diwstate != DIW_waiting_stop) {
         record_register_change (hpos, 0x100, v);
        fetch_bpl_params ();
@@ -3259,6 +3274,10 @@ static void BPLCON0 (int hpos, uae_u16 v)
        fetch_bpl_params ();
        copy_bpl_params (hpos);
     }
+#else
+    fetch_bpl_params ();
+    copy_bpl_params (hpos);
+#endif
     calcdiw ();
     estimate_last_fetch_cycle (hpos);
 
diff --git a/debug.c b/debug.c
index 44293d9a4716b62c26a634d4b3c20e9d4b72800c..48e2833dc5aea02afa19f8534d50ec0900b240a2 100644 (file)
--- a/debug.c
+++ b/debug.c
@@ -2400,6 +2400,7 @@ static void debug_sprite (char **inptr)
        for (i = 0; i < size * 2; i++)
            console_out_f ("%04X ", get_word (addr + i * 2));
        console_out_f ("\n");
+
        ypos = w1 >> 8;
        xpos = w1 & 255;
        ypose = w2 >> 8;
@@ -2426,6 +2427,9 @@ static void debug_sprite (char **inptr)
            ecs = 1;
        if (w1 & 0x80)
            sh10 = 1;
+       if (ypose < ypos)
+           ypose += 256;
+
        for (y = ypos; y < ypose; y++) {
            int x;
            addr += size * 4;
diff --git a/disk.c b/disk.c
index d3adafec3fb90660b0250121f0d475ef5b2970ca..314d69796bce70445173e6b12dbc4502032d40d6 100644 (file)
--- a/disk.c
+++ b/disk.c
@@ -190,7 +190,7 @@ int disk_debug_logging;
 int disk_debug_mode;
 int disk_debug_track = -1;
 
-#define MIN_STEPLIMIT_CYCLE (CYCLE_UNIT * 150)
+#define MIN_STEPLIMIT_CYCLE (CYCLE_UNIT * 250)
 
 static uae_u16 bigmfmbufw[0x4000 * DDHDMULT];
 static drive floppy[MAX_FLOPPY_DRIVES];
@@ -1059,6 +1059,12 @@ static void rand_shifter (drive *drv)
     }
 }
 
+static void set_steplimit (drive *drv)
+{
+    drv->steplimit = 10;
+    drv->steplimitcycle = get_cycles ();
+}
+
 static int drive_empty (drive * drv)
 {
 #ifdef CATWEASEL
@@ -1083,15 +1089,15 @@ static void drive_step (drive * drv)
 #endif
     if (drv->steplimit && get_cycles() - drv->steplimitcycle < MIN_STEPLIMIT_CYCLE) {
        if (disk_debug_logging > 1)
-           write_log (" step ignored %d", (get_cycles() - drv->steplimitcycle) / CYCLE_UNIT);
+           write_log (" step ignored drive %d, %d",
+               drv - floppy, (get_cycles() - drv->steplimitcycle) / CYCLE_UNIT);
        return;
     }
     /* A1200's floppy drive needs at least 30 raster lines between steps
      * but we'll use very small value for better compatibility with faster CPU emulation
      * (stupid trackloaders with CPU delay loops)
      */
-    drv->steplimit = 10;
-    drv->steplimitcycle = get_cycles ();
+    set_steplimit (drv);
     if (!drive_empty (drv))
        drv->dskchange = 0;
     if (direction) {
@@ -2463,8 +2469,10 @@ static void disk_doupdate_write (drive * drv, int floppybits)
                    for (dr = 0; dr < MAX_FLOPPY_DRIVES ; dr++) {
                        drive *drv2 = &floppy[dr];
                        drv2->writtento = 0;
-                       if (drives[dr])
+                       if (drives[dr]) {
                            drive_write_data (drv2);
+                           //set_steplimit (drv2);
+                       }
                    }
                }
            }
index 9857053c60861f9f1ce8557ab2c0fa33b6f7d178..81abe99f47c8ac6a5043c96990a0496988dbaeca 100644 (file)
--- a/drawing.c
+++ b/drawing.c
@@ -66,6 +66,9 @@ static void lores_reset (void)
            lores_shift++;
        lores_factor = 2;
     }
+    sprite_buffer_res = currprefs.gfx_resolution;
+    if (doublescan > 0 && sprite_buffer_res < RES_SUPERHIRES)
+       sprite_buffer_res++;
 }
 
 int aga_mode; /* mirror of chipset_mask & CSMASK_AGA */
@@ -1799,6 +1802,8 @@ static void pfield_expand_dp_bplcon (void)
        can_use_lores = 0;
 
     bplehb = (dp_for_drawing->bplcon0 & 0x80) == 0x80;
+    if ((currprefs.chipset_mask & CSMASK_AGA) && (dp_for_drawing->bplcon2 & 0x0200))
+       bplehb = 0;
     plf1pri = dp_for_drawing->bplcon2 & 7;
     plf2pri = (dp_for_drawing->bplcon2 >> 3) & 7;
     plf_sprite_mask = 0xFFFF0000 << (4 * plf2pri);
@@ -2932,10 +2937,6 @@ void reset_drawing (void)
     frame_res_cnt = FRAMES_UNTIL_RES_SWITCH;
     lightpen_y1 = lightpen_y2 = -1;
 
-    sprite_buffer_res = currprefs.gfx_resolution;
-    if (doublescan > 0 && sprite_buffer_res < RES_SUPERHIRES)
-       sprite_buffer_res++;
-
     reset_custom_limits ();
 }
 
index 59b3ea99c302545b26d308ac81ca9f1646592569..2119f80df1767f7326e3049569d43e7600af6b84 100644 (file)
--- a/filesys.c
+++ b/filesys.c
@@ -3770,30 +3770,24 @@ action_change_mode (Unit *unit, dpacket packet)
     /* either a file-handle or lock */
     uaecptr object = GET_PCK_ARG2 (packet) << 2;
     /* will be EXCLUSIVE_LOCK/SHARED_LOCK if CHANGE_LOCK,
-     * or MODE_OLDFILE/MODE_NEWFILE/MODE_READWRITE if CHANGE_FH */
+     * or MODE_OLDFILE/MODE_NEWFILE/MODE_READWRITE if CHANGE_FH *
+     * Above is wrong, it is always *_LOCK. TW. */
     long mode = GET_PCK_ARG3 (packet);
     unsigned long uniq;
     a_inode *a = NULL, *olda = NULL;
     uae_u32 err = 0;
-    TRACE(("ACTION_CHANGE_MODE(0x%lx,%d,%d)\n", object, type,mode));
+    TRACE(("ACTION_CHANGE_MODE(0x%lx,%d,%d)\n", object, type, mode));
 
-    if (! object
-       || (type != CHANGE_FH && type != CHANGE_LOCK))
-    {
+    if (! object || (type != CHANGE_FH && type != CHANGE_LOCK)) {
        PUT_PCK_RES1 (packet, DOS_FALSE);
        PUT_PCK_RES2 (packet, ERROR_INVALID_LOCK);
        return;
     }
 
-    /* @@@ Brian: shouldn't this be good enough to support
-       CHANGE_FH?  */
-    if (type == CHANGE_FH)
-       mode = (mode == 1006 ? -1 : -2);
-
-    if (type == CHANGE_LOCK)
+    if (type == CHANGE_LOCK) {
        uniq = get_long (object + 4);
-    else {
-       Key *k = lookup_key (unit, object);
+    else {
+       Key *k = lookup_key (unit, get_long (object + 36));
        if (!k) {
            PUT_PCK_RES1 (packet, DOS_FALSE);
            PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND);
@@ -3803,13 +3797,13 @@ action_change_mode (Unit *unit, dpacket packet)
     }
     a = lookup_aino (unit, uniq);
 
-    if (! a)
+    if (! a) {
        err = ERROR_INVALID_LOCK;
-    else {
+    else {
        if (mode == -1) {
-           if (a->shlock > 1)
+           if (a->shlock > 1) {
                err = ERROR_OBJECT_IN_USE;
-           else {
+           else {
                a->shlock = 0;
                a->elock = 1;
            }
@@ -5411,7 +5405,7 @@ static uae_u32 REGPARAM2 mousehack_done (TrapContext *context)
        uaecptr vp = m68k_areg (&context->regs, 4);
        input_mousehack_status (mode, diminfo, dispinfo, vp);
     } else if (mode == 10) {
-       amiga_clipboard_init ();
+       amiga_clipboard_die ();
     } else if (mode == 11) {
        amiga_clipboard_got_data (m68k_areg (&context->regs, 2), m68k_dreg (&context->regs, 2), m68k_dreg (&context->regs, 0) + 8);
     } else if (mode == 12) {
@@ -5420,6 +5414,8 @@ static uae_u32 REGPARAM2 mousehack_done (TrapContext *context)
        return amiga_clipboard_proc_start ();
     } else if (mode == 14) {
        amiga_clipboard_task_start (m68k_dreg (&context->regs, 0));
+    } else if (mode == 15) {
+       amiga_clipboard_init ();
     }
     return 1;
 }
index 023dc47acc008c42986dae06edca962b158d6392..d365cbd74f6e93c20f277d8925ea5796379d643a 100644 (file)
@@ -2,14 +2,14 @@
  db(0x60); db(0x00); db(0x09); db(0x8e); db(0x00); db(0x00); db(0x07); db(0x6c);
  db(0x00); db(0x00); db(0x00); db(0x30); db(0x00); db(0x00); db(0x01); db(0x8c);
  db(0x00); db(0x00); db(0x00); db(0x1c); db(0x00); db(0x00); db(0x02); db(0x48);
- db(0x00); db(0x00); db(0x0d); db(0x5c); db(0x43); db(0xfa); db(0x14); db(0xd3);
+ db(0x00); db(0x00); db(0x0d); db(0x5c); db(0x43); db(0xfa); db(0x15); db(0x6f);
  db(0x4e); db(0xae); db(0xff); db(0xa0); db(0x20); db(0x40); db(0x20); db(0x28);
  db(0x00); db(0x16); db(0x20); db(0x40); db(0x4e); db(0x90); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0xff); db(0xfe); db(0x2c); db(0x78); db(0x00); db(0x04);
  db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00); db(0x0b); db(0x8a);
- db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x14); db(0xdc); db(0x70); db(0x24);
+ db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x15); db(0x78); db(0x70); db(0x24);
  db(0x7a); db(0x01); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
- db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x14); db(0xcc); db(0x70); db(0x00);
+ db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x15); db(0x68); db(0x70); db(0x00);
  db(0x7a); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40);
  db(0x4a); db(0xad); db(0x01); db(0x0c); db(0x67); db(0x5a); db(0x20); db(0x3c);
  db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01);
  db(0x0a); db(0xf8); db(0x4e); db(0x90); db(0x72); db(0x03); db(0x74); db(0xf6);
  db(0x20); db(0x7c); db(0x00); db(0x20); db(0x00); db(0x00); db(0x90); db(0x88);
  db(0x65); db(0x0a); db(0x67); db(0x08); db(0x78); db(0x00); db(0x22); db(0x44);
- db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x13); db(0xd7);
+ db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x14); db(0x73);
  db(0x43); db(0xfa); db(0x00); db(0x54); db(0x70); db(0x0a); db(0x61); db(0x00);
  db(0x0b); db(0xac); db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c);
  db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0xc4); db(0x4e); db(0x90);
  db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x48); db(0xe7);
  db(0x38); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x00);
  db(0x28); db(0x01); db(0x26); db(0x09); db(0x24); db(0x48); db(0x43); db(0xfa);
- db(0x13); db(0xd1); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x14); db(0x6d); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
  db(0x4a); db(0x80); db(0x67); db(0x14); db(0x2c); db(0x40); db(0x22); db(0x0a);
  db(0xe4); db(0x8b); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x22); db(0x4e);
  db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62);
  db(0x4c); db(0xdf); db(0x44); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x78);
  db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
- db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x13); db(0x82);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x14); db(0x1e);
  db(0x43); db(0xfa); db(0x00); db(0x16); db(0x70); db(0x0f); db(0x22); db(0x3c);
  db(0x00); db(0x00); db(0x1f); db(0x40); db(0x61); db(0x00); db(0xff); db(0xa8);
  db(0x60); db(0xdc); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
@@ -74,7 +74,7 @@
  db(0x70); db(0x01); db(0x4c); db(0xdf); db(0x04); db(0x00); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0xc0); db(0xc0); db(0x70); db(0x1a); db(0x22); db(0x3c);
  db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x22); db(0x40); db(0x41); db(0xfa); db(0x12); db(0x5a); db(0x23); db(0x48);
+ db(0x22); db(0x40); db(0x41); db(0xfa); db(0x12); db(0xf6); db(0x23); db(0x48);
  db(0x00); db(0x0a); db(0x41); db(0xfa); db(0xff); db(0x28); db(0x23); db(0x48);
  db(0x00); db(0x0e); db(0x41); db(0xfa); db(0xff); db(0x20); db(0x23); db(0x48);
  db(0x00); db(0x12); db(0x33); db(0x7c); db(0x02); db(0x14); db(0x00); db(0x08);
@@ -90,7 +90,7 @@
  db(0x00); db(0x00); db(0x00); db(0x0e); db(0x52); db(0x40); db(0x0c); db(0x40);
  db(0x00); db(0x8c); db(0x66); db(0xf2); db(0x20); db(0x0a); db(0xe4); db(0x88);
  db(0x21); db(0x40); db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa);
- db(0x11); db(0xde); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b);
+ db(0x12); db(0x7a); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b);
  db(0x01); db(0x98); db(0x41); db(0xe8); db(0x00); db(0x12); db(0x4e); db(0xae);
  db(0xff); db(0x10); db(0x4c); db(0xdf); db(0x4f); db(0x03); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0x7f); db(0x7e); db(0x2c); db(0x78); db(0x00); db(0x04);
  db(0x60); db(0xf4); db(0x48); db(0xe7); db(0x40); db(0xe2); db(0x2c); db(0x78);
  db(0x00); db(0x04); db(0x41); db(0xee); db(0x01); db(0x50); db(0x20); db(0x50);
  db(0x4a); db(0x90); db(0x67); db(0x1a); db(0x22); db(0x68); db(0x00); db(0x0a);
- db(0x45); db(0xfa); db(0x11); db(0x30); db(0x10); db(0x19); db(0x12); db(0x1a);
+ db(0x45); db(0xfa); db(0x11); db(0xcc); db(0x10); db(0x19); db(0x12); db(0x1a);
  db(0xb0); db(0x01); db(0x66); db(0x06); db(0x4a); db(0x00); db(0x67); db(0x42);
  db(0x60); db(0xf2); db(0x20); db(0x50); db(0x60); db(0xe2); db(0x70); db(0x20);
  db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
  db(0xff); db(0x3a); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08);
- db(0x00); db(0x08); db(0x41); db(0xfa); db(0x11); db(0x06); db(0x25); db(0x48);
- db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x10); db(0x82); db(0x25); db(0x48);
+ db(0x00); db(0x08); db(0x41); db(0xfa); db(0x11); db(0xa2); db(0x25); db(0x48);
+ db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x11); db(0x1e); db(0x25); db(0x48);
  db(0x00); db(0x0e); db(0x41); db(0xea); db(0x00); db(0x12); db(0x20); db(0x88);
  db(0x58); db(0x90); db(0x21); db(0x48); db(0x00); db(0x08); db(0x41); db(0xee);
  db(0x01); db(0x50); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xff); db(0x0a);
  db(0x67); db(0x3a); db(0x20); db(0x52); db(0x24); db(0x40); db(0x22); db(0x4a);
  db(0x12); db(0xd8); db(0x66); db(0xfc); db(0x13); db(0x7c); db(0x00); db(0x3a);
  db(0xff); db(0xff); db(0x42); db(0x11); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x43); db(0xfa); db(0x0b); db(0xff); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0x43); db(0xfa); db(0x0c); db(0x9b); db(0x70); db(0x00); db(0x4e); db(0xae);
  db(0xfd); db(0xd8); db(0x2c); db(0x40); db(0x22); db(0x0a); db(0x4e); db(0xae);
  db(0xff); db(0x52); db(0x22); db(0x4e); db(0x2c); db(0x78); db(0x00); db(0x04);
  db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4a); db(0x20); db(0x02);
  db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2c); db(0x01); db(0x7e); db(0x06);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0b); db(0xfa);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0c); db(0x96);
  db(0x70); db(0x24); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
  db(0x66); db(0x0e); db(0x08); db(0x87); db(0x00); db(0x02); db(0x43); db(0xfa);
- db(0x0b); db(0xe8); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x0c); db(0x84); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
  db(0x28); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c);
  db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
  db(0xff); db(0x3a); db(0x20); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x2c);
  db(0xfe); db(0x62); db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x4e); db(0x75);
  db(0x2c); db(0x78); db(0x00); db(0x04); db(0x93); db(0xc9); db(0x4e); db(0xae);
  db(0xfe); db(0xda); db(0x20); db(0x40); db(0x4b); db(0xe8); db(0x00); db(0x5c);
- db(0x43); db(0xfa); db(0x0b); db(0x4f); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0x43); db(0xfa); db(0x0b); db(0xeb); db(0x70); db(0x00); db(0x4e); db(0xae);
  db(0xfd); db(0xd8); db(0x24); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00);
  db(0x00); db(0xb9); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
  db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x26); db(0x40); db(0x7c); db(0x00);
  db(0x26); db(0x86); db(0x27); db(0x46); db(0x00); db(0x04); db(0x27); db(0x46);
  db(0x00); db(0x08); db(0x27); db(0x4a); db(0x00); db(0xa0); db(0x50); db(0xeb);
  db(0x00); db(0x9e); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
- db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0a); db(0x86);
+ db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0b); db(0x06);
  db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x84);
- db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0a); db(0x83);
+ db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0b); db(0x03);
  db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x74);
  db(0x27); db(0x40); db(0x00); db(0xa8); db(0x7a); db(0x00); db(0x20); db(0x4d);
  db(0x4e); db(0xae); db(0xfe); db(0x80); db(0x20); db(0x4d); db(0x4e); db(0xae);
  db(0x25); db(0x4b); db(0x00); db(0x36); db(0x22); db(0x4a); db(0x24); db(0x43);
  db(0x97); db(0xcb); db(0x24); db(0x09); db(0x4e); db(0xae); db(0xfe); db(0xe6);
  db(0x20); db(0x02); db(0x4c); db(0xdf); db(0x4c); db(0x1c); db(0x4e); db(0x75);
- db(0x41); db(0xfa); db(0x07); db(0xa3); db(0x43); db(0xfa); db(0x01); db(0x30);
+ db(0x41); db(0xfa); db(0x08); db(0x3f); db(0x43); db(0xfa); db(0x01); db(0x30);
  db(0x70); db(0x13); db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75);
  db(0x22); db(0x6d); db(0x01); db(0x9e); db(0x33); db(0x7c); db(0x00); db(0x0a);
  db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
  db(0x00); db(0x0c); db(0x70); db(0xff); db(0x37); db(0x40); db(0x00); db(0x00);
  db(0x43); db(0xed); db(0x00); db(0x00); db(0x13); db(0x7c); db(0x00); db(0x02);
  db(0x00); db(0x08); db(0x13); db(0x7c); db(0x00); db(0x05); db(0x00); db(0x09);
- db(0x41); db(0xfa); db(0x06); db(0x13); db(0x23); db(0x48); db(0x00); db(0x0a);
+ db(0x41); db(0xfa); db(0x06); db(0xaf); db(0x23); db(0x48); db(0x00); db(0x0a);
  db(0x41); db(0xfa); db(0x03); db(0x0e); db(0x23); db(0x48); db(0x00); db(0x12);
  db(0x23); db(0x4d); db(0x00); db(0x0e); db(0x70); db(0x05); db(0x4e); db(0xae);
  db(0xff); db(0x58); db(0x20); db(0x06); db(0x4e); db(0xae); db(0xfe); db(0xc2);
  db(0x70); db(0x00); db(0x53); db(0xab); db(0x00); db(0x1c); db(0x6a); db(0x06);
  db(0x70); db(0x0a); db(0x27); db(0x40); db(0x00); db(0x1c); db(0x4a); db(0xab);
  db(0x00); db(0x14); db(0x66); db(0x18); db(0x4a); db(0xab); db(0x00); db(0x1c);
- db(0x66); db(0xe0); db(0x43); db(0xfa); db(0x06); db(0x31); db(0x70); db(0x00);
+ db(0x66); db(0xe0); db(0x43); db(0xfa); db(0x06); db(0xcd); db(0x70); db(0x00);
  db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x14);
  db(0x67); db(0x00); db(0xff); db(0xd0); db(0x4a); db(0xab); db(0x00); db(0x18);
  db(0x66); db(0x18); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xc2);
- db(0x43); db(0xfa); db(0x06); db(0x25); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0x43); db(0xfa); db(0x06); db(0xc1); db(0x70); db(0x00); db(0x4e); db(0xae);
  db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x18); db(0x67); db(0x00);
  db(0xff); db(0xb2); db(0x4a); db(0xad); db(0x01); db(0x9a); db(0x66); db(0x38);
  db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xa4); db(0x4e); db(0xae);
  db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa);
- db(0x05); db(0x54); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
+ db(0x05); db(0xd4); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
  db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0x8a);
- db(0x41); db(0xfa); db(0x05); db(0x42); db(0x70); db(0x00); db(0x72); db(0x00);
+ db(0x41); db(0xfa); db(0x05); db(0xc2); db(0x70); db(0x00); db(0x72); db(0x00);
  db(0x61); db(0x00); db(0xfd); db(0x40); db(0x2b); db(0x40); db(0x01); db(0x9a);
  db(0x67); db(0x00); db(0x02); db(0x74); db(0x60); db(0x00); db(0xff); db(0x74);
  db(0x4a); db(0xad); db(0x01); db(0x9e); db(0x66); db(0x48); db(0x4a); db(0xab);
  db(0x00); db(0x1c); db(0x66); db(0x00); db(0xff); db(0x66); db(0x4e); db(0xae);
  db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa);
- db(0x05); db(0x21); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
+ db(0x05); db(0xa1); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
  db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0x00);
- db(0xff); db(0x4a); db(0x41); db(0xfa); db(0x05); db(0x0d); db(0x70); db(0x00);
+ db(0xff); db(0x4a); db(0x41); db(0xfa); db(0x05); db(0x8d); db(0x70); db(0x00);
  db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0xfe); db(0x2b); db(0x40);
  db(0x01); db(0x9e); db(0x67); db(0x00); db(0x02); db(0x32); db(0x30); db(0x3c);
  db(0xff); db(0x38); db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0x4a);
  db(0x33); db(0x7c); db(0x00); db(0x32); db(0x00); db(0x42); db(0x30); db(0x3c);
  db(0xff); db(0x38); db(0x72); db(0x02); db(0x61); db(0x00); db(0xf9); db(0xe2);
  db(0x4e); db(0x90); db(0x41); db(0xf9); db(0x00); db(0xdf); db(0xf0); db(0x00);
- db(0x70); db(0x00); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x02); db(0x99);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x03); db(0x35);
  db(0x43); db(0xfa); db(0x00); db(0x0a); db(0x70); db(0xf6); db(0x61); db(0x00);
- db(0xfa); db(0xa4); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x34); db(0x22); db(0x3c);
- db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x4a); db(0x80); db(0x67); db(0xe6); db(0x2a); db(0x40); db(0x2b); db(0x4e);
- db(0x00); db(0x14); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
- db(0x2b); db(0x40); db(0x00); db(0x08); db(0x30); db(0x3c); db(0xff); db(0x38);
- db(0x72); db(0x0e); db(0x61); db(0x00); db(0xf9); db(0x94); db(0x20); db(0x0d);
- db(0x4e); db(0x90); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
- db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x4e); db(0xae); db(0xff); db(0x7c);
- db(0x41); db(0xee); db(0x01); db(0x7a); db(0x43); db(0xfa); db(0x02); db(0xa3);
- db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae);
- db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0xdc); db(0x42); db(0xad);
- db(0x00); db(0x08); db(0x41); db(0xfa); db(0x02); db(0x2b); db(0x43); db(0xfa);
- db(0x00); db(0x18); db(0x70); db(0xf6); db(0x22); db(0x3c); db(0x00); db(0x00);
- db(0x0f); db(0xa0); db(0x61); db(0x00); db(0xee); db(0x9a); db(0x70); db(0x00);
- db(0x4e); db(0x75); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
- db(0x00); db(0x00); db(0x00); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x38);
- db(0x72); db(0x0d); db(0x61); db(0x00); db(0xf9); db(0x3c); db(0x4e); db(0x90);
- db(0x4a); db(0x80); db(0x67); db(0x00); db(0xff); db(0x6e); db(0x2a); db(0x40);
- db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x93); db(0xc9); db(0x4e); db(0xae);
- db(0xfe); db(0xda); db(0x2b); db(0x40); db(0x00); db(0x08); db(0x61); db(0x00);
- db(0xf9); db(0x3c); db(0x72); db(0x00); db(0x32); db(0x3c); db(0x00); db(0x34);
- db(0x61); db(0x00); db(0xf9); db(0x80); db(0x28); db(0x40); db(0x4a); db(0x80);
- db(0x67); db(0x00); db(0xff); db(0x48); db(0x70); db(0x00); db(0x08); db(0xc0);
+ db(0xfa); db(0xa4); db(0x4e); db(0x75); db(0x9b); db(0xcd); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x38);
+ db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x5e); db(0x2a); db(0x40);
+ db(0x2b); db(0x4e); db(0x00); db(0x14); db(0x93); db(0xc9); db(0x4e); db(0xae);
+ db(0xfe); db(0xda); db(0x2b); db(0x40); db(0x00); db(0x08); db(0x30); db(0x3c);
+ db(0xff); db(0x38); db(0x72); db(0x0e); db(0x61); db(0x00); db(0xf9); db(0x92);
+ db(0x20); db(0x0d); db(0x4e); db(0x90); db(0x70); db(0x00); db(0x08); db(0xc0);
+ db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x4e); db(0xae);
+ db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x7a); db(0x43); db(0xfa);
+ db(0x03); db(0x3d); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
+ db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0xdc);
+ db(0x42); db(0xad); db(0x00); db(0x08); db(0x41); db(0xfa); db(0x02); db(0xc5);
+ db(0x43); db(0xfa); db(0x00); db(0x42); db(0x70); db(0xf6); db(0x22); db(0x3c);
+ db(0x00); db(0x00); db(0x0b); db(0xb8); db(0x61); db(0x00); db(0xee); db(0x98);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x30); db(0x3c); db(0xff); db(0x38);
+ db(0x72); db(0x0a); db(0x61); db(0x00); db(0xf9); db(0x44); db(0x4e); db(0x90);
+ db(0x20); db(0x0d); db(0x67); db(0x18); db(0x2c); db(0x6d); db(0x00); db(0x14);
+ db(0x20); db(0x2d); db(0x00); db(0x18); db(0x67); db(0x06); db(0x22); db(0x40);
+ db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4d); db(0x70); db(0x38);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75);
+ db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
+ db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0d); db(0x61); db(0x00);
+ db(0xf9); db(0x10); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x00);
+ db(0xff); db(0xbc); db(0x2a); db(0x40); db(0x2c); db(0x6d); db(0x00); db(0x14);
+ db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x2b); db(0x40);
+ db(0x00); db(0x08); db(0x43); db(0xfa); db(0x02); db(0xb9); db(0x70); db(0x00);
+ db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x2b); db(0x40); db(0x00); db(0x18);
+ db(0x4a); db(0x80); db(0x67); db(0x00); db(0xff); db(0x98); db(0x2c); db(0x40);
+ db(0x72); db(0x32); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa);
+ db(0x02); db(0x0e); db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae);
+ db(0xff); db(0xac); db(0x4a); db(0x80); db(0x67); db(0xea); db(0x22); db(0x00);
+ db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x72); db(0x32); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x01); db(0xf8); db(0x22); db(0x08);
+ db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac); db(0x4a); db(0x80);
+ db(0x67); db(0x00); db(0xff); db(0x62); db(0x22); db(0x00); db(0x4e); db(0xae);
+ db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x61); db(0x00);
+ db(0xf8); db(0xbc); db(0x72); db(0x00); db(0x32); db(0x3c); db(0x00); db(0x34);
+ db(0x61); db(0x00); db(0xf9); db(0x00); db(0x28); db(0x40); db(0x4a); db(0x80);
+ db(0x67); db(0x00); db(0xff); db(0x42); db(0x70); db(0x00); db(0x08); db(0xc0);
  db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x72); db(0x00);
- db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa); db(0x01); db(0xb0);
- db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44); db(0x24); db(0x00);
- db(0x66); db(0xe2); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0a);
- db(0x61); db(0x00); db(0xf8); db(0xe6); db(0x4e); db(0x90); db(0x41); db(0xed);
- db(0x00); db(0x18); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01);
+ db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa); db(0x01); db(0xcc);
+ db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44); db(0x4a); db(0x80);
+ db(0x66); db(0xe2); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0f);
+ db(0x61); db(0x00); db(0xf8); db(0x66); db(0x4e); db(0x90); db(0x41); db(0xed);
+ db(0x00); db(0x1c); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01);
  db(0x29); db(0x40); db(0x00); db(0x24); db(0x39); db(0x7c); db(0x00); db(0x0c);
- db(0x00); db(0x1c); db(0x2b); db(0x4d); db(0x00); db(0x28); db(0x41); db(0xfa);
- db(0x01); db(0x38); db(0x2b); db(0x48); db(0x00); db(0x20); db(0x22); db(0x4c);
+ db(0x00); db(0x1c); db(0x2b); db(0x4d); db(0x00); db(0x2c); db(0x41); db(0xfa);
+ db(0x01); db(0x38); db(0x2b); db(0x48); db(0x00); db(0x24); db(0x22); db(0x4c);
  db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x70); db(0x00); db(0x08); db(0xc0);
  db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x20); db(0x2d);
  db(0x00); db(0x00); db(0x67); db(0x00); db(0x00); db(0x72); db(0x72); db(0x01);
  db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2b); db(0x40); db(0x00); db(0x04);
  db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0c); db(0x61); db(0x00);
- db(0xf8); db(0x98); db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x04);
+ db(0xf8); db(0x18); db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x04);
  db(0x67); db(0x3a); db(0x39); db(0x7c); db(0x00); db(0x03); db(0x00); db(0x1c);
  db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x20);
  db(0x29); db(0x6d); db(0x00); db(0x00); db(0x00); db(0x24); db(0x29); db(0x6d);
  db(0x42); db(0xad); db(0x00); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x04);
  db(0x67); db(0x00); db(0xff); db(0x8a); db(0x22); db(0x41); db(0x4e); db(0xae);
  db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x80); db(0x39); db(0x7c);
- db(0x00); db(0x02); db(0x00); db(0x1c); db(0x41); db(0xed); db(0x00); db(0x2c);
+ db(0x00); db(0x02); db(0x00); db(0x1c); db(0x41); db(0xed); db(0x00); db(0x30);
  db(0x42); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04); db(0x42); db(0x2c);
  db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac);
  db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x08);
  db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae);
  db(0xfe); db(0x38); db(0x0c); db(0xad); db(0x46); db(0x4f); db(0x52); db(0x4d);
- db(0x00); db(0x2c); db(0x66); db(0x52); db(0x20); db(0x2d); db(0x00); db(0x30);
+ db(0x00); db(0x30); db(0x66); db(0x52); db(0x20); db(0x2d); db(0x00); db(0x34);
  db(0x67); db(0x4c); db(0x6b); db(0x4a); db(0x2b); db(0x6c); db(0x00); db(0x30);
  db(0x00); db(0x10); db(0x50); db(0x80); db(0x24); db(0x00); db(0x72); db(0x01);
  db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x36);
- db(0x24); db(0x40); db(0x20); db(0x4a); db(0x20); db(0xed); db(0x00); db(0x2c);
- db(0x20); db(0xed); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28);
+ db(0x24); db(0x40); db(0x20); db(0x4a); db(0x20); db(0xed); db(0x00); db(0x30);
+ db(0x20); db(0xed); db(0x00); db(0x34); db(0x29); db(0x48); db(0x00); db(0x28);
  db(0x20); db(0x02); db(0x51); db(0x80); db(0x29); db(0x40); db(0x00); db(0x24);
  db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x30); db(0x3c);
- db(0xff); db(0x38); db(0x72); db(0x0b); db(0x61); db(0x00); db(0xf7); db(0xc2);
+ db(0xff); db(0x38); db(0x72); db(0x0b); db(0x61); db(0x00); db(0xf7); db(0x42);
  db(0x20); db(0x2c); db(0x00); db(0x20); db(0x4e); db(0x90); db(0x22); db(0x4a);
  db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4a); db(0xac);
  db(0x00); db(0x20); db(0x67); db(0x00); db(0xfe); db(0xf0); db(0x41); db(0xed);
- db(0x00); db(0x2c); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01);
+ db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01);
  db(0x29); db(0x40); db(0x00); db(0x24); db(0x42); db(0xac); db(0x00); db(0x20);
  db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x60); db(0xde);
- db(0x41); db(0xe8); db(0xff); db(0xe8); db(0x20); db(0x29); db(0x00); db(0x08);
+ db(0x41); db(0xe8); db(0xff); db(0xe4); db(0x20); db(0x29); db(0x00); db(0x08);
  db(0xb0); db(0xa8); db(0x00); db(0x10); db(0x67); db(0x1a); db(0x21); db(0x40);
  db(0x00); db(0x10); db(0x2f); db(0x0e); db(0x2c); db(0x68); db(0x00); db(0x14);
  db(0x22); db(0x68); db(0x00); db(0x08); db(0x70); db(0x00); db(0x08); db(0xc0);
  db(0x70); db(0x00); db(0x4e); db(0x75); db(0x69); db(0x6e); db(0x70); db(0x75);
  db(0x74); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65);
  db(0x00); db(0x74); db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64);
- db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x63); db(0x6c);
- db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e);
- db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x55);
- db(0x41); db(0x45); db(0x20); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62);
- db(0x6f); db(0x61); db(0x72); db(0x64); db(0x20); db(0x73); db(0x68); db(0x61);
- db(0x72); db(0x69); db(0x6e); db(0x67); db(0x00); db(0x55); db(0x41); db(0x45);
- db(0x20); db(0x6d); db(0x6f); db(0x75); db(0x73); db(0x65); db(0x20); db(0x64);
- db(0x72); db(0x69); db(0x76); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41);
- db(0x45); db(0x20); db(0x66); db(0x69); db(0x6c); db(0x65); db(0x73); db(0x79);
- db(0x73); db(0x74); db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41); db(0x45);
- db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f);
- db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x00);
- db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61);
- db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74);
- db(0x20); db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73); db(0x73);
- db(0x00); db(0x64); db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62);
- db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e); db(0x74);
- db(0x75); db(0x69); db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c);
- db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x67);
- db(0x72); db(0x61); db(0x70); db(0x68); db(0x69); db(0x63); db(0x73); db(0x2e);
- db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00);
- db(0x65); db(0x78); db(0x70); db(0x61); db(0x6e); db(0x73); db(0x69); db(0x6f);
- db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72);
- db(0x79); db(0x00); db(0x46); db(0x69); db(0x6c); db(0x65); db(0x53); db(0x79);
- db(0x73); db(0x74); db(0x65); db(0x6d); db(0x2e); db(0x72); db(0x65); db(0x73);
- db(0x6f); db(0x75); db(0x72); db(0x63); db(0x65); db(0x00); db(0x00); db(0x00);
- db(0x00); db(0x00); db(0x03); db(0xf2);
+ db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x44); db(0x45);
+ db(0x56); db(0x53); db(0x3a); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53);
+ db(0x3a); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61);
+ db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63);
+ db(0x65); db(0x00); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f);
+ db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69);
+ db(0x63); db(0x65); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x63);
+ db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64);
+ db(0x20); db(0x73); db(0x68); db(0x61); db(0x72); db(0x69); db(0x6e); db(0x67);
+ db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x6d); db(0x6f); db(0x75);
+ db(0x73); db(0x65); db(0x20); db(0x64); db(0x72); db(0x69); db(0x76); db(0x65);
+ db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x69);
+ db(0x6c); db(0x65); db(0x73); db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d);
+ db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20);
+ db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e);
+ db(0x74); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20);
+ db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d);
+ db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x20); db(0x70); db(0x72); db(0x6f);
+ db(0x63); db(0x65); db(0x73); db(0x73); db(0x00); db(0x64); db(0x6f); db(0x73);
+ db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79);
+ db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75); db(0x69); db(0x74); db(0x69);
+ db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61);
+ db(0x72); db(0x79); db(0x00); db(0x67); db(0x72); db(0x61); db(0x70); db(0x68);
+ db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72);
+ db(0x61); db(0x72); db(0x79); db(0x00); db(0x65); db(0x78); db(0x70); db(0x61);
+ db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69);
+ db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x46); db(0x69);
+ db(0x6c); db(0x65); db(0x53); db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d);
+ db(0x2e); db(0x72); db(0x65); db(0x73); db(0x6f); db(0x75); db(0x72); db(0x63);
+ db(0x65); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x03); db(0xf2);
 
diff --git a/gayle.c b/gayle.c
index fb0d23054ae0c1cc8e990ff8755cc219e0390c26..1be9ba5a819244e02ad1325492781b515ef49708 100644 (file)
--- a/gayle.c
+++ b/gayle.c
@@ -1735,7 +1735,7 @@ void gayle_map_pcmcia (void)
         if (currprefs.chipmem_size <= 4 * 1024 * 1024 && currprefs.fastmem_size <= 4 * 1024 * 1024)
            map_banks (&dummy_bank, PCMCIA_COMMON_START >> 16, PCMCIA_COMMON_SIZE >> 16, 0);
     } else {
-        map_banks (&gayle_attr_bank, 0xA0, 8, 0);
+        map_banks (&gayle_attr_bank, 0xa0, 8, 0);
         if (currprefs.chipmem_size <= 4 * 1024 * 1024 && currprefs.fastmem_size <= 4 * 1024 * 1024)
             map_banks (&gayle_common_bank, PCMCIA_COMMON_START >> 16, PCMCIA_COMMON_SIZE >> 16, 0);
     }
index 68bf72387a317a18d948b8a692611ddd358698e6..7ed2e8897d89fdc9db1f7325bc09a16a8e8a8b0f 100644 (file)
--- a/gencpu.c
+++ b/gencpu.c
@@ -2920,29 +2920,15 @@ static void gen_opcode (unsigned long int opcode)
        break;
 
      case i_CINVL:
-       printf ("\tif (opcode&0x80)\n"
-               "\t\tflush_icache(31);\n");
-       break;
      case i_CINVP:
-       printf ("\tif (opcode&0x80)\n"
-               "\t\tflush_icache(32);\n");
-       break;
      case i_CINVA:
-       printf ("\tif (opcode&0x80)\n"
-               "\t\tflush_icache(33);\n");
-       break;
      case i_CPUSHL:
-       printf ("\tif (opcode&0x80)\n"
-               "\t\tflush_icache(41);\n");
-       break;
      case i_CPUSHP:
-       printf ("\tif (opcode&0x80)\n"
-               "\t\tflush_icache(42);\n");
-       break;
      case i_CPUSHA:
-       printf ("\tif (opcode&0x80)\n"
-               "\t\tflush_icache(43);\n");
+           printf ("\tif (opcode & 0x80)\n");
+           printf ("\t\tflush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3);\n");
        break;
+
      case i_MOVE16:
        if ((opcode & 0xfff8) == 0xf620) {
             /* MOVE16 (Ax)+,(Ay)+ */
index db94cef456c43b720f95179cd7d789d8d4546f92..639f5eda69a1eac03be62e8903e858d7cf48ce8d 100644 (file)
@@ -1,6 +1,7 @@
 
 extern void amiga_clipboard_want_data (void);
 extern void amiga_clipboard_got_data (uaecptr data, uae_u32 size, uae_u32 actual);
+extern void amiga_clipboard_die (void);
 extern void amiga_clipboard_init (void);
 extern uaecptr amiga_clipboard_proc_start (void);
 extern void amiga_clipboard_task_start (uaecptr);
index 1a243ba2339034bc0bbf33ecc688bdd601b6a81c..ffa8ba128ab25cb0aab6969ec38609fc984f573f 100644 (file)
@@ -11,3 +11,4 @@ void uae_Signal(uaecptr task, uae_u32 mask);
 void uae_NotificationHack(uaecptr, uaecptr);
 #endif
 void uae_NewList(uaecptr list);
+int native2amiga_isfree (void);
\ No newline at end of file
index 2f03518087826f1f99bd7c02fdb0a7138a05a24e..ce42ad1c2e5cac4998980db10cd77b7e262e1f59 100644 (file)
@@ -348,7 +348,7 @@ extern cpuop_func *cpufunctbl[65536] ASM_SYM_FOR_FUNC ("cpufunctbl");
 void newcpu_showstate(void);
 
 #ifdef JIT
-extern void flush_icache(int n);
+extern void flush_icache(uaecptr, int n);
 extern void compemu_reset(void);
 extern int check_prefs_changed_comp (void);
 #else
index 84f13495f4022a7788dda9401d28c6be62b79164..8fa460a3e3a6d9d3fefc137c5820e91b3093d547 100644 (file)
@@ -47,5 +47,6 @@ extern char *colormodes[];
 extern void fetch_saveimagepath (char*, int, int);
 extern void fetch_configurationpath (char *out, int size);
 extern void fetch_screenshotpath (char *out, int size);
+extern void fetch_ripperpath (char *out, int size);
 extern void fetch_datapath (char *out, int size);
 extern int uaerand(void);
\ No newline at end of file
index c1508ad433a742d71c5c763cf94e698728f64604..fcfd888fceebfef976b0eadb5e049b387b8e5ae4 100644 (file)
@@ -1196,11 +1196,6 @@ static void inputdevice_tablet_abs_v36 (int x, int y)
     diffx = diffy = 0;
     maxx = maxy = 0;
 
-    {
-       //uaecptr gb = get_intuitionbase ();
-       //write_log ("%d %d\n", get_word (gb + 70), get_word (gb + 68));
-    }
-
     if (picasso_on) {
        maxx = picasso96_state.Width;
        maxy = picasso96_state.Height;
@@ -1217,6 +1212,40 @@ static void inputdevice_tablet_abs_v36 (int x, int y)
        }
        get_custom_mouse_limits (&maxx, &maxy, &diffx, &diffy, 0);
     }
+#if 0
+    {
+       uaecptr gb = get_intuitionbase ();
+       maxy = get_word (gb + 1344 + 2);
+       maxx = get_word (gb + 1348 + 2);
+       write_log ("%d %d\n", maxx, maxy);
+    }
+#endif
+#if 1
+    {
+       uaecptr gb = get_gfxbase ();
+       uaecptr view = get_long (gb + 34);
+       if (view) {
+           uaecptr vp = get_long (view);
+           if (vp) {
+               int w, h, dw, dh;
+               w = get_word (vp + 24);
+               h = get_word (vp + 26) * 2;
+               dw = get_word (vp + 28);
+               dh = get_word (vp + 30);
+               //write_log ("%d %d %d %d\n", w, h, dw, dh);
+               if (w < maxx)
+                   maxx = w;
+               if (h < maxy)
+                   maxy = h;
+               x -= dw;
+               y -= dh;
+           }
+       }
+       //write_log ("* %d %d\n", get_word (gb + 218), get_word (gb + 216));
+    }
+    //write_log ("%d %d\n", maxx, maxy);
+#endif
+
     maxx = maxx * 1000 / fmx;
     maxy = maxy * 1000 / fmy;
 
index 4cb23f93b49837e3555710831fd112fe3c8eea98..74083f0376d0e243e4ccf9145428add4f85396b4 100644 (file)
@@ -95,7 +95,7 @@ extern void set_cache_state(int enabled);
 extern int get_cache_state(void);
 extern uae_u32 get_jitted_size(void);
 #ifdef JIT
-extern void flush_icache(int n);
+extern void flush_icache(uaecptr ptr, int n);
 #endif
 extern void alloc_cache(void);
 extern void compile_block(cpu_history* pc_hist, int blocklen, int totcyles);
index 86848d45c7086abe2b57845dd1b2a98599db5dcd..73277d874191e9d64c40278e3d64a5bed37f6cfc 100644 (file)
@@ -73,11 +73,11 @@ extern unsigned long foink;
    waste half the entries in this array
    UPDATE: We now use those entries to store the start of the linked
    lists that we maintain for each hash result. */
-cacheline cache_tags[TAGSIZE];
-int letit=0;
-blockinfo* hold_bi[MAX_HOLD_BI];
-blockinfo* active;
-blockinfo* dormant;
+static cacheline cache_tags[TAGSIZE];
+static int letit=0;
+static blockinfo* hold_bi[MAX_HOLD_BI];
+static blockinfo* active;
+static blockinfo* dormant;
 
 op_properties prop[65536];
 
@@ -100,13 +100,13 @@ extern const struct cputbl op_smalltbl_4_nf[];
 extern const struct cputbl op_smalltbl_5_nf[];
 #endif
 
-static void flush_icache_hard(int n);
+static void flush_icache_hard(uae_u32 ptr, int n);
 
 
 
-bigstate live;
-smallstate empty_ss;
-smallstate default_ss;
+static bigstate live;
+static smallstate empty_ss;
+static smallstate default_ss;
 static int optlev;
 
 static int writereg(int r, int size);
@@ -5347,7 +5347,7 @@ STATIC_INLINE unsigned int cft_map (unsigned int f)
 void set_cache_state(int enabled)
 {
     if (enabled!=letit)
-       flush_icache_hard(77);
+       flush_icache_hard(0, 3);
     letit=enabled;
 }
 
@@ -5366,7 +5366,7 @@ uae_u32 get_jitted_size(void)
 void alloc_cache(void)
 {
     if (compiled_code) {
-       flush_icache_hard(6);
+       flush_icache_hard(0, 3);
        cache_free(compiled_code);
     }
     if (veccode == NULL)
@@ -5810,7 +5810,7 @@ void build_comp(void)
 }
 
 
-static void flush_icache_hard(int n)
+static void flush_icache_hard(uae_u32 ptr, int n)
 {
     blockinfo* bi;
 
@@ -5844,13 +5844,13 @@ static void flush_icache_hard(int n)
    we simply mark everything as "needs to be checked".
 */
 
-void flush_icache(int n)
+void flush_icache(uaecptr ptr, int n)
 {
     blockinfo* bi;
     blockinfo* bi2;
 
     if (currprefs.comp_hardflush) {
-       flush_icache_hard(n);
+       flush_icache_hard(ptr, n);
        return;
     }
     soft_flush_count++;
@@ -5866,8 +5866,7 @@ void flush_icache(int n)
                cache_tags[cl].handler=popall_execute_normal;
            bi->handler_to_use=popall_execute_normal;
            set_dhtu(bi,bi->direct_pen);
-       }
-       else {
+       } else {
            if (bi==cache_tags[cl+1].bi)
                cache_tags[cl].handler=popall_check_checksum;
            bi->handler_to_use=popall_check_checksum;
@@ -5914,7 +5913,7 @@ void compile_block(cpu_history* pc_hist, int blocklen, int totcycles)
 
        compile_count++;
        if (current_compile_p>=max_compile_start)
-           flush_icache_hard(7);
+           flush_icache_hard(0, 3);
 
        alloc_blockinfos();
 
@@ -6265,7 +6264,7 @@ void compile_block(cpu_history* pc_hist, int blocklen, int totcycles)
 
        /* We will flush soon, anyway, so let's do it now */
        if (current_compile_p>=max_compile_start)
-           flush_icache_hard(7);
+           flush_icache_hard(0, 3);
 
        do_extra_cycles(totcycles); /* for the compilation time */
     }
index 2d8d76ea94f8783a4373f3525bddd3ac3cbc4d64..d2bc8c3fe07497a13eaf84700ad55e8104ddb755 100644 (file)
--- a/memory.c
+++ b/memory.c
@@ -3749,7 +3749,7 @@ void map_banks (addrbank *bank, int start, int size, int realsize)
     //write_log ("MAP_BANK %04X0000 %d %s\n", start, size, bank->name);
 
     old = debug_bankchange (-1);
-    flush_icache (1); /* Sure don't want to keep any old mappings around! */
+    flush_icache (0, 3); /* Sure don't want to keep any old mappings around! */
 #ifdef NATMEM_OFFSET
     delete_shmmaps (start << 16, size << 16);
 #endif
index 3ca727f4e37bbef344829c294ec33137ace21d19..141a6b8a67401de2aa0343488e5fbccc39bc26c7 100644 (file)
@@ -15,6 +15,7 @@
 #include "memory.h"
 #include "moduleripper.h"
 #include "gui.h"
+#include "uae.h"
 
 static int got, canceled;
 
@@ -27,7 +28,7 @@ static void mc (uae_u8 *d, uaecptr s, int size)
 }
 
 #ifdef _WIN32
-static LONG WINAPI ExceptionFilterstruct _EXCEPTION_POINTERS * pExceptionPointers, DWORD ec)
+static LONG WINAPI ExceptionFilter (struct _EXCEPTION_POINTERS * pExceptionPointers, DWORD ec)
 {
     return EXCEPTION_EXECUTE_HANDLER;
 }
@@ -70,7 +71,7 @@ void moduleripper (void)
 #endif
        prowizard_search (buf, size);
 #ifdef _WIN32
-    } __except(ExceptionFilter(GetExceptionInformation(), GetExceptionCode())) {
+    } __except(ExceptionFilter (GetExceptionInformation (), GetExceptionCode ())) {
        write_log ("prowizard scan crashed\n");
     }
 #endif
@@ -83,7 +84,10 @@ void moduleripper (void)
 
 FILE *moduleripper_fopen (const char *name, const char *mode)
 {
-    return fopen (name, mode);
+    char tmp[MAX_DPATH], tmp2[MAX_DPATH];
+    fetch_ripperpath (tmp, sizeof tmp);
+    sprintf (tmp2, "%s%s", tmp, name);
+    return fopen (tmp2, mode);
 }
 
 FILE *moduleripper2_fopen (const char *name, const char *mode, const char *id, int addr, int size)
@@ -101,7 +105,7 @@ FILE *moduleripper2_fopen (const char *name, const char *mode, const char *id, i
        canceled = 1;
     if (ret < 0 || ret != 1)
        return NULL;
-    return fopen (name, mode);
+    return moduleripper_fopen (name, mode);
 }
 
 #else
index 119191d717a4abdf3583e31bd20b1da41000ec97..42cc3f31f800de28bc4ec26fce8f9a102c6c9c04 100644 (file)
@@ -41,6 +41,11 @@ void native2amiga_startup (void)
 {
 }
 
+int native2amiga_isfree (void)
+{
+    return comm_pipe_has_data (&native2amiga_pending) == 0;
+}
+
 #ifdef SUPPORT_THREADS
 
 void uae_Cause (uaecptr interrupt)
index c85cbee346aefa79ce97913885722df953798f91..8b72f16a34e800032b05fca6cfe5a949d6ba95eb 100644 (file)
--- a/newcpu.c
+++ b/newcpu.c
@@ -134,7 +134,7 @@ static void set_cpu_caches (void)
        set_cache_state (regs.cacr & 1);
        if (regs.cacr & 0x08) {
            regs.cacr &= ~0x08;
-           flush_icache (1);
+           flush_icache (0, 3);
        }
     } else {
        set_cache_state ((regs.cacr & 0x8000) ? 1 : 0);
@@ -1262,7 +1262,7 @@ int m68k_move2c (int regno, uae_u32 *regp)
            if (((opcr ^ regs.pcr) & 2) == 2) {
                write_log ("68060 FPU state: %s\n", regs.pcr & 2 ? "disabled" : "enabled");
                /* flush possible already translated FPU instructions */
-               flush_icache (2);
+               flush_icache (0, 3);
            }
        }
        break;
index 27e59a150f00609c8cf37e64ea7afbcc1f8e30a7..3866f1ee63be66c574b59d190958a7bb4499c546 100644 (file)
 #include "clipboard_win32.h"
 #include "clipboard.h"
 
+#include "threaddep/thread.h"
 #include "memory.h"
 #include "native2amiga_api.h"
 
+int clipboard_debug;
+
 static HWND chwnd;
 static HDC hdc;
 static uaecptr clipboard_data;
@@ -25,10 +28,39 @@ static int clipboard_change;
 static void *clipboard_delayed_data;
 static int clipboard_delayed_size;
 
+static void debugwrite (const char *name, uae_u8 *p, int size)
+{
+    FILE *f;
+    int cnt;
+    
+    if (!p || !size)
+       return;
+    cnt = 0;
+    for (;;) {
+       char tmp[MAX_DPATH];
+       sprintf (tmp, "%s.%03d.dat", name, cnt);
+       f = fopen (tmp, "rb");
+       if (f) {
+           fclose (f);
+           cnt++;
+           continue;
+       }
+        f = fopen (tmp, "wb");
+       if (f) {
+           fwrite (p, size, 1, f);
+           fclose (f);
+       }
+       return;
+    }
+}
+
 static void to_amiga_start (void)
 {
     if (!clipboard_data)
        return;
+    if (clipboard_debug) {
+       debugwrite ("clipboard_p2a", to_amiga, to_amiga_size);
+    }
     put_long (clipboard_data, to_amiga_size);
     uae_Signal (get_long (clipboard_data + 8), 1 << 13);
 }
@@ -50,6 +82,17 @@ static char *pctoamiga (const char *txt)
     }
     return txt2;
 }
+
+static int parsecsi (const char *txt, int off, int len)
+{
+    while (off < len) {
+       if (txt[off] >= 0x40)
+           break;
+       off++;
+    }
+    return off;
+}
+
 static char *amigatopc (const char *txt)
 {
     int i, j, cnt;
@@ -68,7 +111,7 @@ static char *amigatopc (const char *txt)
     }
     if (pc)
         return my_strdup (txt);
-    txt2 = xmalloc (len + cnt);
+    txt2 = xcalloc (len + cnt, 1);
     j = 0;
     for (i = 0; i < len; i++) {
        char c = txt[i];
@@ -76,6 +119,13 @@ static char *amigatopc (const char *txt)
            continue;
        if (c == 10)
            txt2[j++] = 13;
+       if (c == 0x9b) {
+           i = parsecsi (txt, i + 1, len);
+           continue;
+       } else if (c == 0x1b && i + 1 < len && txt[i + 1] == '[') {
+           i = parsecsi (txt, i + 2, len);
+           continue;
+       }
        txt2[j++] = c;
     }
     return txt2;
@@ -118,6 +168,16 @@ static void from_iff_text (uaecptr ftxt, uae_u32 len)
     int txtsize = 0;
     char *pctxt;
 
+#if 0
+    {
+       FILE *f = fopen("c:\\d\\clipboard_a2p.000.dat", "rb");
+       if (f) {
+           addr = xmalloc (10000);
+           len = fread (addr, 1, 10000, f);
+           fclose (f);
+       }
+    }
+#endif
     addr = get_real_address (ftxt);
     eaddr = addr + len;
     if (memcmp ("FTXT", addr + 8, 4))
@@ -130,13 +190,15 @@ static void from_iff_text (uaecptr ftxt, uae_u32 len)
        if (!memcmp (addr, "CHRS", 4) && csize) {
            int prevsize = txtsize;
            txtsize += csize;
-           if (!prevsize)
-               txtsize++; // space for terminating null
-           txt = realloc (txt, txtsize);
+           txt = realloc (txt, txtsize + 1);
            memcpy (txt + prevsize, addr + 8, csize);
-           txt[txtsize - 1] = 0;
+           txt[txtsize] = 0;
        }
        addr += 8 + csize + (csize & 1);
+       if (csize >= 1 && addr[-2] == 0x0d && addr[-1] == 0x0a && addr[0] == 0)
+           addr++;
+       else if (csize >= 1 && addr[-1] == 0x0d && addr[0] == 0x0a)
+           addr++;
     }
     pctxt = amigatopc (txt);
     clipboard_put_text (pctxt);
@@ -317,13 +379,7 @@ static void to_iff_ilbm (HBITMAP hbmp)
 
     to_amiga_size = 8 + tsize + (tsize & 1);
     to_amiga = iff;
-#if 0
-    {
-       FILE *f = fopen("d:\\amiga\\amiga\\1.iff", "wb");
-       fwrite (to_amiga, to_amiga_size, 1, f);
-       fclose (f);
-    }
-#endif
+
     to_amiga_start ();
 
     xfree (bmp.bmBits);
@@ -410,10 +466,20 @@ static void from_iff_ilbm (uaecptr ilbm, uae_u32 len)
                camg = 0;
        } else if (!memcmp (chunk, "CMAP" ,4)) {
            if (planes <= 8) {
+               int zero4 = 1;
                for (i = 0; i < (1 << planes) && addr < ceaddr; i++, addr += 3) {
                    rgbx[i].rgbRed = addr[0];
                    rgbx[i].rgbGreen = addr[1];
                    rgbx[i].rgbBlue = addr[2];
+                   if ((addr[0] & 0x0f) || (addr[1] & 0x0f) || (addr[2] & 0x0f))
+                       zero4 = 0;
+               }
+               if (zero4) {
+                   for (i = 0; i < (1 << planes); i++) {
+                       rgbx[i].rgbRed |= rgbx[i].rgbRed >> 4;
+                       rgbx[i].rgbGreen |= rgbx[i].rgbGreen >> 4;
+                       rgbx[i].rgbBlue |= rgbx[i].rgbBlue >> 4;
+                   }
                }
            }
        } else if (!memcmp (chunk, "BODY" ,4) && bmhd) {
@@ -562,7 +628,8 @@ static void from_iff_ilbm (uaecptr ilbm, uae_u32 len)
     }
     if (body) {
        hbm = CreateDIBitmap (hdc, &bmih->bmiHeader, CBM_INIT, bmptr, bmih, DIB_RGB_COLORS);
-       clipboard_put_bmp (hbm);
+       if (hbm)
+           clipboard_put_bmp (hbm);
     }
     xfree (bmih);
     xfree (bmptr);
@@ -577,6 +644,8 @@ static void from_iff (uaecptr data, uae_u32 len)
     if (!valid_address (data, len))
        return;
     addr = get_real_address (data);
+    if (clipboard_debug)
+       debugwrite ("clipboard_a2p", addr, len);
     if (memcmp ("FORM", addr, 4))
        return;
     if (!memcmp ("FTXT", addr + 8, 4))
@@ -704,10 +773,16 @@ static int clipboard_put_bmp (HBITMAP hbmp)
     return 1;
 }
 
+void amiga_clipboard_die (void)
+{
+    signaling = 0;
+    write_log ("clipboard not initialized\n");
+}
+
 void amiga_clipboard_init (void)
 {
     signaling = 0;
-    write_log ("clipboard active\n");
+    write_log ("clipboard initialized\n");
 }
 
 void amiga_clipboard_task_start (uaecptr data)
@@ -733,15 +808,16 @@ void amiga_clipboard_got_data (uaecptr data, uae_u32 size, uae_u32 actual)
 
 void amiga_clipboard_want_data (void)
 {
-    uae_u32 addr;
+    uae_u32 addr, size;
 
     addr = get_long (clipboard_data + 4);
-    if (addr) {
+    size = get_long (clipboard_data);
+    if (addr && size) {
        uae_u8 *raddr = get_real_address (addr);
-       memcpy (raddr, to_amiga, to_amiga_size);
+       memcpy (raddr, to_amiga, size);
     }
     xfree (to_amiga);
-    write_log ("clipboard: ->amiga, %08x %d bytes\n", addr, to_amiga_size);
+    write_log ("clipboard: ->amiga, %08x %d bytes\n", addr, size);
     to_amiga = NULL;
     to_amiga_size = 0;
 }
@@ -774,7 +850,7 @@ void clipboard_vsync (void)
     if (vdelay > 0)
        return;
     task = get_long (clipboard_data + 8);
-    if (task)
+    if (task && native2amiga_isfree ())
        uae_Signal (task, 1 << 13);
     vdelay = 50;
 }
index 8b6efe4e81e11626eabd2ee99110b8266bb65fb9..084b5f01bb4c1b900a0ee7cf1923a9ca8d7da235 100644 (file)
@@ -686,15 +686,15 @@ DWORD DirectDraw_GetBytesPerPixel (void)
 
 HRESULT DirectDraw_GetDC (HDC *hdc)
 {
-    HRESULT result;
-    result = IDirectDrawSurface7_GetDC (getlocksurface (), hdc);
-    return result;
+    if (getlocksurface () == NULL)
+       return E_FAIL;
+    return IDirectDrawSurface7_GetDC (getlocksurface (), hdc);
 }
 HRESULT DirectDraw_ReleaseDC (HDC hdc)
 {
-    HRESULT result;
-    result = IDirectDrawSurface7_ReleaseDC (getlocksurface (), hdc);
-    return result;
+    if (getlocksurface () == NULL)
+       return E_FAIL;
+    return IDirectDrawSurface7_ReleaseDC (getlocksurface (), hdc);
 }
 int DirectDraw_GetVerticalBlankStatus (void)
 {
index 15f362b105988c3ccdadc58076d4f3c8416db3cc..59db874dd40711766a46031cbbaf76d24e0fbdce 100644 (file)
@@ -25,6 +25,8 @@
 #define TRACE(x)
 #endif
 
+static int fsdb_debug = 0;
+
 /* these are deadly (but I think allowed on the Amiga): */
 #define NUM_EVILCHARS 7
 static char evilchars[NUM_EVILCHARS] = { '\\', '*', '?', '\"', '<', '>', '|' };
@@ -37,7 +39,7 @@ static char evilchars[NUM_EVILCHARS] = { '\\', '*', '?', '\"', '<', '>', '|' };
  * Offset 0, 1 byte, valid
  * Offset 1, 4 bytes, mode
  * Offset 5, 257 bytes, aname
- * Offset 263, 257 bytes, nname
+ * Offset 262, 257 bytes, nname
  * Offset 519, 81 bytes, comment
  * Offset 600, 4 bytes, Windows-side mode
  */
@@ -67,16 +69,26 @@ static int read_uaefsdb (const char *dir, const char *name, uae_u8 *fsdb)
     HANDLE h;
     DWORD read;
 
+    read = 0;
     p = make_uaefsdbpath (dir, name);
     h = CreateFile (p, GENERIC_READ, 0,
        NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+    if (fsdb_debug)
+       write_log ("read_uaefsdb '%s' = %x\n", p, h);
     xfree (p);
     if (h != INVALID_HANDLE_VALUE) {
        ReadFile (h, fsdb, UAEFSDB_LEN, &read, NULL);
        CloseHandle (h);
-       if (read == UAEFSDB_LEN)
+       if (read == UAEFSDB_LEN) {
+           if (fsdb_debug) {
+               write_log ("->ok\n");
+               write_log ("v=%02x flags=%08x an='%s' nn='%s' c='%s'\n", fsdb[0], ((uae_u32*)(fsdb+1))[0], fsdb + 5, fsdb + 262, fsdb + 519);
+           }
            return 1;
+       }
     }
+    if (fsdb_debug)
+       write_log ("->fail %d, %d\n", read, GetLastError ());
     memset (fsdb, 0, UAEFSDB_LEN);
     return 0;
 }
@@ -88,7 +100,8 @@ static int delete_uaefsdb (const char *dir)
 
     p = make_uaefsdbpath (dir, NULL);
     ret = DeleteFile(p);
-    //write_log ("delete FSDB stream '%s' = %d\n", p, ret);
+    if (fsdb_debug)
+       write_log ("delete_uaefsdb '%s' = %d\n", p, ret);
     xfree (p);
     return ret;
 }
@@ -97,7 +110,7 @@ static int write_uaefsdb (const char *dir, uae_u8 *fsdb)
 {
     char *p;
     HANDLE h;
-    DWORD written, dirflag, dirattr;
+    DWORD written = 0, dirflag, dirattr;
     DWORD attr = INVALID_FILE_ATTRIBUTES;
     FILETIME t1, t2, t3;
     int time_valid = FALSE;
@@ -117,6 +130,10 @@ static int write_uaefsdb (const char *dir, uae_u8 *fsdb)
     }
     h = CreateFile (p, GENERIC_WRITE, 0,
        NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+    if (fsdb_debug) {
+       write_log ("write_uaefsdb '%s' = %x\n", p, h);
+       write_log ("v=%02x flags=%08x an='%s' nn='%s' c='%s'\n", fsdb[0], ((uae_u32*)(fsdb+1))[0], fsdb + 5, fsdb + 262, fsdb + 519);
+    }
     if (h == INVALID_HANDLE_VALUE && GetLastError () == ERROR_ACCESS_DENIED) {
        attr = GetFileAttributes (p);
        if (attr != INVALID_FILE_ATTRIBUTES) {
@@ -124,6 +141,8 @@ static int write_uaefsdb (const char *dir, uae_u8 *fsdb)
                SetFileAttributes (p, attr & ~(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN));
                h = CreateFile (p, GENERIC_WRITE, 0,
                    NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+               if (fsdb_debug)
+                   write_log ("write_uaefsdb (2) '%s' = %x\n", p, h);
            }
        }
     }
@@ -131,10 +150,15 @@ static int write_uaefsdb (const char *dir, uae_u8 *fsdb)
        WriteFile (h, fsdb, UAEFSDB_LEN, &written, NULL);
        CloseHandle (h);
        if (written == UAEFSDB_LEN) {
+           if (fsdb_debug)
+               write_log ("->ok\n");
            ret = 1;
            goto end;
        }
     }
+    if (fsdb_debug)
+       write_log ("->fail %d, %d\n", written, GetLastError ());
+
     DeleteFile (p);
 end:
     if (attr != INVALID_FILE_ATTRIBUTES)
diff --git a/od-win32/gencpu_msvc/gencpu.exe.manifest b/od-win32/gencpu_msvc/gencpu.exe.manifest
new file mode 100644 (file)
index 0000000..11bb704
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+    <security>
+      <requestedPrivileges>
+        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+</assembly>
\ No newline at end of file
index 6e0537ecaf561a4ac6c79928b4d9fdcca4578d2e..d959e11f4c827c1cee7b983e0d95af46340e8676 100644 (file)
                        />
                        <Tool
                                Name="VCManifestTool"
+                               EmbedManifest="false"
                        />
                        <Tool
                                Name="VCXDCMakeTool"
index 1cfb3c11ba4a37595f235726103116aafc6432d1..938deb8cc0c1f88eddc17b103ba5224b381d1974 100644 (file)
@@ -58,6 +58,7 @@
 #include "rp.h"
 #include "picasso96_win.h"
 #include "win32gfx.h"
+#include "clipboard.h"
 
 #define NOBLITTER 0
 #define NOBLITTER_BLIT 0
index 39399b6d1213c3f73f55969357dbed15cc2f7b47..f5d649da613e971739c0c6c41347fb02f974598c 100644 (file)
 #define IDC_BLITIMM                     1174
 #define IDC_LORES                       1176
 #define IDC_LORES_SMOOTHED              1179
-#define IDC_LORES_SMOOTHED2             1180
 #define IDC_FLICKERFIXER                1180
 #define IDC_FRAMERATE                   1185
 #define IDC_RATETEXT                    1186
 #define IDC_RESETDISKHISTORY            1677
 #define IDC_DF0Q                        1678
 #define IDC_DF0QQ                       1678
+#define IDC_PATHS_RIPSL                 1678
 #define IDC_DF1Q                        1679
 #define IDC_QUICKSTART_HOSTCONFIG       1679
+#define IDC_PATHS_RIP                   1679
 #define IDC_DF1QQ                       1680
+#define IDC_PATHS_SAVEIMAGES2           1680
+#define IDC_PATHS_RIPS                  1680
 #define IDC_QUICKSTART_SETCONFIG        1681
 #define IDC_CONFIGAUTO                  1682
 #define IDC_DF0TEXTQ                    1683
index 64b53e95e1f1410248f5a45111305be4848e2fd0..32ac9eac940678e04c0af6884a14f65cfd4f7a30 100644 (file)
@@ -791,29 +791,32 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 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,111,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
+    EDITTEXT        IDC_PATHS_ROM,14,15,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_ROMS,281,15,11,15\r
+    LTEXT           "Configuration files:",IDC_PATHS_CONFIGL,14,32,121,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_CONFIG,14,42,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_CONFIGS,281,42,11,15\r
+    LTEXT           "Screenshots:",IDC_PATHS_SCREENSHOTL,14,59,260,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_SCREENSHOT,14,69,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_SCREENSHOTS,281,69,11,15\r
+    LTEXT           "State files:",IDC_PATHS_STATEFILEL,14,86,260,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_SAVESTATE,14,96,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_SAVESTATES,281,96,11,15\r
+    LTEXT           "Videos:",IDC_PATHS_AVIOUTPUTL,14,113,260,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_AVIOUTPUT,14,123,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_AVIOUTPUTS,281,123,11,15\r
+    LTEXT           "Saveimages:",IDC_PATHS_SAVEIMAGEL,14,140,261,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_SAVEIMAGE,14,151,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_SAVEIMAGES,281,151,11,15\r
+    PUSHBUTTON      "Reset to defaults",IDC_PATHS_DEFAULT,14,196,92,14\r
+    PUSHBUTTON      "Rescan ROMs",IDC_ROM_RESCAN,14,212,92,14\r
+    PUSHBUTTON      "Clear registry",IDC_RESETREGISTRY,111,212,92,14\r
+    COMBOBOX        IDC_PATHS_DEFAULTTYPE,111,197,163,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+    PUSHBUTTON      "Clear disk history",IDC_RESETDISKHISTORY,14,228,92,14\r
+    CONTROL         "Cache Configuration files",IDC_PATHS_CONFIGCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,177,32,97,10\r
+    LTEXT           "Rips:",IDC_PATHS_RIPSL,13,168,261,8,SS_CENTERIMAGE\r
+    EDITTEXT        IDC_PATHS_RIP,13,178,261,15,ES_AUTOHSCROLL\r
+    PUSHBUTTON      "...",IDC_PATHS_RIPS,280,178,11,15\r
 END\r
 \r
 IDD_QUICKSTART DIALOGEX 0, 0, 300, 242\r
index a774d8dcc6b10d112dba7ec2ce8f4c43c34983c5..cdca089fec8e325a01496a394fabb5fcfe80f347 100644 (file)
@@ -2288,6 +2288,10 @@ void fetch_screenshotpath (char *out, int size)
 {
     fetch_path ("ScreenshotPath", out, size);
 }
+void fetch_ripperpath (char *out, int size)
+{
+    fetch_path ("RipperPath", out, size);
+}
 void fetch_datapath (char *out, int size)
 {
     fetch_path (NULL, out, size);
@@ -3291,7 +3295,7 @@ static void getstartpaths (void)
 }
 
 extern void test (void);
-extern int screenshotmode, postscript_print_debugging, sound_debug, log_uaeserial;
+extern int screenshotmode, postscript_print_debugging, sound_debug, log_uaeserial, clipboard_debug;
 extern int force_direct_catweasel, sound_mode_skip, maxmem;
 
 extern DWORD_PTR cpu_affinity, cpu_paffinity;
@@ -3369,6 +3373,10 @@ static int parseargs (const char *arg, const char *np)
         log_uaeserial = 1;
        return 1;
     }
+    if (!strcmp (arg, "-clipboarddebug")) {
+        clipboard_debug = 1;
+       return 1;
+    }
     if (!strcmp (arg, "-rplog")) {
         log_rp = 1;
        return 1;
index 04efdd10f71e9a4bba7b90d99b91d24d5473579d..3c7116a5f103b59e76ba8d73acbf69adaf21e0d8 100644 (file)
@@ -17,8 +17,8 @@
 
 #define WINUAEPUBLICBETA 1
 
-#define WINUAEBETA "10"
-#define WINUAEDATE MAKEBD(2009, 1, 24)
+#define WINUAEBETA "11"
+#define WINUAEDATE MAKEBD(2009, 2, 5)
 #define WINUAEEXTRA ""
 #define WINUAEREV ""
 
index 5322745c6a2ac91dd0eeb768952354891a1f36b8..ba4e13d5159df42c2b338932b6ce7971df33ec95 100644 (file)
@@ -40,21 +40,24 @@ static int valid_volumename(struct uaedev_mount_info *mountinfo, char *volumenam
 }
 
 /* Returns 1 if an actual volume-name was found, 2 if no volume-name (so uses some defaults) */
-int target_get_volume_name(struct uaedev_mount_info *mtinf, const char *volumepath, char *volumename, int size, int inserted, int fullcheck)
+int target_get_volume_name (struct uaedev_mount_info *mtinf, const char *volumepath, char *volumename, int size, int inserted, int fullcheck)
 {
     int result = 2;
     int drivetype;
 
-    drivetype = GetDriveType(volumepath);
-    if(inserted) {
-       if(GetVolumeInformation(volumepath, volumename, size, NULL, NULL, NULL, NULL, 0) && volumename[0] && valid_volumename(mtinf, volumename, fullcheck)) {
+    drivetype = GetDriveType (volumepath);
+    if (inserted) {
+       if (GetVolumeInformation (volumepath, volumename, size, NULL, NULL, NULL, NULL, 0) &&
+           volumename[0] && 
+           valid_volumename (mtinf, volumename, fullcheck)) {
            // +++Bernd Roesch
-           if(!strcmp(volumename, "AmigaOS35"))
-               strcpy(volumename, "AmigaOS3.5");
-           if(!strcmp(volumename, "AmigaOS39"))
-               strcpy(volumename, "AmigaOS3.9");
+           if(!strcmp (volumename, "AmigaOS35"))
+               strcpy (volumename, "AmigaOS3.5");
+           if(!strcmp (volumename, "AmigaOS39"))
+               strcpy (volumename, "AmigaOS3.9");
            // ---Bernd Roesch
-           result = 1;
+           if (strlen (volumename) > 0)
+               result = 1;
        }
     }
 
@@ -62,19 +65,19 @@ int target_get_volume_name(struct uaedev_mount_info *mtinf, const char *volumepa
        switch(drivetype)
        {
            case DRIVE_FIXED:
-               sprintf(volumename, "WinDH_%c", volumepath[0]);
+               sprintf (volumename, "WinDH_%c", volumepath[0]);
                break;
            case DRIVE_CDROM:
-               sprintf(volumename, "WinCD_%c", volumepath[0]);
+               sprintf (volumename, "WinCD_%c", volumepath[0]);
                break;
            case DRIVE_REMOVABLE:
-               sprintf(volumename, "WinRMV_%c", volumepath[0]);
+               sprintf (volumename, "WinRMV_%c", volumepath[0]);
                break;
            case DRIVE_REMOTE:
-               sprintf(volumename, "WinNET_%c", volumepath[0]);
+               sprintf (volumename, "WinNET_%c", volumepath[0]);
                break;
            case DRIVE_RAMDISK:
-               sprintf(volumename, "WinRAM_%c", volumepath[0]);
+               sprintf (volumename, "WinRAM_%c", volumepath[0]);
                break;
            case DRIVE_UNKNOWN:
            case DRIVE_NO_ROOT_DIR:
@@ -133,7 +136,7 @@ static void filesys_addexternals(void)
                continue;
            volumename[0] = 0;
            if (inserted) {
-               target_get_volume_name(&mountinfo, volumepath, volumename, MAX_DPATH, inserted, 1);
+               target_get_volume_name (&mountinfo, volumepath, volumename, MAX_DPATH, inserted, 1);
                if (!volumename[0])
                    sprintf (volumename, "WinUNK_%c", drive);
            }
@@ -141,6 +144,7 @@ static void filesys_addexternals(void)
                strcat(volumepath, ".");
            else
                strcat(volumepath, "..");
+           //write_log ("Drive type %d: '%s' '%s'\n", drivetype, volumepath, volumename);
            add_filesys_unit (devname[0] ? devname : NULL, volumename, volumepath, !rw, 0, 0, 0, 0, -20 - drvnum, 0, 1, 0, 0, 0);
            drvnum++;
        } /* if drivemask */
index 9f70caafd4fd42dc70c6f6170b1210a4e4fe6c96..df40b23caf4b170f14893186e82f0048d283d192 100644 (file)
@@ -1349,6 +1349,7 @@ typedef struct tagOFNX {
 int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs, char *path_out, int *multi)
 {
     static int statefile_previousfilter;
+    static int previousfilter[20];
     OPENFILENAME openFileName;
     char full_path[MAX_DPATH] = "";
     char full_path2[MAX_DPATH];
@@ -1360,7 +1361,6 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
     char *p, *nextp;
     int all = 1;
     int next;
-    int filterindex = 0;
     int nosavepath = 0;
 
     char szTitle[MAX_DPATH] = { 0 };
@@ -1517,7 +1517,6 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
            p += strlen (p) + 1;
            *p = 0;
            all = 0;
-           filterindex = statefile_previousfilter;
        }
        defext = "USS";
        break;
@@ -1561,7 +1560,7 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
        OFN_LONGNAMES | OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
     openFileName.lpstrFilter = szFilter;
     openFileName.lpstrDefExt = defext;
-    openFileName.nFilterIndex = filterindex;
+    openFileName.nFilterIndex = previousfilter[flag];
     openFileName.lpstrFile = full_path;
     openFileName.nMaxFile = MAX_DPATH;
     openFileName.lpstrFileTitle = file_name;
@@ -1581,6 +1580,8 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
        if (!(result = GetOpenFileName (&openFileName)))
            write_log ("GetOpenFileName() failed, err=%d.\n", GetLastError());
     }
+    previousfilter[flag] = openFileName.nFilterIndex;
+
     memcpy (full_path2, full_path, sizeof (full_path));
     memcpy (stored_path, full_path, sizeof (stored_path));
     next = 0;
@@ -1645,7 +1646,6 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
            break;
        case IDC_DOSAVESTATE:
        case IDC_DOLOADSTATE:
-           statefile_previousfilter = openFileName.nFilterIndex;
            savestate_initsave (full_path, openFileName.nFilterIndex, FALSE);
            break;
        case IDC_CREATE:
@@ -3618,6 +3618,7 @@ static void values_to_pathsdialog (HWND hDlg)
     setpath (hDlg, "StatefilePath", IDC_PATHS_SAVESTATE, "Savestates");
     setpath (hDlg, "SaveimagePath", IDC_PATHS_SAVEIMAGE, "SaveImages");
     setpath (hDlg, "VideoPath", IDC_PATHS_AVIOUTPUT, "Videos");
+    setpath (hDlg, "RipperPath", IDC_PATHS_RIP, ".\\");
 }
 
 static void resetregistry (void)
@@ -3634,6 +3635,7 @@ static void resetregistry (void)
     regdelete (NULL, "ScreenshotPath");
     regdelete (NULL, "StatefilePath");
     regdelete (NULL, "VideoPath");
+    regdelete (NULL, "RipperPath");
     regdelete (NULL, "QuickStartModel");
     regdelete (NULL, "QuickStartConfiguration");
     regdelete (NULL, "QuickStartCompatibility");
@@ -3662,6 +3664,7 @@ static INT_PTR CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
        setac (hDlg, IDC_PATHS_SAVESTATE);
        setac (hDlg, IDC_PATHS_SAVEIMAGE);
        setac (hDlg, IDC_PATHS_AVIOUTPUT);
+       setac (hDlg, IDC_PATHS_RIP);
         CheckDlgButton(hDlg, IDC_PATHS_CONFIGCACHE, configurationcache);
        currentpage = PATHS_ID;
        ShowWindow (GetDlgItem (hDlg, IDC_RESETREGISTRY), FALSE);
@@ -3778,10 +3781,21 @@ static INT_PTR CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                values_to_pathsdialog (hDlg);
            }
            break;
+           case IDC_PATHS_RIPS:
+           fetch_path ("RipperPath", tmp, sizeof (tmp));
+           if (DirectorySelection (hDlg, 0, tmp)) {
+               set_path ("RipperPath", tmp);
+               values_to_pathsdialog (hDlg);
+           }
+           break;
            case IDC_PATHS_AVIOUTPUT:
            GetWindowText (GetDlgItem (hDlg, IDC_PATHS_AVIOUTPUT), tmp, sizeof (tmp));
            set_path ("VideoPath", tmp);
            break;
+           case IDC_PATHS_RIP:
+           GetWindowText (GetDlgItem (hDlg, IDC_PATHS_RIP), tmp, sizeof (tmp));
+           set_path ("RipperPath", tmp);
+           break;
            case IDC_PATHS_DEFAULT:
            val = SendDlgItemMessage (hDlg, IDC_PATHS_DEFAULTTYPE, CB_GETCURSEL, 0, 0L);
            if (val != CB_ERR && val >= 0 && val < numtypes) {
@@ -3817,6 +3831,7 @@ static INT_PTR CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                set_path ("StatefilePath", NULL);
                set_path ("SaveimagePath", NULL);
                set_path ("VideoPath", NULL);
+               set_path ("RipperPath", NULL);
                values_to_pathsdialog (hDlg);
                FreeConfigStore ();
            }
@@ -10859,7 +10874,7 @@ static int ignorewindows[] = {
     -1,
     IDD_MISC1, IDC_LANGUAGE,
     -1,
-    IDD_PATHS, IDC_PATHS_ROM, IDC_PATHS_CONFIG, IDC_PATHS_SCREENSHOT, IDC_PATHS_SAVESTATE, IDC_PATHS_AVIOUTPUT, IDC_PATHS_SAVEIMAGE,
+    IDD_PATHS, IDC_PATHS_ROM, IDC_PATHS_CONFIG, IDC_PATHS_SCREENSHOT, IDC_PATHS_SAVESTATE, IDC_PATHS_AVIOUTPUT, IDC_PATHS_SAVEIMAGE, IDC_PATHS_RIP,
     -1,
     IDD_IOPORTS, IDC_PRINTERLIST, IDC_PS_PARAMS, IDC_SERIAL, IDC_MIDIOUTLIST, IDC_MIDIINLIST,
     -1,
index 2886d765e777ba05f09bf7f78badcdb25266adde..564d00596cecc89898cca0b0cea1bd28048be300 100644 (file)
@@ -1,5 +1,26 @@
 
-Beta 10:
+Beta 11:
+
+- fix for graphics corruption introduced in 1.5.3 when bitplane DMA
+  fetch happened while bitplane pointer was updated
+- AGA 6 plane mode (non-EHB) was not always enabled properly (b3)
+- added -clipboarddebug command line parameter that writes clipboard
+  contents to file in winuae directory. (clipboard_p2a.xxx.dat
+  and clipboard_a2p.xxx.dat)
+- added ripper path to Paths panel, used by prowizard and sample
+  ripper (previously sample ripper used screenshot directory and
+  prowizard used winuae root directory)
+- directory filesystem ACTION_CHANGE_MODE was completely broken in
+  CHANGE_FH mode, returned error and "Error: couldn't find key
+  x / y!" was logged. Bug since the beginning
+- clipboard: multiple CHRS chunk merging fixed (again), less stupid
+  clipboard.device detection
+- blitter line mode (only if linedraw code was "weird") broke in b3
+- file selection dialog (adf, hdf etc..) remembers previous filter
+  mode ("*.adf", "all files" etc..)
+
+
+Beta 10: clipboard stuff.
 
 - clipboard: multiple CHRS chunks inside FTXT supported
 - clipboard: IFF ILBM Amiga to PC support implemented. EHB supported,