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

39 lines
1.1 KiB
C++

/////////////////////////////////////////////////////////////////////
// Mapper 92
void NES_mapper92::Reset()
{
// set CPU bank pointers
set_CPU_banks(0,1,num_8k_ROM_banks-2,num_8k_ROM_banks-1);
// set PPU bank pointers
if(num_1k_VROM_banks)
{
set_PPU_banks(0,1,2,3,4,5,6,7);
}
}
// Created by rinao
void NES_mapper92::MemoryWrite(uint32 addr, uint8 data)
{
data = (uint8)addr & 0xff;
uint8 c_bank = (data & 0x0f) << 1;
uint8 p_bank = data & 0x0f;
if (addr >= 0x9000){ // Moero!! ProSoccer
if ((data & 0xf0) == 0xd0){
set_CPU_banks(0,1,c_bank,c_bank+1);
} else if ((data & 0xf0) == 0xe0){
set_PPU_banks(p_bank*8,p_bank*8+1,p_bank*8+2,p_bank*8+3,p_bank*8+4,p_bank*8+5,p_bank*8+6,p_bank*8+7);
}
} else { // Moero!! Proyakyuu '88 ketteiban
if ((data & 0xf0) == 0xb0){
set_CPU_banks(0,1,c_bank,c_bank+1);
} else if ((data & 0xf0) == 0x70){
set_PPU_banks(p_bank*8,p_bank*8+1,p_bank*8+2,p_bank*8+3,p_bank*8+4,p_bank*8+5,p_bank*8+6,p_bank*8+7);
}
}
}
/////////////////////////////////////////////////////////////////////