mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2024-11-10 21:05:12 +01:00
[Core/CD] improved CD hardware reset timing accuracy on software reset
This commit is contained in:
parent
76d6fb87a2
commit
b1ccc1aaba
@ -198,9 +198,6 @@ void cdd_init(int samplerate)
|
||||
|
||||
void cdd_reset(void)
|
||||
{
|
||||
/* reset cycle counter */
|
||||
cdd.cycles = 0;
|
||||
|
||||
/* reset drive access latency */
|
||||
cdd.latency = 0;
|
||||
|
||||
|
@ -1626,6 +1626,9 @@ void scd_reset(int hard)
|
||||
s68k.cycles = 0;
|
||||
s68k_pulse_reset();
|
||||
s68k_pulse_halt();
|
||||
|
||||
/* Reset frame cycle counter */
|
||||
scd.cycles = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1649,10 +1652,7 @@ void scd_reset(int hard)
|
||||
|
||||
/* Reset Timer & Stopwatch counters */
|
||||
scd.timer = 0;
|
||||
scd.stopwatch = 0;
|
||||
|
||||
/* Reset frame cycle counter */
|
||||
scd.cycles = 0;
|
||||
scd.stopwatch = s68k.cycles;
|
||||
|
||||
/* Clear pending interrupts */
|
||||
scd.pending = 0;
|
||||
@ -1661,6 +1661,9 @@ void scd_reset(int hard)
|
||||
memset(&m68k.poll, 0, sizeof(m68k.poll));
|
||||
memset(&s68k.poll, 0, sizeof(s68k.poll));
|
||||
|
||||
/* reset CDD cycle counter */
|
||||
cdd.cycles = (scd.cycles - s68k.cycles) * 3;
|
||||
|
||||
/* Reset CD hardware */
|
||||
cdd_reset();
|
||||
cdc_reset();
|
||||
|
Loading…
Reference in New Issue
Block a user