Mapper 158 support (Emulate Alien Syndrome as mapper 158 instead of 118)

This commit is contained in:
Souryo 2017-05-08 22:47:59 -04:00
parent 731c39b6eb
commit ad41b0561a
6 changed files with 47 additions and 3 deletions

View file

@ -412,6 +412,7 @@
<ClInclude Include="Assembler.h" /> <ClInclude Include="Assembler.h" />
<ClInclude Include="AutomaticRomTest.h" /> <ClInclude Include="AutomaticRomTest.h" />
<ClInclude Include="FceuxMovie.h" /> <ClInclude Include="FceuxMovie.h" />
<ClInclude Include="Rambo1_158.h" />
<ClInclude Include="RecordedRomTest.h" /> <ClInclude Include="RecordedRomTest.h" />
<ClInclude Include="AutoSaveManager.h" /> <ClInclude Include="AutoSaveManager.h" />
<ClInclude Include="AviRecorder.h" /> <ClInclude Include="AviRecorder.h" />

View file

@ -1171,6 +1171,9 @@
<ClInclude Include="RewindManager.h"> <ClInclude Include="RewindManager.h">
<Filter>Rewinder</Filter> <Filter>Rewinder</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="Rambo1_158.h">
<Filter>Nes\Mappers</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="stdafx.cpp"> <ClCompile Include="stdafx.cpp">

View file

@ -186,6 +186,7 @@
#include "OekaKids.h" #include "OekaKids.h"
#include "Racermate.h" #include "Racermate.h"
#include "Rambo1.h" #include "Rambo1.h"
#include "Rambo1_158.h"
#include "Rt01.h" #include "Rt01.h"
#include "Sachen_133.h" #include "Sachen_133.h"
#include "Sachen_136.h" #include "Sachen_136.h"
@ -257,7 +258,7 @@ Supported mappers:
| 96| 97|===| 99|...|101|===|103|104|105|106|107|108|===|===|111| | 96| 97|===| 99|...|101|===|103|104|105|106|107|108|===|===|111|
|112|113|114|115| |117|118|119|120|121|===|123|===|125|126|===| |112|113|114|115| |117|118|119|120|121|===|123|===|125|126|===|
|===|===|===|===|132|133|134|===|136|137|138|139|140|141|142|143| |===|===|===|===|132|133|134|===|136|137|138|139|140|141|142|143|
|144|145|146|147|148|149|150|151|152|153|154|155|156|157|???|159| |144|145|146|147|148|149|150|151|152|153|154|155|156|157|158|159|
|---|===|162|163|164|165|166|167|168|===|170|171|172|173|===|175| |---|===|162|163|164|165|166|167|168|===|170|171|172|173|===|175|
|176|177|178|179|180|---|182|183|184|185|186|187|188|189|190|191| |176|177|178|179|180|---|182|183|184|185|186|187|188|189|190|191|
|192|193|194|195|196|197| |199|200|201|202|203|204|205|206|207| |192|193|194|195|196|197| |199|200|201|202|203|204|205|206|207|
@ -417,6 +418,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
case 155: return new MMC1_155(); 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 158: return new Rambo1_158();
case 159: return new BandaiFcg(); case 159: return new BandaiFcg();
case 162: return new Waixing162(); case 162: return new Waixing162();
case 163: return new Nanjing(); case 163: return new Nanjing();

View file

@ -6,7 +6,7 @@
class Rambo1 : public BaseMapper class Rambo1 : public BaseMapper
{ {
private: protected:
const uint8_t PpuIrqDelay = 2; const uint8_t PpuIrqDelay = 2;
const uint8_t CpuIrqDelay = 1; const uint8_t CpuIrqDelay = 1;
bool _irqEnabled = false; bool _irqEnabled = false;

38
Core/Rambo1_158.h Normal file
View file

@ -0,0 +1,38 @@
#pragma once
#include "stdafx.h"
#include "Rambo1.h"
class Rambo1_158 : public Rambo1
{
void WriteRegister(uint16_t addr, uint8_t value) override
{
if((addr & 0xE001) == 0x8001) {
uint8_t nametable = value >> 7;
if(_currentRegister & 0x80) {
switch(_currentRegister & 0x07) {
case 2: SetNametable(0, nametable); break;
case 3: SetNametable(1, nametable); break;
case 4: SetNametable(2, nametable); break;
case 5: SetNametable(3, nametable); break;
}
} else {
switch(_currentRegister & 0x07) {
case 0:
SetNametable(0, nametable);
SetNametable(1, nametable);
break;
case 1:
SetNametable(2, nametable);
SetNametable(3, nametable);
break;
}
}
}
if((addr & 0xE001) != 0xA000) {
Rambo1::WriteRegister(addr, value);
}
}
};

View file

@ -2448,7 +2448,7 @@ CB5ACB49,Famicom,HVC-TKROM,HVC-TKROM-03,MMC3C,4,128,128,,0,8,1,,,
CB8F9AB7,NesNtsc,,,,4,128,128,,0,0,0,,, CB8F9AB7,NesNtsc,,,,4,128,128,,0,0,0,,,
CBAD8B09,Famicom,,,,0,32,8,,0,0,0,v,, CBAD8B09,Famicom,,,,0,32,8,,0,0,0,v,,
CBBEFD1F,VsUni,,,,99,32,16,4,0,0,0,,, CBBEFD1F,VsUni,,,,99,32,16,4,0,0,0,,,
CBF4366F,NesNtsc,TENGEN-800037,800037 REV A,337006,118,128,128,,0,0,0,,, CBF4366F,NesNtsc,TENGEN-800037,800037 REV A,337006,158,128,128,,0,0,0,,,
CBFB6DE5,Famicom,,,,4,128,128,,0,0,0,,, CBFB6DE5,Famicom,,,,4,128,128,,0,0,0,,,
CC3544B0,Famicom,HVC-SLROM,HVC-SLROM-03,MMC1A,1,128,128,,0,0,0,,, CC3544B0,Famicom,HVC-SLROM,HVC-SLROM-03,MMC1A,1,128,128,,0,0,0,,,
CC37094C,NesNtsc,NES-SGROM,NES-SGROM-04,MMC1B2,1,256,,8,0,0,0,,, CC37094C,NesNtsc,NES-SGROM,NES-SGROM-04,MMC1B2,1,256,,8,0,0,0,,,