Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/coolgirl-multicart/coolgirl-multirom-builder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-11-07 21:27:20 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-11-07 21:27:20 +0300
commit64492ea5c96dd8e1f34df85c661576af4f9a03eb (patch)
tree97b2398fb119f629e2581f161e39798dfdb666db
parentc53a18883742bbf3cf33c093d13f5427e563d637 (diff)
All fixes moved to json config
-rw-r--r--tools_sources/CoolgirlCombiner.sln6
-rw-r--r--tools_sources/CoolgirlCombiner/Game.cs29
-rw-r--r--tools_sources/CoolgirlCombiner/GameFix.cs9
-rw-r--r--tools_sources/CoolgirlCombiner/NesHeaderFixer.cs438
-rw-r--r--tools_sources/CoolgirlCombiner/coolgirl-fixes.json1239
5 files changed, 1272 insertions, 449 deletions
diff --git a/tools_sources/CoolgirlCombiner.sln b/tools_sources/CoolgirlCombiner.sln
index 89fbf54..152dab1 100644
--- a/tools_sources/CoolgirlCombiner.sln
+++ b/tools_sources/CoolgirlCombiner.sln
@@ -7,6 +7,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoolgirlCombiner", "Coolgir
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NesTiler", "..\..\..\C#\NesTiler\NesTiler\NesTiler.csproj", "{BA88B483-D314-4D20-9787-DE0666EED7AD}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "fceuxfix", "fceuxfix\fceuxfix.csproj", "{91CC7C0D-5643-4100-A298-5E12F496C7EC}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -21,6 +23,10 @@ Global
{BA88B483-D314-4D20-9787-DE0666EED7AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA88B483-D314-4D20-9787-DE0666EED7AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BA88B483-D314-4D20-9787-DE0666EED7AD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {91CC7C0D-5643-4100-A298-5E12F496C7EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {91CC7C0D-5643-4100-A298-5E12F496C7EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {91CC7C0D-5643-4100-A298-5E12F496C7EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {91CC7C0D-5643-4100-A298-5E12F496C7EC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/tools_sources/CoolgirlCombiner/Game.cs b/tools_sources/CoolgirlCombiner/Game.cs
index 85e57cd..ef87094 100644
--- a/tools_sources/CoolgirlCombiner/Game.cs
+++ b/tools_sources/CoolgirlCombiner/Game.cs
@@ -107,9 +107,6 @@ namespace com.clusterrr.Famicom.CoolGirl
try
{
var nesFile = new NesFile(fileName);
- var fixResult = NesHeaderFixer.CorrectRom(nesFile);
- if (fixResult != 0)
- Console.WriteLine(" Invalid header. Fix: " + fixResult);
PRG = nesFile.PRG;
PrgSize = (uint)nesFile.PRG.Length;
CHR = nesFile.CHR;
@@ -126,7 +123,7 @@ namespace com.clusterrr.Famicom.CoolGirl
}
crc32 = $"{nesFile.CalculateCRC32():x08}";
var md5full = nesFile.CalculateMD5();
- md5 = $"{md5full[0]:x02}{md5full[1]:x02}{md5full[2]:x02}{md5full[3]:x02}";
+ md5 = $"{md5full[8]:x02}{md5full[9]:x02}{md5full[10]:x02}{md5full[11]:x02}{md5full[12]:x02}{md5full[13]:x02}{md5full[14]:x02}{md5full[15]:x02}"; // lower 8 bytes of MD5
}
catch (InvalidDataException)
{
@@ -144,7 +141,7 @@ namespace com.clusterrr.Famicom.CoolGirl
ContainerType = NesContainerType.UNIF;
crc32 = $"{unifFile.CalculateCRC32():x08}";
var md5full = unifFile.CalculateMD5();
- md5 = $"{md5full[0]:x02}{md5full[1]:x02}{md5full[2]:x02}{md5full[3]:x02}";
+ md5 = $"{md5full[8]:x02}{md5full[9]:x02}{md5full[10]:x02}{md5full[11]:x02}{md5full[12]:x02}{md5full[13]:x02}{md5full[14]:x02}{md5full[15]:x02}"; // lower 8 bytes of MD5
}
// Check for fixes database
if (fixes != null)
@@ -152,20 +149,30 @@ namespace com.clusterrr.Famicom.CoolGirl
GameFix fix = null;
if (fixes.TryGetValue(crc32, out fix) || fixes.TryGetValue(md5, out fix))
{
- if (fix.PrgRamSize.HasValue)
+ if (!string.IsNullOrEmpty(fix.Mapper) && Mapper != fix.Mapper)
+ {
+ Mapper = fix.Mapper;
+ Console.WriteLine($"Fix based on checksum: {Path.GetFileName(fileName)} has {fix.Mapper} mapper");
+ }
+ if (!string.IsNullOrEmpty(fix.Mirroring) && (Mapper.ToString() != fix.Mirroring))
+ {
+ Mirroring = Enum.Parse<MirroringType>(fix.Mirroring);
+ Console.WriteLine($"Fix based on checksum: {Path.GetFileName(fileName)} has {fix.Mirroring} mirroring type");
+ }
+ if (fix.PrgRamSize.HasValue && (PrgRamSize != fix.PrgRamSize * 1024))
{
PrgRamSize = fix.PrgRamSize * 1024;
- Console.WriteLine($"Fix based on checksum: {Path.GetFileName(fileName)} has {PrgRamSize}KB PRG RAM");
+ Console.WriteLine($"Fix based on checksum: {Path.GetFileName(fileName)} has {fix.PrgRamSize}KB PRG RAM");
}
- if (fix.ChrRamSize.HasValue)
+ if (fix.ChrRamSize.HasValue && (ChrRamSize != fix.ChrRamSize * 1024))
{
ChrRamSize = fix.ChrRamSize * 1024;
- Console.WriteLine($"Fix based on checksum: {Path.GetFileName(fileName)} has {ChrRamSize}KB CHR RAM");
+ Console.WriteLine($"Fix based on checksum: {Path.GetFileName(fileName)} has {fix.ChrRamSize}KB CHR RAM");
}
- if (fix.Battery.HasValue)
+ if (fix.Battery.HasValue && (Battery != fix.Battery.Value))
{
Battery = fix.Battery.Value;
- Console.WriteLine($"Fix based on checksum: {Path.GetFileName(fileName)} battery saves = {Battery}");
+ Console.WriteLine($"Fix based on checksum: {Path.GetFileName(fileName)} battery saves = {fix.Battery}");
}
if (fix.WillNotWorkOnPal)
{
diff --git a/tools_sources/CoolgirlCombiner/GameFix.cs b/tools_sources/CoolgirlCombiner/GameFix.cs
index cb90797..762f87f 100644
--- a/tools_sources/CoolgirlCombiner/GameFix.cs
+++ b/tools_sources/CoolgirlCombiner/GameFix.cs
@@ -5,6 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.Json.Serialization;
+using com.clusterrr.Famicom.Containers;
namespace com.clusterrr.Famicom.CoolGirl
{
@@ -13,6 +14,14 @@ namespace com.clusterrr.Famicom.CoolGirl
[JsonPropertyName("description")]
public string Description { get; set; }
+ [JsonPropertyName("mapper")]
+ [DefaultValue(null)]
+ public string Mapper { get; set; }
+
+ [JsonPropertyName("mirroring")]
+ [DefaultValue(null)]
+ public string Mirroring { get; set; }
+
[JsonPropertyName("battery")]
[DefaultValue(null)]
public bool? Battery { get; set; }
diff --git a/tools_sources/CoolgirlCombiner/NesHeaderFixer.cs b/tools_sources/CoolgirlCombiner/NesHeaderFixer.cs
deleted file mode 100644
index c65fbca..0000000
--- a/tools_sources/CoolgirlCombiner/NesHeaderFixer.cs
+++ /dev/null
@@ -1,438 +0,0 @@
-using com.clusterrr.Famicom.Containers;
-using System;
-using System.Linq;
-
-namespace com.clusterrr.Famicom.HeaderFixer
-{
- /// <summary>
- /// Static class that allows to fix known ROMs with bad header
- /// </summary>
- public static class NesHeaderFixer
- {
- /// <summary>
- /// What was fixed in the ROM header
- /// </summary>
- [Flags]
- public enum NesFixType
- {
- /// <summary>
- /// Nothing
- /// </summary>
- NoFix = 0,
- /// <summary>
- /// Mapper
- /// </summary>
- Mapper = 1,
- /// <summary>
- /// Mirroring
- /// </summary>
- Mirroring = 2,
- /// <summary>
- /// Battery flag
- /// </summary>
- Battery = 4,
- /// <summary>
- /// No CHR
- /// </summary>
- NoChr = 8
- };
-
- /// <summary>
- /// Fix ROM header using database of popular incorrect ROMs
- /// </summary>
- /// <returns>Flags showing what has been changed</returns>
- public static NesFixType CorrectRom(this NesFile nes)
- {
- NesFixType fixType = NesFixType.NoFix;
- var crc32 = nes.CalculateCRC32();
- for (int i = 0; i < correct.GetLength(0); i++)
- {
- if (crc32 == correct[i, 0])
- {
- var mapper = correct[i, 1] & 0x3FF;
- var mask = ((correct[i, 1] & 0x1000) != 0) ? 0xFFF : 0xFF;
- var mirroring = correct[i, 2];
- if ((correct[i, 1] >= 0) && (mapper >= 0) && (nes.Mapper != (mapper & mask)))
- {
- // invalid mapper
- nes.Mapper = (ushort)(mapper & mask);
- fixType |= NesFixType.Mapper;
- }
- if (mirroring >= 0)
- {
- if (mirroring == 8 && nes.Mirroring == MirroringType.FourScreenVram)
- {
- // no four-screen
- nes.Mirroring = MirroringType.Horizontal;
- fixType |= NesFixType.Mirroring;
- }
- MirroringType needMirroring = MirroringType.Unknown;
- switch (mirroring)
- {
- case 0:
- needMirroring = MirroringType.Horizontal;
- break;
- case 1:
- needMirroring = MirroringType.Vertical;
- break;
- case 2:
- needMirroring = MirroringType.FourScreenVram;
- break;
- }
- if (needMirroring != MirroringType.Unknown && needMirroring != nes.Mirroring)
- {
- nes.Mirroring = needMirroring;
- fixType |= NesFixType.Mirroring;
- }
- }
- if ((correct[i, 1] >= 0) && ((correct[i, 1] & 0x800) != 0) && (nes.CHR.Count() > 0))
- {
- // no CHR
- nes.CHR = Array.Empty<byte>();
- fixType |= NesFixType.NoChr;
- }
- }
- }
-
- var md5 = nes.CalculateMD5();
- ulong partialmd5 = 0;
- for (int x = 0; x < 8; x++)
- partialmd5 |= (ulong)md5[15 - x] << (x * 8);
- // maybe this game uses battery saves?
- foreach (var sav in savie)
- {
- if (!nes.Battery && sav == partialmd5)
- {
- nes.Battery = true;
- fixType |= NesFixType.Battery;
- }
- }
-
- return fixType;
- }
-
- static long[,] correct = new long[,]
- {
- {0xaf5d7aa2, -1, 0}, /* Clu Clu Land */
- {0xcfb224e6, -1, 1}, /* Dragon Ninja (J) [p1][!].nes */
- {0x4f2f1846, -1, 1}, /* Famista '89 - Kaimaku Han!! (J) */
- {0x82f204ae, -1, 1}, /* Liang Shan Ying Xiong (NJ023) (Ch) [!] */
- {0x684afccd, -1, 1}, /* Space Hunter (J) */
- {0xad9c63e2, -1, 1}, /* Space Shadow (J) */
- {0xe1526228, -1, 1}, /* Quest of Ki */
- {0xaf5d7aa2, -1, 0}, /* Clu Clu Land */
- {0xcfb224e6, -1, 1}, /* Dragon Ninja (J) [p1][!].nes */
- {0x4f2f1846, -1, 1}, /* Famista '89 - Kaimaku Han!! (J) */
- {0xfcdaca80, 0, 0}, /* Elevator Action */
- {0xc05a365b, 0, 0}, /* Exed Exes (J) */
- {0x32fa246f, 0, 0}, /* Tag Team Pro Wrestling */
- {0xb3c30bea, 0, 0}, /* Xevious (J) */
- {0xe492d45a, 0, 0}, /* Zippy Race */
- {0xe28f2596, 0, 1}, /* Pac Land (J) */
- {0xd8ee7669, 1, 8}, /* Adventures of Rad Gravity */
- {0x5b837e8d, 1, 8}, /* Alien Syndrome */
- {0x37ba3261, 1, 8}, /* Back to the Future 2 and 3 */
- {0x5b6ca654, 1, 8}, /* Barbie rev X*/
- {0x61a852ea, 1, 8}, /* Battle Stadium - Senbatsu Pro Yakyuu */
- {0xf6fa4453, 1, 8}, /* Bigfoot */
- {0x391aa1b8, 1, 8}, /* Bloody Warriors (J) */
- {0xa5e8d2cd, 1, 8}, /* Breakthru */
- {0x3f56a392, 1, 8}, /* Captain Ed (J) */
- {0x078ced30, 1, 8}, /* Choujin - Ultra Baseball */
- {0xfe364be5, 1, 8}, /* Deep Dungeon 4 */
- {0x57c12280, 1, 8}, /* Demon Sword */
- {0xd09b74dc, 1, 8}, /* Great Tank (J) */
- {0xe8baa782, 1, 8}, /* Gun Hed (J) */
- {0x970bd9c2, 1, 8}, /* Hanjuku Hero */
- {0xcd7a2fd7, 1, 8}, /* Hanjuku Hero */
- {0x63469396, 1, 8}, /* Hokuto no Ken 4 */
- {0xe94d5181, 1, 8}, /* Mirai Senshi - Lios */
- {0x7156cb4d, 1, 8}, /* Muppet Adventure Carnival thingy */
- {0x70f67ab7, 1, 8}, /* Musashi no Bouken */
- {0x291bcd7d, 1, 8}, /* Pachio Kun 2 */
- {0xa9a4ea4c, 1, 8}, /* Satomi Hakkenden */
- {0xcc3544b0, 1, 8}, /* Triathron */
- {0x934db14a, 1, -1}, /* All-Pro Basketball */
- {0xf74dfc91, 1, -1}, /* Win, Lose, or Draw */
- {0x9ea1dc76, 2, 0}, /* Rainbow Islands */
- {0x6d65cac6, 2, 0}, /* Terra Cresta */
- {0xe1b260da, 2, 1}, /* Argos no Senshi */
- {0x1d0f4d6b, 2, 1}, /* Black Bass thinging */
- {0x266ce198, 2, 1}, /* City Adventure Touch */
- {0x804f898a, 2, 1}, /* Dragon Unit */
- {0x55773880, 2, 1}, /* Gilligan's Island */
- {0x6e0eb43e, 2, 1}, /* Puss n Boots */
- {0x2bb6a0f8, 2, 1}, /* Sherlock Holmes */
- {0x28c11d24, 2, 1}, /* Sukeban Deka */
- {0x02863604, 2, 1}, /* Sukeban Deka */
- {0x419461d0, 2, 1}, /* Super Cars */
- {0xdbf90772, 3, 0}, /* Alpha Mission */
- {0xd858033d, 3, 0}, /* Armored Scrum Object */
- {0x9bde3267, 3, 1}, /* Adventures of Dino Riki */
- {0xd8eff0df, 3, 1}, /* Gradius (J) */
- {0x1d41cc8c, 3, 1}, /* Gyruss */
- {0xcf322bb3, 3, 1}, /* John Elway's Quarterback */
- {0xb5d28ea2, 3, 1}, /* Mystery Quest - mapper 3?*/
- {0x02cc3973, 3, 1}, /* Ninja Kid */
- {0xbc065fc3, 3, 1}, /* Pipe Dream */
- {0xc9ee15a7, 3, -1}, /* 3 is probably best. 41 WILL NOT WORK. */
- {0x13e09d7a, 4, 0}, /*Dragon Wars (U) (proto) - comes with erroneous 4-screen mirroring set*/
- {0x22d6d5bd, 4, 1},
- {0xd97c31b0, 4, 1}, //Rasaaru Ishii no Childs Quest (J)
- {0x404b2e8b, 4, 2}, /* Rad Racer 2 */
- {0x15141401, 4, 8}, /* Asmik Kun Land */
- {0x4cccd878, 4, 8}, /* Cat Ninden Teyandee */
- {0x59280bec, 4, 8}, /* Jackie Chan */
- {0x7474ac92, 4, 8}, /* Kabuki: Quantum Fighter */
- {0x5337f73c, 4, 8}, /* Niji no Silk Road */
- {0x9eefb4b4, 4, 8}, /* Pachi Slot Adventure 2 */
- {0x21a653c7, 4, -1}, /* Super Sky Kid */
- {0x9cbadc25, 5, 8}, /* JustBreed */
- {0xf518dd58, 7, 8}, /* Captain Skyhawk */
- {0x84382231, 9, 0}, /* Punch Out (J) */
- {0xbe939fce, 9, 1}, /* Punchout*/
- {0x345d3a1a, 11, 1}, /* Castle of Deceit */
- {0x5e66eaea, 13, 1}, /* Videomation */
- {0xcd373baa, 14, -1}, /* Samurai Spirits (Rex Soft) */
- {0xbfc7a2e9, 16, 8},
- {0x6e68e31a, 16, 8}, /* Dragon Ball 3*/
- {0x33b899c9, 16, -1}, /* Dragon Ball - Dai Maou Fukkatsu (J) [!] */
- {0xa262a81f, 16, -1}, /* Rokudenashi Blues (J) */
- {0xe4a291ce, 23, -1}, /* World Hero (Unl) [!] */
- {0x51e9cd33, 23, -1}, /* World Hero (Unl) [b1] */
- {0x105dd586, 27, -1}, /* Mi Hun Che variations... */
- {0xbc9bb6c1, 27, -1}, /* -- */
- {0x43753886, 27, -1}, /* -- */
- {0x5b3de3d1, 27, -1}, /* -- */
- {0x511e73f8, 27, -1}, /* -- */
- {0x5555fca3, 32, 8},
- {0x283ad224, 32, 8}, /* Ai Sensei no Oshiete */
- {0x243a8735, 32, 0x10|4}, /* Major League */
- {0xbc7b1d0f, 33, -1}, /* Bakushou!! Jinsei Gekijou 2 (J) [!] */
- {0xc2730c30, 34, 0}, /* Deadly Towers */
- {0x4c7c1af3, 34, 1}, /* Caesar's Palace */
- {0x932ff06e, 34, 1}, /* Classic Concentration */
- {0xf46ef39a, 37, -1}, /* Super Mario Bros. + Tetris + Nintendo World Cup (E) [!] */
- {0x7ccb12a3, 43, -1}, /* SMB2j */
- {0x6c71feae, 45, -1}, /* Kunio 8-in-1 */
- {0xe2c94bc2, 48, -1}, /* Super Bros 8 (Unl) [!] */
- {0xaebd6549, 48, 8}, /* Bakushou!! Jinsei Gekijou 3 */
- {0x6cdc0cd9, 48, 8}, /* Bubble Bobble 2 */
- {0x99c395f9, 48, 8}, /* Captain Saver */
- {0xa7b0536c, 48, 8}, /* Don Doko Don 2 */
- {0x40c0ad47, 48, 8}, /* Flintstones 2 */
- {0x1500e835, 48, 8}, /* Jetsons (J) */
- {0xa912b064, 51|0x800, 8}, /* 11-in-1 Ball Games (has CHR ROM when it shouldn't) */
- {0xb19a55dd, 64, 8}, /* Road Runner */
- {0xf92be3ec, 64, -1}, /* Rolling Thunder */
- {0xe84274c5, 66, 1},
- {0xbde3ae9b, 66, 1}, /* Doraemon */
- {0x9552e8df, 66, 1}, /* Dragon Ball */
- {0x811f06d9, 66, 1}, /* Dragon Power */
- {0xd26efd78, 66, 1}, /* SMB Duck Hunt */
- {0xdd8ed0f7, 70, 1}, /* Kamen Rider Club */
- {0xbba58be5, 70, -1}, /* Family Trainer - Manhattan Police */
- {0x370ceb65, 70, -1}, /* Family Trainer - Meiro Dai Sakusen */
- {0xe62e3382, 71, -1}, /* Mig-29 Soviet Fighter */
- {0xac7b0742, 71, -1}, /* Golden KTV (Ch) [!], not actually 71, but UNROM without BUS conflict */
- {0x054bd3e9, 74, -1}, /* Di 4 Ci - Ji Qi Ren Dai Zhan (As) */
- {0x496ac8f7, 74, -1}, /* Ji Jia Zhan Shi (As) */
- {0xae854cef, 74, -1}, /* Jia A Fung Yun (Chinese) */
- {0x3d1c3137, 78, 8}, /* Uchuusen - Cosmo Carrier */
- {0xa4fbb438, 79, 0},
- {0xd4a76b07, 79, 0}, /* F-15 City Wars*/
- {0x1eb4a920, 79, 1}, /* Double Strike */
- {0x3e1271d5, 79, 1}, /* Tiles of Fate */
- {0xd2699893, 88, 0}, /* Dragon Spirit */
- {0xbb7c5f7a, 89, 8}, /* Mito Koumon or something similar */
- {0x0da5e32e, 101, -1}, /* new Uruusey Yatsura */
- {0x8eab381c, 113, 1}, /* Death Bots */
- {0x6a03d3f3, 114, -1},
- {0x0d98db53, 114, -1}, /* Pocahontas */
- {0x4e7729ff, 114, -1}, /* Super Donkey Kong */
- {0xc5e5c5b2, 115, -1}, /* Bao Qing Tian (As).nes */
- {0xa1dc16c0, 116, -1},
- {0xe40dfb7e, 116, -1}, /* Somari (P conf.) */
- {0xc9371ebb, 116, -1}, /* Somari (W conf.) */
- {0xcbf4366f, 118, 8}, /* Alien Syndrome (U.S. unlicensed) */
- {0x78b657ac, 118, -1}, /* Armadillo */
- {0x90c773c1, 118, -1}, /* Goal! 2 */
- {0xb9b4d9e0, 118, -1}, /* NES Play Action Football */
- {0x07d92c31, 118, -1}, /* RPG Jinsei Game */
- {0x37b62d04, 118, -1}, /* Ys 3 */
- {0x318e5502, 121, -1}, /* Sonic 3D Blast 6 (Unl) */
- {0xddcfb058, 121, -1}, /* Street Fighter Zero 2 '97 (Unl) [!] */
- {0x5aefbc94, 133, -1}, /* Jovial Race (Sachen) [a1][!] */
- {0xc2df0a00, 140, 1}, /* Bio Senshi Dan(hacked) */
- {0xe46b1c5d, 140, 1}, /* Mississippi Satsujin Jiken */
- {0x3293afea, 140, 1}, /* Mississippi Satsujin Jiken */
- {0x6bc65d7e, 140, 1}, /* Youkai Club*/
- {0x5caa3e61, 144, 1}, /* Death Race */
- {0x48239b42, 146, -1}, /* Mahjong Companion (Sachen) [!] */
- {0xb6a727fa, 146, -1}, /* Papillion (As) [!] */
- {0xa62b79e1, 146, -1}, /* Side Winder (HES) [!] */
- {0xcc868d4e, 149, -1}, /* 16 Mahjong [p1][!] */
- {0x29582ca1, 150, -1},
- {0x40dbf7a2, 150, -1},
- {0x73fb55ac, 150, -1}, /* 2-in-1 Cosmo Cop + Cyber Monster (Sachen) [!] */
- {0xddcbda16, 150, -1}, /* 2-in-1 Tough Cop + Super Tough Cop (Sachen) [!] */
- {0x47918d84, 150, -1}, /* auto-upturn */
- {0x0f141525, 152, 8}, /* Arkanoid 2 (Japanese) */
- {0xbda8f8e4, 152, 8}, /* Gegege no Kitarou 2 */
- {0xb1a94b82, 152, 8}, /* Pocket Zaurus */
- {0x026c5fca, 152, 8}, /* Saint Seiya Ougon Densetsu */
- {0x3f15d20d, 153, 8}, /* Famicom Jump 2 */
- {0xd1691028, 154, 8}, /* Devil Man */
- {0xcfd4a281, 155, 8}, /* Money Game. Yay for money! */
- {0x2f27cdef, 155, 8}, /* Tatakae!! Rahmen Man */
- {0xccc03440, 156, -1},
- {0x983d8175, 157, 8}, /* Datach Battle Rush */
- {0x894efdbc, 157, 8}, /* Datach Crayon Shin Chan */
- {0x19e81461, 157, 8}, /* Datach DBZ */
- {0xbe06853f, 157, 8}, /* Datach J-League */
- {0x0be0a328, 157, 8}, /* Datach SD Gundam Wars */
- {0x5b457641, 157, 8}, /* Datach Ultraman Club */
- {0xf51a7f46, 157, 8}, /* Datach Yuu Yuu Hakusho */
- {0xe170404c, 159, -1}, /* SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [!] */
- {0x276ac722, 159, -1}, /* SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.1) [!] */
- {0x0cf42e69, 159, -1}, /* Magical Taruruuto-kun - Fantastic World!! (J) (V1.0) [!] */
- {0xdcb972ce, 159, -1}, /* Magical Taruruuto-kun - Fantastic World!! (J) (V1.1) [!] */
- {0xb7f28915, 159, -1}, /* Magical Taruruuto-kun 2 - Mahou Daibouken (J) */
- {0x183859d2, 159, -1}, /* Dragon Ball Z - Kyoushuu! Saiya Jin (J) [!] */
- {0x58152b42, 160, 1}, /* Pipe 5 (Sachen) */
- {0x1c098942, 162, -1}, /* Xi You Ji Hou Zhuan (Ch) */
- {0x081caaff, 163, -1}, /* Commandos (Ch) */
- {0x02c41438, 176, -1}, /* Xing He Zhan Shi (C) */
- {0x558c0dc3, 178, -1}, /* Super 2in1 (unl)[!] {mapper unsupported} */
- {0xc68363f6, 180, 0}, /* Crazy Climber */
- {0x0f05ff0a, 181, -1}, /* Seicross (redump) */
- {0x96ce586e, 189, 8}, /* Street Fighter 2 YOKO */
- {0x555a555e, 191, -1},
- {0x2cc381f6, 191, -1}, /* Sugoro Quest - Dice no Senshitachi (As) */
- {0xa145fae6, 192, -1},
- {0xa9115bc1, 192, -1},
- {0x4c7bbb0e, 192, -1},
- {0x98c1cd4b, 192, -1}, /* Ying Lie Qun Xia Zhuan (Chinese) */
- {0xee810d55, 192, -1}, /* You Ling Xing Dong (Ch) */
- {0x442f1a29, 192, -1}, /* Young chivalry */
- {0x637134e8, 193, 1}, /* Fighting Hero */
- {0xa925226c, 194, -1}, /* Dai-2-Ji - Super Robot Taisen (As) */
- {0x7f3dbf1b, 195, 0},
- {0xb616885c, 195, 0}, /* CHaos WOrld (Ch)*/
- {0x33c5df92, 195, -1},
- {0x1bc0be6c, 195, -1}, /* Captain Tsubasa Vol 2 - Super Striker (C) */
- {0xd5224fde, 195, -1}, /* Crystalis (c) */
- {0xfdec419f, 196, -1}, /* Street Fighter VI 16 Peoples (Unl) [!] */
- {0x700705f4, 198, -1},
- {0x9a2cf02c, 198, -1},
- {0xd8b401a7, 198, -1},
- {0x28192599, 198, -1},
- {0x19b9e732, 198, -1},
- {0xdd431ba7, 198, -1}, /* Tenchi wo kurau 2 (c) */
- {0xd871d3e6, 199, -1}, /* Dragon Ball Z 2 - Gekishin Freeza! (C) */
- {0xed481b7c, 199, -1}, /* Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (C) */
- {0x44c20420, 199, -1}, /* San Guo Zhi 2 (C) */
- {0x4e1c1e3c, 206, 0}, /* Karnov */
- {0x276237b3, 206, 0}, /* Karnov */
- {0x7678f1d5, 207, 8}, /* Fudou Myouou Den */
- {0x07eb2c12, 208, -1}, /* Street Fighter IV */
- {0xdd8ced31, 209, -1}, /* Power Rangers 3 */
- {0x063b1151, 209, -1}, /* Power Rangers 4 */
- {0xdd4d9a62, 209, -1}, /* Shin Samurai Spirits 2 */
- {0x0c47946d, 210, 1}, /* Chibi Maruko Chan */
- {0xc247cc80, 210, 1}, /* Family Circuit '91 */
- {0x6ec51de5, 210, 1}, /* Famista '92 */
- {0xadffd64f, 210, 1}, /* Famista '93 */
- {0x429103c9, 210, 1}, /* Famista '94 */
- {0x81b7f1a8, 210, 1}, /* Heisei Tensai Bakabon */
- {0x2447e03b, 210, 1}, /* Top Striker */
- {0x1dc0f740, 210, 1}, /* Wagyan Land 2 */
- {0xd323b806, 210, 1}, /* Wagyan Land 3 */
- {0xbd523011, 210, 0}, /* Dream Master */
- {0x5daae69a, 211, -1}, /* Aladdin - Return of Jaffar, The (Unl) [!] */
- {0x1ec1dfeb, 217, -1}, /* 255-in-1 (Cut version) [p1] */
- {0x046d70cc, 217, -1}, /* 500-in-1 (Anim Splash, Alt Mapper)[p1][!] */
- {0x12f86a4d, 217, -1}, /* 500-in-1 (Static Splash, Alt Mapper)[p1][!] */
- {0xd09f778d, 217, -1}, /* 9999999-in-1 (Static Splash, Alt Mapper)[p1][!] */
- {0x62ef6c79, 232, 8}, /* Quattro Sports -Aladdin */
- {0x2705eaeb, 234, -1}, /* Maxi 15 */
- {0x6f12afc5, 235, -1}, /* Golden Game 150-in-1 */
- {0xfb2b6b10, 241, -1}, /* Fan Kong Jing Ying (Ch) */
- {0xb5e83c9a, 241, -1}, /* Xing Ji Zheng Ba (Ch) */
- {0x2537b3e6, 241, -1}, /* Dance Xtreme - Prima (Unl) */
- {0x11611e89, 241, -1}, /* Darkseed (Unl) [p1] */
- {0x81a37827, 241, -1}, /* Darkseed (Unl) [p1][b1] */
- {0xc2730c30, 241, -1}, /* Deadly Towers (U) [!] */
- {0x368c19a8, 241, -1}, /* LIKO Study Cartridge 3-in-1 (Unl) [!] */
- {0xa21e675c, 241, -1}, /* Mashou (J) [!] */
- {0x54d98b79, 241, -1}, /* Titanic 1912 (Unl) */
- {0x6bea1235, 245, -1}, /* MMC3 cart, but with nobanking applied to CHR-RAM, so let it be there */
- {0x345ee51a, 245, -1}, /* DQ4c */
- {0x57514c6c, 245, -1}, /* Yong Zhe Dou E Long - Dragon Quest VI (Ch) */
-
- // added a new mask bit to define these mappers as a dupes of the UNIF format boards
-
- {0x1d75fd35, 256|0x1000,-1}, /* 2-in-1 - Street Dance + Hit Mouse (Unl) [!] */
- {0x6eef8bb7, 257|0x1000,-1}, /* PEC-586 Chinese */
- {0xac7e98fb, 257|0x1000,-1}, /* PEC-586 Chinese No Tape Out */
- {0x8d51a23b, 257|0x1000,-1}, /* [KeWang] Chao Ji Wu Bi Han Ka (C) V1 */
- {0x25c76773, 257|0x1000,-1}, /* [KeWang] Chao Ji Wu Bi Han Ka (C) V2 */
- {0x1ca9c322, 258|0x1000,-1}, /* Blood Of Jurassic (GD-98)(Unl) */
- {0x2469c1ae, 259|0x1000,-1}, /* 150-in-1 Unchained FIGHT version */
-
- {0x99d4464f, 260|0x1000,-1}, /* HP10xx/HP20xx board dumps */
- {0xb72b2cf4, 260|0x1000,-1},
- {0x4dc6107d, 260|0x1000,-1},
- {0x0073dbd8, 260|0x1000,-1},
- {0x3b098344, 260|0x1000,-1},
- {0x1fc640c0, 260|0x1000,-1},
- {0x2f1ad1fc, 260|0x1000,-1},
- {0xa22214bb, 260|0x1000,-1},
- {0x5dd9073b, 260|0x1000,-1},
- {0x26a36cc2, 260|0x1000,-1},
- {0xd1e52b37, 260|0x1000,-1},
- {0x4d4a0e1b, 260|0x1000,-1},
- {0xb6dd2c9d, 260|0x1000,-1},
-
- {0xb02fcb57, 406|0x1000,-1} /* Haradius Zero ver 1.2a 2019 */
- };
-
-
- static ulong[] savie = new ulong[]
- {
- 0xc04361e499748382, /* AD&D Heroes of the Lance */
- 0xb72ee2337ced5792, /* AD&D Hillsfar */
- 0x2b7103b7a27bd72f, /* AD&D Pool of Radiance */
- 0x498c10dc463cfe95, /* Battle Fleet */
- 0x854d7947a3177f57, /* Crystalis */
- 0xfad22d265cd70820, /* Downtown Special: Kunio-kun no Jidaigeki Dayo Zenin Shuugou! */
- 0x4a1f5336b86851b6, /* DW */
- 0xb0bcc02c843c1b79, /* DW */
- 0x2dcf3a98c7937c22, /* DW 2 */
- 0x98e55e09dfcc7533, /* DW 4*/
- 0x733026b6b72f2470, /* Dw 3 */
- 0x6917ffcaca2d8466, /* Famista '90 */
- 0x8da46db592a1fcf4, /* Faria */
- 0xedba17a2c4608d20, /* Final Fantasy */
- 0x91a6846d3202e3d6, /* Final Fantasy */
- 0x012df596e2b31174, /* Final Fantasy 1+2 */
- 0xf6b359a720549ecd, /* Final Fantasy 2 */
- 0x5a30da1d9b4af35d, /* Final Fantasy 3 */
- 0xd63dcc68c2b20adc, /* Final Fantasy J */
- 0x2ee3417ba8b69706, /* Hydlide 3*/
- 0xebbce5a54cf3ecc0, /* Justbreed */
- 0x6a858da551ba239e, /* Kaijuu Monogatari */
- 0x2db8f5d16c10b925, /* Kyonshiizu 2 */
- 0x04a31647de80fdab, /* Legend of Zelda */
- 0x94b9484862a26cba, /* Legend of Zelda */
- 0xa40666740b7d22fe, /* Mindseeker */
- 0x82000965f04a71bb, /* Mirai Shinwa Jarvas */
- 0x77b811b2760104b9, /* Mouryou Senki Madara */
- 0x11b69122efe86e8c, /* RPG Jinsei Game */
- 0x9aa1dc16c05e7de5, /* Startropics */
- 0x1b084107d0878bd0, /* Startropics 2*/
- 0xa70b495314f4d075, /* Ys 3 */
- 0x836c0ff4f3e06e45, /* Zelda 2 */
- };
- }
-}
diff --git a/tools_sources/CoolgirlCombiner/coolgirl-fixes.json b/tools_sources/CoolgirlCombiner/coolgirl-fixes.json
index b0bd1a2..ad81c9d 100644
--- a/tools_sources/CoolgirlCombiner/coolgirl-fixes.json
+++ b/tools_sources/CoolgirlCombiner/coolgirl-fixes.json
@@ -53,6 +53,7 @@
},
"78b657ac": {
"description": "Armadillo (J) [!]",
+ "mapper": "118",
"will_not_work_on_dendy": true
},
"b3d92e78": {
@@ -65,10 +66,1248 @@
},
"e62e3382": {
"description": "MiG 29 - Soviet Fighter (Camerica) [!]",
+ "mapper": "071",
"will_not_work_on_dendy": true
},
"1bc686a8": {
"description": "Fire Hawk (Camerica) [!]",
"will_not_work_on_dendy": true
+ },
+ "af5d7aa2": {
+ "description": "Clu Clu Land",
+ "mirroring": "Horizontal"
+ },
+ "cfb224e6": {
+ "description": "Dragon Ninja (J) [p1][!].nes",
+ "mirroring": "Vertical"
+ },
+ "4f2f1846": {
+ "description": "Famista '89 - Kaimaku Han!! (J)",
+ "mirroring": "Vertical"
+ },
+ "82f204ae": {
+ "description": "Liang Shan Ying Xiong (NJ023) (Ch) [!]",
+ "mirroring": "Vertical"
+ },
+ "684afccd": {
+ "description": "Space Hunter (J)",
+ "mirroring": "Vertical"
+ },
+ "ad9c63e2": {
+ "description": "Space Shadow (J)",
+ "mirroring": "Vertical"
+ },
+ "e1526228": {
+ "description": "Quest of Ki",
+ "mirroring": "Vertical"
+ },
+ "fcdaca80": {
+ "description": "Elevator Action",
+ "mapper": "000",
+ "mirroring": "Horizontal"
+ },
+ "c05a365b": {
+ "description": "Exed Exes (J)",
+ "mapper": "000",
+ "mirroring": "Horizontal"
+ },
+ "32fa246f": {
+ "description": "Tag Team Pro Wrestling",
+ "mapper": "000",
+ "mirroring": "Horizontal"
+ },
+ "b3c30bea": {
+ "description": "Xevious (J)",
+ "mapper": "000",
+ "mirroring": "Horizontal"
+ },
+ "e492d45a": {
+ "description": "Zippy Race",
+ "mapper": "000",
+ "mirroring": "Horizontal"
+ },
+ "e28f2596": {
+ "description": "Pac Land (J)",
+ "mapper": "000",
+ "mirroring": "Vertical"
+ },
+ "d8ee7669": {
+ "description": "Adventures of Rad Gravity",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "5b837e8d": {
+ "description": "Alien Syndrome",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "37ba3261": {
+ "description": "Back to the Future 2 and 3",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "5b6ca654": {
+ "description": "Barbie rev X",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "61a852ea": {
+ "description": "Battle Stadium - Senbatsu Pro Yakyuu",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "f6fa4453": {
+ "description": "Bigfoot",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "391aa1b8": {
+ "description": "Bloody Warriors (J)",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "a5e8d2cd": {
+ "description": "Breakthru",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "3f56a392": {
+ "description": "Captain Ed (J)",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "078ced30": {
+ "description": "Choujin - Ultra Baseball",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "fe364be5": {
+ "description": "Deep Dungeon 4",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "57c12280": {
+ "description": "Demon Sword",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "d09b74dc": {
+ "description": "Great Tank (J)",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "e8baa782": {
+ "description": "Gun Hed (J)",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "970bd9c2": {
+ "description": "Hanjuku Hero",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "cd7a2fd7": {
+ "description": "Hanjuku Hero",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "63469396": {
+ "description": "Hokuto no Ken 4",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "e94d5181": {
+ "description": "Mirai Senshi - Lios",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "7156cb4d": {
+ "description": "Muppet Adventure Carnival thingy",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "70f67ab7": {
+ "description": "Musashi no Bouken",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "291bcd7d": {
+ "description": "Pachio Kun 2",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "a9a4ea4c": {
+ "description": "Satomi Hakkenden",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "cc3544b0": {
+ "description": "Triathron",
+ "mapper": "001",
+ "mirroring": "Horizontal"
+ },
+ "934db14a": {
+ "description": "All-Pro Basketball",
+ "mapper": "001"
+ },
+ "f74dfc91": {
+ "description": "Win,\tLose,\tor Draw",
+ "mapper": "001"
+ },
+ "9ea1dc76": {
+ "description": "Rainbow Islands",
+ "mapper": "002",
+ "mirroring": "Horizontal"
+ },
+ "6d65cac6": {
+ "description": "Terra Cresta",
+ "mapper": "002",
+ "mirroring": "Horizontal"
+ },
+ "e1b260da": {
+ "description": "Argos no Senshi",
+ "mapper": "002",
+ "mirroring": "Vertical"
+ },
+ "1d0f4d6b": {
+ "description": "Black Bass thinging",
+ "mapper": "002",
+ "mirroring": "Vertical"
+ },
+ "266ce198": {
+ "description": "City Adventure Touch",
+ "mapper": "002",
+ "mirroring": "Vertical"
+ },
+ "804f898a": {
+ "description": "Dragon Unit",
+ "mapper": "002",
+ "mirroring": "Vertical"
+ },
+ "55773880": {
+ "description": "Gilligan's Island",
+ "mapper": "002",
+ "mirroring": "Vertical"
+ },
+ "6e0eb43e": {
+ "description": "Puss n Boots",
+ "mapper": "002",
+ "mirroring": "Vertical"
+ },
+ "2bb6a0f8": {
+ "description": "Sherlock Holmes",
+ "mapper": "002",
+ "mirroring": "Vertical"
+ },
+ "28c11d24": {
+ "description": "Sukeban Deka",
+ "mapper": "002",
+ "mirroring": "Vertical"
+ },
+ "02863604": {
+ "description": "Sukeban Deka",
+ "mapper": "002",
+ "mirroring": "Vertical"
+ },
+ "419461d0": {
+ "description": "Super Cars",
+ "mapper": "002",
+ "mirroring": "Vertical"
+ },
+ "dbf90772": {
+ "description": "Alpha Mission",
+ "mapper": "003",
+ "mirroring": "Horizontal"
+ },
+ "d858033d": {
+ "description": "Armored Scrum Object",
+ "mapper": "003",
+ "mirroring": "Horizontal"
+ },
+ "9bde3267": {
+ "description": "Adventures of Dino Riki",
+ "mapper": "003",
+ "mirroring": "Vertical"
+ },
+ "d8eff0df": {
+ "description": "Gradius (J)",
+ "mapper": "003",
+ "mirroring": "Vertical"
+ },
+ "1d41cc8c": {
+ "description": "Gyruss",
+ "mapper": "003",
+ "mirroring": "Vertical"
+ },
+ "cf322bb3": {
+ "description": "John Elway's Quarterback",
+ "mapper": "003",
+ "mirroring": "Vertical"
+ },
+ "b5d28ea2": {
+ "description": "Mystery Quest - mapper 3?",
+ "mapper": "003",
+ "mirroring": "Vertical"
+ },
+ "02cc3973": {
+ "description": "Ninja Kid",
+ "mapper": "003",
+ "mirroring": "Vertical"
+ },
+ "bc065fc3": {
+ "description": "Pipe Dream",
+ "mapper": "003",
+ "mirroring": "Vertical"
+ },
+ "c9ee15a7": {
+ "description": "3 is probably best. 41 WILL NOT WORK.",
+ "mapper": "003"
+ },
+ "13e09d7a": {
+ "description": "Dragon Wars (U) (proto) - comes with erroneous 4-screen mirroring set",
+ "mapper": "004",
+ "mirroring": "Horizontal"
+ },
+ "22d6d5bd": {
+ "mapper": "004",
+ "mirroring": "Vertical"
+ },
+ "d97c31b0": {
+ "mapper": "004",
+ "mirroring": "Vertical"
+ },
+ "404b2e8b": {
+ "description": "Rad Racer 2",
+ "mapper": "004",
+ "mirroring": "FourScreenVram"
+ },
+ "15141401": {
+ "description": "Asmik Kun Land",
+ "mapper": "004",
+ "mirroring": "Horizontal"
+ },
+ "4cccd878": {
+ "description": "Cat Ninden Teyandee",
+ "mapper": "004",
+ "mirroring": "Horizontal"
+ },
+ "59280bec": {
+ "description": "Jackie Chan",
+ "mapper": "004",
+ "mirroring": "Horizontal"
+ },
+ "7474ac92": {
+ "description": "Kabuki: Quantum Fighter",
+ "mapper": "004",
+ "mirroring": "Horizontal"
+ },
+ "5337f73c": {
+ "description": "Niji no Silk Road",
+ "mapper": "004",
+ "mirroring": "Horizontal"
+ },
+ "9eefb4b4": {
+ "description": "Pachi Slot Adventure 2",
+ "mapper": "004",
+ "mirroring": "Horizontal"
+ },
+ "21a653c7": {
+ "description": "Super Sky Kid",
+ "mapper": "004"
+ },
+ "9cbadc25": {
+ "description": "JustBreed",
+ "mapper": "005",
+ "mirroring": "Horizontal"
+ },
+ "f518dd58": {
+ "description": "Captain Skyhawk",
+ "mapper": "007",
+ "mirroring": "Horizontal"
+ },
+ "84382231": {
+ "description": "Punch Out (J)",
+ "mapper": "009",
+ "mirroring": "Horizontal"
+ },
+ "be939fce": {
+ "description": "Punchout",
+ "mapper": "009",
+ "mirroring": "Vertical"
+ },
+ "345d3a1a": {
+ "description": "Castle of Deceit",
+ "mapper": "011",
+ "mirroring": "Vertical"
+ },
+ "5e66eaea": {
+ "description": "Videomation",
+ "mapper": "013",
+ "mirroring": "Vertical"
+ },
+ "cd373baa": {
+ "description": "Samurai Spirits (Rex Soft)",
+ "mapper": "014"
+ },
+ "bfc7a2e9": {
+ "mapper": "016",
+ "mirroring": "Horizontal"
+ },
+ "6e68e31a": {
+ "description": "Dragon Ball 3",
+ "mapper": "016",
+ "mirroring": "Horizontal"
+ },
+ "33b899c9": {
+ "description": "Dragon Ball - Dai Maou Fukkatsu (J) [!]",
+ "mapper": "016"
+ },
+ "a262a81f": {
+ "description": "Rokudenashi Blues (J)",
+ "mapper": "016"
+ },
+ "e4a291ce": {
+ "description": "World Hero (Unl) [!]",
+ "mapper": "023"
+ },
+ "51e9cd33": {
+ "description": "World Hero (Unl) [b1]",
+ "mapper": "023"
+ },
+ "105dd586": {
+ "description": "Mi Hun Che variations...",
+ "mapper": "027"
+ },
+ "bc9bb6c1": {
+ "description": "--",
+ "mapper": "027"
+ },
+ "43753886": {
+ "description": "--",
+ "mapper": "027"
+ },
+ "5b3de3d1": {
+ "description": "--",
+ "mapper": "027"
+ },
+ "511e73f8": {
+ "description": "--",
+ "mapper": "027"
+ },
+ "5555fca3": {
+ "mapper": "032",
+ "mirroring": "Horizontal"
+ },
+ "283ad224": {
+ "description": "Ai Sensei no Oshiete",
+ "mapper": "032",
+ "mirroring": "Horizontal"
+ },
+ "bc7b1d0f": {
+ "description": "Bakushou!! Jinsei Gekijou 2 (J) [!]",
+ "mapper": "033"
+ },
+ "c2730c30": {
+ "description": "Deadly Towers",
+ "mapper": "034",
+ "mirroring": "Horizontal"
+ },
+ "4c7c1af3": {
+ "description": "Caesar's Palace",
+ "mapper": "034",
+ "mirroring": "Vertical"
+ },
+ "932ff06e": {
+ "description": "Classic Concentration",
+ "mapper": "034",
+ "mirroring": "Vertical"
+ },
+ "f46ef39a": {
+ "description": "Super Mario Bros. + Tetris + Nintendo World Cup (E) [!]",
+ "mapper": "037"
+ },
+ "7ccb12a3": {
+ "description": "SMB2j",
+ "mapper": "043"
+ },
+ "6c71feae": {
+ "description": "Kunio 8-in-1",
+ "mapper": "045"
+ },
+ "e2c94bc2": {
+ "description": "Super Bros 8 (Unl) [!]",
+ "mapper": "048"
+ },
+ "aebd6549": {
+ "description": "Bakushou!! Jinsei Gekijou 3",
+ "mapper": "048",
+ "mirroring": "Horizontal"
+ },
+ "6cdc0cd9": {
+ "description": "Bubble Bobble 2",
+ "mapper": "048",
+ "mirroring": "Horizontal"
+ },
+ "99c395f9": {
+ "description": "Captain Saver",
+ "mapper": "048",
+ "mirroring": "Horizontal"
+ },
+ "a7b0536c": {
+ "description": "Don Doko Don 2",
+ "mapper": "048",
+ "mirroring": "Horizontal"
+ },
+ "40c0ad47": {
+ "description": "Flintstones 2",
+ "mapper": "048",
+ "mirroring": "Horizontal"
+ },
+ "1500e835": {
+ "description": "Jetsons (J)",
+ "mapper": "048",
+ "mirroring": "Horizontal"
+ },
+ "b19a55dd": {
+ "description": "Road Runner",
+ "mapper": "064",
+ "mirroring": "Horizontal"
+ },
+ "f92be3ec": {
+ "description": "Rolling Thunder",
+ "mapper": "064"
+ },
+ "e84274c5": {
+ "mapper": "066",
+ "mirroring": "Vertical"
+ },
+ "bde3ae9b": {
+ "description": "Doraemon",
+ "mapper": "066",
+ "mirroring": "Vertical"
+ },
+ "9552e8df": {
+ "description": "Dragon Ball",
+ "mapper": "066",
+ "mirroring": "Vertical"
+ },
+ "811f06d9": {
+ "description": "Dragon Power",
+ "mapper": "066",
+ "mirroring": "Vertical"
+ },
+ "d26efd78": {
+ "description": "SMB Duck Hunt",
+ "mapper": "066",
+ "mirroring": "Vertical"
+ },
+ "dd8ed0f7": {
+ "description": "Kamen Rider Club",
+ "mapper": "070",
+ "mirroring": "Vertical"
+ },
+ "bba58be5": {
+ "description": "Family Trainer - Manhattan Police",
+ "mapper": "070"
+ },
+ "370ceb65": {
+ "description": "Family Trainer - Meiro Dai Sakusen",
+ "mapper": "070"
+ },
+ "ac7b0742": {
+ "description": "Golden KTV (Ch) [!], not actually 71, but UNROM without BUS conflict",
+ "mapper": "071"
+ },
+ "054bd3e9": {
+ "description": "Di 4 Ci - Ji Qi Ren Dai Zhan (As)",
+ "mapper": "074"
+ },
+ "496ac8f7": {
+ "description": "Ji Jia Zhan Shi (As)",
+ "mapper": "074"
+ },
+ "ae854cef": {
+ "description": "Jia A Fung Yun (Chinese)",
+ "mapper": "074"
+ },
+ "3d1c3137": {
+ "description": "Uchuusen - Cosmo Carrier",
+ "mapper": "078",
+ "mirroring": "Horizontal"
+ },
+ "a4fbb438": {
+ "mapper": "079",
+ "mirroring": "Horizontal"
+ },
+ "d4a76b07": {
+ "description": "F-15 City Wars",
+ "mapper": "079",
+ "mirroring": "Horizontal"
+ },
+ "1eb4a920": {
+ "description": "Double Strike",
+ "mapper": "079",
+ "mirroring": "Vertical"
+ },
+ "3e1271d5": {
+ "description": "Tiles of Fate",
+ "mapper": "079",
+ "mirroring": "Vertical"
+ },
+ "d2699893": {
+ "description": "Dragon Spirit",
+ "mapper": "088",
+ "mirroring": "Horizontal"
+ },
+ "bb7c5f7a": {
+ "description": "Mito Koumon or something similar",
+ "mapper": "089",
+ "mirroring": "Horizontal"
+ },
+ "0da5e32e": {
+ "description": "new Uruusey Yatsura",
+ "mapper": "101"
+ },
+ "8eab381c": {
+ "description": "Death Bots",
+ "mapper": "113",
+ "mirroring": "Vertical"
+ },
+ "6a03d3f3": {
+ "mapper": "114"
+ },
+ "0d98db53": {
+ "description": "Pocahontas",
+ "mapper": "114"
+ },
+ "4e7729ff": {
+ "description": "Super Donkey Kong",
+ "mapper": "114"
+ },
+ "c5e5c5b2": {
+ "description": "Bao Qing Tian (As).nes",
+ "mapper": "115"
+ },
+ "a1dc16c0": {
+ "mapper": "116"
+ },
+ "e40dfb7e": {
+ "description": "Somari (P conf.)",
+ "mapper": "116"
+ },
+ "c9371ebb": {
+ "description": "Somari (W conf.)",
+ "mapper": "116"
+ },
+ "cbf4366f": {
+ "description": "Alien Syndrome (U.S. unlicensed)",
+ "mapper": "118",
+ "mirroring": "Horizontal"
+ },
+ "90c773c1": {
+ "description": "Goal! 2",
+ "mapper": "118"
+ },
+ "b9b4d9e0": {
+ "description": "NES Play Action Football",
+ "mapper": "118"
+ },
+ "07d92c31": {
+ "description": "RPG Jinsei Game",
+ "mapper": "118"
+ },
+ "37b62d04": {
+ "description": "Ys 3",
+ "mapper": "118"
+ },
+ "318e5502": {
+ "description": "Sonic 3D Blast 6 (Unl)",
+ "mapper": "121"
+ },
+ "ddcfb058": {
+ "description": "Street Fighter Zero 2 '97 (Unl) [!]",
+ "mapper": "121"
+ },
+ "5aefbc94": {
+ "description": "Jovial Race (Sachen) [a1][!]",
+ "mapper": "133"
+ },
+ "c2df0a00": {
+ "description": "Bio Senshi Dan(hacked)",
+ "mapper": "140",
+ "mirroring": "Vertical"
+ },
+ "e46b1c5d": {
+ "description": "Mississippi Satsujin Jiken",
+ "mapper": "140",
+ "mirroring": "Vertical"
+ },
+ "3293afea": {
+ "description": "Mississippi Satsujin Jiken",
+ "mapper": "140",
+ "mirroring": "Vertical"
+ },
+ "6bc65d7e": {
+ "description": "Youkai Club",
+ "mapper": "140",
+ "mirroring": "Vertical"
+ },
+ "5caa3e61": {
+ "description": "Death Race",
+ "mapper": "144",
+ "mirroring": "Vertical"
+ },
+ "48239b42": {
+ "description": "Mahjong Companion (Sachen) [!]",
+ "mapper": "146"
+ },
+ "b6a727fa": {
+ "description": "Papillion (As) [!]",
+ "mapper": "146"
+ },
+ "a62b79e1": {
+ "description": "Side Winder (HES) [!]",
+ "mapper": "146"
+ },
+ "cc868d4e": {
+ "description": "16 Mahjong [p1][!]",
+ "mapper": "149"
+ },
+ "29582ca1": {
+ "mapper": "150"
+ },
+ "40dbf7a2": {
+ "mapper": "150"
+ },
+ "73fb55ac": {
+ "description": "2-in-1 Cosmo Cop + Cyber Monster (Sachen) [!]",
+ "mapper": "150"
+ },
+ "ddcbda16": {
+ "description": "2-in-1 Tough Cop + Super Tough Cop (Sachen) [!]",
+ "mapper": "150"
+ },
+ "47918d84": {
+ "description": "auto-upturn",
+ "mapper": "150"
+ },
+ "0f141525": {
+ "description": "Arkanoid 2 (Japanese)",
+ "mapper": "152",
+ "mirroring": "Horizontal"
+ },
+ "bda8f8e4": {
+ "description": "Gegege no Kitarou 2",
+ "mapper": "152",
+ "mirroring": "Horizontal"
+ },
+ "b1a94b82": {
+ "description": "Pocket Zaurus",
+ "mapper": "152",
+ "mirroring": "Horizontal"
+ },
+ "026c5fca": {
+ "description": "Saint Seiya Ougon Densetsu",
+ "mapper": "152",
+ "mirroring": "Horizontal"
+ },
+ "3f15d20d": {
+ "description": "Famicom Jump 2",
+ "mapper": "153",
+ "mirroring": "Horizontal"
+ },
+ "d1691028": {
+ "description": "Devil Man",
+ "mapper": "154",
+ "mirroring": "Horizontal"
+ },
+ "cfd4a281": {
+ "description": "Money Game. Yay for money!",
+ "mapper": "155",
+ "mirroring": "Horizontal"
+ },
+ "2f27cdef": {
+ "description": "Tatakae!! Rahmen Man",
+ "mapper": "155",
+ "mirroring": "Horizontal"
+ },
+ "ccc03440": {
+ "mapper": "156"
+ },
+ "983d8175": {
+ "description": "Datach Battle Rush",
+ "mapper": "157",
+ "mirroring": "Horizontal"
+ },
+ "894efdbc": {
+ "description": "Datach Crayon Shin Chan",
+ "mapper": "157",
+ "mirroring": "Horizontal"
+ },
+ "19e81461": {
+ "description": "Datach DBZ",
+ "mapper": "157",
+ "mirroring": "Horizontal"
+ },
+ "be06853f": {
+ "description": "Datach J-League",
+ "mapper": "157",
+ "mirroring": "Horizontal"
+ },
+ "0be0a328": {
+ "description": "Datach SD Gundam Wars",
+ "mapper": "157",
+ "mirroring": "Horizontal"
+ },
+ "5b457641": {
+ "description": "Datach Ultraman Club",
+ "mapper": "157",
+ "mirroring": "Horizontal"
+ },
+ "f51a7f46": {
+ "description": "Datach Yuu Yuu Hakusho",
+ "mapper": "157",
+ "mirroring": "Horizontal"
+ },
+ "e170404c": {
+ "description": "SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [!]",
+ "mapper": "159"
+ },
+ "276ac722": {
+ "description": "SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.1) [!]",
+ "mapper": "159"
+ },
+ "0cf42e69": {
+ "description": "Magical Taruruuto-kun - Fantastic World!! (J) (V1.0) [!]",
+ "mapper": "159"
+ },
+ "dcb972ce": {
+ "description": "Magical Taruruuto-kun - Fantastic World!! (J) (V1.1) [!]",
+ "mapper": "159"
+ },
+ "b7f28915": {
+ "description": "Magical Taruruuto-kun 2 - Mahou Daibouken (J)",
+ "mapper": "159"
+ },
+ "183859d2": {
+ "description": "Dragon Ball Z - Kyoushuu! Saiya Jin (J) [!]",
+ "mapper": "159"
+ },
+ "58152b42": {
+ "description": "Pipe 5 (Sachen)",
+ "mapper": "160",
+ "mirroring": "Vertical"
+ },
+ "1c098942": {
+ "description": "Xi You Ji Hou Zhuan (Ch)",
+ "mapper": "162"
+ },
+ "081caaff": {
+ "description": "Commandos (Ch)",
+ "mapper": "163"
+ },
+ "02c41438": {
+ "description": "Xing He Zhan Shi (C)",
+ "mapper": "176"
+ },
+ "558c0dc3": {
+ "description": "Super 2in1 (unl)[!] {mapper unsupported}",
+ "mapper": "178"
+ },
+ "c68363f6": {
+ "description": "Crazy Climber",
+ "mapper": "180",
+ "mirroring": "Horizontal"
+ },
+ "0f05ff0a": {
+ "description": "Seicross (redump)",
+ "mapper": "181"
+ },
+ "96ce586e": {
+ "description": "Street Fighter 2 YOKO",
+ "mapper": "189",
+ "mirroring": "Horizontal"
+ },
+ "555a555e": {
+ "mapper": "191"
+ },
+ "2cc381f6": {
+ "description": "Sugoro Quest - Dice no Senshitachi (As)",
+ "mapper": "191"
+ },
+ "a145fae6": {
+ "mapper": "192"
+ },
+ "a9115bc1": {
+ "mapper": "192"
+ },
+ "4c7bbb0e": {
+ "mapper": "192"
+ },
+ "98c1cd4b": {
+ "description": "Ying Lie Qun Xia Zhuan (Chinese)",
+ "mapper": "192"
+ },
+ "ee810d55": {
+ "description": "You Ling Xing Dong (Ch)",
+ "mapper": "192"
+ },
+ "442f1a29": {
+ "description": "Young chivalry",
+ "mapper": "192"
+ },
+ "637134e8": {
+ "description": "Fighting Hero",
+ "mapper": "193",
+ "mirroring": "Vertical"
+ },
+ "a925226c": {
+ "description": "Dai-2-Ji - Super Robot Taisen (As)",
+ "mapper": "194"
+ },
+ "7f3dbf1b": {
+ "mapper": "195",
+ "mirroring": "Horizontal"
+ },
+ "b616885c": {
+ "description": "CHaos WOrld (Ch)",
+ "mapper": "195",
+ "mirroring": "Horizontal"
+ },
+ "33c5df92": {
+ "mapper": "195"
+ },
+ "1bc0be6c": {
+ "description": "Captain Tsubasa Vol 2 - Super Striker (C)",
+ "mapper": "195"
+ },
+ "d5224fde": {
+ "description": "Crystalis (c)",
+ "mapper": "195"
+ },
+ "fdec419f": {
+ "description": "Street Fighter VI 16 Peoples (Unl) [!]",
+ "mapper": "196"
+ },
+ "700705f4": {
+ "mapper": "198"
+ },
+ "9a2cf02c": {
+ "mapper": "198"
+ },
+ "d8b401a7": {
+ "mapper": "198"
+ },
+ "28192599": {
+ "mapper": "198"
+ },
+ "19b9e732": {
+ "mapper": "198"
+ },
+ "dd431ba7": {
+ "description": "Tenchi wo kurau 2 (c)",
+ "mapper": "198"
+ },
+ "d871d3e6": {
+ "description": "Dragon Ball Z 2 - Gekishin Freeza! (C)",
+ "mapper": "199"
+ },
+ "ed481b7c": {
+ "description": "Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (C)",
+ "mapper": "199"
+ },
+ "44c20420": {
+ "description": "San Guo Zhi 2 (C)",
+ "mapper": "199"
+ },
+ "4e1c1e3c": {
+ "description": "Karnov",
+ "mapper": "206",
+ "mirroring": "Horizontal"
+ },
+ "276237b3": {
+ "description": "Karnov",
+ "mapper": "206",
+ "mirroring": "Horizontal"
+ },
+ "7678f1d5": {
+ "description": "Fudou Myouou Den",
+ "mapper": "207",
+ "mirroring": "Horizontal"
+ },
+ "07eb2c12": {
+ "description": "Street Fighter IV",
+ "mapper": "208"
+ },
+ "dd8ced31": {
+ "description": "Power Rangers 3",
+ "mapper": "209"
+ },
+ "063b1151": {
+ "description": "Power Rangers 4",
+ "mapper": "209"
+ },
+ "dd4d9a62": {
+ "description": "Shin Samurai Spirits 2",
+ "mapper": "209"
+ },
+ "0c47946d": {
+ "description": "Chibi Maruko Chan",
+ "mapper": "210",
+ "mirroring": "Vertical"
+ },
+ "c247cc80": {
+ "description": "Family Circuit '91",
+ "mapper": "210",
+ "mirroring": "Vertical"
+ },
+ "6ec51de5": {
+ "description": "Famista '92",
+ "mapper": "210",
+ "mirroring": "Vertical"
+ },
+ "adffd64f": {
+ "description": "Famista '93",
+ "mapper": "210",
+ "mirroring": "Vertical"
+ },
+ "429103c9": {
+ "description": "Famista '94",
+ "mapper": "210",
+ "mirroring": "Vertical"
+ },
+ "81b7f1a8": {
+ "description": "Heisei Tensai Bakabon",
+ "mapper": "210",
+ "mirroring": "Vertical"
+ },
+ "2447e03b": {
+ "description": "Top Striker",
+ "mapper": "210",
+ "mirroring": "Vertical"
+ },
+ "1dc0f740": {
+ "description": "Wagyan Land 2",
+ "mapper": "210",
+ "mirroring": "Vertical"
+ },
+ "d323b806": {
+ "description": "Wagyan Land 3",
+ "mapper": "210",
+ "mirroring": "Vertical"
+ },
+ "bd523011": {
+ "description": "Dream Master",
+ "mapper": "210",
+ "mirroring": "Horizontal"
+ },
+ "5daae69a": {
+ "description": "Aladdin - Return of Jaffar, The (Unl) [!]",
+ "mapper": "211"
+ },
+ "1ec1dfeb": {
+ "description": "255-in-1 (Cut version) [p1]",
+ "mapper": "217"
+ },
+ "046d70cc": {
+ "description": "500-in-1 (Anim Splash, Alt Mapper)[p1][!]",
+ "mapper": "217"
+ },
+ "12f86a4d": {
+ "description": "500-in-1 (Static Splash, Alt Mapper)[p1][!]",
+ "mapper": "217"
+ },
+ "d09f778d": {
+ "description": "9999999-in-1 (Static Splash, Alt Mapper)[p1][!]",
+ "mapper": "217"
+ },
+ "62ef6c79": {
+ "description": "Quattro Sports -Aladdin",
+ "mapper": "232",
+ "mirroring": "Horizontal"
+ },
+ "2705eaeb": {
+ "description": "Maxi 15",
+ "mapper": "234"
+ },
+ "6f12afc5": {
+ "description": "Golden Game 150-in-1",
+ "mapper": "235"
+ },
+ "fb2b6b10": {
+ "description": "Fan Kong Jing Ying (Ch)",
+ "mapper": "241"
+ },
+ "b5e83c9a": {
+ "description": "Xing Ji Zheng Ba (Ch)",
+ "mapper": "241"
+ },
+ "2537b3e6": {
+ "description": "Dance Xtreme - Prima (Unl)",
+ "mapper": "241"
+ },
+ "11611e89": {
+ "description": "Darkseed (Unl) [p1]",
+ "mapper": "241"
+ },
+ "81a37827": {
+ "description": "Darkseed (Unl) [p1][b1]",
+ "mapper": "241"
+ },
+ "368c19a8": {
+ "description": "LIKO Study Cartridge 3-in-1 (Unl) [!]",
+ "mapper": "241"
+ },
+ "a21e675c": {
+ "description": "Mashou (J) [!]",
+ "mapper": "241"
+ },
+ "54d98b79": {
+ "description": "Titanic 1912 (Unl)",
+ "mapper": "241"
+ },
+ "6bea1235": {
+ "description": "MMC3 cart, but with nobanking applied to CHR-RAM, so let it be there",
+ "mapper": "245"
+ },
+ "345ee51a": {
+ "description": "DQ4c",
+ "mapper": "245"
+ },
+ "57514c6c": {
+ "description": "Yong Zhe Dou E Long - Dragon Quest VI (Ch)",
+ "mapper": "245"
+ },
+ "c04361e499748382": {
+ "description": "AD&D Heroes of the Lance",
+ "battery": true
+ },
+ "b72ee2337ced5792": {
+ "description": "AD&D Hillsfar",
+ "battery": true
+ },
+ "2b7103b7a27bd72f": {
+ "description": "AD&D Pool of Radiance",
+ "battery": true
+ },
+ "498c10dc463cfe95": {
+ "description": "Battle Fleet",
+ "battery": true
+ },
+ "854d7947a3177f57": {
+ "description": "Crystalis",
+ "battery": true
+ },
+ "fad22d265cd70820": {
+ "description": "Downtown Special: Kunio-kun no Jidaigeki Dayo Zenin Shuugou!",
+ "battery": true
+ },
+ "4a1f5336b86851b6": {
+ "description": "DW",
+ "battery": true
+ },
+ "b0bcc02c843c1b79": {
+ "description": "DW",
+ "battery": true
+ },
+ "2dcf3a98c7937c22": {
+ "description": "DW 2",
+ "battery": true
+ },
+ "98e55e09dfcc7533": {
+ "description": "DW 4",
+ "battery": true
+ },
+ "733026b6b72f2470": {
+ "description": "Dw 3",
+ "battery": true
+ },
+ "6917ffcaca2d8466": {
+ "description": "Famista '90",
+ "battery": true
+ },
+ "8da46db592a1fcf4": {
+ "description": "Faria",
+ "battery": true
+ },
+ "edba17a2c4608d20": {
+ "description": "Final Fantasy",
+ "battery": true
+ },
+ "91a6846d3202e3d6": {
+ "description": "Final Fantasy",
+ "battery": true
+ },
+ "012df596e2b31174": {
+ "description": "Final Fantasy 1+2",
+ "battery": true
+ },
+ "f6b359a720549ecd": {
+ "description": "Final Fantasy 2",
+ "battery": true
+ },
+ "5a30da1d9b4af35d": {
+ "description": "Final Fantasy 3",
+ "battery": true
+ },
+ "d63dcc68c2b20adc": {
+ "description": "Final Fantasy J",
+ "battery": true
+ },
+ "2ee3417ba8b69706": {
+ "description": "Hydlide 3",
+ "battery": true
+ },
+ "ebbce5a54cf3ecc0": {
+ "description": "Justbreed",
+ "battery": true
+ },
+ "6a858da551ba239e": {
+ "description": "Kaijuu Monogatari",
+ "battery": true
+ },
+ "2db8f5d16c10b925": {
+ "description": "Kyonshiizu 2",
+ "battery": true
+ },
+ "04a31647de80fdab": {
+ "description": "Legend of Zelda",
+ "battery": true
+ },
+ "94b9484862a26cba": {
+ "description": "Legend of Zelda",
+ "battery": true
+ },
+ "a40666740b7d22fe": {
+ "description": "Mindseeker",
+ "battery": true
+ },
+ "82000965f04a71bb": {
+ "description": "Mirai Shinwa Jarvas",
+ "battery": true
+ },
+ "77b811b2760104b9": {
+ "description": "Mouryou Senki Madara",
+ "battery": true
+ },
+ "11b69122efe86e8c": {
+ "description": "RPG Jinsei Game",
+ "battery": true
+ },
+ "9aa1dc16c05e7de5": {
+ "description": "Startropics",
+ "battery": true
+ },
+ "1b084107d0878bd0": {
+ "description": "Startropics 2",
+ "battery": true
+ },
+ "a70b495314f4d075": {
+ "description": "Ys 3",
+ "battery": true
+ },
+ "836c0ff4f3e06e45": {
+ "description": "Zelda 2",
+ "battery": true
}
} \ No newline at end of file