mirror of
https://github.com/libretro/Genesis-Plus-GX.git
synced 2024-11-23 16:29:40 +00:00
[Core/MS] fixed savestate when Boot ROM is running
This commit is contained in:
parent
33328c7abb
commit
e819af4553
@ -610,9 +610,6 @@ void sms_cart_reset(void)
|
||||
}
|
||||
}
|
||||
|
||||
/* reset Memory Control register (RAM & I/O are enabled, either BIOS or Cartridge ROM are enabled) */
|
||||
io_reg[0x0E] = bios_rom.pages ? 0xE0 : 0xA8;
|
||||
|
||||
/* reset Z80 memory map */
|
||||
mapper_reset();
|
||||
|
||||
@ -743,14 +740,32 @@ int sms_cart_region_detect(void)
|
||||
int sms_cart_context_save(uint8 *state)
|
||||
{
|
||||
int bufferptr = 0;
|
||||
save_param(slot.fcr, 4);
|
||||
|
||||
if (io_reg[0x0E] & 0x40)
|
||||
{
|
||||
save_param(bios_rom.fcr, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
save_param(cart_rom.fcr, 4);
|
||||
}
|
||||
|
||||
return bufferptr;
|
||||
}
|
||||
|
||||
int sms_cart_context_load(uint8 *state)
|
||||
{
|
||||
int bufferptr = 0;
|
||||
load_param(slot.fcr, 4);
|
||||
|
||||
if (io_reg[0x0E] & 0x40)
|
||||
{
|
||||
load_param(bios_rom.fcr, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
load_param(cart_rom.fcr, 4);
|
||||
}
|
||||
|
||||
return bufferptr;
|
||||
}
|
||||
|
||||
|
@ -321,13 +321,27 @@ void io_reset(void)
|
||||
io_reg[0x0D] |= IO_CONT1_HI;
|
||||
}
|
||||
|
||||
/* Control registers */
|
||||
io_reg[0x0E] = 0x00;
|
||||
io_reg[0x0F] = 0xFF;
|
||||
|
||||
/* on SG-1000 & Mark-III, TH is not connected (always return 1) */
|
||||
if (system_hw < SYSTEM_SMS)
|
||||
/* Memory Control register (Master System and Game Gear hardware only) */
|
||||
if ((system_hw & SYSTEM_SMS) || (system_hw & SYSTEM_GG))
|
||||
{
|
||||
/* RAM, I/O and either BIOS or Cartridge ROM are enabled */
|
||||
io_reg[0x0E] = (z80_readmap[0] == cart.rom + 0x400000) ? 0xE0 : 0xA8;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* default value (no Memory Control register) */
|
||||
io_reg[0x0E] = 0x00;
|
||||
}
|
||||
|
||||
/* I/O control register (Master System, Mega Drive and Game Gear hardware only) */
|
||||
if (system_hw >= SYSTEM_SMS)
|
||||
{
|
||||
/* on power-on, TR and TH are configured as inputs */
|
||||
io_reg[0x0F] = 0xFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* on SG-1000 & Mark-III, TR is always an input and TH is not connected (always return 1) */
|
||||
io_reg[0x0F] = 0xF5;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user