UNIF KOF97 board support

This commit is contained in:
Souryo 2016-11-06 13:51:18 -05:00
parent 4946d303ca
commit a9203d2321
6 changed files with 30 additions and 1 deletions

View file

@ -532,6 +532,7 @@
<ClInclude Include="MMC3_52.h" />
<ClInclude Include="MMC3_ChrRam.h" />
<ClInclude Include="MMC3_Coolboy.h" />
<ClInclude Include="MMC3_Kof97.h" />
<ClInclude Include="MMC5Audio.h" />
<ClInclude Include="ModChannel.h" />
<ClInclude Include="Namco163.h" />

View file

@ -985,6 +985,9 @@
<ClInclude Include="NovelDiamond.h">
<Filter>Nes\Mappers\Unif</Filter>
</ClInclude>
<ClInclude Include="MMC3_Kof97.h">
<Filter>Nes\Mappers\Unif</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">

21
Core/MMC3_Kof97.h Normal file
View file

@ -0,0 +1,21 @@
#pragma once
#include "stdafx.h"
#include "MMC3.h"
class MMC3_Kof97 : public MMC3
{
protected:
void WriteRegister(uint16_t addr, uint8_t value) override
{
value = (value & 0xD8) | ((value & 0x20) >> 4) | ((value & 0x04) << 3) | ((value & 0x02) >> 1) | ((value & 0x01) << 2);
if(addr == 0x9000) {
addr = 0x8001;
} else if(addr == 0xD000) {
addr = 0xC001;
} else if(addr == 0xF000) {
addr = 0xE001;
}
MMC3::WriteRegister(addr, value);
}
};

View file

@ -130,6 +130,7 @@
#include "MMC3_254.h"
#include "MMC3_ChrRam.h"
#include "MMC3_Coolboy.h"
#include "MMC3_Kof97.h"
#include "MMC3_StreetHeroes.h"
#include "MMC4.h"
#include "MMC5.h"
@ -230,6 +231,7 @@ const uint16_t MapperFactory::UnifDreamTech01;
const uint16_t MapperFactory::UnifEdu2000;
const uint16_t MapperFactory::UnifGs2004;
const uint16_t MapperFactory::UnifGs2013;
const uint16_t MapperFactory::UnifKof97;
const uint16_t MapperFactory::UnifMalee;
const uint16_t MapperFactory::UnifNovelDiamond;
const uint16_t MapperFactory::UnifStreetHeroes;
@ -466,6 +468,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
case MapperFactory::UnifEdu2000: return new Edu2000();
case MapperFactory::UnifGs2004: return new Gs2004();
case MapperFactory::UnifGs2013: return new Gs2013();
case MapperFactory::UnifKof97: return new MMC3_Kof97();
case MapperFactory::UnifMalee: return new Malee();
case MapperFactory::UnifNovelDiamond: return new NovelDiamond();
case MapperFactory::UnifSmb2j: return new Smb2j();

View file

@ -22,6 +22,7 @@ class MapperFactory
static const uint16_t UnifGs2013 = 65525;
static const uint16_t UnifGs2004 = 65524;
static const uint16_t UnifNovelDiamond = 65523;
static const uint16_t UnifKof97 = 65522;
static shared_ptr<BaseMapper> InitializeFromFile(string romFilename, stringstream *filestream, string ipsFilename, int32_t archiveFileIndex);
};

View file

@ -57,7 +57,7 @@ private:
{ "Ghostbusters63in1", MapperFactory::UnknownBoard },
{ "H2288", 123 },
{ "HKROM", MapperFactory::UnknownBoard },
{ "KOF97", MapperFactory::UnknownBoard },
{ "KOF97", MapperFactory::UnifKof97 },
{ "KONAMI-QTAI", MapperFactory::UnknownBoard },
{ "KS7010", MapperFactory::UnknownBoard },
{ "KS7012", MapperFactory::UnknownBoard },