Removed some duplicate mapper implementations
This commit is contained in:
parent
d2da208167
commit
3b94ed0352
13 changed files with 43 additions and 239 deletions
|
@ -32,13 +32,14 @@ protected:
|
||||||
|
|
||||||
void UpdateState()
|
void UpdateState()
|
||||||
{
|
{
|
||||||
SetCpuMemoryMapping(0x6000, 0x7FFF, _prgReg & 0x03, PrgMemoryType::PrgRom);
|
SetCpuMemoryMapping(0x6000, 0x7FFF, _prgReg, PrgMemoryType::PrgRom);
|
||||||
SelectCHRPage(0, _chrReg);
|
SelectCHRPage(0, _chrReg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WriteRegister(uint16_t addr, uint8_t value) override
|
void WriteRegister(uint16_t addr, uint8_t value) override
|
||||||
{
|
{
|
||||||
if((addr & 0x9000) == 0x8000){
|
if((addr & 0x9000) == 0x8000 || addr >= 0xF000){
|
||||||
|
//A version of Bubble Bobble expects writes to $F000+ to switch the PRG banks
|
||||||
_prgReg = _chrReg = value;
|
_prgReg = _chrReg = value;
|
||||||
} else {
|
} else {
|
||||||
//For ProWres
|
//For ProWres
|
||||||
|
|
|
@ -687,14 +687,12 @@
|
||||||
<ClInclude Include="Mapper103.h" />
|
<ClInclude Include="Mapper103.h" />
|
||||||
<ClInclude Include="Mapper106.h" />
|
<ClInclude Include="Mapper106.h" />
|
||||||
<ClInclude Include="Mapper107.h" />
|
<ClInclude Include="Mapper107.h" />
|
||||||
<ClInclude Include="Mapper108.h" />
|
|
||||||
<ClInclude Include="Mapper112.h" />
|
<ClInclude Include="Mapper112.h" />
|
||||||
<ClInclude Include="Mapper117.h" />
|
<ClInclude Include="Mapper117.h" />
|
||||||
<ClInclude Include="Mapper120.h" />
|
<ClInclude Include="Mapper120.h" />
|
||||||
<ClInclude Include="Mapper15.h" />
|
<ClInclude Include="Mapper15.h" />
|
||||||
<ClInclude Include="Mapper170.h" />
|
<ClInclude Include="Mapper170.h" />
|
||||||
<ClInclude Include="Mapper200.h" />
|
<ClInclude Include="Mapper200.h" />
|
||||||
<ClInclude Include="Mapper201.h" />
|
|
||||||
<ClInclude Include="Mapper202.h" />
|
<ClInclude Include="Mapper202.h" />
|
||||||
<ClInclude Include="Mapper203.h" />
|
<ClInclude Include="Mapper203.h" />
|
||||||
<ClInclude Include="Mapper204.h" />
|
<ClInclude Include="Mapper204.h" />
|
||||||
|
@ -908,11 +906,9 @@
|
||||||
<ClInclude Include="UnifBoards.h" />
|
<ClInclude Include="UnifBoards.h" />
|
||||||
<ClInclude Include="UnifLoader.h" />
|
<ClInclude Include="UnifLoader.h" />
|
||||||
<ClInclude Include="Unl255in1.h" />
|
<ClInclude Include="Unl255in1.h" />
|
||||||
<ClInclude Include="Unl43272.h" />
|
|
||||||
<ClInclude Include="UnlDripGame.h" />
|
<ClInclude Include="UnlDripGame.h" />
|
||||||
<ClInclude Include="UnlDripGameAudio.h" />
|
<ClInclude Include="UnlDripGameAudio.h" />
|
||||||
<ClInclude Include="UnlPuzzle.h" />
|
<ClInclude Include="UnlPuzzle.h" />
|
||||||
<ClInclude Include="UnlVrc7.h" />
|
|
||||||
<ClInclude Include="UnRom512.h" />
|
<ClInclude Include="UnRom512.h" />
|
||||||
<ClInclude Include="VideoHud.h" />
|
<ClInclude Include="VideoHud.h" />
|
||||||
<ClInclude Include="VideoRenderer.h" />
|
<ClInclude Include="VideoRenderer.h" />
|
||||||
|
|
|
@ -406,9 +406,6 @@
|
||||||
<ClInclude Include="Mapper200.h">
|
<ClInclude Include="Mapper200.h">
|
||||||
<Filter>Nes\Mappers\Unnamed</Filter>
|
<Filter>Nes\Mappers\Unnamed</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="Mapper201.h">
|
|
||||||
<Filter>Nes\Mappers\Unnamed</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="Mapper202.h">
|
<ClInclude Include="Mapper202.h">
|
||||||
<Filter>Nes\Mappers\Unnamed</Filter>
|
<Filter>Nes\Mappers\Unnamed</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@ -808,9 +805,6 @@
|
||||||
<ClInclude Include="MMC3_197.h">
|
<ClInclude Include="MMC3_197.h">
|
||||||
<Filter>Nes\Mappers\MMC</Filter>
|
<Filter>Nes\Mappers\MMC</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="Mapper108.h">
|
|
||||||
<Filter>Nes\Mappers\Unnamed</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="MMC3_187.h">
|
<ClInclude Include="MMC3_187.h">
|
||||||
<Filter>Nes\Mappers\MMC</Filter>
|
<Filter>Nes\Mappers\MMC</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@ -1075,9 +1069,6 @@
|
||||||
<ClInclude Include="MMC3_MaliSB.h">
|
<ClInclude Include="MMC3_MaliSB.h">
|
||||||
<Filter>Nes\Mappers\Unif</Filter>
|
<Filter>Nes\Mappers\Unif</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="Unl43272.h">
|
|
||||||
<Filter>Nes\Mappers\Unif</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="MMC3_Bmc411120C.h">
|
<ClInclude Include="MMC3_Bmc411120C.h">
|
||||||
<Filter>Nes\Mappers\Unif</Filter>
|
<Filter>Nes\Mappers\Unif</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@ -1408,9 +1399,6 @@
|
||||||
<ClInclude Include="MMC3_208.h">
|
<ClInclude Include="MMC3_208.h">
|
||||||
<Filter>Nes\Mappers\MMC</Filter>
|
<Filter>Nes\Mappers\MMC</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="UnlVrc7.h">
|
|
||||||
<Filter>Nes\Mappers\Unif</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="Yoko.h">
|
<ClInclude Include="Yoko.h">
|
||||||
<Filter>Nes\Mappers\Unif</Filter>
|
<Filter>Nes\Mappers\Unif</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
#pragma once
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "BaseMapper.h"
|
|
||||||
|
|
||||||
class Mapper108 : public BaseMapper
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
uint8_t _reg;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual uint16_t RegisterStartAddress() override { return 0x8000; }
|
|
||||||
virtual uint16_t RegisterEndAddress() override { return 0x8FFF; }
|
|
||||||
virtual uint16_t GetPRGPageSize() override { return 0x2000; }
|
|
||||||
virtual uint16_t GetCHRPageSize() override { return 0x2000; }
|
|
||||||
|
|
||||||
void InitMapper() override
|
|
||||||
{
|
|
||||||
//Used by Bubble Bobble hack only
|
|
||||||
AddRegisterRange(0xF000, 0xFFFF, MemoryOperation::Write);
|
|
||||||
|
|
||||||
_reg = 0;
|
|
||||||
|
|
||||||
SelectPrgPage4x(0, -4);
|
|
||||||
SelectCHRPage(0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void StreamState(bool saving) override
|
|
||||||
{
|
|
||||||
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
|
|
||||||
{
|
|
||||||
_reg = value;
|
|
||||||
UpdateState();
|
|
||||||
}
|
|
||||||
};
|
|
|
@ -1,22 +0,0 @@
|
||||||
#pragma once
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "BaseMapper.h"
|
|
||||||
|
|
||||||
class Mapper201 : public BaseMapper
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
virtual uint16_t GetPRGPageSize() override { return 0x8000; }
|
|
||||||
virtual uint16_t GetCHRPageSize() override { return 0x2000; }
|
|
||||||
|
|
||||||
void InitMapper() override
|
|
||||||
{
|
|
||||||
SelectPRGPage(0, 0);
|
|
||||||
SelectCHRPage(0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WriteRegister(uint16_t addr, uint8_t value) override
|
|
||||||
{
|
|
||||||
SelectCHRPage(0, addr & 0xFF);
|
|
||||||
SelectPRGPage(0, addr & 0xFF);
|
|
||||||
}
|
|
||||||
};
|
|
|
@ -8,6 +8,7 @@ class Mapper42 : public BaseMapper
|
||||||
private:
|
private:
|
||||||
uint16_t _irqCounter;
|
uint16_t _irqCounter;
|
||||||
bool _irqEnabled;
|
bool _irqEnabled;
|
||||||
|
uint8_t _prgReg;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual uint16_t GetPRGPageSize() override { return 0x2000; }
|
virtual uint16_t GetPRGPageSize() override { return 0x2000; }
|
||||||
|
@ -17,18 +18,30 @@ protected:
|
||||||
{
|
{
|
||||||
_irqCounter = 0;
|
_irqCounter = 0;
|
||||||
_irqEnabled = false;
|
_irqEnabled = false;
|
||||||
|
_prgReg = 0;
|
||||||
|
|
||||||
SelectPRGPage(0, 0x0C);
|
SelectPRGPage(0, -4);
|
||||||
SelectPRGPage(1, 0x0D);
|
SelectPRGPage(1, -3);
|
||||||
SelectPRGPage(2, 0x0E);
|
SelectPRGPage(2, -2);
|
||||||
SelectPRGPage(3, 0x0F);
|
SelectPRGPage(3, -1);
|
||||||
SelectCHRPage(0, 0);
|
SelectCHRPage(0, 0);
|
||||||
|
|
||||||
|
UpdateState();
|
||||||
}
|
}
|
||||||
|
|
||||||
void StreamState(bool saving) override
|
void StreamState(bool saving) override
|
||||||
{
|
{
|
||||||
BaseMapper::StreamState(saving);
|
BaseMapper::StreamState(saving);
|
||||||
Stream(_irqCounter, _irqEnabled);
|
Stream(_irqCounter, _irqEnabled, _prgReg);
|
||||||
|
|
||||||
|
if(!saving) {
|
||||||
|
UpdateState();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateState()
|
||||||
|
{
|
||||||
|
SetCpuMemoryMapping(0x6000, 0x7FFF, _prgReg & 0x0F, PrgMemoryType::PrgRom);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProcessCpuClock() override
|
void ProcessCpuClock() override
|
||||||
|
@ -56,7 +69,8 @@ protected:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xE000:
|
case 0xE000:
|
||||||
SetCpuMemoryMapping(0x6000, 0x7FFF, value & 0x0F, PrgMemoryType::PrgRom);
|
_prgReg = value & 0x0F;
|
||||||
|
UpdateState();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xE001:
|
case 0xE001:
|
||||||
|
|
|
@ -106,7 +106,6 @@
|
||||||
#include "Mapper103.h"
|
#include "Mapper103.h"
|
||||||
#include "Mapper106.h"
|
#include "Mapper106.h"
|
||||||
#include "Mapper107.h"
|
#include "Mapper107.h"
|
||||||
#include "Mapper108.h"
|
|
||||||
#include "Mapper112.h"
|
#include "Mapper112.h"
|
||||||
#include "Mapper116.h"
|
#include "Mapper116.h"
|
||||||
#include "Mapper117.h"
|
#include "Mapper117.h"
|
||||||
|
@ -115,7 +114,6 @@
|
||||||
#include "Mapper174.h"
|
#include "Mapper174.h"
|
||||||
#include "Mapper183.h"
|
#include "Mapper183.h"
|
||||||
#include "Mapper200.h"
|
#include "Mapper200.h"
|
||||||
#include "Mapper201.h"
|
|
||||||
#include "Mapper202.h"
|
#include "Mapper202.h"
|
||||||
#include "Mapper203.h"
|
#include "Mapper203.h"
|
||||||
#include "Mapper204.h"
|
#include "Mapper204.h"
|
||||||
|
@ -245,13 +243,11 @@
|
||||||
#include "TxSRom.h"
|
#include "TxSRom.h"
|
||||||
#include "Unl158B.h"
|
#include "Unl158B.h"
|
||||||
#include "Unl255in1.h"
|
#include "Unl255in1.h"
|
||||||
#include "Unl43272.h"
|
|
||||||
#include "Unl8237A.h"
|
#include "Unl8237A.h"
|
||||||
#include "UnlD1038.h"
|
#include "UnlD1038.h"
|
||||||
#include "UnlDripGame.h"
|
#include "UnlDripGame.h"
|
||||||
#include "UnlPci556.h"
|
#include "UnlPci556.h"
|
||||||
#include "UnlPuzzle.h"
|
#include "UnlPuzzle.h"
|
||||||
#include "UnlVrc7.h"
|
|
||||||
#include "UNROM.h"
|
#include "UNROM.h"
|
||||||
#include "UnRom_94.h"
|
#include "UnRom_94.h"
|
||||||
#include "UnRom_180.h"
|
#include "UnRom_180.h"
|
||||||
|
@ -279,7 +275,7 @@ Supported mappers:
|
||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| 12| 13| 14| 15|
|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| 12| 13| 14| 15|
|
||||||
| 16| 17| 18| 19|...| 21| 22| 23| 24| 25| 26| 27| 28| 29| 30| 31|
|
| 16| 17| 18| 19|...| 21| 22| 23| 24| 25| 26| 27| 28| 29| 30| 31|
|
||||||
| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 45| 46| 47|
|
| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 45| 46| 47|
|
||||||
| 48| 49| 50| 51| 52| 53| 54|???| 56| 57| 58|===| 60| 61| 62| 63|
|
| 48| 49| 50| 51| 52| 53| 54|???| 56| 57| 58| 59| 60| 61| 62| 63|
|
||||||
| 64| 65| 66| 67| 68| 69| 70| 71| 72| 73| 74| 75| 76| 77| 78| 79|
|
| 64| 65| 66| 67| 68| 69| 70| 71| 72| 73| 74| 75| 76| 77| 78| 79|
|
||||||
| 80|===| 82| 83|===| 85| 86| 87| 88| 89| 90| 91| 92| 93| 94| 95|
|
| 80|===| 82| 83|===| 85| 86| 87| 88| 89| 90| 91| 92| 93| 94| 95|
|
||||||
| 96| 97|===| 99|...|101|===|103|104|105|106|107|108|===|===|111|
|
| 96| 97|===| 99|...|101|===|103|104|105|106|107|108|===|===|111|
|
||||||
|
@ -364,7 +360,8 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
|
||||||
case 56: return new Kaiser202();
|
case 56: return new Kaiser202();
|
||||||
case 57: return new Mapper57();
|
case 57: return new Mapper57();
|
||||||
case 58: return new Mapper58();
|
case 58: return new Mapper58();
|
||||||
case 60: return new Mapper60(); //Partial support?
|
case 59: return new UnlD1038();
|
||||||
|
case 60: return new Mapper60();
|
||||||
case 61: return new Mapper61();
|
case 61: return new Mapper61();
|
||||||
case 62: return new Mapper62();
|
case 62: return new Mapper62();
|
||||||
case 63: return new Bmc63();
|
case 63: return new Bmc63();
|
||||||
|
@ -407,7 +404,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
|
||||||
case 105: return new MMC1_105(); break;
|
case 105: return new MMC1_105(); break;
|
||||||
case 106: return new Mapper106();
|
case 106: return new Mapper106();
|
||||||
case 107: return new Mapper107();
|
case 107: return new Mapper107();
|
||||||
case 108: return new Mapper108();
|
case 108: return new Bb();
|
||||||
case 111: return new Cheapocabra();
|
case 111: return new Cheapocabra();
|
||||||
case 112: return new Mapper112();
|
case 112: return new Mapper112();
|
||||||
case 113: return new Nina03_06(true);
|
case 113: return new Nina03_06(true);
|
||||||
|
@ -486,7 +483,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
|
||||||
case 198: return new MMC3_198();
|
case 198: return new MMC3_198();
|
||||||
case 199: return new MMC3_199();
|
case 199: return new MMC3_199();
|
||||||
case 200: return new Mapper200();
|
case 200: return new Mapper200();
|
||||||
case 201: return new Mapper201();
|
case 201: return new NovelDiamond();
|
||||||
case 202: return new Mapper202();
|
case 202: return new Mapper202();
|
||||||
case 203: return new Mapper203();
|
case 203: return new Mapper203();
|
||||||
case 204: return new Mapper204();
|
case 204: return new Mapper204();
|
||||||
|
@ -633,24 +630,19 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
|
||||||
case 529: return new T230();
|
case 529: return new T230();
|
||||||
case 530: return new Ax5705();
|
case 530: return new Ax5705();
|
||||||
|
|
||||||
case UnifBoards::Ac08: return new Ac08();
|
case UnifBoards::Ac08: return new Ac08(); //mapper 42?
|
||||||
case UnifBoards::Bb: return new Bb();
|
|
||||||
case UnifBoards::BmcGn45: return new BmcGn45();
|
case UnifBoards::BmcGn45: return new BmcGn45();
|
||||||
case UnifBoards::Cc21: return new Cc21();
|
case UnifBoards::Cc21: return new Cc21();
|
||||||
case UnifBoards::Fk23C: return new MMC3_Fk23C(false);
|
case UnifBoards::Fk23C: return new MMC3_Fk23C(false); //mapper 176?
|
||||||
case UnifBoards::Fk23Ca: return new MMC3_Fk23C(true);
|
case UnifBoards::Fk23Ca: return new MMC3_Fk23C(true); //mapper 176?
|
||||||
case UnifBoards::Ghostbusters63in1: return new Ghostbusters63in1();
|
case UnifBoards::Ghostbusters63in1: return new Ghostbusters63in1(); //mapper 226?
|
||||||
case UnifBoards::Gs2013: return new Gs2013();
|
case UnifBoards::Gs2013: return new Gs2013();
|
||||||
case UnifBoards::Malee: return new Malee();
|
case UnifBoards::Malee: return new Malee(); //mapper 42?
|
||||||
case UnifBoards::NovelDiamond: return new NovelDiamond();
|
|
||||||
case UnifBoards::SssNrom256: return new FamicomBox();
|
case UnifBoards::SssNrom256: return new FamicomBox();
|
||||||
case UnifBoards::Super24in1Sc03: return new MMC3_Super24in1Sc03();
|
case UnifBoards::Super24in1Sc03: return new MMC3_Super24in1Sc03(); //mapper 176?
|
||||||
case UnifBoards::Unl255in1: return new Unl255in1();
|
case UnifBoards::Unl255in1: return new Unl255in1();
|
||||||
case UnifBoards::Unl43272: return new Unl43272();
|
case UnifBoards::Unl8237A: return new Unl8237A(); //mapper 215.1
|
||||||
case UnifBoards::Unl8237A: return new Unl8237A();
|
|
||||||
case UnifBoards::UnlD1038: return new UnlD1038();
|
|
||||||
case UnifBoards::UnlPuzzle: return new UnlPuzzle();
|
case UnifBoards::UnlPuzzle: return new UnlPuzzle();
|
||||||
case UnifBoards::UnlVrc7: return new UnlVrc7();
|
|
||||||
|
|
||||||
case MapperFactory::NsfMapperID: return new NsfMapper();
|
case MapperFactory::NsfMapperID: return new NsfMapper();
|
||||||
case MapperFactory::FdsMapperID: return new FDS();
|
case MapperFactory::FdsMapperID: return new FDS();
|
||||||
|
|
|
@ -7,18 +7,14 @@ namespace UnifBoards {
|
||||||
UnknownBoard = 32768,
|
UnknownBoard = 32768,
|
||||||
Malee,
|
Malee,
|
||||||
Gs2013,
|
Gs2013,
|
||||||
NovelDiamond,
|
|
||||||
Ghostbusters63in1,
|
Ghostbusters63in1,
|
||||||
Super24in1Sc03,
|
Super24in1Sc03,
|
||||||
Cc21,
|
Cc21,
|
||||||
Bb,
|
|
||||||
Ac08,
|
Ac08,
|
||||||
Unl43272,
|
|
||||||
UnlPuzzle,
|
UnlPuzzle,
|
||||||
Fk23C,
|
Fk23C,
|
||||||
Fk23Ca,
|
Fk23Ca,
|
||||||
Unl255in1,
|
Unl255in1,
|
||||||
UnlD1038,
|
|
||||||
UnlVrc7,
|
UnlVrc7,
|
||||||
Unl8237A,
|
Unl8237A,
|
||||||
BmcGn45,
|
BmcGn45,
|
||||||
|
|
|
@ -11,7 +11,7 @@ std::unordered_map<string, int> UnifLoader::_boardMappings = std::unordered_map<
|
||||||
{ "3D-BLOCK", UnifBoards::UnknownBoard },
|
{ "3D-BLOCK", UnifBoards::UnknownBoard },
|
||||||
{ "411120-C", 287 },
|
{ "411120-C", 287 },
|
||||||
{ "42in1ResetSwitch", 226 },
|
{ "42in1ResetSwitch", 226 },
|
||||||
{ "43272", UnifBoards::Unl43272 },
|
{ "43272", 227 },
|
||||||
{ "603-5052", 238 },
|
{ "603-5052", 238 },
|
||||||
{ "64in1NoRepeat", 314 },
|
{ "64in1NoRepeat", 314 },
|
||||||
{ "70in1", 236 },
|
{ "70in1", 236 },
|
||||||
|
@ -25,7 +25,7 @@ std::unordered_map<string, int> UnifLoader::_boardMappings = std::unordered_map<
|
||||||
{ "AC08", UnifBoards::Ac08 },
|
{ "AC08", UnifBoards::Ac08 },
|
||||||
{ "ANROM", 7 },
|
{ "ANROM", 7 },
|
||||||
{ "AX5705", 530 },
|
{ "AX5705", 530 },
|
||||||
{ "BB", UnifBoards::Bb },
|
{ "BB", 108 },
|
||||||
{ "BS-5", 286 },
|
{ "BS-5", 286 },
|
||||||
{ "CC-21", UnifBoards::Cc21 },
|
{ "CC-21", UnifBoards::Cc21 },
|
||||||
{ "CITYFIGHT", 266 },
|
{ "CITYFIGHT", 266 },
|
||||||
|
@ -33,7 +33,7 @@ std::unordered_map<string, int> UnifLoader::_boardMappings = std::unordered_map<
|
||||||
{ "10-24-C-A1", UnifBoards::UnknownBoard },
|
{ "10-24-C-A1", UnifBoards::UnknownBoard },
|
||||||
{ "CNROM", 3 },
|
{ "CNROM", 3 },
|
||||||
{ "CPROM", 13 },
|
{ "CPROM", 13 },
|
||||||
{ "D1038", UnifBoards::UnlD1038 },
|
{ "D1038", 59 },
|
||||||
{ "DANCE", UnifBoards::UnknownBoard },
|
{ "DANCE", UnifBoards::UnknownBoard },
|
||||||
{ "DANCE2000", 518 },
|
{ "DANCE2000", 518 },
|
||||||
{ "DREAMTECH01", 521 },
|
{ "DREAMTECH01", 521 },
|
||||||
|
@ -77,7 +77,7 @@ std::unordered_map<string, int> UnifLoader::_boardMappings = std::unordered_map<
|
||||||
{ "NROM-256", 0 },
|
{ "NROM-256", 0 },
|
||||||
{ "NTBROM", 68 },
|
{ "NTBROM", 68 },
|
||||||
{ "NTD-03", 290 },
|
{ "NTD-03", 290 },
|
||||||
{ "NovelDiamond9999999in1", UnifBoards::NovelDiamond },
|
{ "NovelDiamond9999999in1", 201 },
|
||||||
{ "OneBus", UnifBoards::UnknownBoard },
|
{ "OneBus", UnifBoards::UnknownBoard },
|
||||||
{ "PEC-586", UnifBoards::UnknownBoard },
|
{ "PEC-586", UnifBoards::UnknownBoard },
|
||||||
{ "PUZZLE", UnifBoards::UnlPuzzle }, //Doesn't actually exist as a UNIF file (used to reassign a new mapper number to the Puzzle beta)
|
{ "PUZZLE", UnifBoards::UnlPuzzle }, //Doesn't actually exist as a UNIF file (used to reassign a new mapper number to the Puzzle beta)
|
||||||
|
@ -143,7 +143,7 @@ std::unordered_map<string, int> UnifLoader::_boardMappings = std::unordered_map<
|
||||||
{ "UNROM-512-16", 30 },
|
{ "UNROM-512-16", 30 },
|
||||||
{ "UNROM-512-32", 30 },
|
{ "UNROM-512-32", 30 },
|
||||||
{ "UOROM", 2 },
|
{ "UOROM", 2 },
|
||||||
{ "VRC7", UnifBoards::UnlVrc7 },
|
{ "VRC7", 85 },
|
||||||
{ "YOKO", 264 },
|
{ "YOKO", 264 },
|
||||||
{ "SB-2000", UnifBoards::UnknownBoard },
|
{ "SB-2000", UnifBoards::UnknownBoard },
|
||||||
{ "158B", 258 },
|
{ "158B", 258 },
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
#pragma once
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "BaseMapper.h"
|
|
||||||
|
|
||||||
class Unl43272 : public BaseMapper
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
uint16_t _lastAddr;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
uint16_t GetPRGPageSize() override { return 0x8000; }
|
|
||||||
uint16_t GetCHRPageSize() override { return 0x2000; }
|
|
||||||
bool AllowRegisterRead() override { return true; }
|
|
||||||
|
|
||||||
void InitMapper() override
|
|
||||||
{
|
|
||||||
SelectCHRPage(0, 0);
|
|
||||||
SetMirroringType(MirroringType::Horizontal);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Reset(bool softReset) override
|
|
||||||
{
|
|
||||||
BaseMapper::Reset(softReset);
|
|
||||||
WriteRegister(0x8081, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void StreamState(bool saving) override
|
|
||||||
{
|
|
||||||
BaseMapper::StreamState(saving);
|
|
||||||
Stream(_lastAddr);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t ReadRegister(uint16_t addr) override
|
|
||||||
{
|
|
||||||
return InternalReadRam(_lastAddr & 0x400 ? (addr & 0xFE) : addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WriteRegister(uint16_t addr, uint8_t value) override
|
|
||||||
{
|
|
||||||
_lastAddr = addr;
|
|
||||||
|
|
||||||
if((addr & 0x81) == 0x81) {
|
|
||||||
SelectPRGPage(0, (addr & 0x38) >> 3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
|
@ -1,68 +0,0 @@
|
||||||
#pragma once
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "BaseMapper.h"
|
|
||||||
#include "VrcIrq.h"
|
|
||||||
|
|
||||||
class UnlVrc7 : public BaseMapper
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
unique_ptr<VrcIrq> _irq;
|
|
||||||
uint8_t _chrRegisters[8];
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual uint16_t GetPRGPageSize() override { return 0x2000; }
|
|
||||||
virtual uint16_t GetCHRPageSize() override { return 0x0400; }
|
|
||||||
|
|
||||||
void InitMapper() override
|
|
||||||
{
|
|
||||||
_irq.reset(new VrcIrq(_console));
|
|
||||||
_irq->Reset();
|
|
||||||
memset(_chrRegisters, 0, sizeof(_chrRegisters));
|
|
||||||
SelectPRGPage(3, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void StreamState(bool saving) override
|
|
||||||
{
|
|
||||||
BaseMapper::StreamState(saving);
|
|
||||||
SnapshotInfo irq { _irq.get() };
|
|
||||||
ArrayInfo<uint8_t> chrRegisters = { _chrRegisters, 8 };
|
|
||||||
|
|
||||||
Stream(chrRegisters, irq);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProcessCpuClock() override
|
|
||||||
{
|
|
||||||
_irq->ProcessCpuClock();
|
|
||||||
}
|
|
||||||
|
|
||||||
void WriteRegister(uint16_t addr, uint8_t value) override
|
|
||||||
{
|
|
||||||
switch(addr & 0xF038) {
|
|
||||||
case 0x8000: SelectPRGPage(0, value & 0x3F); break;
|
|
||||||
case 0x8008: SelectPRGPage(1, value & 0x3F); break;
|
|
||||||
case 0x9000: SelectPRGPage(2, value & 0x3F); break;
|
|
||||||
|
|
||||||
case 0xA000: SelectCHRPage(0, value); break;
|
|
||||||
case 0xA008: SelectCHRPage(1, value); break;
|
|
||||||
case 0xB000: SelectCHRPage(2, value); break;
|
|
||||||
case 0xB008: SelectCHRPage(3, value); break;
|
|
||||||
case 0xC000: SelectCHRPage(4, value); break;
|
|
||||||
case 0xC008: SelectCHRPage(5, value); break;
|
|
||||||
case 0xD000: SelectCHRPage(6, value); break;
|
|
||||||
case 0xD008: SelectCHRPage(7, value); break;
|
|
||||||
|
|
||||||
case 0xE000:
|
|
||||||
switch(value & 0x03) {
|
|
||||||
case 0: SetMirroringType(MirroringType::Vertical); break;
|
|
||||||
case 1: SetMirroringType(MirroringType::Horizontal); break;
|
|
||||||
case 2: SetMirroringType(MirroringType::ScreenAOnly); break;
|
|
||||||
case 3: SetMirroringType(MirroringType::ScreenBOnly); break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0xE008: _irq->SetReloadValue(value + 8); break;
|
|
||||||
case 0xF000: _irq->SetControlValue(value & 0x03); break;
|
|
||||||
case 0xF008: _irq->AcknowledgeIrq(); break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated database based on Nestopia's DB and NesCartDB
|
# Automatically generated database based on Nestopia's DB and NesCartDB
|
||||||
#
|
#
|
||||||
# Generated on 2018-07-07 using:
|
# Generated on 2018-07-08 using:
|
||||||
# -NesCartDB (dated 2017-08-21)
|
# -NesCartDB (dated 2017-08-21)
|
||||||
# -Nestopia UE's latest DB (dated 2015-10-22)
|
# -Nestopia UE's latest DB (dated 2015-10-22)
|
||||||
#
|
#
|
||||||
|
@ -6633,7 +6633,7 @@
|
||||||
6D6DBE6B,NesNtsc,UNK,,,0,32,8,,0,0,0,v,,,,,
|
6D6DBE6B,NesNtsc,UNK,,,0,32,8,,0,0,0,v,,,,,
|
||||||
6D78F836,NesNtsc,UNK,,,4,128,128,,0,0,0,v,,,,,
|
6D78F836,NesNtsc,UNK,,,4,128,128,,0,0,0,v,,,,,
|
||||||
6D8908AC,NesNtsc,UNK,,,2,128,,,0,0,0,v,,,,,
|
6D8908AC,NesNtsc,UNK,,,2,128,,,0,0,0,v,,,,,
|
||||||
6D92DFF1,Famicom,,,,60,128,64,,0,0,0,,,,,,
|
6D92DFF1,Famicom,,,,59,128,64,,0,0,0,,,,,,
|
||||||
6D9E4F4D,NesNtsc,UNK,,,4,256,128,,0,0,0,h,,,,,
|
6D9E4F4D,NesNtsc,UNK,,,4,256,128,,0,0,0,h,,,,,
|
||||||
6DA0F643,NesNtsc,UNK,,,4,256,128,,0,0,0,h,,,,,
|
6DA0F643,NesNtsc,UNK,,,4,256,128,,0,0,0,h,,,,,
|
||||||
6DA83F06,NesNtsc,UNK,,,4,128,128,,0,0,0,h,,,,,
|
6DA83F06,NesNtsc,UNK,,,4,128,128,,0,0,0,h,,,,,
|
||||||
|
|
|
@ -6620,7 +6620,7 @@ u8"6D6AB0DA,NesNtsc,UNK,,,4,128,128,,0,0,0,h,,,,,",
|
||||||
u8"6D6DBE6B,NesNtsc,UNK,,,0,32,8,,0,0,0,v,,,,,",
|
u8"6D6DBE6B,NesNtsc,UNK,,,0,32,8,,0,0,0,v,,,,,",
|
||||||
u8"6D78F836,NesNtsc,UNK,,,4,128,128,,0,0,0,v,,,,,",
|
u8"6D78F836,NesNtsc,UNK,,,4,128,128,,0,0,0,v,,,,,",
|
||||||
u8"6D8908AC,NesNtsc,UNK,,,2,128,,,0,0,0,v,,,,,",
|
u8"6D8908AC,NesNtsc,UNK,,,2,128,,,0,0,0,v,,,,,",
|
||||||
u8"6D92DFF1,Famicom,,,,60,128,64,,0,0,0,,,,,,",
|
u8"6D92DFF1,Famicom,,,,59,128,64,,0,0,0,,,,,,",
|
||||||
u8"6D9E4F4D,NesNtsc,UNK,,,4,256,128,,0,0,0,h,,,,,",
|
u8"6D9E4F4D,NesNtsc,UNK,,,4,256,128,,0,0,0,h,,,,,",
|
||||||
u8"6DA0F643,NesNtsc,UNK,,,4,256,128,,0,0,0,h,,,,,",
|
u8"6DA0F643,NesNtsc,UNK,,,4,256,128,,0,0,0,h,,,,,",
|
||||||
u8"6DA83F06,NesNtsc,UNK,,,4,128,128,,0,0,0,h,,,,,",
|
u8"6DA83F06,NesNtsc,UNK,,,4,128,128,,0,0,0,h,,,,,",
|
||||||
|
|
Loading…
Add table
Reference in a new issue