Add Mapper 433

This commit is contained in:
negativeExponent 2022-06-18 23:53:07 +08:00
parent bf17884f7f
commit c938e96568
4 changed files with 42 additions and 0 deletions

View file

@ -844,6 +844,7 @@
<ClInclude Include="Mapper453.h" />
<ClInclude Include="Mapper438.h" />
<ClInclude Include="Mapper437.h" /
<ClInclude Include="Mapper433.h" /
<ClInclude Include="Mapper58.h" />
<ClInclude Include="MMC3_115.h" />
<ClInclude Include="MMC3_37.h" />

View file

@ -847,6 +847,9 @@
<ClInclude Include="Mapper437.h">
<Filter>Nes\Mappers\Unnamed</Filter>
</ClInclude>
<ClInclude Include="Mapper433.h">
<Filter>Nes\Mappers\Unnamed</Filter>
</ClInclude>
<ClInclude Include="MMC3_197.h">
<Filter>Nes\Mappers\MMC</Filter>
</ClInclude>

35
Core/Mapper433.h Normal file
View file

@ -0,0 +1,35 @@
#pragma once
#include "stdafx.h"
#include "BaseMapper.h"
// NC-20MB, 20-in-1 (CA-006) multicart.
class Mapper433 : public BaseMapper
{
protected:
virtual uint16_t GetPRGPageSize() override { return 0x4000; }
virtual uint16_t GetCHRPageSize() override { return 0x2000; }
void InitMapper() override
{
WriteRegister(0x8000, 0);
}
virtual void Reset(bool softReset) override
{
WriteRegister(0x8000, 0);
}
void WriteRegister(uint16_t addr, uint8_t value) override
{
SelectCHRPage(0, 0);
if(value & 0x20) {
SelectPRGPage(0, value & 0x1F);
SelectPRGPage(1, value & 0x1F);
} else {
SelectPRGPage(0, value & 0x1E);
SelectPRGPage(1, (value & 0x1E) + 1);
}
SetMirroringType(value & 0x40 ? MirroringType::Horizontal : MirroringType::Vertical);
}
};

View file

@ -169,6 +169,7 @@
#include "Mapper453.h"
#include "Mapper449.h"
#include "Mapper541.h"
#include "Mapper433.h"
#include "McAcc.h"
#include "MMC1.h"
#include "MMC1_105.h"
@ -723,6 +724,8 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
case 445: return new MMC3_445();
case 449: return new Mapper449();
case 433: return new Mapper433();
//
case 437: return new Mapper437();
case 438: return new Mapper438();