Files
player/Project/Src/NES/mapper/050.cpp
2025-06-27 00:32:57 +08:00

39 lines
670 B
C++

/////////////////////////////////////////////////////////////////////
// Mapper 50
void NES_mapper50::Reset()
{
set_CPU_banks(15,8,9,0,11);
set_PPU_banks(0,1,2,3,4,5,6,7);
irq_enabled = 0;
}
void NES_mapper50::MemoryWriteLow(uint32 addr, uint8 data)
{
if((addr & 0xE060) == 0x4020)
{
if(addr & 0x0100)
{
irq_enabled = data & 0x01;
}
else
{
set_CPU_bank6((data&0x08)|((data&0x01)<<2)|((data&0x06)>>1));
}
}
}
void NES_mapper50::HSync(uint32 scanline)
{
if(irq_enabled)
{
if(scanline == 21)
{
parent_NES->cpu->DoIRQ();
}
}
}
/////////////////////////////////////////////////////////////////////