PICO_INTERNAL int PicoCdLoadState(void *file)
{
- unsigned char buff[0x60];
+ unsigned char buff[0x60], buff_m68k[0x60], buff_s68k[0x60];
int ver, len;
void *ym2612_regs = YM2612GetRegs();
switch (buff[0])
{
case CHUNK_M68K:
- CHECKED_READ_BUFF(buff);
- PicoAreaUnpackCpu(buff, 0);
+ CHECKED_READ_BUFF(buff_m68k);
break;
case CHUNK_Z80:
// cd stuff
case CHUNK_S68K:
- CHECKED_READ_BUFF(buff);
- PicoAreaUnpackCpu(buff, 1);
+ CHECKED_READ_BUFF(buff_s68k);
break;
case CHUNK_PRG_RAM: CHECKED_READ_BUFF(Pico_mcd->prg_ram); break;
cdda_start_play();
// restore hint vector
*(unsigned short *)(Pico_mcd->bios + 0x72) = Pico_mcd->m.hint_vector;
+
+ // must unpack after other CD stuff is loaded
+ PicoAreaUnpackCpu(buff_s68k, 1);
}
+ PicoAreaUnpackCpu(buff_m68k, 0);
return 0;
}