prevent totally out of bounds card accesses from crashing emulator by masking to rom size

This commit is contained in:
zeromus 2009-04-10 22:38:29 +00:00
parent a48b1a725d
commit 07e090c224
2 changed files with 3 additions and 1 deletions

View File

@ -759,6 +759,7 @@ void MMU_setRom(u8 * rom, u32 mask)
{
unsigned int i;
MMU.CART_ROM = rom;
MMU.CART_ROM_MASK = mask;
for(i = 0x80; i<0xA0; ++i)
{
@ -3129,7 +3130,7 @@ u32 FASTCALL _MMU_ARM9_read32(u32 adr)
{
MMU.dscard[ARMCPU_ARM9].address = (0x8000 + (MMU.dscard[ARMCPU_ARM9].address&0x1FF));
}
val = T1ReadLong(MMU.CART_ROM, MMU.dscard[ARMCPU_ARM9].address);
val = T1ReadLong(MMU.CART_ROM, MMU.dscard[ARMCPU_ARM9].address & MMU.CART_ROM_MASK);
}
break;

View File

@ -64,6 +64,7 @@ struct MMU_struct {
//Card rom & ram
u8 * CART_ROM;
u32 CART_ROM_MASK;
u8 CART_RAM[0x10000];
//Unused ram