From 33a43e34c1d2b018ea768a011f3b1619f7fc5bc3 Mon Sep 17 00:00:00 2001 From: ekeeke Date: Fri, 10 Apr 2020 15:28:16 +0200 Subject: [PATCH] [Core/CD] incremented CD_PLAY status delay by one CDD interrupt (fixes regression freeze in Annet Futatabi introduced by previous change) --- HISTORY.txt | 7 +++++++ builds/genesis_plus_gx_libretro.dll | Bin 2765128 -> 2765128 bytes builds/genplus_cube.dol | Bin 3866208 -> 3866208 bytes builds/genplus_wii.dol | Bin 4119360 -> 4119360 bytes core/cd_hw/cdd.c | 6 +++--- 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/HISTORY.txt b/HISTORY.txt index 9b6863a..72eb957 100644 --- a/HISTORY.txt +++ b/HISTORY.txt @@ -13,6 +13,7 @@ Genesis Plus GX 1.7.5 (xx/xx/xxxx) (Eke-Eke) [Core/CD] --------------- * added CD-AUDIO & CD+G support +* added CD-ROM Mode 2 (Form 1 & 2) support (Wonder Library) * added optional support for external VORBIS library * added optional CHD file support * added CDC & GFX register polling detection / synchronization @@ -39,6 +40,7 @@ Genesis Plus GX 1.7.5 (xx/xx/xxxx) (Eke-Eke) * fixed access to Sub-CPU "read-only" communication registers (fixes Round 5 Boss freeze in Streets of Rage / Sega Classics Arcade Collection) * fixed pending level 1 interrupts when GFX interrupt is disabled (fixes random freezes when exiting "Batman Returns" option menu) * fixed CDD seek command again (Final Fight CD freeze with model 2 BIOS) +* fixed CDD status reported during seek/access time (sound effect synchronization issue in Bari Arm) * optimized Sub-CPU / Main-CPU synchronization [Core/MD] @@ -66,6 +68,7 @@ Genesis Plus GX 1.7.5 (xx/xx/xxxx) (Eke-Eke) * improved emulation accuracy of Japanese Master System I/O chip (315-5297) * fixed Boot ROM loading when switching system hardware * fixed 4MB ROM support +* fixed savestate support when using Boot ROM [Core/GG] --------------- @@ -77,13 +80,16 @@ Genesis Plus GX 1.7.5 (xx/xx/xxxx) (Eke-Eke) * added support for new SMS Power Korean dumps (Star Soldier & Pippols) * added support for SG-1000 II clone hardware (2KB RAM + integrated VDP/PSG chip 315-5066) * fixed SG-1000 internal RAM size (1KB instead of 2KB) +* fixed savestates for games using external RAM * restored SG-1000 Pause button support [Core/CPU] --------------- +* added Z80 wait-states on 68k bus access (fixes Remute Red Eyes demo) * improved 68k auto-vectored interrupts acknowledge cycle timing accuracy (Bubsy background color corruption during cutscenes) * fixed 68k undocumented behaviors for ABCD/SBCD/NBCD instructions (thanks to Flamewing for his test ROM) * fixed 68k timing of BTST Dn,#Imm instruction (verified by Flamewing in original microcode) +* fixed 68K DIVU instruction timings for SUB-CPU * fixed Z80 interrupt duration (Bomb on Basic City music running too fast) * fixed Z80 SP register initialization on power-on for Master System & Game Gear (Ace of Aces, Shadow Dancer, Ecco the Dolphin, Evander Holyfield Real Deal Boxing) @@ -127,6 +133,7 @@ Genesis Plus GX 1.7.5 (xx/xx/xxxx) (Eke-Eke) * replaced configurable YM2612 DAC quantization by configurable YM2612 chip model emulation (discrete, ASIC-integrated or enhanced) * added DAC distortion emulation for discrete YM2612 chip model * added accurate status & BUSY flag emulation for discrete and ASIC-integrated YM2612 chip models (verified on real hardware) +* added optional support for cycle-accurate YM3438/YM2612 & YM2413 cores from Nuked * improved 9-bit DAC quantization accuracy for discrete and ASIC-integrated YM2612 chip models (verified on YM2612 die) * rewrote optimized & more accurate PSG core from scratch * removed PSG boost noise feature & added optional high-quality PSG resampling diff --git a/builds/genesis_plus_gx_libretro.dll b/builds/genesis_plus_gx_libretro.dll index 8f4956e222e369c94066e505970518d7aed44842..8dd988e578285de5961a94955258633e74c62a4c 100644 GIT binary patch delta 200 zcmWm8ITFEO7zW^pAHOYjV&B(MC!=)$GbwTdMypS!_$G!XDpzm;lfngZhYvGcKzfZ= z@$`@Xz9>Gpd-2@5r{hvQwAqe{72*)FAPy5ph@-@kI7S>NP7o)FQ&(1RA4NFlK!r49 zAPYIjLjj6Vf--1OfhyFzb5Osp
  • 6`o?fhFd3ed2x8IDi9~P%r^(ftAGd^Wm(^fta0 zPydAPs}#b?Qyxd}eAp7&83p7hsF1>n zD5{v^N+_w6(#j~SobpfiZH;sHtjhw6EYY&e3ahNK&IX%ovCR&c07cRK!CeOUxVyVm$KoZlKp`ZQz?3m7HnhNkdy?b-zQ*TGMvejsDx|O? ziYlhK5=ttiv@*&nr~K1>TjSh4>$1QiOSCMr!YXU5v%w}?Y_r2Id+c+-Ax9i@!YOB* abHOE7Tyw)Mcii*9BTqc@^78EU@%aN8B~eZQ diff --git a/builds/genplus_wii.dol b/builds/genplus_wii.dol index 9d7cf6562b1643c7aeb8e2a634b1183ad72f579e..ed3611b2e9354966f80da30c0e2ade2b8803d1e7 100644 GIT binary patch delta 229 zcmWN=MGnGH07cOhiaW*S_yZ!wGLCil7 delta 229 zcmWN=MGnGH07cQX6nBct$KBluYh&;dHbh`V(tR=Ep5*xNpXKu*OSS@X6jVrIMHE#` zaV3;gN@-=3Rqo|pjb%SQ<1)_zi!8Cs3ahNK&IS#eY_ZJ_yX>*g0f!uM%n7HQan1#o aTyf0}x7=~h1CKoM%nPsdc>8$f?tK4289xpH diff --git a/core/cd_hw/cdd.c b/core/cd_hw/cdd.c index f7e8d8f..dddf6e6 100644 --- a/core/cd_hw/cdd.c +++ b/core/cd_hw/cdd.c @@ -1791,8 +1791,8 @@ void cdd_process(void) { /* RS0-RS8 are normally unchanged unless reported drive status needs to be updated (i.e previous drive command has been processed) */ /* Note: this function is called one 75hz frame ahead of CDD update so latency counter is always one step ahead of upcoming status */ - /* Also, Radical Rex needs at least two interrupts with 'playing' status returned before sectors start getting incremented */ - if (cdd.latency <= 2) + /* Radical Rex and Annet Futatabi both need at least respectively 2 and 3 interrupts with 'playing' status returned before sectors start getting incremented */ + if (cdd.latency <= 3) { /* update reported drive status */ scd.regs[0x38>>1].byte.h = cdd.status; @@ -1932,7 +1932,7 @@ void cdd_process(void) if (!cdd.latency) { /* Fixes a few games hanging because they expect data to be read with some delay */ - /* Wolf Team games (Anet Futatabi, Aisle Lord, Cobra Command, Earnest Evans, Road Avenger & Time Gal) need at least 11 interrupts delay */ + /* Wolf Team games (Annet Futatabi, Aisle Lord, Cobra Command, Earnest Evans, Road Avenger & Time Gal) need at least 11 interrupts delay */ /* Space Adventure Cobra (2nd morgue scene) needs at least 13 interrupts delay (incl. seek time, so 11 is OK) */ cdd.latency = 11; }