From d4ca576c073cfa0ac347bc25b3986201f1667608 Mon Sep 17 00:00:00 2001 From: ekeeke Date: Sun, 26 Nov 2023 17:48:55 +0100 Subject: [PATCH] [Core/CD] fixed BOOT ROM level 4 interrupt vector upper word value (verified on real hardware, cf. Krikzz's mcd-verificator) --- HISTORY.txt | 2 +- core/cd_hw/scd.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/HISTORY.txt b/HISTORY.txt index 8aa1b47..85fac63 100644 --- a/HISTORY.txt +++ b/HISTORY.txt @@ -47,7 +47,7 @@ Genesis Plus GX 1.7.5 (xx/xx/xxxx) (Eke-Eke) * fixed PRG-RAM access from MAIN-CPU side on system reset * fixed state loading bug when SUB-CPU interrupt is pending * fixed H-INT vector handling when using Mode 1 -* fixed H-INT vector upper word value +* fixed BOOT ROM level 4 interrupt vector upper word value (verified on real hardware, cf. Krikzz's mcd-verificator) * fixed access to "write-only" communication flags (verified on real hardware by Notaz) * fixed access to Sub-CPU "read-only" communication registers (fixes Round 5 Boss freeze in Streets of Rage / Sega Classics Arcade Collection) * fixed byte access to memory mode, timer and font color registers at even address (verified on real hardware, cf. Krikzz's mcd-verificator) diff --git a/core/cd_hw/scd.c b/core/cd_hw/scd.c index 567a72b..9820911 100644 --- a/core/cd_hw/scd.c +++ b/core/cd_hw/scd.c @@ -1727,6 +1727,7 @@ void scd_reset(int hard) scd.dmna = 0; /* H-INT default vector */ + *(uint16 *)(m68k.memory_map[scd.cartridge.boot].base + 0x70) = 0xFFFF; *(uint16 *)(m68k.memory_map[scd.cartridge.boot].base + 0x72) = 0xFFFF; /* Power ON initial values (MAIN-CPU side) */