[Core/CD] fixed loading issue when backup RAM cart is filled with non-zero data

This commit is contained in:
ekeeke 2020-07-12 16:48:53 +02:00
parent 17027ad6c4
commit f86a9afc77
2 changed files with 13 additions and 4 deletions

View File

@ -40,7 +40,8 @@
/* CD compatible ROM/RAM cartridge */ /* CD compatible ROM/RAM cartridge */
typedef struct typedef struct
{ {
uint8 area[0x840080]; /* cartridge ROM/RAM area (max. 8MB ROM + 64KB backup memory + Pro Action Replay 128KB ROM / 64KB RAM + cartridge infos) */ uint8 reserved[0x80]; /* reserved for ROM cartridge infos (see md_cart.h) */
uint8 area[0x840000]; /* cartridge ROM/RAM area (max. 8MB ROM + 64KB backup memory + Pro Action Replay 128KB ROM / 64KB RAM) */
uint8 boot; /* cartridge boot mode (0x00: boot from CD with ROM/RAM cartridge enabled, 0x40: boot from ROM cartridge with CD enabled) */ uint8 boot; /* cartridge boot mode (0x00: boot from CD with ROM/RAM cartridge enabled, 0x40: boot from ROM cartridge with CD enabled) */
uint8 id; /* RAM cartridge ID (related to RAM size, 0 if disabled) */ uint8 id; /* RAM cartridge ID (related to RAM size, 0 if disabled) */
uint8 prot; /* RAM cartridge write protection */ uint8 prot; /* RAM cartridge write protection */

View File

@ -279,10 +279,18 @@ void gen_reset(int hard_reset)
/* reset CD hardware */ /* reset CD hardware */
scd_reset(1); scd_reset(1);
} }
}
/* reset MD cartridge hardware (only when booting from cartridge) */
if (scd.cartridge.boot)
{
md_cart_reset(hard_reset);
}
}
else
{
/* reset MD cartridge hardware */ /* reset MD cartridge hardware */
md_cart_reset(hard_reset); md_cart_reset(hard_reset);
}
/* Z80 bus is released & Z80 is reseted */ /* Z80 bus is released & Z80 is reseted */
m68k.memory_map[0xa0].read8 = m68k_read_bus_8; m68k.memory_map[0xa0].read8 = m68k_read_bus_8;