From: Toni Wilen Date: Sun, 12 Sep 2021 15:44:44 +0000 (+0300) Subject: 4900b33 X-Git-Tag: 4900~70 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=c195aa209790a8d2c3b4f351354854ed8d5b3e5e;p=francis%2Fwinuae.git 4900b33 --- diff --git a/od-win32/direct3d.cpp b/od-win32/direct3d.cpp index 870bb4f3..053ecbbe 100644 --- a/od-win32/direct3d.cpp +++ b/od-win32/direct3d.cpp @@ -1294,6 +1294,7 @@ static int createamigatexture (struct d3dstruct *d3d, int w, int h) d3d->texture2 = createtext(d3d, w, h, d3d->tformat); if (!d3d->texture1 || !d3d->texture2) return 0; + d3d->usetexture = d3d->texture1; write_log (_T("%s: %d*%d main texture, depth %d\n"), D3DHEAD, w, h, d3d->t_depth); if (d3d->psActive) { for (int i = 0; i < MAX_SHADERS; i++) { @@ -2361,6 +2362,7 @@ static void settransform2 (struct d3dstruct *d3d, struct shaderdata *s) static void freetextures (struct d3dstruct *d3d) { + d3d->usetexture = NULL; if (d3d->texture2) { d3d->texture2->Release(); d3d->texture2 = NULL; diff --git a/od-win32/unicode.cpp b/od-win32/unicode.cpp index d4b868d5..c6b46196 100644 --- a/od-win32/unicode.cpp +++ b/od-win32/unicode.cpp @@ -323,11 +323,17 @@ int same_aname (const TCHAR *an1, const TCHAR *an2) return CompareString (LOCALE_INVARIANT, NORM_IGNORECASE, an1, -1, an2, -1) == CSTR_EQUAL; } -void to_lower (TCHAR *s, int len) +void to_lower(TCHAR *s, int len) { - CharLowerBuff (s, len); + if (len < 0) { + len = _tcslen(s); + } + CharLowerBuff(s, len); } -void to_upper (TCHAR *s, int len) +void to_upper(TCHAR *s, int len) { - CharUpperBuff (s, len); + if (len < 0) { + len = _tcslen(s); + } + CharUpperBuff(s, len); } \ No newline at end of file diff --git a/od-win32/win32.h b/od-win32/win32.h index 47deeddd..7bc47a21 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -20,12 +20,12 @@ #define LANG_DLL_FULL_VERSION_MATCH 1 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("Beta 32") +#define WINUAEBETA _T("Beta 33") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2021, 9, 7) +#define WINUAEDATE MAKEBD(2021, 9, 12) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 65f0e652..0369afa9 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,19 @@ + +Beta 33: + +- DMACONR blitter busy bit state is 1 cycle later than copper waking up from blitter finished. (Circle Scroller / United Force) +- Direct3D9 mode crash was possible when switching screen modes (b32). +- Disassembler configuration (upper/lower case options, show calculated EA, show data pointed by EA, condition true/false), hex number prefix, min and max number of opcode/opwords. Currently only available via direct ini or registry editing, first enter debugger, then quit emulator to create default entries. Debugger sub section, debug_disasm_flags is bit mask, bits 0 to 4 are lower case bits (0=instruction name, 1=registers, 2=hex values, 3=instruction size), 4=show T/F, 5=show EA, 6=show EA contents, 7=show instruction opcode/opwords. Currently they only affect disassembler output. Defaults changed to lower case. +- Don't log flood "DMAL error" messages if (totally unusable) programmed mode with HTOTAL smaller than last audio DMA slot. +- DMAL (Serial DMA slot allocation information from Paula to Agnus) start cycle was not updated to match new custom chipset emulation. +- Small audio period causing repeated samples is now fully accurate, including 1 extra cycle delay if DMA request includes pointer reset (sample restart). +- Very strange programmed modes could have made it impossible to quit emulator normally. +- Adjusted behavior of CPU reads from write-only custom registers (Bozebobs / Area08) +- Fixed crash when loading some old A500 statefiles with CD32 CD incorrectly enabled. +- Adjusted "Smooth Copper" hack to work with new custom chipset emulation (not fully correct yet). +- Console log/debugger DPI adjustment. + Beta 32: - HDIW blanking could get stuck in always-on state if VPOSW was written mid screen with out of range values. (Agony Psygnosis title screen become fully border color blanked if ECS) diff --git a/od-win32/writelog.cpp b/od-win32/writelog.cpp index 2110eb6a..35bcda88 100644 --- a/od-win32/writelog.cpp +++ b/od-win32/writelog.cpp @@ -216,6 +216,11 @@ void reopen_console (void) newpos = 0; if (newpos) { RECT rc; + int dpi = getdpiforwindow(hwnd); + x = x * dpi / 96; + y = y * dpi / 96; + w = w * dpi / 96; + h = h * dpi / 96; rc.left = x; rc.top = y; rc.right = x + w; @@ -242,6 +247,11 @@ void close_console (void) if (GetWindowRect (hwnd, &r)) { r.bottom -= r.top; r.right -= r.left; + int dpi = getdpiforwindow(hwnd); + r.left = r.left * 96 / dpi; + r.right = r.right * 96 / dpi; + r.top = r.top * 96 / dpi; + r.bottom = r.bottom * 96 / dpi; regsetint (NULL, _T("LoggerPosX"), r.left); regsetint (NULL, _T("LoggerPosY"), r.top); regsetint (NULL, _T("LoggerPosW"), r.right);