UNIF A65AS board support

This commit is contained in:
Souryo 2016-11-06 14:21:57 -05:00
parent 0466c6a9b1
commit bb38250190
6 changed files with 41 additions and 2 deletions

32
Core/A65AS.h Normal file
View file

@ -0,0 +1,32 @@
#pragma once
#include "stdafx.h"
#include "BaseMapper.h"
class A65AS : public BaseMapper
{
protected:
uint16_t GetPRGPageSize() { return 0x4000; }
uint16_t GetCHRPageSize() { return 0x2000; }
void InitMapper() override
{
SelectCHRPage(0, 0);
WriteRegister(0x8000, 0);
}
void WriteRegister(uint16_t addr, uint8_t value) override
{
if(value & 0x40) {
SelectPrgPage2x(0, value & 0x1E);
} else {
SelectPRGPage(0, ((value & 0x30) >> 1) | (value & 0x07));
SelectPRGPage(1, ((value & 0x30) >> 1) | 0x07);
}
if(value & 0x80) {
SetMirroringType(value & 0x20 ? MirroringType::ScreenBOnly : MirroringType::ScreenAOnly);
} else {
SetMirroringType(value & 0x08 ? MirroringType::Horizontal : MirroringType::Vertical);
}
}
};

View file

@ -417,6 +417,7 @@
<ClInclude Include="Bmc255.h" />
<ClInclude Include="Bmc51.h" />
<ClInclude Include="Bmc63.h" />
<ClInclude Include="A65AS.h" />
<ClInclude Include="BnRom.h" />
<ClInclude Include="Caltron41.h" />
<ClInclude Include="ColorDreams46.h" />

View file

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

View file

@ -2,6 +2,7 @@
#include "MessageManager.h"
#include "MapperFactory.h"
#include "RomLoader.h"
#include "A65AS.h"
#include "Action53.h"
#include "ActionEnterprises.h"
#include "AXROM.h"
@ -227,6 +228,7 @@ Supported mappers:
const uint16_t MapperFactory::FdsMapperID;
const uint16_t MapperFactory::NsfMapperID;
const uint16_t MapperFactory::UnknownBoard;
const uint16_t MapperFactory::UnifA65AS;
const uint16_t MapperFactory::UnifCoolboy;
const uint16_t MapperFactory::UnifDreamTech01;
const uint16_t MapperFactory::UnifEdu2000;
@ -465,6 +467,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
case 254: return new MMC3_254();
case 255: return new Bmc255();
case MapperFactory::UnifA65AS: return new A65AS();
case MapperFactory::UnifCoolboy: return new MMC3_Coolboy();
case MapperFactory::UnifDreamTech01: return new DreamTech01();
case MapperFactory::UnifEdu2000: return new Edu2000();

View file

@ -24,6 +24,7 @@ class MapperFactory
static const uint16_t UnifNovelDiamond = 65523;
static const uint16_t UnifKof97 = 65522;
static const uint16_t UnifT262 = 65521;
static const uint16_t UnifA65AS = 65520;
static shared_ptr<BaseMapper> InitializeFromFile(string romFilename, stringstream *filestream, string ipsFilename, int32_t archiveFileIndex);
};

View file

@ -26,7 +26,7 @@ private:
{ "8237", 215 },
{ "8237A", MapperFactory::UnknownBoard },
{ "830118C", MapperFactory::UnknownBoard },
{ "A65AS", MapperFactory::UnknownBoard },
{ "A65AS", MapperFactory::UnifA65AS },
{ "AC08", MapperFactory::UnknownBoard },
{ "ANROM", 7 },
{ "AX5705", MapperFactory::UnknownBoard },
@ -150,7 +150,6 @@ private:
{ "VRC7", MapperFactory::UnknownBoard },
{ "YOKO", MapperFactory::UnknownBoard },
{ "SB-2000", MapperFactory::UnknownBoard },
{ "COOLBOY", MapperFactory::UnknownBoard },
{ "158B", MapperFactory::UnknownBoard },
{ "DRAGONFIGHTER", MapperFactory::UnknownBoard },
{ "EH8813A", MapperFactory::UnknownBoard },