That's the SRAM too. And SA-1 RAM.

This commit is contained in:
Alcaro 2014-05-28 18:37:16 +02:00
parent 2401f86259
commit 0a4ff37074
1 changed files with 29 additions and 51 deletions

View File

@ -2917,57 +2917,35 @@ void CMemory::map_index (uint32 bank_s, uint32 bank_e, uint32 addr_s, uint32 add
} }
#ifdef __LIBRETRO__ #ifdef __LIBRETRO__
struct retro_memory_descriptor desc = {0}; struct retro_memory_descriptor desc = {0};
desc.flags=RETRO_MEMDESC_CONST; desc.start=bank_s<<16 | addr_s;
desc.ptr=NULL;//this function maps funky stuff like hardware regs, but also various SRAM desc.select=(bank_s<<16 | addr_s) ^ (bank_e<<16 | addr_e) ^ 0xFFFFFF;
//the following should be handled: if (type==MAP_LOROM_SRAM || type==MAP_SA1RAM)
/* {
case CMemory::MAP_LOROM_SRAM: desc.ptr=Memory.SRAM;
if (Memory.SRAMMask) desc.disconnect=0x8000;
{ desc.len=Memory.SRAMMask+1;
*(Memory.SRAM + ((((Address & 0xff0000) >> 1) | (Address & 0x7fff)) & Memory.SRAMMask)) = Byte; S9xAppendMapping(&desc);
CPU.SRAMModified = TRUE; }
} if (type==MAP_LOROM_SRAM_B)
{
addCyclesInMemoryAccess; desc.ptr=Multi.sramB;
return; desc.disconnect=0x8000;
desc.len=Multi.sramMaskB+1;
case CMemory::MAP_LOROM_SRAM_B: S9xAppendMapping(&desc);
if (Multi.sramMaskB) }
{ if (type==MAP_HIROM_SRAM || type==MAP_RONLY_SRAM)
*(Multi.sramB + ((((Address & 0xff0000) >> 1) | (Address & 0x7fff)) & Multi.sramMaskB)) = Byte; {
CPU.SRAMModified = TRUE; desc.ptr=Memory.SRAM;
} desc.disconnect=0xF8E000;
desc.len=Memory.SRAMMask+1;
addCyclesInMemoryAccess; S9xAppendMapping(&desc);
return; }
if (type==MAP_BWRAM)
case CMemory::MAP_HIROM_SRAM: {
if (Memory.SRAMMask) desc.ptr=Memory.BWRAM;
{ desc.disconnect=0xFFE000;
*(Memory.SRAM + (((Address & 0x7fff) - 0x6000 + ((Address & 0xf0000) >> 3)) & Memory.SRAMMask)) = Byte; S9xAppendMapping(&desc);
CPU.SRAMModified = TRUE; }
}
addCyclesInMemoryAccess;
return;
case CMemory::MAP_BWRAM:
*(Memory.BWRAM + ((Address & 0x7fff) - 0x6000)) = Byte;
CPU.SRAMModified = TRUE;
addCyclesInMemoryAccess;
return;
case CMemory::MAP_SA1RAM:
*(Memory.SRAM + (Address & 0xffff)) = Byte;
addCyclesInMemoryAccess;
return;
*/
desc.offset=0;//
desc.start=0;//
desc.select=0;//
desc.disconnect=0;//
desc.len=0;//
//S9xAppendMapping(&desc);
#endif #endif
} }