UNIF RT-01 board support

This commit is contained in:
Souryo 2016-11-09 20:14:55 -05:00
parent 93f95be65c
commit eeffa162e1
6 changed files with 39 additions and 1 deletions

View file

@ -561,6 +561,7 @@
<ClInclude Include="RomData.h" />
<ClInclude Include="NtdecTc112.h" />
<ClInclude Include="Rambo1.h" />
<ClInclude Include="Rt01.h" />
<ClInclude Include="Sachen74LS374N.h" />
<ClInclude Include="Sachen74LS374NB.h" />
<ClInclude Include="Sachen8259.h" />

View file

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

View file

@ -161,6 +161,7 @@
#include "OekaKids.h"
#include "Racermate.h"
#include "Rambo1.h"
#include "Rt01.h"
#include "Sachen_133.h"
#include "Sachen_136.h"
#include "Sachen_143.h"
@ -255,6 +256,7 @@ const uint16_t MapperFactory::UnifKof97;
const uint16_t MapperFactory::UnifKs7016;
const uint16_t MapperFactory::UnifMalee;
const uint16_t MapperFactory::UnifNovelDiamond;
const uint16_t MapperFactory::UnifRt01;
const uint16_t MapperFactory::UnifStreetHeroes;
const uint16_t MapperFactory::UnifSmb2j;
const uint16_t MapperFactory::UnifSuper24in1Sc03;
@ -506,6 +508,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
case MapperFactory::UnifKs7016: return new Kaiser7016();
case MapperFactory::UnifMalee: return new Malee();
case MapperFactory::UnifNovelDiamond: return new NovelDiamond();
case MapperFactory::UnifRt01: return new Rt01();
case MapperFactory::UnifSmb2j: return new Smb2j();
case MapperFactory::UnifStreetHeroes: return new MMC3_StreetHeroes();
case MapperFactory::UnifSuper24in1Sc03: return new MMC3_Super24in1Sc03();

View file

@ -35,6 +35,7 @@ class MapperFactory
static const uint16_t UnifSuper40in1Ws = 65512;
static const uint16_t UnifCc21 = 65511;
static const uint16_t UnifKs7016 = 65510;
static const uint16_t UnifRt01 = 65509;
static shared_ptr<BaseMapper> InitializeFromFile(string romFilename, stringstream *filestream, string ipsFilename, int32_t archiveFileIndex);
};

30
Core/Rt01.h Normal file
View file

@ -0,0 +1,30 @@
#pragma once
#include "stdafx.h"
#include "BaseMapper.h"
class Rt01 : public BaseMapper
{
protected:
uint16_t GetPRGPageSize() { return 0x4000; }
uint16_t GetCHRPageSize() { return 0x800; }
bool AllowRegisterRead() override { return true; }
void InitMapper() override
{
SelectPRGPage(0, 0);
SelectPRGPage(1, 0);
SelectCHRPage(0, 0);
SelectCHRPage(1, 0);
SelectCHRPage(2, 0);
SelectCHRPage(3, 0);
}
uint8_t ReadRegister(uint16_t addr) override
{
if((addr >= 0xCE80 && addr < 0xCF00) || (addr >= 0xFE80 && addr < 0xFF00)) {
return 0xF2 | (rand() & 0x0D);
} else {
return InternalReadRam(addr);
}
}
};

View file

@ -155,7 +155,7 @@ private:
{ "EH8813A", MapperFactory::UnknownBoard },
{ "HP898F", MapperFactory::UnknownBoard },
{ "F-15", MapperFactory::UnknownBoard },
{ "RT-01", MapperFactory::UnknownBoard },
{ "RT-01", MapperFactory::UnifRt01 },
{ "81-01-31-C", MapperFactory::UnknownBoard },
{ "8-IN-1", MapperFactory::UnknownBoard },
{ "WS", MapperFactory::UnifSuper40in1Ws }