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);
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;
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;
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();
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);
#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")
+
+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.