]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
2810b3
authorToni Wilen <twilen@winuae.net>
Thu, 29 May 2014 16:43:14 +0000 (19:43 +0300)
committerToni Wilen <twilen@winuae.net>
Thu, 29 May 2014 16:43:14 +0000 (19:43 +0300)
custom.cpp
drawing.cpp
events.cpp
inputdevice.cpp
od-win32/fsdb_mywin32.cpp
od-win32/rp.cpp
od-win32/win32.cpp
od-win32/win32.h
od-win32/win32_scaler.cpp
od-win32/winuaechangelog.txt

index 318e37baf9a8c628957421b9c9781ba382755124..f1e1e3e315702c9df15de79021fd6d2e19143649 100644 (file)
@@ -255,7 +255,7 @@ static int sprite_sprctlmask;
 int sprite_buffer_res;
 
 #ifdef CPUEMU_13
-uae_u8 cycle_line[256];
+uae_u8 cycle_line[256 + 1];
 #endif
 
 static bool bpl1dat_written, bpl1dat_written_at_least_once;
@@ -268,8 +268,6 @@ static uaecptr dbplptl[8], dbplpth[8];
 static int dbplptl_on[8], dbplpth_on[8], dbplptl_on2, dbplpth_on2;
 static int bitplane_line_crossing;
 
-/*static int blitcount[256];  blitter debug */
-
 static struct color_entry current_colors;
 unsigned int bplcon0;
 static unsigned int bplcon1, bplcon2, bplcon3, bplcon4;
index 5263a41fe76e581d822c03516fc7dfb8b694fac9..c43fe5a0edb4f6d876330e05aed8bb261fd91f27 100644 (file)
@@ -2197,7 +2197,7 @@ static void pfield_expand_dp_bplcon (void)
        bplplanecnt = dp_for_drawing->nr_planes;
        bplham = dp_for_drawing->ham_seen;
        bplehb = dp_for_drawing->ehb_seen;
-       if ((currprefs.chipset_mask & CSMASK_AGA) && (dp_for_drawing->bplcon2 & 0x0200))
+       if ((currprefs.chipset_mask & CSMASK_ECS_DENISE) && (dp_for_drawing->bplcon2 & 0x0200))
                bplehb = 0;
        issprites = dip_for_drawing->nr_sprites > 0;
 #ifdef ECS_DENISE
index 4a227a1da15315e7a31b0f4b0aa62db8d7211cf4..a9ab94910a21dd692de70091d3cd467792d28b43 100644 (file)
@@ -179,7 +179,7 @@ void event2_newevent_xx (int no, evt t, uae_u32 data, evfunc2 func)
 int current_hpos (void)
 {
        int hp = current_hpos_safe ();
-       if (hp < 0 || hp >= 256) {
+       if (hp < 0 || hp > 256) {
                gui_message(_T("hpos = %d!?\n"), hp);
                hp = 0;
        }
index c1677f1487120940d80c16ca831fb607fe28af28..443ca31e7b0f13bd815ee2e0d73ec640d2003cbe 100644 (file)
@@ -1655,7 +1655,13 @@ static int mouseedge (void)
                goto end;
        }
        ib = get_intuitionbase ();
-       if (!ib || get_word (ib + 20) < 31) // version < 31
+       if (!ib)
+               return 0;
+       if (get_word (ib + 20) < 31) // version < 31
+               return 0;
+       if (get_long (ib + 34 + 0) == 0) // ViewPort == NULL
+               return 0;
+       if (get_long (ib + 60) == 0) // FirstScreen == NULL
                return 0;
        x = get_word (ib + 70);
        y = get_word (ib + 68);
index 23339707dc26b1246936d457025ae3d153177881..b990c9ba0b23f2f03c9e603b03e79bb61518a181 100644 (file)
@@ -502,13 +502,9 @@ int dos_errno (void)
                return ERROR_SEEK_ERROR;
 
        default:
-               {
-                       static int done;
-                       if (!done)
-                               gui_message (_T("Unimplemented error %d\nContact author!"), e);
-                       done = 1;
-               }
-               return ERROR_NOT_IMPLEMENTED;
+               write_log (_T("Unimplemented error %d\n"), e);
+               /* most common */
+               return ERROR_OBJECT_NOT_AROUND;
        }
 }
 
@@ -777,7 +773,7 @@ void my_canonicalize_path(const TCHAR *path, TCHAR *out, int size)
                out[size - 1] = 0;
                return;
        }
