From e3b1d19081e9720a7c1f572392f61ea827d5535d Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 9 Jan 2021 17:07:28 +0200 Subject: [PATCH] 4500b15 --- debug.cpp | 11 ++++++++--- drawing.cpp | 2 ++ od-win32/sounddep/sound.cpp | 2 +- od-win32/win32.h | 4 ++-- od-win32/winuaechangelog.txt | 19 +++++++++++++++++++ 5 files changed, 32 insertions(+), 6 deletions(-) diff --git a/debug.cpp b/debug.cpp index 2cc43e98..2ee5af1b 100644 --- a/debug.cpp +++ b/debug.cpp @@ -1825,9 +1825,14 @@ void record_dma_replace(int hpos, int vpos, int type, int extra) dr->extra = extra; } +static void dma_conflict(int vpos, int hpos, struct dma_rec *dr, int reg, bool write) +{ + write_log(_T("DMA conflict %c: v=%d h=%d OREG=%04X NREG=%04X\n"), write ? 'W' : 'R', vpos, hpos, dr->reg, reg); +} + void record_dma_write(uae_u16 reg, uae_u32 dat, uae_u32 addr, int hpos, int vpos, int type, int extra) { - struct dma_rec* dr; + struct dma_rec *dr; if (!dma_record[0]) { dma_record[0] = xmalloc(struct dma_rec, NR_DMA_REC_HPOS * NR_DMA_REC_VPOS); @@ -1844,7 +1849,7 @@ void record_dma_write(uae_u16 reg, uae_u32 dat, uae_u32 addr, int hpos, int vpos dr = &dma_record[dma_record_toggle][vpos * NR_DMA_REC_HPOS + hpos]; dma_record_frame[dma_record_toggle] = timeframes; if (dr->reg != 0xffff) { - write_log(_T("DMA conflict: v=%d h=%d OREG=%04X NREG=%04X\n"), vpos, hpos, dr->reg, reg); + dma_conflict(vpos, hpos, dr, reg, false); return; } dr->reg = reg; @@ -1881,7 +1886,7 @@ void record_dma_read(uae_u16 reg, uae_u32 addr, int hpos, int vpos, int type, in dr = &dma_record[dma_record_toggle][vpos * NR_DMA_REC_HPOS + hpos]; dma_record_frame[dma_record_toggle] = timeframes; if (dr->reg != 0xffff) { - write_log (_T("DMA conflict: v=%d h=%d OREG=%04X NREG=%04X\n"), vpos, hpos, dr->reg, reg); + dma_conflict(vpos, hpos, dr, reg, false); return; } dr->reg = reg; diff --git a/drawing.cpp b/drawing.cpp index 11cbba0c..addafd57 100644 --- a/drawing.cpp +++ b/drawing.cpp @@ -4609,6 +4609,8 @@ void reset_drawing(void) memset (spixels, 0, sizeof spixels); memset (&spixstate, 0, sizeof spixstate); + init_hardware_for_drawing_frame(); + notice_screen_contents_lost(monid); init_drawing_frame (); pfield_set_linetoscr(); diff --git a/od-win32/sounddep/sound.cpp b/od-win32/sounddep/sound.cpp index 34cb9307..a8b457a3 100644 --- a/od-win32/sounddep/sound.cpp +++ b/od-win32/sounddep/sound.cpp @@ -3126,8 +3126,8 @@ int enumerate_sound_devices (void) if ((1 || force_directsound || !os_vista) && (sounddrivermask & SOUNDDRIVER_DS)) { write_log(_T("Enumerating DirectSound devices..\n")); DirectSoundEnumerate ((LPDSENUMCALLBACK)DSEnumProc, sound_devices); + DirectSoundCaptureEnumerate((LPDSENUMCALLBACK)DSEnumProc, record_devices); } - DirectSoundCaptureEnumerate ((LPDSENUMCALLBACK)DSEnumProc, record_devices); #if USE_XAUDIO if (sounddrivermask & SOUNDDRIVE_XAUDIO2) xaudioenumerate (sound_devices); diff --git a/od-win32/win32.h b/od-win32/win32.h index ec812a12..f7c9fa16 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 14") +#define WINUAEBETA _T("Beta 15") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2021, 1, 2) +#define WINUAEDATE MAKEBD(2021, 1, 9) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 42e4efa6..2b87a058 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,23 @@ + +Beta 15: + +- PCI Virge emulation. Not much point but Virge emulation already existed, so... Not all byteswapping modes emulated, only what Mediator driver needs to work correctly. G-REX + Virge also works but 24-bit modes have some byteswap problems. +- PCem PCI device config byte wide reads fixed (Voodoo/Virge + G-REX in CSPPC boot screen PCI list PCI device type is now shown correctly) +- Voodoo 3 now works with G-REX CGX4 drivers. +- G-REX didn't detect any PCI cards after FM801. +- PCI RTG board native/RTG mode autoswitching improved. +- Aranym JIT update missed move from FPU register to data register clamping (for example FPn -150.0 to Dn.B should become -128). Re-added. +- Fixed FPU instruction JIT blacklist support. +- Combitec HD 20 A/HD 40 A (not 100% sure it is exactly this model but very likely) emulation. + +Combitec HD 20 A/HD 40 A: +- OMTI compatible HD controller. Usual OMTI IO offset 0x641. Base address is at $800000 + autoboot ROM at $f00000. +- Autoboot ROM supports autoboot under KS 1.2 (seems to use same hack that other KS 1.2 autobootable HD controller use) +- Boot ROM version string: "autoboot.device (autoboot.device 6.18 (27.8.89) , Rom_1.2, FFS, Bildchen, Search, New Boot Partition Programmiert von Bernhard Möllemann & Hartmut Sprave (C) Combitec 1988,1989" +- Boot screen ("COMPUTER TOP EQUIPMENT COLOSSUS(R) HD-AutoBoot") + + Beta 14: - Fixed possible out of bounds array access when virtual mouse driver is installed. -- 2.47.3