mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
cd: better cd change handling, perhaps?
This commit is contained in:
parent
fa8fb75445
commit
d0132772f7
7 changed files with 52 additions and 13 deletions
|
@ -41,6 +41,8 @@ PICO_INTERNAL void PicoPowerMCD(void)
|
|||
memset(&Pico_mcd->pcm, 0, sizeof(Pico_mcd->pcm));
|
||||
memset(&Pico_mcd->m, 0, sizeof(Pico_mcd->m));
|
||||
|
||||
Reset_CD();
|
||||
|
||||
// cold reset state (tested)
|
||||
Pico_mcd->m.state_flags = PCD_ST_S68K_RST;
|
||||
Pico_mcd->m.busreq = 2; // busreq on, s68k in reset
|
||||
|
@ -48,16 +50,25 @@ PICO_INTERNAL void PicoPowerMCD(void)
|
|||
memset(Pico_mcd->bios + 0x70, 0xff, 4);
|
||||
}
|
||||
|
||||
PICO_INTERNAL int PicoResetMCD(void)
|
||||
void pcd_soft_reset(void)
|
||||
{
|
||||
// ??
|
||||
Reset_CD();
|
||||
// Reset_CD(); // breaks Fahrenheit CD swap
|
||||
|
||||
LC89510_Reset();
|
||||
gfx_cd_reset();
|
||||
#ifdef _ASM_CD_MEMORY_C
|
||||
//PicoMemResetCDdecode(1); // don't have to call this in 2M mode
|
||||
#endif
|
||||
|
||||
pcd_event_schedule_s68k(PCD_EVENT_CDC, 12500000/75);
|
||||
|
||||
// TODO: test if register state/timers change
|
||||
}
|
||||
|
||||
PICO_INTERNAL int PicoResetMCD(void)
|
||||
{
|
||||
// reset button doesn't affect MCD hardware
|
||||
|
||||
// use SRam.data for RAM cart
|
||||
if (PicoOpt & POPT_EN_MCD_RAMCART) {
|
||||
if (SRam.data == NULL)
|
||||
|
@ -69,8 +80,6 @@ PICO_INTERNAL int PicoResetMCD(void)
|
|||
}
|
||||
SRam.start = SRam.end = 0; // unused
|
||||
|
||||
pcd_event_schedule(0, PCD_EVENT_CDC, 12500000/75);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue