mirror of
https://github.com/libretro/Mesen.git
synced 2025-03-03 22:07:10 +00:00
UNIF BMC-G-146 board support
This commit is contained in:
parent
1428aaeef4
commit
baf74f230f
38
Core/BmcG146.h
Normal file
38
Core/BmcG146.h
Normal file
@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
#include "stdafx.h"
|
||||
#include "BaseMapper.h"
|
||||
|
||||
class BmcG146 : public BaseMapper
|
||||
{
|
||||
protected:
|
||||
uint16_t GetPRGPageSize() override { return 0x4000; }
|
||||
uint16_t GetCHRPageSize() override { return 0x2000; }
|
||||
|
||||
void InitMapper() override
|
||||
{
|
||||
}
|
||||
|
||||
void Reset(bool softReset)
|
||||
{
|
||||
BaseMapper::Reset(softReset);
|
||||
|
||||
WriteRegister(0x8000, 0);
|
||||
SelectCHRPage(0, 0);
|
||||
}
|
||||
|
||||
void WriteRegister(uint16_t addr, uint8_t value) override
|
||||
{
|
||||
if(addr & 0x800) {
|
||||
SelectPRGPage(0, (addr & 0x1F) | (addr & ((addr & 0x40) >> 6)));
|
||||
SelectPRGPage(1, (addr & 0x18) | 0x07);
|
||||
} else {
|
||||
if(addr & 0x40) {
|
||||
SelectPRGPage(0, addr & 0x1F);
|
||||
SelectPRGPage(1, addr & 0x1F);
|
||||
} else {
|
||||
SelectPrgPage2x(0, addr & 0x1E);
|
||||
}
|
||||
}
|
||||
SetMirroringType(addr & 0x80 ? MirroringType::Horizontal : MirroringType::Vertical);
|
||||
}
|
||||
};
|
@ -423,6 +423,7 @@
|
||||
<ClInclude Include="Bmc63.h" />
|
||||
<ClInclude Include="A65AS.h" />
|
||||
<ClInclude Include="Bmc70in1.h" />
|
||||
<ClInclude Include="BmcG146.h" />
|
||||
<ClInclude Include="BnRom.h" />
|
||||
<ClInclude Include="Bs5.h" />
|
||||
<ClInclude Include="Caltron41.h" />
|
||||
|
@ -1039,6 +1039,9 @@
|
||||
<ClInclude Include="Ac08.h">
|
||||
<Filter>Nes\Mappers\Unif</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="BmcG146.h">
|
||||
<Filter>Nes\Mappers\Unif</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "Bmc190in1.h"
|
||||
#include "Bmc235.h"
|
||||
#include "Bmc255.h"
|
||||
#include "BmcG146.h"
|
||||
#include "BnRom.h"
|
||||
#include "Bs5.h"
|
||||
#include "Caltron41.h"
|
||||
@ -475,6 +476,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
|
||||
case UnifBoards::Bmc70in1: return new Bmc70in1();
|
||||
case UnifBoards::Bmc70in1B: return new Bmc70in1();
|
||||
case UnifBoards::Bmc190in1: return new Bmc190in1();
|
||||
case UnifBoards::BmcG146: return new BmcG146();
|
||||
case UnifBoards::Bs5: return new Bs5();
|
||||
case UnifBoards::Cc21: return new Cc21();
|
||||
case UnifBoards::Coolboy: return new MMC3_Coolboy();
|
||||
|
@ -32,5 +32,6 @@ namespace UnifBoards {
|
||||
Hp898f,
|
||||
Bb,
|
||||
Ac08,
|
||||
BmcG146
|
||||
};
|
||||
}
|
@ -51,7 +51,7 @@ private:
|
||||
{ "FK23C", UnifBoards::UnknownBoard },
|
||||
{ "FK23CA", UnifBoards::UnknownBoard },
|
||||
{ "FS304", 162 },
|
||||
{ "G-146", UnifBoards::UnknownBoard },
|
||||
{ "G-146", UnifBoards::BmcG146 },
|
||||
{ "GK-192", 58 },
|
||||
{ "GS-2004", UnifBoards::Gs2004 },
|
||||
{ "GS-2013", UnifBoards::Gs2013 },
|
||||
|
Loading…
x
Reference in New Issue
Block a user