mirror of
https://github.com/libretro/Mesen.git
synced 2025-02-02 06:44:48 +00:00
Mapper 155 support (MMC1A)
This commit is contained in:
parent
135d02955f
commit
184be6b1f8
@ -425,6 +425,7 @@
|
|||||||
<ClInclude Include="Mapper230.h" />
|
<ClInclude Include="Mapper230.h" />
|
||||||
<ClInclude Include="Mapper241.h" />
|
<ClInclude Include="Mapper241.h" />
|
||||||
<ClInclude Include="Mapper60.h" />
|
<ClInclude Include="Mapper60.h" />
|
||||||
|
<ClInclude Include="MMC1_155.h" />
|
||||||
<ClInclude Include="MMC3_45.h" />
|
<ClInclude Include="MMC3_45.h" />
|
||||||
<ClInclude Include="Mapper57.h" />
|
<ClInclude Include="Mapper57.h" />
|
||||||
<ClInclude Include="Mapper61.h" />
|
<ClInclude Include="Mapper61.h" />
|
||||||
|
@ -637,6 +637,9 @@
|
|||||||
<ClInclude Include="DaouInfosys.h">
|
<ClInclude Include="DaouInfosys.h">
|
||||||
<Filter>Nes\Mappers</Filter>
|
<Filter>Nes\Mappers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="MMC1_155.h">
|
||||||
|
<Filter>Nes\Mappers\MMC</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="stdafx.cpp">
|
<ClCompile Include="stdafx.cpp">
|
||||||
|
20
Core/MMC1.h
20
Core/MMC1.h
@ -1,3 +1,4 @@
|
|||||||
|
#pragma once
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "CPU.h"
|
#include "CPU.h"
|
||||||
#include "BaseMapper.h"
|
#include "BaseMapper.h"
|
||||||
@ -44,13 +45,6 @@ class MMC1 : public BaseMapper
|
|||||||
uint8_t _prgReg;
|
uint8_t _prgReg;
|
||||||
|
|
||||||
int32_t _lastWriteCycle = -1;
|
int32_t _lastWriteCycle = -1;
|
||||||
|
|
||||||
struct {
|
|
||||||
uint8_t Reg8000;
|
|
||||||
uint8_t RegA000;
|
|
||||||
uint8_t RegC000;
|
|
||||||
uint8_t RegE000;
|
|
||||||
} _state;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool HasResetFlag(uint8_t value)
|
bool HasResetFlag(uint8_t value)
|
||||||
@ -85,7 +79,16 @@ class MMC1 : public BaseMapper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateState()
|
protected:
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
uint8_t Reg8000;
|
||||||
|
uint8_t RegA000;
|
||||||
|
uint8_t RegC000;
|
||||||
|
uint8_t RegE000;
|
||||||
|
} _state;
|
||||||
|
|
||||||
|
virtual void UpdateState()
|
||||||
{
|
{
|
||||||
switch(_state.Reg8000 & 0x03) {
|
switch(_state.Reg8000 & 0x03) {
|
||||||
case 0: SetMirroringType(MirroringType::ScreenAOnly); break;
|
case 0: SetMirroringType(MirroringType::ScreenAOnly); break;
|
||||||
@ -135,7 +138,6 @@ class MMC1 : public BaseMapper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
|
||||||
void StreamState(bool saving)
|
void StreamState(bool saving)
|
||||||
{
|
{
|
||||||
BaseMapper::StreamState(saving);
|
BaseMapper::StreamState(saving);
|
||||||
|
14
Core/MMC1_155.h
Normal file
14
Core/MMC1_155.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "MMC1.h"
|
||||||
|
|
||||||
|
class MMC1_155 : public MMC1
|
||||||
|
{
|
||||||
|
protected :
|
||||||
|
void UpdateState()
|
||||||
|
{
|
||||||
|
//WRAM disable bit does not exist in mapper 155
|
||||||
|
_state.RegE000 &= 0x0F;
|
||||||
|
|
||||||
|
MMC1::UpdateState();
|
||||||
|
}
|
||||||
|
};
|
@ -47,6 +47,7 @@
|
|||||||
#include "Mapper242.h"
|
#include "Mapper242.h"
|
||||||
#include "Mapper246.h"
|
#include "Mapper246.h"
|
||||||
#include "MMC1.h"
|
#include "MMC1.h"
|
||||||
|
#include "MMC1_155.h"
|
||||||
#include "MMC2.h"
|
#include "MMC2.h"
|
||||||
#include "MMC3.h"
|
#include "MMC3.h"
|
||||||
#include "MMC3_12.h"
|
#include "MMC3_12.h"
|
||||||
@ -202,6 +203,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
|
|||||||
case 152: return new Bandai74161_7432(true);
|
case 152: return new Bandai74161_7432(true);
|
||||||
case 153: return new BandaiFcg();
|
case 153: return new BandaiFcg();
|
||||||
case 154: return new Namco108_154();
|
case 154: return new Namco108_154();
|
||||||
|
case 155: return new MMC1_155();
|
||||||
case 156: return new DaouInfosys();
|
case 156: return new DaouInfosys();
|
||||||
case 157: return new BandaiFcg();
|
case 157: return new BandaiFcg();
|
||||||
case 159: return new BandaiFcg();
|
case 159: return new BandaiFcg();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user