-       PathCanonicalize(out, tmp);
+       GetFullPathName(tmp, size, out, NULL);
 }
 
 int my_issamevolume(const TCHAR *path1, const TCHAR *path2, TCHAR *path)
@@ -1003,4 +999,4 @@ bool my_resolvesoftlink(TCHAR *linkfile, int size)
                my_canonicalize_path (tmp, linkfile, size);
        }
        return false;
-}
\ No newline at end of file
+}
index 9ce8fc2197f643835139a4a10bc60e89f3033b25..7c55bc71da69767ad67fbaec3de9713619222bf4 100644 (file)
@@ -919,9 +919,9 @@ static void set_screenmode (struct RPScreenMode *sm, struct uae_prefs *p)
                                p->gfx_size_fs.width, p->gfx_size_fs.height,
                                p->rtg_horiz_zoom_mult, p->rtg_vert_zoom_mult);
                } else {
-                       write_log (_T("WW=%d WH=%d FW=%d FH=%d HM=%.1f VM=%.1f XP=%d YP=%d XS=%d YS=%d AS=%d AR=%d,%d\n"),
-                               p->gfx_size_win.width, p->gfx_size_win.height,
-                               p->gfx_size_fs.width, p->gfx_size_fs.height,
+                       write_log (_T("WW=%d (%d) WH=%d (%d) FW=%d (%d) FH=%d (%d) HM=%.1f VM=%.1f XP=%d YP=%d XS=%d YS=%d AS=%d AR=%d,%d\n"),
+                               p->gfx_size_win.width, currprefs.gfx_size_win.width, p->gfx_size_win.height, currprefs.gfx_size.height,
+                               p->gfx_size_fs.width, currprefs.gfx_size_fs.width, p->gfx_size_fs.height, currprefs.gfx_size_fs.height,
                                p->gf[0].gfx_filter_horiz_zoom_mult, p->gf[0].gfx_filter_vert_zoom_mult,
                                p->gfx_xcenter_pos, p->gfx_ycenter_pos,
                                p->gfx_xcenter_size, p->gfx_ycenter_size,
@@ -932,6 +932,15 @@ static void set_screenmode (struct RPScreenMode *sm, struct uae_prefs *p)
        updatewinfsmode (p);
        hwndset = 0;
        set_config_changed ();
+
+       write_log (_T("AFTER WW=%d (%d) WH=%d (%d) FW=%d (%d) FH=%d (%d) HM=%.1f VM=%.1f XP=%d YP=%d XS=%d YS=%d AS=%d AR=%d,%d\n"),
+               p->gfx_size_win.width, currprefs.gfx_size_win.width, p->gfx_size_win.height, currprefs.gfx_size.height,
+               p->gfx_size_fs.width, currprefs.gfx_size_fs.width, p->gfx_size_fs.height, currprefs.gfx_size_fs.height,
+               p->gf[0].gfx_filter_horiz_zoom_mult, p->gf[0].gfx_filter_vert_zoom_mult,
+               p->gfx_xcenter_pos, p->gfx_ycenter_pos,
+               p->gfx_xcenter_size, p->gfx_ycenter_size,
+               p->gf[0].gfx_filter_autoscale, p->gf[0].gfx_filter_aspect, p->gf[0].gfx_filter_keep_aspect);
+       write_log (_T("AFTER W=%d (%d) H=%d (%d)\n"), p->gfx_size.width, currprefs.gfx_size.width, p->gfx_size.height, currprefs.gfx_size.height);
 }
 
 static LRESULT CALLBACK RPHostMsgFunction2 (UINT uMessage, WPARAM wParam, LPARAM lParam,
index 1d89fe731c157f71c4c902711ba4ea2555214f07..0e3be09dfb99fda668a69fe2bae18d74bfd999e7 100644 (file)
@@ -2595,12 +2595,19 @@ void fullpath (TCHAR *path, int size)
                int ret = GetFullPathName (path, sizeof tmp2 / sizeof (TCHAR), tmp2, NULL);
                if (ret == 0 || ret >= sizeof tmp2 / sizeof (TCHAR))
                        return;
-               if (_tcsnicmp (tmp1, tmp2, _tcslen (tmp1)) == 0) { // tmp2 is inside tmp1
+               if (_tcslen(tmp1) > 2 && _tcsnicmp(tmp1, tmp2, 3) == 0 && tmp1[1] == ':' && tmp1[2] == '\\') {
+                       // same drive letter
+                       if (PathRelativePathTo(path, tmp1, FILE_ATTRIBUTE_DIRECTORY, tmp2, tmp2[_tcslen(tmp2) - 1] == '\\' ? FILE_ATTRIBUTE_DIRECTORY : 0))
+                               goto done;
+               }
+               if (_tcsnicmp (tmp1, tmp2, _tcslen (tmp1)) == 0) {
+                       // tmp2 is inside tmp1
                        _tcscpy (path, _T(".\\"));
                        _tcscat (path, tmp2 + _tcslen (tmp1));
                } else {
                        _tcscpy (path, tmp2);
                }
+done:;
        } else {
                TCHAR tmp[MAX_DPATH];
                _tcscpy (tmp, path);
index 749e33d313e070ab0caa28df5daffb7bd87053d1..4cb2e908e101979b6d6db0384cf903d267ed7eb7 100644 (file)
 #define LANG_DLL 1
 
 #if WINUAEPUBLICBETA
-#define WINUAEBETA _T("2")
+#define WINUAEBETA _T("3")
 #else
 #define WINUAEBETA _T("")
 #endif
-#define WINUAEDATE MAKEBD(2014, 5, 21)
+#define WINUAEDATE MAKEBD(2014, 5, 29)
 #define WINUAEEXTRA _T("")
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")
index fa1f89e8831147cd5c207a8a6a6083f9a2ffa2d7..478d90c79ac8775c18e71e8405a2d35f1fe07024 100644 (file)
@@ -223,6 +223,7 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
        }
 
        int scalemode = currprefs.gf[picasso_on].gfx_filter_autoscale;
+       int oscalemode = changed_prefs.gf[picasso_on].gfx_filter_autoscale;
 
        if (!specialmode && scalemode == AUTOSCALE_STATIC_AUTO) {
                if (currprefs.gfx_apmode[0].gfx_fullscreen) {
@@ -463,13 +464,15 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
                                        ww = currprefs.gfx_xcenter_size;
                                if (currprefs.gfx_ycenter_size >= 0)
                                        hh = currprefs.gfx_ycenter_size;
-                               int oldwinw = currprefs.gfx_size_win.width;
-                               int oldwinh = currprefs.gfx_size_win.height;
-                               changed_prefs.gfx_size_win.width = ww;
-                               changed_prefs.gfx_size_win.height = hh;
-                               fixup_prefs_dimensions (&changed_prefs);
-                               if (oldwinw != changed_prefs.gfx_size_win.width || oldwinh != changed_prefs.gfx_size_win.height)
-                                       set_config_changed ();
+                               if (scalemode == oscalemode) {
+                                       int oldwinw = currprefs.gfx_size_win.width;
+                                       int oldwinh = currprefs.gfx_size_win.height;
+                                       changed_prefs.gfx_size_win.width = ww;
+                                       changed_prefs.gfx_size_win.height = hh;
+                                       fixup_prefs_dimensions (&changed_prefs);
+                                       if (oldwinw != changed_prefs.gfx_size_win.width || oldwinh != changed_prefs.gfx_size_win.height)
+                                               set_config_changed ();
+                               }
                                OffsetRect (zr, -(changed_prefs.gfx_size_win.width - ww + 1) / 2, -(changed_prefs.gfx_size_win.height - hh + 1) / 2);
                                filteroffsetx = -zr->left / scale;
                                filteroffsety = -zr->top / scale;
index 740c37760c9b4c1e470da6ca9b80ab5a55b2b775..53925317988d81319b50c5a222880f708ec22949 100644 (file)
@@ -18,6 +18,20 @@ Things that may happen in 2015:
 
 - restore only single input target to default.
 
+Beta 3:
+
+- Do not show "hpos = 256!?" error dialog if something writes very bad values to programmed display
+  mode registers.
+- "Magic mouse" now stays disabled unless there is at least one open Intuition Screen.
+- If relative path mode, support also relative paths that point outside of winuae root directory.
+- BPLCON2 KILLEHB bit still required AGA instead of ECS Denise. This was supposed to be fixed in 1.4.5.
+  (But no one cares, pre-AGA it was only meant for genlock stuff)
+- Removed "Unimplemented error" dialog if directory filesystem returns unhandled/unknown win32 disk error
+  codes, adds log message, returns ERROR_OBJECT_NOT_AROUND. (Most common causes are network filesystem problems,
+  file/directory errors due security problems etc, no new missing errors reported for long time)
+- On the fly (not using GUI) switching from Automatic resize filter to another filter mode may have incorrectly
+  changed window size in some situations.
+
 Beta 2:
 
 - Quickstart GUI disk eject button was unreliable.