We need the SRAM mask inside the map ROM function, or we tell the front that SRAM is one byte. I'll move it over.

This commit is contained in:
Alcaro 2014-05-28 19:24:20 +02:00
parent 39fa17f9db
commit 4fc2d661a4
1 changed files with 4 additions and 3 deletions

View File

@ -2532,6 +2532,9 @@ void CMemory::InitROM (void)
Map_Initialize();
CalculatedChecksum = 0;
// SRAM size
SRAMMask = SRAMSize ? ((1 << (SRAMSize + 3)) * 128) - 1 : 0;
if (HiROM)
{
if (Settings.BS)
@ -2662,9 +2665,6 @@ void CMemory::InitROM (void)
*p = 0;
}
// SRAM size
SRAMMask = SRAMSize ? ((1 << (SRAMSize + 3)) * 128) - 1 : 0;
// checksum
if (!isChecksumOK || ((uint32) CalculatedSize > (uint32) (((1 << (ROMSize - 7)) * 128) * 1024)))
{
@ -2921,6 +2921,7 @@ void CMemory::map_index (uint32 bank_s, uint32 bank_e, uint32 addr_s, uint32 add
desc.select=(bank_s<<16 | addr_s) ^ (bank_e<<16 | addr_e) ^ 0xFFFFFF;
if (type==MAP_LOROM_SRAM || type==MAP_SA1RAM)
{
puts("BBB");
desc.ptr=Memory.SRAM;
desc.disconnect=0x8000;
desc.len=Memory.SRAMMask+1;