]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
4990b4
authorToni Wilen <twilen@winuae.net>
Sun, 30 Oct 2022 16:33:43 +0000 (18:33 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 30 Oct 2022 16:33:43 +0000 (18:33 +0200)
include/options.h
od-win32/gdirender.cpp
od-win32/win32.cpp
od-win32/win32.h
od-win32/winuaechangelog.txt

index a009b053f9429e43b8fcbacf24bdcf37604b900b..1a73edacb62ae1d8c2a79da6c730b3faa62bde43 100644 (file)
@@ -16,7 +16,7 @@
 
 #define UAEMAJOR 4
 #define UAEMINOR 9
-#define UAESUBREV 2
+#define UAESUBREV 9
 
 #define MAX_AMIGADISPLAYS 4
 
index ff06fb99b87143114028e40bc5beaea2cbc9a132..4c08bee7f6410b9c7bf97e564ac7a20fd8a2d7ef 100644 (file)
@@ -391,6 +391,7 @@ static const TCHAR *gdi_init(HWND ahwnd, int monid, int w_w, int w_h, int depth,
                allocsprite(gdi, &gdi->osd, gdi->ledwidth, gdi->ledheight);
                allocsprite(gdi, &gdi->cursor, CURSORMAXWIDTH, CURSORMAXHEIGHT);
                gdi->enabled = 1;
+               write_log(_T("GDI mode initialized %d*%d*%d\n"), w_w, w_h, depth);
                return NULL;
        }
 
@@ -418,6 +419,10 @@ static bool gdi_setcursor(int monid, int x, int y, int width, int height, float
 {
        struct gdistruct *gdi = &gdidata[monid];
 
+       if (gdi->depth < 32) {
+               return false;
+       }
+
        if (width < 0 || height < 0) {
                return true;
        }
@@ -443,6 +448,10 @@ static uae_u8 *gdi_setcursorsurface(int monid, int *pitch)
 {
        struct gdistruct* gdi = &gdidata[monid];
 
+       if (gdi->depth < 32) {
+               return NULL;
+       }
+
        if (pitch) {
                *pitch = gdi->cursor.pitch;
                return (uae_u8*)gdi->cursor.bits;
index eca5bf06c77287673a0be1d1568165c9c3dae27f..69a91d49691af608ac49ea54a9df3107d2755800 100644 (file)
@@ -5624,7 +5624,7 @@ static void WIN32_HandleRegistryStuff (void)
        if (regexists (NULL, _T("SoundDriverMask"))) {
                regqueryint (NULL, _T("SoundDriverMask"), &sounddrivermask);
        } else {
-               sounddrivermask = 3;
+               sounddrivermask = 2;
                regsetint (NULL, _T("SoundDriverMask"), sounddrivermask);
        }
 
@@ -5797,7 +5797,7 @@ static int betamessage (void)
        return 1;
 }
 
-int os_admin, os_64bit, os_win7, os_win8, os_win10, os_vista, cpu_number, os_touch;
+int os_admin, os_64bit, os_win7, os_win8, os_win10, cpu_number, os_touch;
 BOOL os_dwm_enabled;
 BOOL dpi_aware_v2;
 
@@ -5875,9 +5875,6 @@ static int osdetect (void)
                pGetNativeSystemInfo (&SystemInfo);
        osVersion.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
        if (GetVersionEx (&osVersion)) {
-               if (osVersion.dwMajorVersion >= 6) {
-                       os_vista = 1;
-               }
                if (osVersion.dwMajorVersion >= 7 || (osVersion.dwMajorVersion == 6 && osVersion.dwMinorVersion >= 1)) {
                        os_win7 = 1;
                }
@@ -5916,18 +5913,16 @@ static int osdetect (void)
                }
        }
 
-       if (os_vista) {
-               typedef HRESULT(CALLBACK* DWMISCOMPOSITIONENABLED)(BOOL*);
-               HMODULE dwmapihandle;
-               DWMISCOMPOSITIONENABLED pDwmIsCompositionEnabled;
-               dwmapihandle = LoadLibrary(_T("dwmapi.dll"));
-               if (dwmapihandle) {
-                       pDwmIsCompositionEnabled = (DWMISCOMPOSITIONENABLED)GetProcAddress(dwmapihandle, "DwmIsCompositionEnabled");
-                       if (pDwmIsCompositionEnabled) {
-                               pDwmIsCompositionEnabled(&os_dwm_enabled);
-                       }
-                       FreeLibrary(dwmapihandle);
+       typedef HRESULT(CALLBACK* DWMISCOMPOSITIONENABLED)(BOOL*);
+       HMODULE dwmapihandle;
+       DWMISCOMPOSITIONENABLED pDwmIsCompositionEnabled;
+       dwmapihandle = LoadLibrary(_T("dwmapi.dll"));
+       if (dwmapihandle) {
+               pDwmIsCompositionEnabled = (DWMISCOMPOSITIONENABLED)GetProcAddress(dwmapihandle, "DwmIsCompositionEnabled");
+               if (pDwmIsCompositionEnabled) {
+                       pDwmIsCompositionEnabled(&os_dwm_enabled);
                }
+               FreeLibrary(dwmapihandle);
        }
 
        return 1;
@@ -7050,13 +7045,8 @@ static int PASCAL WinMain2 (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR
        if (!osdetect ())
                return 0;
 
-       if (os_vista) {
-               max_uae_width = 8192;
-               max_uae_height = 8192;
-       } else {
-               max_uae_width = 3072;
-               max_uae_height = 2048;
-       }
+       max_uae_width = 8192;
+       max_uae_height = 8192;
 
        hInst = hInstance;
        hMutex = CreateMutex (NULL, FALSE, _T("WinUAE Instantiated")); // To tell the installer we're running
index 291d161e4991d8f7a0ce61ea37b093ad07b5de81..8b03aa65f63b19fbe52bd747cb1eda40b4457869 100644 (file)
 #define LANG_DLL_FULL_VERSION_MATCH 0
 
 #if WINUAEPUBLICBETA
-#define WINUAEBETA _T("Beta 3")
+#define WINUAEBETA _T("Beta 4")
 #else
 #define WINUAEBETA _T("")
 #endif
 
-#define WINUAEDATE MAKEBD(2022, 10, 23)
+#define WINUAEDATE MAKEBD(2022, 10, 30)
 
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")
index bef60cd50353bac211d6b20f97c709c3b95623c0..051d2d916b0e98bba0a5d3cfb779ed1ce91836e2 100644 (file)
@@ -1,5 +1,20 @@
 
 
+- Remaining IPL fixes (LINK, UNLK, MOVE to SR/CCR, AND/EOR/OR SR/CCR, CPU wait state IPL fix).
+- Emulated Paula side-effect that affects IPL timing. IPLx line state changes from low to high (IPL is active low) are about 0.5 CCK later than high to low transitions. This delays CPU IPL change detection by 2 CPU clocks if any IPL line had low to high transition. CPU accepts IPL change only if has been stable for 2 CPU clocks. (for example 3 to 5 has delay, 4 to 5 does not)
+- Enable only WASAPI audio by default.
+- Debugger break point command accepts number of hits before breaking to debugger (f Nxx <address> where xx is number of hits required)
+- uaegfx overlay limit checks compared Amiga side VRAM end against physical host side bitmap end which accidentally passed if 64-bit Windows. Overlay window was usually empty if 32-bit Windows. (It might have worked in some configurations when using Z2 uaegfx)
+- GUI Help button is now always available and opens if exists: (in priority order) winuae.chm, winuae.pdf. If neither is found, help web page is opened (without asking first like previously)
+- It is still possible to run windowed WinUAE if desktop is 16-bit but it can cause graphics problems. Not sure if this needs to be supported anymore.
+
+68000 based A500 like unexpanded (Fast RAM expansion is supported) configurations should be now 100% cycle-accurate. (If there are no bugs, many edge cases need complex and very carefully timed cycle accurate tests that are not easy to do)
+
+Note that this does not mean all features are fully emulated, for example OCS and ECS Denise mid-screen resolution changes are not pixel accurate. Accurate as in if resolution change is not carefully coded, there can be few extra or missing pixels when resolution changes. AGA does not have this side-effect.
+
+
+Beta 3:
+
 - 68000 IPL check position is now almost fully accurate (Still some special cases to check and test). Very big thanks to fx68k author!
 - W debugger command hang fixed.
 - Full drive/RDB mode is now normal checbox. Hopefully it is now less confusing than button that didn't really look like a button. If selected HDF already has RDSK identifer, checkbox is ticked and disabled. Checkbox can be only ticked/unticked if selected HDF does not have RDSK identifier.
@@ -34,9 +49,6 @@ IPL check is most commonly at the beginning of instruction after EA calculations
 
 This finally makes 68000 emulation complete. Everything observable (that Amiga uses) outside of 68000 should be 100% cycle-accurate now.
 
-Usual suspects (Spectreparty aka Dots demo / Phenomena and Expiration / Mayhem cube) still have problems which means there are still something else wrong.
-
-
 Beta 2:
 
 - Display resync blanking was stuck enabled (~1s blank screen when mode switches)