////////////////////////////////////////////////////////////////////////// // Mapper113 PC-Sachen/Hacker // ////////////////////////////////////////////////////////////////////////// void Mapper113::Reset() { // SetPROM_32K_Bank( 0, 1, PROM_8K_SIZE-2, PROM_8K_SIZE-1 ); SetPROM_32K_Bank( 0 ); SetVROM_8K_Bank( 0 ); } void Mapper113::WriteLow( WORD addr, BYTE data ) { //DEBUGOUT( "$%04X:$%02X L=%3d\n", addr, data, nes->GetScanline() ); switch( addr ) { case 0x4100: case 0x4111: case 0x4120: case 0x4194: case 0x4195: case 0x4900: if( nes->rom->GetPROM_CRC() == 0xA75AEDE5 ) { // HES 6-in-1 if( data & 0x80 ) { SetVRAM_Mirror( VRAM_VMIRROR ); } else { SetVRAM_Mirror( VRAM_HMIRROR ); } } SetPROM_32K_Bank( data >> 3 ); SetVROM_8K_Bank( ((data>>3)&0x08)+(data&0x07) ); break; } } void Mapper113::Write( WORD addr, BYTE data ) { //DEBUGOUT( "$%04X:$%02X L=%3d\n", addr, data, nes->GetScanline() ); switch( addr ) { case 0x8008: case 0x8009: SetPROM_32K_Bank( data >> 3 ); SetVROM_8K_Bank( ((data>>3)&0x08)+(data&0x07) ); break; case 0x8E66: case 0x8E67: SetVROM_8K_Bank( (data&0x07)?0:1 ); break; case 0xE00A: SetVRAM_Mirror( VRAM_MIRROR4L ); break; } }