X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fcd%2Farea.c;h=645993bcb5f7e37e4621680012b04a487c91b897;hb=a736af3ecf708652f90e9cb05445d984960a0eec;hp=757d8fb999ad6fb28a1d39d8f060a106bc8e3e35;hpb=af37bca858874b5cbd5ab126eaba1fad6ff7ab72;p=picodrive.git diff --git a/pico/cd/area.c b/pico/cd/area.c index 757d8fb..645993b 100644 --- a/pico/cd/area.c +++ b/pico/cd/area.c @@ -100,9 +100,10 @@ PICO_INTERNAL int PicoCdSaveState(void *file) { unsigned char buff[0x60]; void *ym2612_regs = YM2612GetRegs(); + int ver = 0x0133; // not really used.. areaWrite("PicoSEXT", 1, 8, file); - areaWrite(&PicoVer, 1, 4, file); + areaWrite(&ver, 1, 4, file); memset(buff, 0, sizeof(buff)); PicoAreaPackCpu(buff, 0); @@ -114,17 +115,13 @@ PICO_INTERNAL int PicoCdSaveState(void *file) CHECKED_WRITE_BUFF(CHUNK_VSRAM, Pico.vsram); CHECKED_WRITE_BUFF(CHUNK_MISC, Pico.m); CHECKED_WRITE_BUFF(CHUNK_VIDEO, Pico.video); - if (PicoOpt&7) { - memset(buff, 0, sizeof(buff)); - z80_pack(buff); - CHECKED_WRITE_BUFF(CHUNK_Z80, buff); - } - if (PicoOpt&3) - CHECKED_WRITE(CHUNK_PSG, 28*4, sn76496_regs); - if (PicoOpt&1) { - ym2612_pack_state(); - CHECKED_WRITE(CHUNK_FM, 0x200+4, ym2612_regs); - } + + memset(buff, 0, sizeof(buff)); + z80_pack(buff); + CHECKED_WRITE_BUFF(CHUNK_Z80, buff); + CHECKED_WRITE(CHUNK_PSG, 28*4, sn76496_regs); + ym2612_pack_state(); + CHECKED_WRITE(CHUNK_FM, 0x200+4, ym2612_regs); if (PicoAHW & PAHW_MCD) { @@ -272,18 +269,10 @@ PICO_INTERNAL int PicoCdLoadState(void *file) readend: if (PicoAHW & PAHW_MCD) { - /* after load events */ - if (Pico_mcd->s68k_regs[3] & 4) // 1M mode? - wram_2M_to_1M(Pico_mcd->word_ram2M); - PicoMemRemapCD(Pico_mcd->s68k_regs[3]); -#ifdef _ASM_CD_MEMORY_C - if (Pico_mcd->s68k_regs[3] & 4) - PicoMemResetCDdecode(Pico_mcd->s68k_regs[3]); -#endif + PicoMemStateLoaded(); + if (!(Pico_mcd->s68k_regs[0x36] & 1) && (Pico_mcd->scd.Status_CDC & 1)) 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);