////////////////////////////////////////////////////////////////////////// // Mapper240 Gen Ke Le Zhuan // ////////////////////////////////////////////////////////////////////////// void Mapper240::Reset() { SetPROM_32K_Bank( 0, 1, PROM_8K_SIZE-2, PROM_8K_SIZE-1 ); if( VROM_1K_SIZE ) { SetVROM_8K_Bank( 0 ); } KT_Piracy = 0; DWORD crc = nes->rom->GetPROM_CRC(); if( crc == 0x7EA0D0C3 //[KT-1001] Jing Ke Xin Zhuan (C) || crc == 0xC73EE9E2 //[KT-1002] Sheng Huo Lie Zhuan (C) || crc == 0x8B98AE98 //[KT-1013] Zhan Guo Feng Yun (C) || crc == 0xEB628838) { //[KT-1014] Xia Ke Chuan Qi (C) KT_Piracy = 1; } if ( KT_Piracy == 1 ) SetPROM_32K_Bank( 0 ); } void Mapper240::WriteLow( WORD addr, BYTE data ) { // DEBUGOUT( "WriteLow - addr= %04x ; dat= %03x\n", addr, data ); if( addr>=0x4020 && addr<0x6000 ) { if ( KT_Piracy == 1 ) { if(addr==0x4801) SetPROM_32K_Bank( (data&0xF)>>1 ); if(addr==0x4803) SetVROM_8K_Bank(data&0xF); }else{ SetPROM_32K_Bank( (data&0xF0)>>4 ); SetVROM_8K_Bank(data&0xF); } } if(addr>=0x6000) CPU_MEM_BANK[addr>>13][addr&0x1FFF]=data; } void Mapper240::Write( WORD addr, BYTE data ) { // DEBUGOUT( "Write - addr= %04x ; dat= %03x\n", addr, data ); }