Mapper 207 (TaitoX1005 with different mirroring) support
This commit is contained in:
parent
0003edb90c
commit
deeace8b2f
2 changed files with 20 additions and 2 deletions
|
@ -138,7 +138,7 @@ BaseMapper* MapperFactory::GetMapperFromID(ROMLoader &romLoader)
|
|||
case 77: return new IremLrog017();
|
||||
case 78: return new JalecoJf16(romLoader.GetSubMapper() == 3);
|
||||
case 79: return new Nina03_06(false);
|
||||
case 80: return new TaitoX1005();
|
||||
case 80: return new TaitoX1005(false);
|
||||
case 87: return new JalecoJfxx(false);
|
||||
case 88: return new Namco108_88();
|
||||
case 89: return new Sunsoft89();
|
||||
|
@ -179,6 +179,7 @@ BaseMapper* MapperFactory::GetMapperFromID(ROMLoader &romLoader)
|
|||
case 203: return new Mapper203();
|
||||
case 205: return new MMC3_205();
|
||||
case 206: return new Namco108();
|
||||
case 207: return new TaitoX1005(true);
|
||||
case 225: return new Mapper225();
|
||||
case 230: return new Mapper230();
|
||||
case 231: return new Mapper231();
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
class TaitoX1005 : public BaseMapper
|
||||
{
|
||||
private:
|
||||
bool _alternateMirroring;
|
||||
uint8_t _ramPermission;
|
||||
|
||||
void UpdateRamAccess()
|
||||
|
@ -44,10 +45,18 @@ protected:
|
|||
case 0x7EF0:
|
||||
SelectCHRPage(0, value);
|
||||
SelectCHRPage(1, value + 1);
|
||||
if(_alternateMirroring) {
|
||||
SetPpuMemoryMapping(0x2000, 0x23FF, GetNametable(value >> 7));
|
||||
SetPpuMemoryMapping(0x2400, 0x27FF, GetNametable(value >> 7));
|
||||
}
|
||||
break;
|
||||
case 0x7EF1:
|
||||
SelectCHRPage(2, value );
|
||||
SelectCHRPage(3, value + 1);
|
||||
if(_alternateMirroring) {
|
||||
SetPpuMemoryMapping(0x2800, 0x2BFF, GetNametable(value >> 7));
|
||||
SetPpuMemoryMapping(0x2C00, 0x2FFF, GetNametable(value >> 7));
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x7EF2: SelectCHRPage(4, value); break;
|
||||
|
@ -56,7 +65,9 @@ protected:
|
|||
case 0x7EF5: SelectCHRPage(7, value); break;
|
||||
|
||||
case 0x7EF6: case 0x7EF7:
|
||||
if(!_alternateMirroring) {
|
||||
SetMirroringType((value & 0x01) == 0x01 ? MirroringType::Vertical : MirroringType::Horizontal);
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x7EF8: case 0x7EF9:
|
||||
|
@ -87,4 +98,10 @@ protected:
|
|||
UpdateRamAccess();
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
TaitoX1005(bool alternateMirroring) : _alternateMirroring(alternateMirroring)
|
||||
{
|
||||
|
||||
}
|
||||
};
|
Loading…
Add table
Reference in a new issue