mirror of
https://github.com/SourMesen/Mesen.git
synced 2025-04-02 10:52:48 -04:00
Mapper 91 support
This commit is contained in:
parent
b5ca36f2d2
commit
12fc5e1c83
4 changed files with 50 additions and 0 deletions
|
@ -382,6 +382,7 @@
|
|||
<ClInclude Include="Mapper57.h" />
|
||||
<ClInclude Include="Mapper61.h" />
|
||||
<ClInclude Include="Mapper62.h" />
|
||||
<ClInclude Include="Mapper91.h" />
|
||||
<ClInclude Include="MMC3_12.h" />
|
||||
<ClInclude Include="MMC3_205.h" />
|
||||
<ClInclude Include="Mapper231.h" />
|
||||
|
|
|
@ -455,6 +455,9 @@
|
|||
<ClInclude Include="JalecoJf11_14.h">
|
||||
<Filter>Nes\Mappers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Mapper91.h">
|
||||
<Filter>Nes\Mappers</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
|
|
44
Core/Mapper91.h
Normal file
44
Core/Mapper91.h
Normal file
|
@ -0,0 +1,44 @@
|
|||
#pragma once
|
||||
#include "stdafx.h"
|
||||
#include "MMC3.h"
|
||||
|
||||
class Mapper91 : public MMC3
|
||||
{
|
||||
protected:
|
||||
virtual uint16_t RegisterStartAddress() { return 0x6000; }
|
||||
virtual uint16_t RegisterEndAddress() { return 0x7FFF; }
|
||||
|
||||
virtual uint16_t GetPRGPageSize() { return 0x2000; }
|
||||
virtual uint16_t GetCHRPageSize() { return 0x800; }
|
||||
|
||||
void InitMapper()
|
||||
{
|
||||
SelectPRGPage(2, -2);
|
||||
SelectPRGPage(3, -1);
|
||||
}
|
||||
|
||||
void UpdateState()
|
||||
{
|
||||
//Do nothing, we are only using MMC3 code to emulate the IRQs
|
||||
}
|
||||
|
||||
void WriteRegister(uint16_t addr, uint8_t value)
|
||||
{
|
||||
switch(addr & 0x7003) {
|
||||
case 0x6000: SelectCHRPage(0, value); break;
|
||||
case 0x6001: SelectCHRPage(1, value); break;
|
||||
case 0x6002: SelectCHRPage(2, value); break;
|
||||
case 0x6003: SelectCHRPage(3, value); break;
|
||||
case 0x7000: SelectPRGPage(0, value & 0x0F); break;
|
||||
case 0x7001: SelectPRGPage(1, value & 0x0F); break;
|
||||
case 0x7002:
|
||||
MMC3::WriteRegister(0xE000, value);
|
||||
break;
|
||||
case 0x7003:
|
||||
MMC3::WriteRegister(0xC000, 0x07);
|
||||
MMC3::WriteRegister(0xC001, value);
|
||||
MMC3::WriteRegister(0xE001, value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
|
@ -23,6 +23,7 @@
|
|||
#include "Mapper58.h"
|
||||
#include "Mapper61.h"
|
||||
#include "Mapper62.h"
|
||||
#include "Mapper91.h"
|
||||
#include "Mapper107.h"
|
||||
#include "Mapper112.h"
|
||||
#include "Mapper200.h"
|
||||
|
@ -136,6 +137,7 @@ BaseMapper* MapperFactory::GetMapperFromID(ROMLoader &romLoader)
|
|||
case 87: return new JalecoJfxx(false);
|
||||
case 88: return new Namco108_88();
|
||||
case 89: return new Sunsoft89();
|
||||
case 91: return new Mapper91();
|
||||
case 92: return new JalecoJf17_19(true);
|
||||
case 93: return new Sunsoft93();
|
||||
case 94: return new UnRom_94();
|
||||
|
|
Loading…
Add table
Reference in a new issue