AxibugEmuOnline/References/VirtuaNESex_src_191105/NES/Mapper/Mapper212.cpp
2024-08-05 17:58:53 +08:00

27 lines
742 B
C++

//////////////////////////////////////////////////////////////////////////
// Mapper212 //
//////////////////////////////////////////////////////////////////////////
void Mapper212::Reset()
{
SetPROM_32K_Bank(PROM_8K_SIZE-4,PROM_8K_SIZE-3,PROM_8K_SIZE-2,PROM_8K_SIZE-1);
if(VROM_1K_SIZE) SetVROM_8K_Bank(0);
}
BYTE Mapper212::ReadLow( WORD addr )
{
return ~((addr&0x10)<<3);
}
void Mapper212::Write( WORD addr, BYTE data )
{
if (addr & 0x4000) {
SetPROM_32K_Bank((addr >> 1) & 3);
} else {
SetPROM_16K_Bank(4, addr & 7);
SetPROM_16K_Bank(6, addr & 7);
}
SetVROM_8K_Bank(addr & 7);
if((addr>>3)&1) SetVRAM_Mirror(VRAM_HMIRROR);
else SetVRAM_Mirror(VRAM_VMIRROR);
}