Support for 255-in-1 rom

This commit is contained in:
Souryo 2017-04-12 20:23:32 -04:00
parent 493b51585b
commit b34d3d2760
7 changed files with 30 additions and 1 deletions

View file

@ -716,6 +716,7 @@
<ClInclude Include="Types.h" />
<ClInclude Include="UnifBoards.h" />
<ClInclude Include="UnifLoader.h" />
<ClInclude Include="Unl255in1.h" />
<ClInclude Include="Unl43272.h" />
<ClInclude Include="UnlPuzzle.h" />
<ClInclude Include="VideoHud.h" />

View file

@ -1129,6 +1129,9 @@
<ClInclude Include="MMC3_Fk23C.h">
<Filter>Nes\Mappers\Unif</Filter>
</ClInclude>
<ClInclude Include="Unl255in1.h">
<Filter>Nes\Mappers\Unif</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">

View file

@ -217,6 +217,7 @@
#include "Txc22211B.h"
#include "Txc22211C.h"
#include "TxSRom.h"
#include "Unl255in1.h"
#include "Unl43272.h"
#include "UnlPci556.h"
#include "UnlPuzzle.h"
@ -535,6 +536,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
case UnifBoards::Super40in1Ws: return new Super40in1Ws();
case UnifBoards::T262: return new T262();
case UnifBoards::Tf1201: return new Tf1201();
case UnifBoards::Unl255in1: return new Unl255in1();
case UnifBoards::Unl43272: return new Unl43272();
case UnifBoards::UnlPuzzle: return new UnlPuzzle();

View file

@ -51,5 +51,6 @@ namespace UnifBoards {
UnlPuzzle,
Fk23C,
Fk23Ca,
Unl255in1,
};
}

View file

@ -7,6 +7,7 @@ std::unordered_map<string, int> UnifLoader::_boardMappings = std::unordered_map<
{ "13in1JY110", UnifBoards::UnknownBoard },
{ "190in1", UnifBoards::Bmc190in1 },
{ "22211", 132 },
{ "255in1", UnifBoards::Unl255in1 }, //Doesn't actually exist as a UNIF file (used to assign a mapper to the 255-in-1 rom)
{ "3D-BLOCK", UnifBoards::UnknownBoard },
{ "411120-C", UnifBoards::Bmc411120C },
{ "42in1ResetSwitch", 226 },

21
Core/Unl255in1.h Normal file
View file

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

View file

@ -368,7 +368,7 @@
1E66861F,Playchoice,,,,1,128,128,,0,0,0,,,
1EB4A920,NesNtsc,AVE-NINA-06,NINA-06,,79,32,32,,0,0,0,v,,
1EBB5B42,NesNtsc,NES-SNROM,NES-SNROM-06,MMC1B2,1,128,,8,8,0,0,,FourPlayer,
1EC1DFEB,NesNtsc,,,,217,64,32,,0,0,0,v,,
1EC1DFEB,NesNtsc,UNL-255in1,,,65000,64,32,,0,0,0,v,,
1ED48C5C,Famicom,HVC-UNROM,HVC-UNROM-09,,2,128,,8,0,0,0,v,,
1ED5C801,NesPal,NES-TSROM,NES-TSROM-08,MMC3B,4,256,128,,8,0,0,,,
1ED7D6BE,Famicom,HVC-TLROM,HVC-TLROM-02,MMC3A,4,128,128,,0,0,0,,,