Bus: Implement RAM_SIZE register
Fixes Rock-Climbing - Mitouhou e no Chousen - Alps Hen (Japan) crashing on boot. Silly game does a 512 word DMA from CDROM to 0x001FFF04, with the mapped memory size set to 4MB, expecting the DMA to trigger a bus error, because if it doesn't, then your kernel memory goes bye bye. A bunch of other games do set the upper 4MB to be unmapped, but this change appears to have no effect on them. As expected, they're probably doing the correct thing.
This commit is contained in:
@@ -143,6 +143,7 @@ extern std::bitset<RAM_8MB_CODE_PAGE_COUNT> g_ram_code_bits;
|
||||
extern u8* g_ram; // 2MB-8MB RAM
|
||||
extern u8* g_unprotected_ram; // RAM without page protection, use for debugger access.
|
||||
extern u32 g_ram_size; // Active size of RAM.
|
||||
extern u32 g_ram_mapped_size; // Maximum mapped address for RAM, determined by RAM size register.
|
||||
extern u32 g_ram_mask; // Active address bits for RAM.
|
||||
extern u8* g_bios; // 512K BIOS ROM
|
||||
extern std::array<TickCount, 3> g_exp1_access_time;
|
||||
|
||||
Reference in New Issue
Block a user