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

43 lines
985 B
C++

//////////////////////////////////////////////////////////////////////////
// Mapper185 Character disable protect //
//////////////////////////////////////////////////////////////////////////
void Mapper185::Reset()
{
switch( PROM_16K_SIZE ) {
case 1: // 16K only
SetPROM_16K_Bank( 4, 0 );
SetPROM_16K_Bank( 6, 0 );
break;
case 2: // 32K
SetPROM_32K_Bank( 0 );
break;
}
for( INT i = 0; i < 0x400; i++ ) {
VRAM[0x800+i] = 0xFF;
}
patch = 0;
DWORD crc = nes->rom->GetPROM_CRC();
if( crc == 0xb36457c7 ) { // Spy vs Spy(J)
patch = 1;
}
}
void Mapper185::Write( WORD addr, BYTE data )
{
if( (!patch && (data&0x03)) || (patch && data == 0x21) ) {
SetVROM_8K_Bank( 0 );
} else {
SetVRAM_1K_Bank( 0, 2 ); // use vram bank 2
SetVRAM_1K_Bank( 1, 2 );
SetVRAM_1K_Bank( 2, 2 );
SetVRAM_1K_Bank( 3, 2 );
SetVRAM_1K_Bank( 4, 2 );
SetVRAM_1K_Bank( 5, 2 );
SetVRAM_1K_Bank( 6, 2 );
SetVRAM_1K_Bank( 7, 2 );
}
}