UNIF A65AS board support
This commit is contained in:
parent
0466c6a9b1
commit
bb38250190
6 changed files with 41 additions and 2 deletions
32
Core/A65AS.h
Normal file
32
Core/A65AS.h
Normal 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);
|
||||
}
|
||||
}
|
||||
};
|
|
@ -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" />
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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 },
|
||||
|
|
Loading…
Add table
Reference in a new issue