76 lines
1.7 KiB
C++
76 lines
1.7 KiB
C++
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
// Mapper000 //
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
#include "nnd.cpp"
|
|||
|
|
|||
|
void Mapper000::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;
|
|||
|
}
|
|||
|
|
|||
|
//------------------------------
|
|||
|
// main();
|
|||
|
//------------------------------
|
|||
|
|
|||
|
DWORD crc = nes->rom->GetPROM_CRC();
|
|||
|
if( crc == 0x4e7db5af ) { // Circus Charlie(J)
|
|||
|
nes->SetRenderMethod( NES::POST_RENDER );
|
|||
|
}
|
|||
|
if( crc == 0x57970078 ) { // F-1 Race(J)
|
|||
|
nes->SetRenderMethod( NES::POST_RENDER );
|
|||
|
}
|
|||
|
if( crc == 0xaf2bbcbc // Mach Rider(JU)
|
|||
|
|| crc == 0x3acd4bf1 ) { // Mach Rider(Alt)(JU)
|
|||
|
nes->SetRenderMethod( NES::POST_RENDER );
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
/*
|
|||
|
BYTE Mapper000::ReadLow( WORD addr )
|
|||
|
{
|
|||
|
// $4100-$7FFF Lower Memory read
|
|||
|
// int data;
|
|||
|
// if( addr >= 0x4100 && addr <= 0x5FFF ){
|
|||
|
// data = ppread(addr);
|
|||
|
// main();
|
|||
|
// return data;
|
|||
|
// }
|
|||
|
return Mapper::ReadLow( addr );
|
|||
|
}
|
|||
|
|
|||
|
void Mapper000::WriteLow( WORD addr, BYTE data )
|
|||
|
{
|
|||
|
// $4100-$7FFF Lower Memory write
|
|||
|
// if( addr >= 0x4100 && addr <= 0x5FFF ){
|
|||
|
// ppwrite(addr, data);
|
|||
|
// main();
|
|||
|
// }
|
|||
|
}
|
|||
|
*/
|
|||
|
void Mapper000::Write( WORD addr, BYTE data )
|
|||
|
{
|
|||
|
// $8000-$FFFF Memory write
|
|||
|
// ppwrite(addr, data);
|
|||
|
// main();
|
|||
|
|
|||
|
if(nes->rom->GetPROM_CRC()==0x15612dc8){ // <20>Ի공[<5B><><EFBFBD><EFBFBD>ά]
|
|||
|
SetVROM_4K_Bank( 0, addr&1 );
|
|||
|
SetVROM_4K_Bank( 4, addr&1 );
|
|||
|
if(addr&1) SetVRAM_Mirror( VRAM_MIRROR4H );
|
|||
|
else SetVRAM_Mirror( VRAM_MIRROR4L );
|
|||
|
}
|
|||
|
|
|||
|
if(nes->rom->GetPROM_CRC()==0x366C20D7){
|
|||
|
SetCRAM_8K_Bank( data );
|
|||
|
if(data&1) SetVRAM_Mirror( VRAM_MIRROR4H );
|
|||
|
else SetVRAM_Mirror( VRAM_MIRROR4L );
|
|||
|
}
|
|||
|
}
|