mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
32x and sms savestates. Core-independent z80 state. SS bugfixing/refactoring.
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@868 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
a736af3ecf
commit
b4db550e41
19 changed files with 1116 additions and 848 deletions
|
@ -352,7 +352,7 @@ static void p32x_vdp_write8(u32 a, u32 d)
|
|||
Pico32x.pending_fb = d;
|
||||
// if we are blanking and FS bit is changing
|
||||
if (((r[0x0a/2] & P32XV_VBLK) || (r[0] & P32XV_Mx) == 0) && ((r[0x0a/2] ^ d) & P32XV_FS)) {
|
||||
r[0x0a/2] ^= 1;
|
||||
r[0x0a/2] ^= P32XV_FS;
|
||||
Pico32xSwapDRAM(d ^ 1);
|
||||
elprintf(EL_32X, "VDP FS: %d", r[0x0a/2] & P32XV_FS);
|
||||
}
|
||||
|
@ -1329,7 +1329,7 @@ static void get_bios(void)
|
|||
// M68K ROM
|
||||
if (p32x_bios_g != NULL) {
|
||||
elprintf(EL_STATUS|EL_32X, "32x: using supplied 68k BIOS");
|
||||
Byteswap(Pico32xMem->m68k_rom, p32x_bios_g, 0x100);
|
||||
Byteswap(Pico32xMem->m68k_rom, p32x_bios_g, sizeof(Pico32xMem->m68k_rom));
|
||||
}
|
||||
else {
|
||||
// generate 68k ROM
|
||||
|
@ -1351,7 +1351,9 @@ static void get_bios(void)
|
|||
#endif
|
||||
}
|
||||
// fill remaining m68k_rom page with game ROM
|
||||
memcpy(Pico32xMem->m68k_rom + 0x100, Pico.rom + 0x100, sizeof(Pico32xMem->m68k_rom) - 0x100);
|
||||
memcpy(Pico32xMem->m68k_rom_bank + sizeof(Pico32xMem->m68k_rom),
|
||||
Pico.rom + sizeof(Pico32xMem->m68k_rom),
|
||||
sizeof(Pico32xMem->m68k_rom_bank) - sizeof(Pico32xMem->m68k_rom));
|
||||
|
||||
// MSH2
|
||||
if (p32x_bios_m != NULL) {
|
||||
|
@ -1439,9 +1441,9 @@ void PicoMemSetup32x(void)
|
|||
// m68k_map_unmap(0x000000, 0x3fffff);
|
||||
|
||||
// MD ROM area
|
||||
rs = sizeof(Pico32xMem->m68k_rom);
|
||||
cpu68k_map_set(m68k_read8_map, 0x000000, rs - 1, Pico32xMem->m68k_rom, 0);
|
||||
cpu68k_map_set(m68k_read16_map, 0x000000, rs - 1, Pico32xMem->m68k_rom, 0);
|
||||
rs = sizeof(Pico32xMem->m68k_rom_bank);
|
||||
cpu68k_map_set(m68k_read8_map, 0x000000, rs - 1, Pico32xMem->m68k_rom_bank, 0);
|
||||
cpu68k_map_set(m68k_read16_map, 0x000000, rs - 1, Pico32xMem->m68k_rom_bank, 0);
|
||||
cpu68k_map_set(m68k_write8_map, 0x000000, rs - 1, PicoWrite8_hint, 1); // TODO verify
|
||||
cpu68k_map_set(m68k_write16_map, 0x000000, rs - 1, PicoWrite16_hint, 1);
|
||||
|
||||
|
@ -1538,4 +1540,16 @@ void PicoMemSetup32x(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
void Pico32xStateLoaded(void)
|
||||
{
|
||||
bank_switch(Pico32x.regs[4 / 2]);
|
||||
Pico32xSwapDRAM((Pico32x.vdp_regs[0x0a / 2] & P32XV_FS) ^ P32XV_FS);
|
||||
p32x_poll_event(3, 0);
|
||||
Pico32x.dirty_pal = 1;
|
||||
memset(Pico32xMem->pwm, 0, sizeof(Pico32xMem->pwm));
|
||||
#ifdef DRC_SH2
|
||||
sh2_drc_flush_all();
|
||||
#endif
|
||||
}
|
||||
|
||||
// vim:shiftwidth=2:expandtab
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue