UNIF BB board support

This commit is contained in:
Souryo 2016-11-10 17:07:34 -05:00
parent 1111399978
commit eb67d54e69
6 changed files with 57 additions and 1 deletions

49
Core/Bb.h Normal file
View file

@ -0,0 +1,49 @@
#pragma once
#include "stdafx.h"
#include "BaseMapper.h"
class Bb : public BaseMapper
{
private:
uint8_t _prgReg;
uint8_t _chrReg;
protected:
uint16_t GetPRGPageSize() override { return 0x2000; }
uint16_t GetCHRPageSize() override { return 0x2000; }
void InitMapper() override
{
_prgReg = -1;
_chrReg = 0;
SelectPrgPage4x(0, -4);
UpdateState();
}
void StreamState(bool saving)
{
BaseMapper::StreamState(saving);
Stream(_prgReg, _chrReg);
if(!saving) {
UpdateState();
}
}
void UpdateState()
{
SetCpuMemoryMapping(0x6000, 0x7FFF, _prgReg & 0x03, PrgMemoryType::PrgRom);
SelectCHRPage(0, _chrReg);
}
void WriteRegister(uint16_t addr, uint8_t value) override
{
if((addr & 0x9000) == 0x8000){
_prgReg = _chrReg = value;
} else {
//For ProWres
_chrReg = value & 0x01;
}
UpdateState();
}
};

View file

@ -413,6 +413,7 @@
<ClInclude Include="BaseFdsChannel.h" />
<ClInclude Include="BaseMapper.h" />
<ClInclude Include="BaseSoundFilter.h" />
<ClInclude Include="Bb.h" />
<ClInclude Include="BF9096.h" />
<ClInclude Include="BF909x.h" />
<ClInclude Include="Bmc190in1.h" />

View file

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

View file

@ -12,6 +12,7 @@
#include "Bandai74161_7432.h"
#include "BandaiFcg.h"
#include "BandaiKaraoke.h"
#include "Bb.h"
#include "BF909x.h"
#include "BF9096.h"
#include "Bmc51.h"
@ -468,6 +469,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
case UnifBoards::A65AS: return new A65AS();
case UnifBoards::Ax5705: return new Ax5705();
case UnifBoards::Bb: return new Bb();
case UnifBoards::Bmc70in1: return new Bmc70in1();
case UnifBoards::Bmc70in1B: return new Bmc70in1();
case UnifBoards::Bmc190in1: return new Bmc190in1();

View file

@ -30,5 +30,6 @@ namespace UnifBoards {
Ks7016,
Rt01,
Hp898f,
Bb,
};
}

View file

@ -31,7 +31,7 @@ private:
{ "AC08", UnifBoards::UnknownBoard },
{ "ANROM", 7 },
{ "AX5705", UnifBoards::Ax5705 },
{ "BB", UnifBoards::UnknownBoard },
{ "BB", UnifBoards::Bb },
{ "BS-5", UnifBoards::Bs5 },
{ "CC-21", UnifBoards::Cc21 },
{ "CITYFIGHT", UnifBoards::UnknownBoard },