Mapper 77 support

This commit is contained in:
Souryo 2016-01-19 23:45:54 -05:00
parent b17c088995
commit 9d2f3aba0c
4 changed files with 38 additions and 0 deletions

View file

@ -366,6 +366,7 @@
<ClInclude Include="DefaultVideoFilter.h" />
<ClInclude Include="ExpressionEvaluator.h" />
<ClInclude Include="HdVideoFilter.h" />
<ClInclude Include="IremLrog017.h" />
<ClInclude Include="IremTamS1.h" />
<ClInclude Include="JalecoJf16.h" />
<ClInclude Include="JalecoJf17_19.h" />

View file

@ -392,6 +392,9 @@
<ClInclude Include="JalecoJf16.h">
<Filter>Nes\Mappers</Filter>
</ClInclude>
<ClInclude Include="IremLrog017.h">
<Filter>Nes\Mappers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">

32
Core/IremLrog017.h Normal file
View file

@ -0,0 +1,32 @@
#pragma once
#include "stdafx.h"
#include "BaseMapper.h"
class IremLrog017 : public BaseMapper
{
protected:
virtual uint16_t GetPRGPageSize() { return 0x8000; }
virtual uint16_t GetCHRPageSize() { return 0x0800; }
virtual uint32_t GetChrRamSize() { return 0x1800; }
virtual uint16_t GetChrRamPageSize() { return 0x0800; }
virtual bool HasBusConflicts() { return true; }
void InitMapper()
{
InitializeChrRam();
SelectPRGPage(0, 0);
SelectCHRPage(0, 0);
SetMirroringType(MirroringType::FourScreens);
SelectCHRPage(1, 0, ChrMemoryType::ChrRam);
SelectCHRPage(2, 1, ChrMemoryType::ChrRam);
SelectCHRPage(3, 2, ChrMemoryType::ChrRam);
}
void WriteRegister(uint16_t addr, uint8_t value)
{
SelectPRGPage(0, value & 0x0F);
SelectCHRPage(0, (value >> 4) & 0x0F);
}
};

View file

@ -12,6 +12,7 @@
#include "ColorDreams.h"
#include "GxRom.h"
#include "IremG101.h"
#include "IremLrog017.h"
#include "IremTamS1.h"
#include "JalecoJf16.h"
#include "JalecoJf17_19.h"
@ -97,6 +98,7 @@ BaseMapper* MapperFactory::GetMapperFromID(ROMLoader &romLoader)
case 74: return new MMC3_ChrRam(0x08, 0x09, 2);
case 75: return new VRC1();
case 76: return new Namco108_76();
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();