////////////////////////////////////////////////////////////////////////// // Mapper110 // ////////////////////////////////////////////////////////////////////////// void Mapper110::Reset() { SetPROM_32K_Bank( 0 ); SetVROM_8K_Bank( 0 ); reg0 = 0; reg1 = 0; } void Mapper110::WriteLow( WORD addr, BYTE data ) { switch( addr ) { case 0x4100: reg1 = data & 0x07; break; case 0x4101: switch( reg1 ) { case 5: SetPROM_32K_Bank( data ); break; case 0: reg0 = data & 0x01; SetVROM_8K_Bank( reg0 ); break; case 2: reg0 = data; SetVROM_8K_Bank( reg0 ); break; case 4: reg0 = reg0 | (data<<1); SetVROM_8K_Bank( reg0 ); break; case 6: reg0 = reg0 | (data<<2); SetVROM_8K_Bank( reg0 ); break; default: break; } break; default: break; } } void Mapper110::SaveState( LPBYTE p ) { p[ 0] = reg0; p[ 1] = reg1; } void Mapper110::LoadState( LPBYTE p ) { reg0 = p[ 0]; reg1 = p[ 1]; }