From: Toni Wilen Date: Sun, 19 Apr 2026 16:18:33 +0000 (+0300) Subject: 6100b2 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=77f52d4089098c6ee76d24939401fe8e5ad997f5;p=francis%2Fwinuae.git 6100b2 --- diff --git a/blitter.cpp b/blitter.cpp index 52170e3a..dd8adee5 100644 --- a/blitter.cpp +++ b/blitter.cpp @@ -1993,10 +1993,7 @@ static void blitter_start_init(void) { #if 0 if (blt_info.blit_main) { - write_log("Blitter start but blitter active"); - } - if (blt_info.blit_finald) { - write_log("Blitter start but final D still pending"); + write_log("Blitter start but blitter active\n"); } #endif diff --git a/drawing.cpp b/drawing.cpp index 718008f4..c8f00ebf 100644 --- a/drawing.cpp +++ b/drawing.cpp @@ -5756,13 +5756,13 @@ static void get_line(int monid, int gfx_ypos, enum nln_how how, int lol_shift_pr } } } - denise_pixtotal_max--; } + denise_pixtotal_max--; denise_pixtotal *= 2; if (buf1) { - int maxw = (uae_u32*)xlinebuffer_end - buf1; + int maxw = addrdiff((uae_u32*)xlinebuffer_end, buf1); if ((denise_pixtotal_max << hresolution) > maxw) { denise_pixtotal_max = maxw >> hresolution; } diff --git a/od-win32/win32.h b/od-win32/win32.h index 4e45f7ec..f6f3faba 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("1") +#define WINUAEBETA _T("2") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2026, 4, 11) +#define WINUAEDATE MAKEBD(2026, 4, 19) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 634900f2..17921e38 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,27 @@ +Beta 2: + +- Detect missing hsync/vsync and trigger "no signal" state quicker. "No signal" state was also clearing internal buffer every frame, slowing down emulation unnecessarily. +- If program writes to BEAMCON0 (for example enabling programmed horizontal or vertical sync) but matching programmed mode registers are still uninitialized and monitor sync mode is combined: do not switch to (unusable) H/V sync cable mode. (Love / VD/Fairlight writing bogus value $0200 to BEAMCON0) +- If "no signal" state is active when display mode changes, wait until syncs are valid and then wait 2 more fields before deciding display aspect and size after display parameter change. (AR3 corrupted screen in cycle-exact mode after entering it twice) +- b1 clock sync change didn't check if UAE Boot ROM interrupt was active before sending the sync request message, causing hang due to stuck interrupt if done too early. +- Only emulate VHPOSR/VPOSR reading 1 CCK later value than all other parts of chipset sees in cycle-exact modes, it can cause side-effects in fast CPU modes. +- 68020/30 CE mode sometimes delayed interrupts until 68020/030 prefetch buffer was reloaded (after branch/RTS etc instruction). (old) +- HDIW removed from debugger c command, it can't show current HDIW state cycle-accurately because Denise side scanline is emulated after Agnus line has been completed. Use DMA debugger to check HDIW state. +- 68020/30 memory cycle-exact instruction cache loads didn't check for chip bus DMA stealing CPU cycles. (old) +- Fixed always on active HDIW not being saved to statefile and not loaded from statefile (same reason as above). +- Keyboard could stop working if system was reset during keyboard reset warning wait period. (Probably introduced when emulated keyboard controllers were added) +- Added ~ (NOT) operator to debugger calculator. +- Debugger od copper disassembler stored horizontal/vertical values are now cleared when debugger is enabled or disabled. + +Known broken: + +- OCS Denise NTSC odd/even horizontal toggling is visible incorrectly in overscan/overscan+. +- 68020 CE has something wrong (no easy test case so far), it was supposed to be same as previously but it isn't. +- "Remove interlace artifacts" (always breaks) +- Display port adapters. Only A2024 works. + + Beta 1: - Copper emulation rewritten to match low level logic (Relatively simple 3 stage state machine based on Alice schematics). This is needed to support nasty VHPOSW write special cases. Emulation code is also now much shorter and simpler, all COPxJMP special case hacks are gone. diff --git a/od-win32/writelog.cpp b/od-win32/writelog.cpp index e5904738..63ca819a 100644 --- a/od-win32/writelog.cpp +++ b/od-win32/writelog.cpp @@ -748,11 +748,11 @@ void write_log (const TCHAR *format, ...) DWORD temp; if (lfdetected && ts) { char *utf8_ts = uutf8(ts); - WriteFile(stdoutput, utf8_ts, strlen(utf8_ts), &temp, NULL); + WriteFile(stdoutput, utf8_ts, (DWORD)strlen(utf8_ts), &temp, NULL); xfree(utf8_ts); } char *utf8 = uutf8(bufp); - WriteFile(stdoutput, utf8, strlen(utf8), &temp, NULL); + WriteFile(stdoutput, utf8, (DWORD)strlen(utf8), &temp, NULL); xfree(utf8); }