Sachen mapper 148 & 149 support

This commit is contained in:
Souryo 2015-12-31 11:04:26 -05:00
parent da335335bc
commit af0741b50b
5 changed files with 53 additions and 0 deletions

View file

@ -318,6 +318,8 @@
<ClInclude Include="Nina03_06.h" /> <ClInclude Include="Nina03_06.h" />
<ClInclude Include="NoiseChannel.h" /> <ClInclude Include="NoiseChannel.h" />
<ClInclude Include="Sachen_147.h" /> <ClInclude Include="Sachen_147.h" />
<ClInclude Include="Sachen_148.h" />
<ClInclude Include="Sachen_149.h" />
<ClInclude Include="SquareChannel.h" /> <ClInclude Include="SquareChannel.h" />
<ClInclude Include="StandardController.h" /> <ClInclude Include="StandardController.h" />
<ClInclude Include="MessageManager.h" /> <ClInclude Include="MessageManager.h" />

View file

@ -299,6 +299,12 @@
<ClInclude Include="Sachen_145.h"> <ClInclude Include="Sachen_145.h">
<Filter>Header Files\Mappers</Filter> <Filter>Header Files\Mappers</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="Sachen_149.h">
<Filter>Header Files\Mappers</Filter>
</ClInclude>
<ClInclude Include="Sachen_148.h">
<Filter>Header Files\Mappers</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="CPU.cpp"> <ClCompile Include="CPU.cpp">

View file

@ -24,6 +24,8 @@
#include "NROM.h" #include "NROM.h"
#include "Sachen_145.h" #include "Sachen_145.h"
#include "Sachen_147.h" #include "Sachen_147.h"
#include "Sachen_148.h"
#include "Sachen_149.h"
#include "Sunsoft89.h" #include "Sunsoft89.h"
#include "Sunsoft93.h" #include "Sunsoft93.h"
#include "Sunsoft184.h" #include "Sunsoft184.h"
@ -80,6 +82,8 @@ BaseMapper* MapperFactory::GetMapperFromID(ROMLoader &romLoader)
case 145: return new Sachen_145(); case 145: return new Sachen_145();
case 146: return new Nina03_06(false); case 146: return new Nina03_06(false);
case 147: return new Sachen_147(); case 147: return new Sachen_147();
case 148: return new Sachen_148();
case 149: return new Sachen_149();
case 152: return new Bandai74161_7432(true); case 152: return new Bandai74161_7432(true);
case 163: return new Nanjing(); case 163: return new Nanjing();
case 184: return new Sunsoft184(); case 184: return new Sunsoft184();

21
Core/Sachen_148.h Normal file
View file

@ -0,0 +1,21 @@
#pragma once
#include "stdafx.h"
#include "BaseMapper.h"
class Sachen_148 : public BaseMapper
{
protected:
virtual uint16_t GetPRGPageSize() { return 0x8000; }
virtual uint16_t GetCHRPageSize() { return 0x2000; }
void InitMapper()
{
SelectPRGPage(0, 0);
}
void WriteRegister(uint16_t addr, uint8_t value)
{
SelectPRGPage(0, (value >> 3) & 0x01);
SelectCHRPage(0, value & 0x07);
}
};

20
Core/Sachen_149.h Normal file
View file

@ -0,0 +1,20 @@
#pragma once
#include "stdafx.h"
#include "BaseMapper.h"
class Sachen_149 : public BaseMapper
{
protected:
virtual uint16_t GetPRGPageSize() { return 0x8000; }
virtual uint16_t GetCHRPageSize() { return 0x2000; }
void InitMapper()
{
SelectPRGPage(0, 0);
}
void WriteRegister(uint16_t addr, uint8_t value)
{
SelectCHRPage(0, (value >> 7) & 0x01);
}
};