UNIF AC08 board support
This commit is contained in:
parent
eb67d54e69
commit
1428aaeef4
6 changed files with 62 additions and 1 deletions
54
Core/Ac08.h
Normal file
54
Core/Ac08.h
Normal file
|
@ -0,0 +1,54 @@
|
|||
#pragma once
|
||||
#include "stdafx.h"
|
||||
#include "BaseMapper.h"
|
||||
|
||||
class Ac08 : public BaseMapper
|
||||
{
|
||||
private:
|
||||
uint8_t _reg;
|
||||
|
||||
protected:
|
||||
uint16_t GetPRGPageSize() override { return 0x2000; }
|
||||
uint16_t GetCHRPageSize() override { return 0x2000; }
|
||||
|
||||
void InitMapper() override
|
||||
{
|
||||
AddRegisterRange(0x4025, 0x4025, MemoryOperation::Write);
|
||||
|
||||
_reg = 0;
|
||||
|
||||
SelectPrgPage4x(0, -4);
|
||||
SelectCHRPage(0, 0);
|
||||
UpdateState();
|
||||
}
|
||||
|
||||
void StreamState(bool saving)
|
||||
{
|
||||
BaseMapper::StreamState(saving);
|
||||
Stream(_reg);
|
||||
if(!saving) {
|
||||
UpdateState();
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateState()
|
||||
{
|
||||
SetCpuMemoryMapping(0x6000, 0x7FFF, _reg, PrgMemoryType::PrgRom);
|
||||
}
|
||||
|
||||
void WriteRegister(uint16_t addr, uint8_t value) override
|
||||
{
|
||||
if(addr == 0x4025) {
|
||||
SetMirroringType(value & 0x08 ? MirroringType::Horizontal : MirroringType::Vertical);
|
||||
} else {
|
||||
if(addr == 0x8001) {
|
||||
//Green beret
|
||||
_reg = (value >> 1) & 0x0F;
|
||||
} else {
|
||||
//Castlevania?
|
||||
_reg = value & 0x0F;
|
||||
}
|
||||
UpdateState();
|
||||
}
|
||||
}
|
||||
};
|
|
@ -399,6 +399,7 @@
|
|||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="A12Watcher.h" />
|
||||
<ClInclude Include="Ac08.h" />
|
||||
<ClInclude Include="Action53.h" />
|
||||
<ClInclude Include="ActionEnterprises.h" />
|
||||
<ClInclude Include="APU.h" />
|
||||
|
|
|
@ -1036,6 +1036,9 @@
|
|||
<ClInclude Include="Bb.h">
|
||||
<Filter>Nes\Mappers\Unif</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Ac08.h">
|
||||
<Filter>Nes\Mappers\Unif</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "UnifBoards.h"
|
||||
|
||||
#include "A65AS.h"
|
||||
#include "Ac08.h"
|
||||
#include "Action53.h"
|
||||
#include "ActionEnterprises.h"
|
||||
#include "Ax5705.h"
|
||||
|
@ -468,6 +469,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
|
|||
case 255: return new Bmc255();
|
||||
|
||||
case UnifBoards::A65AS: return new A65AS();
|
||||
case UnifBoards::Ac08: return new Ac08();
|
||||
case UnifBoards::Ax5705: return new Ax5705();
|
||||
case UnifBoards::Bb: return new Bb();
|
||||
case UnifBoards::Bmc70in1: return new Bmc70in1();
|
||||
|
|
|
@ -31,5 +31,6 @@ namespace UnifBoards {
|
|||
Rt01,
|
||||
Hp898f,
|
||||
Bb,
|
||||
Ac08,
|
||||
};
|
||||
}
|
|
@ -28,7 +28,7 @@ private:
|
|||
{ "8237A", UnifBoards::UnknownBoard },
|
||||
{ "830118C", UnifBoards::UnknownBoard },
|
||||
{ "A65AS", UnifBoards::A65AS },
|
||||
{ "AC08", UnifBoards::UnknownBoard },
|
||||
{ "AC08", UnifBoards::Ac08 },
|
||||
{ "ANROM", 7 },
|
||||
{ "AX5705", UnifBoards::Ax5705 },
|
||||
{ "BB", UnifBoards::Bb },
|
||||
|
|
Loading…
Add table
Reference in a new issue