Merge pull request #345 from negativeExponent/update_bmcfk23c

m176: Minor tweak to chr mixed ram/rom logic check and others
This commit is contained in:
hizzlekizzle
2020-03-20 21:55:22 -05:00
committed by GitHub
5 changed files with 556 additions and 570 deletions

View File

@@ -19,6 +19,19 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
/* BMC-FK23C (no WRAM, no DIP switch)
* BMC-FK23CA (no WRAM, with DIP switch)
* BMC-Super24in1SC03 (functional duplicate of BMC-FK23C)
* WAIXING-FS005 (alternative name: Bensheng BS-001) (32 KiB battery-backed WRAM, 8 KiB of CHR-RAM, no DIP switch)
* WAIXING-FS006 (optional 8 KiB battery-backed WRAM, optional 8 KiB of CHR-RAM, no DIP switch)
* Three incompatible subtypes exist that do not correspond to these UNIF board names. No submappers have been proposed, as the subtypes can be easily discerned heuristically by looking at ROM sizes:
* Subtype 0, ROM size other than specified below: boot with Extended MMC3 mode disabled (boots in first 512 KiB of PRG-ROM regardless of ROM size)
* Subtype 1, 1024 KiB PRG-ROM, 1024 KiB CHR-ROM: boot with Extended MMC3 mode enabled (boots in last 512 KiB of the first 2 MiB of PRG-ROM)
* Subtype 2, 8192 or more KiB PRG-ROM, no CHR-ROM: Like Subtype 0, but MMC3 registers $46 and $47 swapped.
*/
/* 2020-3-14 - Refactoring based on latest sources */ /* 2020-3-14 - Refactoring based on latest sources */
/* TODO: Add database for ines 1.0 headers */ /* TODO: Add database for ines 1.0 headers */
@@ -41,43 +54,43 @@ static uint8 irq_enabled = 0;
static uint8 irq_reload = 0; static uint8 irq_reload = 0;
static uint8 cnrom_chr = 0; static uint8 cnrom_chr = 0;
static uint8 dipswitch = 0; static uint8 dipswitch = 0;
static uint8 subType = 0;
static uint8 is_bmcfk23ca = 0; static uint8 is_bmcfk23ca = 0;
static uint8 subtype = 0;
static SFORMAT StateRegs[] = { static SFORMAT StateRegs[] = {
{ fk23_regs, 4, "EXPR" }, { fk23_regs, 4, "EXPR" },
{ mmc3_regs, 12, "M3RG" }, { mmc3_regs, 12, "M3RG" },
{ &cnrom_chr, 1, "CCHR" }, { &cnrom_chr, 1, "CCHR" },
{ &dipswitch, 1, "DPSW" }, { &dipswitch, 1, "DPSW" },
{ &mmc3_ctrl, 1, "M3CT" }, { &mmc3_ctrl, 1, "M3CT" },
{ &mmc3_mirr, 1, "M3MR" }, { &mmc3_mirr, 1, "M3MR" },
{ &mmc3_wram, 1, "M3WR" }, { &mmc3_wram, 1, "M3WR" },
{ &irq_reload, 1, "IRQR" }, { &irq_reload, 1, "IRQR" },
{ &irq_count, 1, "IRQC" }, { &irq_count, 1, "IRQC" },
{ &irq_latch, 1, "IRQL" }, { &irq_latch, 1, "IRQL" },
{ &irq_enabled, 1, "IRQA" }, { &irq_enabled, 1, "IRQA" },
{ &subType, 1, "SUBT" },
{ 0 } { 0 }
}; };
#define INVERT_PRG (mmc3_ctrl & 0x40) #define INVERT_PRG (mmc3_ctrl & 0x40)
#define INVERT_CHR (mmc3_ctrl & 0x80) #define INVERT_CHR (mmc3_ctrl & 0x80)
#define WRAM_ENABLED (mmc3_wram & 0x80) #define WRAM_ENABLED (mmc3_wram & 0x80)
#define WRAM_EXTENDED (mmc3_wram & 0x20) #define WRAM_EXTENDED (mmc3_wram & 0x20)
#define FK23_ENABLED (mmc3_wram & 0x40) #define FK23_ENABLED (mmc3_wram & 0x40)
#define MMC3_EXTENDED (fk23_regs[3] & 0x02) #define MMC3_EXTENDED (fk23_regs[3] & 0x02)
#define CHR_CNROM_MODE (fk23_regs[0] & 0x40) #define CHR_CNROM_MODE (fk23_regs[0] & 0x40)
#define CHR_OUTER_BANK_SIZE (fk23_regs[0] & 0x10) #define CHR_OUTER_BANK_SIZE (fk23_regs[0] & 0x10)
static void cwrap(uint16 A, uint16 V) static void cwrap(uint16 A, uint16 V)
{ {
/* some workaround for chr rom / ram access */ /* some workaround for chr rom / ram access */
if (!UNIFchrrama && !CHRRAMSIZE) if (!UNIFchrrama && !CHRRAMSIZE)
fk23_regs[0] &= ~0x20; /* chr rom with no chr ram always write to bank 0 */ fk23_regs[0] &= ~0x20; /* chr rom with no chr ram always write to bank 0 */
if (UNIFchrrama) else if (UNIFchrrama && WRAM_EXTENDED && (mmc3_wram & 0x04))
fk23_regs[0] &= ~0x20; /* no chr rom, then chr ram is in bank 0 through UNIFchrrama */
if (UNIFchrrama && WRAM_EXTENDED && (mmc3_wram & 0x04))
fk23_regs[0] &= ~0x20; fk23_regs[0] &= ~0x20;
else if (UNIFchrrama)
fk23_regs[0] &= ~0x20; /* no chr rom, then chr ram is in bank 0 through UNIFchrrama */
setchr1r((fk23_regs[0] & 0x20) >> 1, A, V); setchr1r((fk23_regs[0] & 0x20) >> 1, A, V);
} }
@@ -86,8 +99,8 @@ static void SyncCHR(void)
{ {
if (CHR_CNROM_MODE) if (CHR_CNROM_MODE)
{ {
uint8 mask = (fk23_regs[3] & 0x46) ? (CHR_OUTER_BANK_SIZE ? 0x01 : 0x03) : 0; uint8 mask = (fk23_regs[3] & 0x46) ? (CHR_OUTER_BANK_SIZE ? 0x01 : 0x03) : 0;
uint16 bank = (fk23_regs[2] | (cnrom_chr & mask)) << 3; uint16 bank = (fk23_regs[2] | (cnrom_chr & mask)) << 3;
cwrap(0x0000, bank); cwrap(0x0000, bank);
cwrap(0x0400, bank + 1); cwrap(0x0400, bank + 1);
@@ -101,11 +114,10 @@ static void SyncCHR(void)
} }
else else
{ {
uint16 cbase = INVERT_CHR ? 0x1000 : 0;
if (MMC3_EXTENDED) if (MMC3_EXTENDED)
{ {
uint16 outer = fk23_regs[2] << 3; uint16 cbase = INVERT_CHR ? 0x1000 : 0;
uint16 outer = fk23_regs[2] << 3;
cwrap(cbase ^ 0x0000, mmc3_regs[0] | outer); cwrap(cbase ^ 0x0000, mmc3_regs[0] | outer);
cwrap(cbase ^ 0x0400, mmc3_regs[10] | outer); cwrap(cbase ^ 0x0400, mmc3_regs[10] | outer);
@@ -119,8 +131,9 @@ static void SyncCHR(void)
} }
else else
{ {
uint8 mask = CHR_OUTER_BANK_SIZE ? 0x7F : 0xFF; uint16 cbase = INVERT_CHR ? 0x1000 : 0;
uint16 outer = (fk23_regs[2] << 3) & ~mask; uint8 mask = CHR_OUTER_BANK_SIZE ? 0x7F : 0xFF;
uint16 outer = (fk23_regs[2] << 3) & ~mask;
cwrap(cbase ^ 0x0000, ((mmc3_regs[0] & 0xFE) & mask) | outer); cwrap(cbase ^ 0x0000, ((mmc3_regs[0] & 0xFE) & mask) | outer);
cwrap(cbase ^ 0x0400, ((mmc3_regs[0] | 0x01) & mask) | outer); cwrap(cbase ^ 0x0400, ((mmc3_regs[0] | 0x01) & mask) | outer);
@@ -137,8 +150,8 @@ static void SyncCHR(void)
static void SyncPRG(void) static void SyncPRG(void)
{ {
uint8 prg_mode = fk23_regs[0] & 7; uint8 prg_mode = fk23_regs[0] & 7;
uint16 prg_base = (fk23_regs[1] & 0x07F) | ((fk23_regs[0] << 4) & 0x080) | uint16 prg_base = (fk23_regs[1] & 0x07F) | ((fk23_regs[0] << 4) & 0x080) |
((fk23_regs[0] << 1) & 0x100) | ((fk23_regs[2] << 3) & 0x600) | ((fk23_regs[0] << 1) & 0x100) | ((fk23_regs[2] << 3) & 0x600) |
((fk23_regs[2] << 6) & 0x800); ((fk23_regs[2] << 6) & 0x800);
@@ -156,19 +169,19 @@ static void SyncPRG(void)
case 2: case 2:
if (MMC3_EXTENDED) if (MMC3_EXTENDED)
{ {
uint16 cbase = INVERT_PRG ? 0x4000 : 0; uint16 cbase = INVERT_PRG ? 0x4000 : 0;
uint16 outer = prg_base << 1; uint16 outer = prg_base << 1;
setprg8(0x8000 ^ cbase, mmc3_regs[6] | outer); setprg8(0x8000 ^ cbase, mmc3_regs[6] | outer);
setprg8(0xA000, mmc3_regs[7] | outer); setprg8(0xA000, mmc3_regs[7] | outer);
setprg8(0xC000 ^ cbase, mmc3_regs[8] | outer); setprg8(0xC000 ^ cbase, mmc3_regs[8] | outer);
setprg8(0xE000, mmc3_regs[9] | outer); setprg8(0xE000, mmc3_regs[9] | outer);
} }
else else
{ {
uint8 mask = 0x3F >> prg_mode; uint16 cbase = INVERT_PRG ? 0x4000 : 0;
uint16 outer = (prg_base << 1) & ~mask; uint8 mask = 0x3F >> prg_mode;
uint16 cbase = INVERT_PRG ? 0x4000 : 0; uint16 outer = (prg_base << 1) & ~mask;
setprg8(0x8000 ^ cbase, (mmc3_regs[6] & mask) | outer); setprg8(0x8000 ^ cbase, (mmc3_regs[6] & mask) | outer);
setprg8(0xA000, (mmc3_regs[7] & mask) | outer); setprg8(0xA000, (mmc3_regs[7] & mask) | outer);
@@ -218,10 +231,41 @@ static DECLFW(WriteLo)
{ {
if (((WRAM_EXTENDED == 0) || FK23_ENABLED) && (A & (0x10 << dipswitch))) if (((WRAM_EXTENDED == 0) || FK23_ENABLED) && (A & (0x10 << dipswitch)))
{ {
fk23_regs[A & 3] = V; switch (A & 3)
cnrom_chr = 0; {
SyncPRG(); case 0:
SyncCHR(); if (fk23_regs[0] != V)
{
fk23_regs[0] = V;
SyncPRG();
SyncCHR();
}
break;
case 1:
if (fk23_regs[1] != V)
{
fk23_regs[1] = V;
SyncPRG();
}
break;
case 2:
cnrom_chr = 0;
if (fk23_regs[2] != V)
{
fk23_regs[2] = V;
SyncPRG();
SyncCHR();
}
break;
case 3:
if (fk23_regs[3] != V)
{
fk23_regs[3] = V;
SyncPRG();
SyncCHR();
}
break;
}
} }
else else
/* FK23C Registers disabled, $5000-$5FFF maps to the second 4 KiB of the 8 KiB WRAM bank 2 */ /* FK23C Registers disabled, $5000-$5FFF maps to the second 4 KiB of the 8 KiB WRAM bank 2 */
@@ -258,7 +302,7 @@ static DECLFW(WriteHi)
/* Subtype 2, 8192 or more KiB PRG-ROM, no CHR-ROM: Like Subtype 0, /* Subtype 2, 8192 or more KiB PRG-ROM, no CHR-ROM: Like Subtype 0,
* but MMC3 registers $46 and $47 swapped. */ * but MMC3 registers $46 and $47 swapped. */
if (UNIFchrrama && ((ROM_size << 4) > 8192)) if (subType == 2)
{ {
if (V == 0x46) if (V == 0x46)
V = 0x47; V = 0x47;
@@ -355,7 +399,7 @@ static void Reset(void)
mmc3_wram = 0x80; mmc3_wram = 0x80;
mmc3_ctrl = mmc3_mirr = irq_count = irq_latch = irq_enabled = 0; mmc3_ctrl = mmc3_mirr = irq_count = irq_latch = irq_enabled = 0;
if (subtype == 1) if (subType == 1)
fk23_regs[1] = 0x20; fk23_regs[1] = 0x20;
Sync(); Sync();
@@ -379,7 +423,7 @@ static void Power(void)
mmc3_wram = 0x80; mmc3_wram = 0x80;
mmc3_ctrl = mmc3_mirr = irq_count = irq_latch = irq_enabled = 0; mmc3_ctrl = mmc3_mirr = irq_count = irq_latch = irq_enabled = 0;
if (subtype == 1) if (subType == 1)
fk23_regs[1] = 0x20; fk23_regs[1] = 0x20;
Sync(); Sync();
@@ -407,44 +451,22 @@ static void Close(void)
CHRRAM = NULL; CHRRAM = NULL;
} }
static void StateRestore(void) static void StateRestore(int version)
{ {
Sync(); Sync();
} }
void BMCFK23C_Init(CartInfo *info) void GenBMCFK23C_Init(CartInfo *info)
{ {
is_bmcfk23ca = 0; is_bmcfk23ca = 0;
info->Power = Power; info->Power = Power;
info->Reset = Reset; info->Reset = Reset;
info->Close = Close; info->Close = Close;
GameHBIRQHook = IRQHook; GameHBIRQHook = IRQHook;
GameStateRestore = StateRestore; GameStateRestore = StateRestore;
AddExState(StateRegs, ~0, 0, 0); AddExState(StateRegs, ~0, 0, 0);
if (((ROM_size << 4) == 1024) && ((VROM_size << 3) == 1024))
subtype = 1;
if (info->iNES2)
{
if (!UNIFchrrama)
CHRRAMSIZE = info->CHRRamSize + info->CHRRamSaveSize;
WRAMSIZE = info->PRGRamSize + info->PRGRamSaveSize;
}
else
{
if (!UNIFchrrama)
{
/* Rockman I - VI */
if (ROM_size == 128 && VROM_size == 64)
CHRRAMSIZE = 8 * 1024;
}
/* For compatibility with waixing games, set wram to 32K */
WRAMSIZE = 32 * 1024;
}
if (CHRRAMSIZE) if (CHRRAMSIZE)
{ {
CHRRAM = (uint8 *)FCEU_gmalloc(CHRRAMSIZE); CHRRAM = (uint8 *)FCEU_gmalloc(CHRRAMSIZE);
@@ -464,10 +486,70 @@ void BMCFK23C_Init(CartInfo *info)
info->SaveGameLen[0] = info->PRGRamSaveSize ? info->PRGRamSaveSize : WRAMSIZE; info->SaveGameLen[0] = info->PRGRamSaveSize ? info->PRGRamSaveSize : WRAMSIZE;
} }
} }
subType = 0;
if (((ROM_size * 16) == 1024) && ((VROM_size * 8) == 1024))
subType = 1;
else if (UNIFchrrama && ((ROM_size << 4) >= 8192))
subType = 2;
} }
/* generic entry point for mapper 176 / bmcfk23c carts */
void BMCFK23C_Init(CartInfo *info) {
/* prepare ROM params before loading... */
if (info->iNES2)
{
if (!UNIFchrrama)
CHRRAMSIZE = info->CHRRamSize + info->CHRRamSaveSize;
WRAMSIZE = info->PRGRamSize + info->PRGRamSaveSize;
}
else
{
if (!UNIFchrrama)
{
/* Rockman I - VI uses mixed chr rom/ram */
if ((ROM_size * 16) == 2048 && (VROM_size * 8) == 512)
CHRRAMSIZE = 8 * 1024;
}
/* Only waixing boards has battery backed wram, so only declare
* size when battery is set */
if (info->battery)
WRAMSIZE = 32 * 1024;
}
GenBMCFK23C_Init(info);
}
/* UNIF Boards, declares so we can for chr mixed mode size and wram if any */
void BMCFK23CA_Init(CartInfo *info) void BMCFK23CA_Init(CartInfo *info)
{ {
BMCFK23C_Init(info); /* can use mixed chr rom/ram */
if (!UNIFchrrama)
CHRRAMSIZE = 8 * 1024;
GenBMCFK23C_Init(info);
is_bmcfk23ca = 1; is_bmcfk23ca = 1;
} }
/* BMC-Super24in1SC03 */
void Super24_Init(CartInfo *info) {
/* can use mixed chr rom/ram */
if (!UNIFchrrama)
CHRRAMSIZE = 8 * 1024;
GenBMCFK23C_Init(info);
}
void WAIXINGFS005_Init(CartInfo *info)
{
/* can have 8 or 32 KB battery-backed prg ram
* plus 8 KB chr for these boards */
if (!UNIFchrrama)
CHRRAMSIZE = 8 * 1024;
WRAMSIZE = 32 * 1024;
GenBMCFK23C_Init(info);
}

View File

@@ -1,96 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/* BMC-Super24in1SC03, basically is just a duplicate of BMC-FK23C (mapper 176)
* This should be merge with the said mapper soon... */
#include "mapinc.h"
#include "mmc3.h"
static uint8 *CHRRAM = NULL;
static const int masko8[8] = { 63, 31, 15, 1, 3, 0, 0, 0 };
static void Super24PW(uint32 A, uint8 V) {
setprg8(A, (EXPREGS[1] << 1) | (V & masko8[EXPREGS[0] & 0x7]));
}
static void Super24CW(uint32 A, uint8 V) {
setchr1r((EXPREGS[0] & 0x20) >> 1, A, (EXPREGS[2] << 3) | V);
}
static DECLFW(Super24Write) {
switch (A & 0xF003) {
case 0x5000:
if (EXPREGS[0] != V) {
EXPREGS[0] = V;
FixMMC3PRG(MMC3_cmd);
FixMMC3CHR(MMC3_cmd);
}
break;
case 0x5001:
if (EXPREGS[1] != V) {
EXPREGS[1] = V;
FixMMC3PRG(MMC3_cmd);
}
break;
case 0x5002:
if (EXPREGS[2] != V) {
EXPREGS[2] = V;
FixMMC3CHR(MMC3_cmd);
}
break;
}
}
static void Super24Power(void) {
EXPREGS[0] = 0x24;
EXPREGS[1] = 0x9F;
EXPREGS[2] = 0;
GenMMC3Power();
SetWriteHandler(0x5000, 0x7FFF, Super24Write);
SetReadHandler(0x8000, 0xFFFF, CartBR);
}
static void Super24Reset(void) {
EXPREGS[0] = 0x24;
EXPREGS[1] = 0x9F;
EXPREGS[2] = 0;
MMC3RegReset();
}
static void Super24Close(void) {
GenMMC3Close();
if (CHRRAM)
FCEU_gfree(CHRRAM);
CHRRAM = NULL;
}
void Super24_Init(CartInfo *info) {
GenMMC3_Init(info, 512, 512, 0, 0);
info->Power = Super24Power;
info->Reset = Super24Reset;
info->Close = Super24Close;
cwrap = Super24CW;
pwrap = Super24PW;
CHRRAM = (uint8*)FCEU_gmalloc(8192);
SetupCartCHRMapping(0x10, CHRRAM, 8192, 1);
AddExState(CHRRAM, 8192, 0, "CHRR");
AddExState(EXPREGS, 3, 0, "BIG2");
}

View File

@@ -1,415 +1,414 @@
#ifndef _FCEU_INES_CORRECT_H #ifndef _FCEU_INES_CORRECT_H
#define _FCEU_INES_CORRECT_H #define _FCEU_INES_CORRECT_H
{0xaf5d7aa2, -1, 0}, /* Clu Clu Land */ { 0xaf5d7aa2, -1, 0 }, /* Clu Clu Land */
{0xcfb224e6, -1, 1}, /* Dragon Ninja (J) [p1][!].nes */ { 0xcfb224e6, -1, 1 }, /* Dragon Ninja (J) [p1][!].nes */
{0x82f204ae, -1, 1}, /* Liang Shan Ying Xiong (NJ023) (Ch) [!] */ { 0x82f204ae, -1, 1 }, /* Liang Shan Ying Xiong (NJ023) (Ch) [!] */
{0x684afccd, -1, 1}, /* Space Hunter (J) */ { 0x684afccd, -1, 1 }, /* Space Hunter (J) */
{0xad9c63e2, -1, 1}, /* Space Shadow (J) */ { 0xad9c63e2, -1, 1 }, /* Space Shadow (J) */
{0xe1526228, -1, 1}, /* Quest of Ki */ { 0xe1526228, -1, 1 }, /* Quest of Ki */
{0xaf5d7aa2, -1, 0}, /* Clu Clu Land */ { 0xaf5d7aa2, -1, 0 }, /* Clu Clu Land */
{0xcfb224e6, -1, 1}, /* Dragon Ninja (J) [p1][!].nes */ { 0xcfb224e6, -1, 1 }, /* Dragon Ninja (J) [p1][!].nes */
{0xfcdaca80, 0, 0}, /* Elevator Action */ { 0xfcdaca80, 0, 0 }, /* Elevator Action */
{0xc05a365b, 0, 0}, /* Exed Exes (J) */ { 0xc05a365b, 0, 0 }, /* Exed Exes (J) */
{0xc4c3949a, 0, 0}, /* Mario Bros. (World) */ { 0xc4c3949a, 0, 0 }, /* Mario Bros. (World) */
{0x32fa246f, 0, 0}, /* Tag Team Pro Wrestling */ { 0x32fa246f, 0, 0 }, /* Tag Team Pro Wrestling */
{0x43D30C2F, 0, 0}, /* Ms. Pac-Man (USA) (Unl) Tengen */ { 0x43D30C2F, 0, 0 }, /* Ms. Pac-Man (USA) (Unl) Tengen */
{0xb3c30bea, 0, 0}, /* Xevious (J) */ { 0xb3c30bea, 0, 0 }, /* Xevious (J) */
{0xe492d45a, 0, 0}, /* Zippy Race */ { 0xe492d45a, 0, 0 }, /* Zippy Race */
{0x24598791, 0, 1}, /* Duck Hunt (World) */ { 0x24598791, 0, 1 }, /* Duck Hunt (World) */
{0x49aeb3a6, 0, 1}, /* Excitebike (Japan, USA) */ { 0x49aeb3a6, 0, 1 }, /* Excitebike (Japan, USA) */
{0xb8535ca3, 0, 1}, /* Mahjong (Japan) */ { 0xb8535ca3, 0, 1 }, /* Mahjong (Japan) */
{0x330de468, 0, 1}, /* Obake no Q Tarou - Wanwan Panic (Japan) */ { 0x330de468, 0, 1 }, /* Obake no Q Tarou - Wanwan Panic (Japan) */
{0xe28f2596, 0, 1}, /* Pac Land (J) */ { 0xe28f2596, 0, 1 }, /* Pac Land (J) */
{0x5112dc21, 0, 1}, /* Wild Gunman (World) (Rev A) */ { 0x5112dc21, 0, 1 }, /* Wild Gunman (World) (Rev A) */
{0xd8ee7669, 1, 8}, /* Adventures of Rad Gravity */ { 0xd8ee7669, 1, 8 }, /* Adventures of Rad Gravity */
{0x5b837e8d, 1, 8}, /* Alien Syndrome */ { 0x5b837e8d, 1, 8 }, /* Alien Syndrome */
{0x37ba3261, 1, 8}, /* Back to the Future 2 and 3 */ { 0x37ba3261, 1, 8 }, /* Back to the Future 2 and 3 */
{0x5b6ca654, 1, 8}, /* Barbie rev X*/ { 0x5b6ca654, 1, 8 }, /* Barbie rev X*/
{0x61a852ea, 1, 8}, /* Battle Stadium - Senbatsu Pro Yakyuu */ { 0x61a852ea, 1, 8 }, /* Battle Stadium - Senbatsu Pro Yakyuu */
{0xf6fa4453, 1, 8}, /* Bigfoot */ { 0xf6fa4453, 1, 8 }, /* Bigfoot */
{0x391aa1b8, 1, 8}, /* Bloody Warriors (J) */ { 0x391aa1b8, 1, 8 }, /* Bloody Warriors (J) */
{0xa5e8d2cd, 1, 8}, /* Breakthru */ { 0xa5e8d2cd, 1, 8 }, /* Breakthru */
{0x3f56a392, 1, 8}, /* Captain Ed (J) */ { 0x3f56a392, 1, 8 }, /* Captain Ed (J) */
{0x078ced30, 1, 8}, /* Choujin - Ultra Baseball */ { 0x078ced30, 1, 8 }, /* Choujin - Ultra Baseball */
{0xfe364be5, 1, 8}, /* Deep Dungeon 4 */ { 0xfe364be5, 1, 8 }, /* Deep Dungeon 4 */
{0x57c12280, 1, 8}, /* Demon Sword */ { 0x57c12280, 1, 8 }, /* Demon Sword */
{0xd09b74dc, 1, 8}, /* Great Tank (J) */ { 0xd09b74dc, 1, 8 }, /* Great Tank (J) */
{0xe8baa782, 1, 8}, /* Gun Hed (J) */ { 0xe8baa782, 1, 8 }, /* Gun Hed (J) */
{0x970bd9c2, 1, 8}, /* Hanjuku Hero */ { 0x970bd9c2, 1, 8 }, /* Hanjuku Hero */
{0xcd7a2fd7, 1, 8}, /* Hanjuku Hero */ { 0xcd7a2fd7, 1, 8 }, /* Hanjuku Hero */
{0x63469396, 1, 8}, /* Hokuto no Ken 4 */ { 0x63469396, 1, 8 }, /* Hokuto no Ken 4 */
{0xe94d5181, 1, 8}, /* Mirai Senshi - Lios */ { 0xe94d5181, 1, 8 }, /* Mirai Senshi - Lios */
{0x7156cb4d, 1, 8}, /* Muppet Adventure Carnival thingy */ { 0x7156cb4d, 1, 8 }, /* Muppet Adventure Carnival thingy */
{0x70f67ab7, 1, 8}, /* Musashi no Bouken */ { 0x70f67ab7, 1, 8 }, /* Musashi no Bouken */
{0x958e4bae, 1, 8}, /* Orb 3D (USA) */ { 0x958e4bae, 1, 8 }, /* Orb 3D (USA) */
{0x291bcd7d, 1, 8}, /* Pachio Kun 2 */ { 0x291bcd7d, 1, 8 }, /* Pachio Kun 2 */
{0xa9a4ea4c, 1, 8}, /* Satomi Hakkenden */ { 0xa9a4ea4c, 1, 8 }, /* Satomi Hakkenden */
{0xcc3544b0, 1, 8}, /* Triathron */ { 0xcc3544b0, 1, 8 }, /* Triathron */
{0x52ab2d17, 1, 8}, /* Toukyou Pachi-Slot Adventure (Japan) (Rev 0) */ { 0x52ab2d17, 1, 8 }, /* Toukyou Pachi-Slot Adventure (Japan) (Rev 0) */
{0x934db14a, 1, -1},/* All-Pro Basketball */ { 0x934db14a, 1, -1 },/* All-Pro Basketball */
{0xf74dfc91, 1, -1},/* Win, Lose, or Draw */ { 0xf74dfc91, 1, -1 },/* Win, Lose, or Draw */
{0xe6a477b2, 2, 1}, /* 3-D WorldRunner (USA) */ { 0xe6a477b2, 2, 1 }, /* 3-D WorldRunner (USA) */
{0x9ea1dc76, 2, 0}, /* Rainbow Islands */ { 0x9ea1dc76, 2, 0 }, /* Rainbow Islands */
{0x6d65cac6, 2, 0}, /* Terra Cresta */ { 0x6d65cac6, 2, 0 }, /* Terra Cresta */
{0xe1b260da, 2, 1}, /* Argos no Senshi */ { 0xe1b260da, 2, 1 }, /* Argos no Senshi */
{0x1d0f4d6b, 2, 1}, /* Black Bass thinging */ { 0x1d0f4d6b, 2, 1 }, /* Black Bass thinging */
{0x266ce198, 2, 1}, /* City Adventure Touch */ { 0x266ce198, 2, 1 }, /* City Adventure Touch */
{0x804f898a, 2, 1}, /* Dragon Unit */ { 0x804f898a, 2, 1 }, /* Dragon Unit */
{0x55773880, 2, 1}, /* Gilligan's Island */ { 0x55773880, 2, 1 }, /* Gilligan's Island */
{0x6e0eb43e, 2, 1}, /* Puss n Boots */ { 0x6e0eb43e, 2, 1 }, /* Puss n Boots */
{0x2bb6a0f8, 2, 1}, /* Sherlock Holmes */ { 0x2bb6a0f8, 2, 1 }, /* Sherlock Holmes */
{0x28c11d24, 2, 1}, /* Sukeban Deka */ { 0x28c11d24, 2, 1 }, /* Sukeban Deka */
{0x02863604, 2, 1}, /* Sukeban Deka */ { 0x02863604, 2, 1 }, /* Sukeban Deka */
{0x419461d0, 2, 1}, /* Super Cars */ { 0x419461d0, 2, 1 }, /* Super Cars */
{0xdbf90772, 3, 0}, /* Alpha Mission */ { 0xdbf90772, 3, 0 }, /* Alpha Mission */
{0xd858033d, 3, 0}, /* Armored Scrum Object */ { 0xd858033d, 3, 0 }, /* Armored Scrum Object */
{0xf283cf58, 3, 0}, /* Colorful Dragon (Asia) (PAL) (Unl) */ { 0xf283cf58, 3, 0 }, /* Colorful Dragon (Asia) (PAL) (Unl) */
{0xd858033d, 3, 0}, /* Incantation (Asia) (Unl) */ { 0xd858033d, 3, 0 }, /* Incantation (Asia) (Unl) */
{0x8f154a0d, 3, 0}, /* Pu Ke Jing Ling (China) (Unl) */ { 0x8f154a0d, 3, 0 }, /* Pu Ke Jing Ling (China) (Unl) */
{0xd04a40e6, 3, 0}, /* Bingo 75 (Asia) (Unl) */ { 0xd04a40e6, 3, 0 }, /* Bingo 75 (Asia) (Unl) */
{0x637ba508, 3, 1}, /* Adan y Eva (Spain) (Gluk Video) (Unl) */ { 0x637ba508, 3, 1 }, /* Adan y Eva (Spain) (Gluk Video) (Unl) */
{0xebd0644d, 3, 1}, /* Dao Shuai (Asia) (Unl) */ { 0xebd0644d, 3, 1 }, /* Dao Shuai (Asia) (Unl) */
{0x9bde3267, 3, 1}, /* Adventures of Dino Riki */ { 0x9bde3267, 3, 1 }, /* Adventures of Dino Riki */
{0xd8eff0df, 3, 1}, /* Gradius (J) */ { 0xd8eff0df, 3, 1 }, /* Gradius (J) */
{0x1d41cc8c, 3, 1}, /* Gyruss */ { 0x1d41cc8c, 3, 1 }, /* Gyruss */
{0xcf322bb3, 3, 1}, /* John Elway's Quarterback */ { 0xcf322bb3, 3, 1 }, /* John Elway's Quarterback */
{0xb5d28ea2, 3, 1}, /* Mystery Quest - mapper 3?*/ { 0xb5d28ea2, 3, 1 }, /* Mystery Quest - mapper 3?*/
{0x02cc3973, 3, 1}, /* Ninja Kid */ { 0x02cc3973, 3, 1 }, /* Ninja Kid */
{0xbc065fc3, 3, 1}, /* Pipe Dream */ { 0xbc065fc3, 3, 1 }, /* Pipe Dream */
{0xc9ee15a7, 3, -1}, /* 3 is probably best. 41 WILL NOT WORK. */ { 0xc9ee15a7, 3, -1 }, /* 3 is probably best. 41 WILL NOT WORK. */
{0x97b6cb19, 4, -1},/* Aladdin (SuperGame) (Mapper 4) [!] */ { 0x97b6cb19, 4, -1 },/* Aladdin (SuperGame) (Mapper 4) [!] */
{0xd97c31b0, 206, 1}, /* Rasaaru Ishii no Childs Quest (J) */ { 0xd97c31b0, 206, 1 }, /* Rasaaru Ishii no Childs Quest (J) */
{0x404b2e8b, 4, 2}, /* Rad Racer 2 */ { 0x404b2e8b, 4, 2 }, /* Rad Racer 2 */
{0x15141401, 4, 8}, /* Asmik Kun Land */ { 0x15141401, 4, 8 }, /* Asmik Kun Land */
{0x4cccd878, 4, 8}, /* Cat Ninden Teyandee */ { 0x4cccd878, 4, 8 }, /* Cat Ninden Teyandee */
{0x59280bec, 4, 8}, /* Jackie Chan */ { 0x59280bec, 4, 8 }, /* Jackie Chan */
{0x7474ac92, 4, 8}, /* Kabuki: Quantum Fighter */ { 0x7474ac92, 4, 8 }, /* Kabuki: Quantum Fighter */
{0xf2594374, 4, 8}, /* Matendouji (Japan) */ { 0xf2594374, 4, 8 }, /* Matendouji (Japan) */
{0x5337f73c, 4, 8}, /* Niji no Silk Road */ { 0x5337f73c, 4, 8 }, /* Niji no Silk Road */
{0x9eefb4b4, 4, 8}, /* Pachi Slot Adventure 2 */ { 0x9eefb4b4, 4, 8 }, /* Pachi Slot Adventure 2 */
{0xafe03802, 4, 8}, /* Pachio-kun 3 (Japan) (Rev A) */ { 0xafe03802, 4, 8 }, /* Pachio-kun 3 (Japan) (Rev A) */
{0x21a653c7, 4, -1}, /* Super Sky Kid */ { 0x21a653c7, 4, -1 }, /* Super Sky Kid */
{0xdb7f07be, 4, -1}, /* Toki (USA) (Beta) */ { 0xdb7f07be, 4, -1 }, /* Toki (USA) (Beta) */
{0x9cbadc25, 5, 8}, /* JustBreed */ { 0x9cbadc25, 5, 8 }, /* JustBreed */
{0xf518dd58, 7, 8}, /* Captain Skyhawk */ { 0xf518dd58, 7, 8 }, /* Captain Skyhawk */
{0x6c4a9735, 7, 8}, /* WWF Wrestlemania (Europe) */ { 0x6c4a9735, 7, 8 }, /* WWF Wrestlemania (Europe) */
{0x84382231, 9, -1}, /* Punch Out (J) */ { 0x84382231, 9, -1 }, /* Punch Out (J) */
{0xbe939fce, 9, -1}, /* Punchout*/ { 0xbe939fce, 9, -1 }, /* Punchout*/
{0x7b837fde, 9, -1}, /* Mike Tyson's Punch-Out!! (PC10)*/ { 0x7b837fde, 9, -1 }, /* Mike Tyson's Punch-Out!! (PC10)*/
{0x345d3a1a, 11, 1}, /* Castle of Deceit */ { 0x345d3a1a, 11, 1 }, /* Castle of Deceit */
{0xb79f2651, 11, 1}, /* Chiller (USA) (Unl) */ { 0xb79f2651, 11, 1 }, /* Chiller (USA) (Unl) */
{0x5e66eaea, 13, 1}, /* Videomation */ { 0x5e66eaea, 13, 1 }, /* Videomation */
{0xcd373baa, 14, -1}, /* Samurai Spirits (Rex Soft) */ { 0xcd373baa, 14, -1 }, /* Samurai Spirits (Rex Soft) */
{0xbfc7a2e9, 16, 8}, /* Gokuu Den (J) [a1] */ { 0xbfc7a2e9, 16, 8 }, /* Gokuu Den (J) [a1] */
{0x6e68e31a, 16, 8}, /* Dragon Ball 3*/ { 0x6e68e31a, 16, 8 }, /* Dragon Ball 3*/
{0x33b899c9, 16, -1}, /* Dragon Ball - Dai Maou Fukkatsu (J) [!] */ { 0x33b899c9, 16, -1 }, /* Dragon Ball - Dai Maou Fukkatsu (J) [!] */
{0xa262a81f, 16, -1}, /* Rokudenashi Blues (J) */ { 0xa262a81f, 16, -1 }, /* Rokudenashi Blues (J) */
{0x286fcd20, 21, -1}, /* Ganbare Goemon Gaiden 2 - Tenka no Zaihou (J) [!] */ { 0x286fcd20, 21, -1 }, /* Ganbare Goemon Gaiden 2 - Tenka no Zaihou (J) [!] */
{0x335E6339, 23, -1}, /* kung fu legend (unl)[!].nes */ { 0x335E6339, 23, -1 }, /* kung fu legend (unl)[!].nes */
{0x1A8D767B, 23, -1}, /* kung fu legend (unl)[!p].nes */ { 0x1A8D767B, 23, -1 }, /* kung fu legend (unl)[!p].nes */
{0x0E263D47, 23, -1}, /* World Hero (Unl) (TV System Select) [!].nes */ { 0x0E263D47, 23, -1 }, /* World Hero (Unl) (TV System Select) [!].nes */
{0xe4a291ce, 23, -1}, /* World Hero (Unl) [!] */ { 0xe4a291ce, 23, -1 }, /* World Hero (Unl) [!] */
{0x51e9cd33, 23, -1}, /* World Hero (Unl) [b1] */ { 0x51e9cd33, 23, -1 }, /* World Hero (Unl) [b1] */
{0x105dd586, 27, -1}, /* Mi Hun Che variations... */ { 0x105dd586, 27, -1 }, /* Mi Hun Che variations... */
{0xbc9bb6c1, 27, -1}, /* -- */ { 0xbc9bb6c1, 27, -1 }, /* -- */
{0x43753886, 27, -1}, /* -- */ { 0x43753886, 27, -1 }, /* -- */
{0x5b3de3d1, 27, -1}, /* -- */ { 0x5b3de3d1, 27, -1 }, /* -- */
{0x511e73f8, 27, -1}, /* -- */ { 0x511e73f8, 27, -1 }, /* -- */
{0x5555fca3, 32, 8}, { 0x5555fca3, 32, 8 },
{0x283ad224, 32, 8}, /* Ai Sensei no Oshiete */ { 0x283ad224, 32, 8 }, /* Ai Sensei no Oshiete */
{0x243a8735, 32, 0x10|4}, /* Major League */ { 0x243a8735, 32, 0x10|4 }, /* Major League */
{0x8a7d0abe, 33, 8}, /* Akira (J) [!] */ { 0x8a7d0abe, 33, 8 }, /* Akira (J) [!] */
{0x376138d8, 33, 8}, /* Akira (J) [a1] */ { 0x376138d8, 33, 8 }, /* Akira (J) [a1] */
{0xadf606f6, 33, 8}, /* Bakushou!! Jinsei Gekijou (J) [!] */ { 0xadf606f6, 33, 8 }, /* Bakushou!! Jinsei Gekijou (J) [!] */
{0xbc7b1d0f, 33, 8}, /* Bakushou!! Jinsei Gekijou 2 (J) [!] */ { 0xbc7b1d0f, 33, 8 }, /* Bakushou!! Jinsei Gekijou 2 (J) [!] */
{0x7a497ae3, 33, 8}, /* Don Doko Don (J) [!] */ { 0x7a497ae3, 33, 8 }, /* Don Doko Don (J) [!] */
{0xbaca10a9, 33, 8}, /* Golf Ko Open (J) [!] */ { 0xbaca10a9, 33, 8 }, /* Golf Ko Open (J) [!] */
{0xf80bdc50, 33, 8}, /* Insector X (J) [!] */ { 0xf80bdc50, 33, 8 }, /* Insector X (J) [!] */
{0x2a6559a1, 33, 8}, /* Operation Wolf (J) [!] */ { 0x2a6559a1, 33, 8 }, /* Operation Wolf (J) [!] */
{0xaeb7fce9, 33, 8}, /* Power Blazer (J) [!] */ { 0xaeb7fce9, 33, 8 }, /* Power Blazer (J) [!] */
{0xd920f9df, 33, 8}, /* Takeshi no Sengoku Fuuunji (J) [!] */ { 0xd920f9df, 33, 8 }, /* Takeshi no Sengoku Fuuunji (J) [!] */
{0x3cd4b420, 33, 8}, /* Takeshi no Sengoku Fuuunji (Japan) (Beta) */ { 0x3cd4b420, 33, 8 }, /* Takeshi no Sengoku Fuuunji (Japan) (Beta) */
{0x4c7c1af3, 34, 1}, /* Caesar's Palace */ { 0x4c7c1af3, 34, 1 }, /* Caesar's Palace */
{0x932ff06e, 34, 1}, /* Classic Concentration */ { 0x932ff06e, 34, 1 }, /* Classic Concentration */
{0xf46ef39a, 37, -1}, /* Super Mario Bros. + Tetris + Nintendo World Cup (E) [!] */ { 0xf46ef39a, 37, -1 }, /* Super Mario Bros. + Tetris + Nintendo World Cup (E) [!] */
{0x090C0C17, 42, 1}, /* Ai Senshi Nicol (FDS Conversion) [p1][!].nes */ { 0x090C0C17, 42, 1 }, /* Ai Senshi Nicol (FDS Conversion) [p1][!].nes */
{0x4DF84825, 42, 1}, /* Ai Senshi Nicol (FDS Conversion) [p2][!].nes */ { 0x4DF84825, 42, 1 }, /* Ai Senshi Nicol (FDS Conversion) [p2][!].nes */
{0x579E5BC5, 42, 1}, /* Ai Senshi Nicol (FDS Conversion) [p3].nes */ { 0x579E5BC5, 42, 1 }, /* Ai Senshi Nicol (FDS Conversion) [p3].nes */
{0xC744F205, 42, 1}, /* Ai Senshi Nicol (FDS Conversion) [p3][t1].nes */ { 0xC744F205, 42, 1 }, /* Ai Senshi Nicol (FDS Conversion) [p3][t1].nes */
{0x71699765, 42, -1}, /* Love Warrior Nicol.nes */ { 0x71699765, 42, -1 }, /* Love Warrior Nicol.nes */
{0x6BF3F6A3, 42, -1}, /* Bio Miracle Bokutte Upa (J) (Mario Baby - FDS Conversion).nes */ { 0x6BF3F6A3, 42, -1 }, /* Bio Miracle Bokutte Upa (J) (Mario Baby - FDS Conversion).nes */
{0x5BA1C5CF, 42, -1}, /* Green Beret (FDS Conversion) (Unl).nes (256K PRG) */ { 0x5BA1C5CF, 42, -1 }, /* Green Beret (FDS Conversion) (Unl).nes (256K PRG) */
{0x50AB1AB2, 42, -1}, /* Green Beret (FDS Conversion, LH09) (Unl) [U][!][t1] (160K PRG */ { 0x50AB1AB2, 42, -1 }, /* Green Beret (FDS Conversion, LH09) (Unl) [U][!][t1] (160K PRG */
{0x7ccb12a3, 43, -1}, /* SMB2j */ { 0x7ccb12a3, 43, -1 }, /* SMB2j */
{0x6c71feae, 45, -1}, /* Kunio 8-in-1 */ { 0x6c71feae, 45, -1 }, /* Kunio 8-in-1 */
{0x40c0ad47, 48, 8}, /* Flintstones 2 */ { 0x40c0ad47, 48, 8 }, /* Flintstones 2 */
{0xaebd6549, 48, 8}, /* Bakushou!! Jinsei Gekijou 3 (J) [!] */ { 0xaebd6549, 48, 8 }, /* Bakushou!! Jinsei Gekijou 3 (J) [!] */
{0x6cdc0cd9, 48, 8}, /* Bubble Bobble 2 (J) */ { 0x6cdc0cd9, 48, 8 }, /* Bubble Bobble 2 (J) */
{0x99c395f9, 48, 8}, /* Captain Saver (J) */ { 0x99c395f9, 48, 8 }, /* Captain Saver (J) */
{0xa7b0536c, 48, 8}, /* Don Doko Don 2 (J) [!] */ { 0xa7b0536c, 48, 8 }, /* Don Doko Don 2 (J) [!] */
{0xb17c828a, 48, 8}, /* Don Doko Don 2 (J) [a1] */ { 0xb17c828a, 48, 8 }, /* Don Doko Don 2 (J) [a1] */
{0x10e24006, 48, 8}, /* Flintstones, The - The Rescue of Dino & Hoppy (J) */ { 0x10e24006, 48, 8 }, /* Flintstones, The - The Rescue of Dino & Hoppy (J) */
{0x1500e835, 48, 8}, /* Jetsons, The - Cogswell's Caper! (J) */ { 0x1500e835, 48, 8 }, /* Jetsons, The - Cogswell's Caper! (J) */
{0xe2c94bc2, 48, 8}, /* Super Bros 8 (Unl) [!] */ { 0xe2c94bc2, 48, 8 }, /* Super Bros 8 (Unl) [!] */
{0xa912b064, 51|0x800, 8}, /* 11-in-1 Ball Games(has CHR ROM when it shouldn't) */ { 0xa912b064, 51|0x800, 8 }, /* 11-in-1 Ball Games(has CHR ROM when it shouldn't) */
{0x39ab0fc7, 64, 8}, /* Hard Drivin' (USA) (Proto) (Unl) */ { 0x39ab0fc7, 64, 8 }, /* Hard Drivin' (USA) (Proto) (Unl) */
{0xb19a55dd, 64, 8}, /* Road Runner */ { 0xb19a55dd, 64, 8 }, /* Road Runner */
{0xf92be3ec, 64, -1}, /* Rolling Thunder */ { 0xf92be3ec, 64, -1 }, /* Rolling Thunder */
{0xd114f544, 66, 0}, /* AV Super Real Pachinko (Japan) (Unl) */ { 0xd114f544, 66, 0 }, /* AV Super Real Pachinko (Japan) (Unl) */
{0xe84274c5, 66, 1}, /* Mississippi Satsujin Jiken (J) [h2] */ { 0xe84274c5, 66, 1 }, /* Mississippi Satsujin Jiken (J) [h2] */
{0xbde3ae9b, 66, 1}, /* Doraemon */ { 0xbde3ae9b, 66, 1 }, /* Doraemon */
{0x9552e8df, 66, 1}, /* Dragon Ball */ { 0x9552e8df, 66, 1 }, /* Dragon Ball */
{0x811f06d9, 66, 1}, /* Dragon Power */ { 0x811f06d9, 66, 1 }, /* Dragon Power */
{0xd26efd78, 66, 1}, /* SMB Duck Hunt */ { 0xd26efd78, 66, 1 }, /* SMB Duck Hunt */
{0xdd8ed0f7, 70, 1}, /* Kamen Rider Club */ { 0xdd8ed0f7, 70, 1 }, /* Kamen Rider Club */
{0xbba58be5, 70, -1}, /* Family Trainer - Manhattan Police */ { 0xbba58be5, 70, -1 }, /* Family Trainer - Manhattan Police */
{0x370ceb65, 70, -1}, /* Family Trainer - Meiro Dai Sakusen */ { 0x370ceb65, 70, -1 }, /* Family Trainer - Meiro Dai Sakusen */
{0x86be4746, 2, -1}, /* Dooly Bravo Land (Korea) (Unl) */ { 0x86be4746, 2, -1 }, /* Dooly Bravo Land (Korea) (Unl) */
{0xe62e3382, 71, -1}, /* Mig-29 Soviet Fighter */ { 0xe62e3382, 71, -1 }, /* Mig-29 Soviet Fighter */
{0xac7b0742, 71, -1}, /* Golden KTV (Ch) [!], not actually 71, but UNROM without BUS conflict */ { 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) */ { 0x054bd3e9, 74, -1 }, /* Di 4 Ci - Ji Qi Ren Dai Zhan (As) */
{0x496ac8f7, 74, -1}, /* Ji Jia Zhan Shi (As) */ { 0x496ac8f7, 74, -1 }, /* Ji Jia Zhan Shi (As) */
{0xae854cef, 74, -1}, /* Jia A Fung Yun (Chinese) */ { 0xae854cef, 74, -1 }, /* Jia A Fung Yun (Chinese) */
{0xba51ac6f, 78, 2}, /* Holy Diver (J) [!] */ { 0xba51ac6f, 78, 2}, /* Holy Diver (J) [!] */
{0x3d1c3137, 78, 8}, /* Uchuusen - Cosmo Carrier */ { 0x3d1c3137, 78, 8 }, /* Uchuusen - Cosmo Carrier */
{0xa4fbb438, 79, 0}, /* F-15 City War (AVE) (REV1.x) [b1] */ { 0xa4fbb438, 79, 0 }, /* F-15 City War (AVE) (REV1.x) [b1] */
{0xd4a76b07, 79, 0}, /* F-15 City Wars*/ { 0xd4a76b07, 79, 0 }, /* F-15 City Wars*/
{0x8eab381c, 79, 1}, /* Death Bots --changed 2017-29-26 */ { 0x8eab381c, 79, 1 }, /* Death Bots --changed 2017-29-26 */
{0x1eb4a920, 79, 1}, /* Double Strike */ { 0x1eb4a920, 79, 1 }, /* Double Strike */
{0x3e1271d5, 79, 1}, /* Tiles of Fate */ { 0x3e1271d5, 79, 1 }, /* Tiles of Fate */
{0x2deb12b8, 79, 1}, /* Venice Beach Volleyball (Asia) (Unl) */ { 0x2deb12b8, 79, 1 }, /* Venice Beach Volleyball (Asia) (Unl) */
{0xd2699893, 88, 0}, /* Dragon Spirit */ { 0xd2699893, 88, 0 }, /* Dragon Spirit */
{0xbb7c5f7a, 89, 8}, /* Mito Koumon or something similar */ { 0xbb7c5f7a, 89, 8 }, /* Mito Koumon or something similar */
{0x10119e6b, 93, 8}, /* Fantasy Zone (Japan) */ { 0x10119e6b, 93, 8 }, /* Fantasy Zone (Japan) */
{0x2b750bf9, 101, 1}, /* Urusei Yatsura - Lum no Wedding Bell (Japan) (Beta) */ { 0x2b750bf9, 101, 1 }, /* Urusei Yatsura - Lum no Wedding Bell (Japan) (Beta) */
{0x0da5e32e, 101, 1}, /* Urusei Yatsura - Lum no Wedding Bell (Japan) */ { 0x0da5e32e, 101, 1 }, /* Urusei Yatsura - Lum no Wedding Bell (Japan) */
{0x6096f84e, 104, 1}, /* Pegasus 5-in-1 (Golden Five) (Unl) */ { 0x6096f84e, 104, 1 }, /* Pegasus 5-in-1 (Golden Five) (Unl) */
{0x3d3ff543, 113, 0}, /* Kazama Jun to Asama Yuuko no AV Dragon Mahjong (Japan) (Unl) */ { 0x3d3ff543, 113, 0 }, /* Kazama Jun to Asama Yuuko no AV Dragon Mahjong (Japan) (Unl) */
{0x68379fdb, 113, 1}, /* Pipemania (Australia) (HES) (Unl) */ { 0x68379fdb, 113, 1 }, /* Pipemania (Australia) (HES) (Unl) */
{0x6a03d3f3, 114, -1}, /* Lion King, The (Unl) (Mapper 114) */ { 0x6a03d3f3, 114, -1 }, /* Lion King, The (Unl) (Mapper 114) */
{0x0d98db53, 114, -1}, /* Pocahontas */ { 0x0d98db53, 114, -1 }, /* Pocahontas */
{0x4e7729ff, 114, -1}, /* Super Donkey Kong */ { 0x4e7729ff, 114, -1 }, /* Super Donkey Kong */
{0xc5e5c5b2, 115, -1}, /* Bao Qing Tian (As).nes */ { 0xc5e5c5b2, 115, -1 }, /* Bao Qing Tian (As).nes */
{0xe40dfb7e, 116, -1}, /* Somari (P conf.) */ { 0xe40dfb7e, 116, -1 }, /* Somari (P conf.) */
{0xc9371ebb, 116, -1}, /* Somari (W conf.) */ { 0xc9371ebb, 116, -1 }, /* Somari (W conf.) */
{0x78b657ac, 118, -1}, /* Armadillo */ { 0x78b657ac, 118, -1 }, /* Armadillo */
{0x90c773c1, 118, -1}, /* Goal! 2 */ { 0x90c773c1, 118, -1 }, /* Goal! 2 */
{0xb9b4d9e0, 118, -1}, /* NES Play Action Football */ { 0xb9b4d9e0, 118, -1 }, /* NES Play Action Football */
{0x07d92c31, 118, -1}, /* RPG Jinsei Game */ { 0x07d92c31, 118, -1 }, /* RPG Jinsei Game */
{0x37b62d04, 118, -1}, /* Ys 3 */ { 0x37b62d04, 118, -1 }, /* Ys 3 */
{0x318e5502, 121, -1}, /* Sonic 3D Blast 6 (Unl) */ { 0x318e5502, 121, -1 }, /* Sonic 3D Blast 6 (Unl) */
{0xddcfb058, 121, -1}, /* Street Fighter Zero 2 '97 (Unl) [!] */ { 0xddcfb058, 121, -1 }, /* Street Fighter Zero 2 '97 (Unl) [!] */
{0xd2674b0a, 132, 0}, /* Qi Wang - Chinese Chess (Asia) (Unl) */ { 0xd2674b0a, 132, 0 }, /* Qi Wang - Chinese Chess (Asia) (Unl) */
{0x5aefbc94, 133, -1}, /* Jovial Race (Sachen) [a1][!] */ { 0x5aefbc94, 133, -1 }, /* Jovial Race (Sachen) [a1][!] */
{0xc2df0a00, 140, 1}, /* Bio Senshi Dan(hacked) */ { 0xc2df0a00, 140, 1 }, /* Bio Senshi Dan(hacked) */
{0xe46b1c5d, 140, 1}, /* Mississippi Satsujin Jiken */ { 0xe46b1c5d, 140, 1 }, /* Mississippi Satsujin Jiken */
{0x3293afea, 140, 1}, /* Mississippi Satsujin Jiken */ { 0x3293afea, 140, 1 }, /* Mississippi Satsujin Jiken */
{0x6bc65d7e, 140, 1}, /* Youkai Club*/ { 0x6bc65d7e, 140, 1 }, /* Youkai Club*/
{0x5caa3e61, 144, 1}, /* Death Race */ { 0x5caa3e61, 144, 1 }, /* Death Race */
{0x48239b42, 146, -1}, /* Mahjong Companion (Sachen) [!] */ { 0x48239b42, 146, -1 }, /* Mahjong Companion (Sachen) [!] */
{0xb6a727fa, 146, -1}, /* Papillion (As) [!] */ { 0xb6a727fa, 146, -1 }, /* Papillion (As) [!] */
{0xa62b79e1, 146, -1}, /* Side Winder (HES) [!] */ { 0xa62b79e1, 146, -1 }, /* Side Winder (HES) [!] */
{0xcc868d4e, 149, -1}, /* 16 Mahjong [p1][!] */ { 0xcc868d4e, 149, -1 }, /* 16 Mahjong [p1][!] */
{0x29582ca1, 150, -1}, /* Mei Nu Quan (Honey Peach) (Sachen) [!] */ { 0x29582ca1, 150, -1 }, /* Mei Nu Quan (Honey Peach) (Sachen) [!] */
{0x40dbf7a2, 150, -1}, /* Olympic IQ (Sachen) [!] */ { 0x40dbf7a2, 150, -1 }, /* Olympic IQ (Sachen) [!] */
{0x73fb55ac, 150, -1}, /* 2-in-1 Cosmo Cop + Cyber Monster (Sachen) [!] */ { 0x73fb55ac, 150, -1 }, /* 2-in-1 Cosmo Cop + Cyber Monster (Sachen) [!] */
{0xddcbda16, 150, -1}, /* 2-in-1 Tough Cop + Super Tough Cop (Sachen) [!] */ { 0xddcbda16, 150, -1 }, /* 2-in-1 Tough Cop + Super Tough Cop (Sachen) [!] */
{0x47918d84, 150, -1}, /* Auto-Upturn */ { 0x47918d84, 150, -1 }, /* Auto-Upturn */
{0x471173E7, 150, -1}, /* Chinese Checkers (Asia) (PAL) (Unl) */ { 0x471173E7, 150, -1 }, /* Chinese Checkers (Asia) (PAL) (Unl) */
{0x2394ae1c, 150, -1}, /* Happy Pairs (Asia) (PAL) (Unl) */ { 0x2394ae1c, 150, -1 }, /* Happy Pairs (Asia) (PAL) (Unl) */
{0xcab40a6c, 150, -1}, /* Magic Cube (Asia) (PAL) (Unl) */ { 0xcab40a6c, 150, -1 }, /* Magic Cube (Asia) (PAL) (Unl) */
{0xbe17e27b, 150, -1}, /* Poker III (Asia) (Unl) */ { 0xbe17e27b, 150, -1 }, /* Poker III (Asia) (Unl) */
{0x34ddf806, 150, -1}, /* Strategist (Asia) (NTSC) (Unl) */ { 0x34ddf806, 150, -1 }, /* Strategist (Asia) (NTSC) (Unl) */
{0xc06facfc, 150, -1}, /* Strategist (Asia) (PAL) (Unl) */ { 0xc06facfc, 150, -1 }, /* Strategist (Asia) (PAL) (Unl) */
{0xa95a915a, 150, -1}, /* Tasac (Asia) (Unl) */ { 0xa95a915a, 150, -1 }, /* Tasac (Asia) (Unl) */
{0x0f141525, 152, 8}, /* Arkanoid 2 (Japanese) */ { 0x0f141525, 152, 8 }, /* Arkanoid 2 (Japanese) */
{0xbda8f8e4, 152, 8}, /* Gegege no Kitarou 2 */ { 0xbda8f8e4, 152, 8 }, /* Gegege no Kitarou 2 */
{0xb1a94b82, 152, 8}, /* Pocket Zaurus */ { 0xb1a94b82, 152, 8 }, /* Pocket Zaurus */
{0x026c5fca, 152, 8}, /* Saint Seiya Ougon Densetsu */ { 0x026c5fca, 152, 8 }, /* Saint Seiya Ougon Densetsu */
{0x3f15d20d, 153, 8}, /* Famicom Jump 2 */ { 0x3f15d20d, 153, 8 }, /* Famicom Jump 2 */
{0xd1691028, 154, 8}, /* Devil Man */ { 0xd1691028, 154, 8 }, /* Devil Man */
{0xcfd4a281, 155, 8}, /* Money Game. Yay for money! */ { 0xcfd4a281, 155, 8 }, /* Money Game. Yay for money! */
{0x2f27cdef, 155, 8}, /* Tatakae!! Rahmen Man */ { 0x2f27cdef, 155, 8 }, /* Tatakae!! Rahmen Man */
{0xc1719664, 155, 8}, /* Tatakae!! Rahmen Man - Sakuretsu Choujin 102 Gei (Japan) */ { 0xc1719664, 155, 8 }, /* Tatakae!! Rahmen Man - Sakuretsu Choujin 102 Gei (Japan) */
{0xccc03440, 156, -1}, /* Buzz and Waldog (U) (Prototype) [!] */ { 0xccc03440, 156, -1 }, /* Buzz and Waldog (U) (Prototype) [!] */
{0x983d8175, 157, 8}, /* Datach Battle Rush */ { 0x983d8175, 157, 8 }, /* Datach Battle Rush */
{0x894efdbc, 157, 8}, /* Datach Crayon Shin Chan */ { 0x894efdbc, 157, 8 }, /* Datach Crayon Shin Chan */
{0x19e81461, 157, 8}, /* Datach DBZ */ { 0x19e81461, 157, 8 }, /* Datach DBZ */
{0xbe06853f, 157, 8}, /* Datach J-League */ { 0xbe06853f, 157, 8 }, /* Datach J-League */
{0x0be0a328, 157, 8}, /* Datach SD Gundam Wars */ { 0x0be0a328, 157, 8 }, /* Datach SD Gundam Wars */
{0x5b457641, 157, 8}, /* Datach Ultraman Club */ { 0x5b457641, 157, 8 }, /* Datach Ultraman Club */
{0xf51a7f46, 157, 8}, /* Datach Yuu Yuu Hakusho */ { 0xf51a7f46, 157, 8 }, /* Datach Yuu Yuu Hakusho */
{0xcbf4366f, 158, 8}, /* Alien Syndrome (U.S. unlicensed) */ { 0xcbf4366f, 158, 8 }, /* Alien Syndrome (U.S. unlicensed) */
{0xe170404c, 159, -1}, /* SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [!] */ { 0xe170404c, 159, -1 }, /* SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [!] */
{0x276ac722, 159, -1}, /* SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.1) [!] */ { 0x276ac722, 159, -1 }, /* SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.1) [!] */
{0x0cf42e69, 159, -1}, /* Magical Taruruuto-kun - Fantastic World!! (J) (V1.0) [!] */ { 0x0cf42e69, 159, -1 }, /* Magical Taruruuto-kun - Fantastic World!! (J) (V1.0) [!] */
{0xdcb972ce, 159, -1}, /* Magical Taruruuto-kun - Fantastic World!! (J) (V1.1) [!] */ { 0xdcb972ce, 159, -1 }, /* Magical Taruruuto-kun - Fantastic World!! (J) (V1.1) [!] */
{0xb7f28915, 159, -1}, /* Magical Taruruuto-kun 2 - Mahou Daibouken (J) */ { 0xb7f28915, 159, -1 }, /* Magical Taruruuto-kun 2 - Mahou Daibouken (J) */
{0x183859d2, 159, -1}, /* Dragon Ball Z - Kyoushuu! Saiya Jin (J) [!] */ { 0x183859d2, 159, -1 }, /* Dragon Ball Z - Kyoushuu! Saiya Jin (J) [!] */
{0x58152b42, 160, 1}, /* Pipe 5 (Sachen) */ { 0x58152b42, 160, 1 }, /* Pipe 5 (Sachen) */
{0x1c098942, 162, -1}, /* Xi You Ji Hou Zhuan (Ch) */ { 0x1c098942, 162, -1 }, /* Xi You Ji Hou Zhuan (Ch) */
{0x081caaff, 163, -1}, /* Commandos (Ch) */ { 0x081caaff, 163, -1 }, /* Commandos (Ch) */
{0x02c41438, 176, -1}, /* Xing He Zhan Shi (C) */ { 0x02c41438, 176, -1 }, /* Xing He Zhan Shi (C) */
{0x409601a5, 176, -1}, /* 4-in-1 (BS-8088) [p1][!] */ { 0x409601a5, 176, -1 }, /* 4-in-1 (BS-8088) [p1][!] */
{0xa391549d, 176, -1}, /* 4-in-1 (FK23C8021) [p1][!] */ { 0xa391549d, 176, -1 }, /* 4-in-1 (FK23C8021) [p1][!] */
{0x06d13d9e, 176, -1}, /* 4-in-1 (FK23C8026) [p1][!] */ { 0x06d13d9e, 176, -1 }, /* 4-in-1 (FK23C8026) [p1][!] */
{0x2ebd5fd6, 176, -1}, /* 4-in-1 (FK23C8033) [p1][!] */ { 0x2ebd5fd6, 176, -1 }, /* 4-in-1 (FK23C8033) [p1][!] */
{0x23e4906a, 176, -1}, /* 4-in-1 (FK23C8043) [p1][!] */ { 0x23e4906a, 176, -1 }, /* 4-in-1 (FK23C8043) [p1][!] */
{0x10155a92, 176, -1}, /* 4-in-1 (FK23C8045) [p1][!] */ { 0x10155a92, 176, -1 }, /* 4-in-1 (FK23C8045) [p1][!] */
{0x8baeedc0, 176, -1}, /* 4-in-1 (FK23C8052) [p1][!] */ { 0x8baeedc0, 176, -1 }, /* 4-in-1 (FK23C8052) [p1][!] */
{0x39307391, 176, -1}, /* 4-in-1 (FK23C8056) [p1][!] */ { 0x39307391, 176, -1 }, /* 4-in-1 (FK23C8056) [p1][!] */
{0x72ceab1e, 176, -1}, /* 4-in-1 (FK23C8078) (Ch) [p1] */ { 0x72ceab1e, 176, -1 }, /* 4-in-1 (FK23C8078) (Ch) [p1] */
{0x07d3f6cb, 176, -1}, /* 4-in-1 (FK23C8079) [p1][!] */ { 0x07d3f6cb, 176, -1 }, /* 4-in-1 (FK23C8079) [p1][!] */
{0xc6d97331, 176, -1}, /* 4-in-1 (FK23Cxxxx, S-0210A PCB)[p1][!] */ { 0xc6d97331, 176, -1 }, /* 4-in-1 (FK23Cxxxx, S-0210A PCB)[p1][!] */
{0x17d43af9, 176, -1}, /* 5-in-1 (K5003) [p1][!]-1125) (Ch) */ { 0x17d43af9, 176, -1 }, /* 5-in-1 (K5003) [p1][!]-1125) (Ch) */
{0x20379331, 176, -1}, /* Mortal Kombat 30 Peoples (DH1043) (Ch) */ { 0x20379331, 176, -1 }, /* Mortal Kombat 30 Peoples (DH1043) (Ch) */
{0x558c0dc3, 178, -1}, /* Super 2in1 (unl)[!] {mapper unsupported} */ { 0x558c0dc3, 178, -1 }, /* Super 2in1 (unl)[!] {mapper unsupported} */
{0xc68363f6, 180, 0}, /* Crazy Climber */ { 0xc68363f6, 180, 0 }, /* Crazy Climber */
{0x0f05ff0a, 181, -1}, /* Seicross (redump) */ { 0x0f05ff0a, 181, -1 }, /* Seicross (redump) */
{0x96ce586e, 189, 8}, /* Street Fighter 2 YOKO */ { 0x96ce586e, 189, 8 }, /* Street Fighter 2 YOKO */
{0x0E76E4C1, 190, 0}, /* Magic Kid Googoo */ { 0x0E76E4C1, 190, 0 }, /* Magic Kid Googoo */
{0x555a555e, 191, -1}, /* Sugoro Quest - Dice no Senshitachi (Ch) */ { 0x555a555e, 191, -1 }, /* Sugoro Quest - Dice no Senshitachi (Ch) */
{0x2cc381f6, 191, -1}, /* Sugoro Quest - Dice no Senshitachi (As) */ { 0x2cc381f6, 191, -1 }, /* Sugoro Quest - Dice no Senshitachi (As) */
{0xa145fae6, 192, -1}, /* Young Chivalry (Ch) [b3] */ { 0xa145fae6, 192, -1 }, /* Young Chivalry (Ch) [b3] */
{0xa9115bc1, 192, -1}, /* Young Chivalry (Ch) [!] */ { 0xa9115bc1, 192, -1 }, /* Young Chivalry (Ch) [!] */
{0x4c7bbb0e, 192, -1}, /* Young Chivalry (Ch) [b2] */ { 0x4c7bbb0e, 192, -1 }, /* Young Chivalry (Ch) [b2] */
{0x98c1cd4b, 192, -1}, /* Ying Lie Qun Xia Zhuan (Chinese) */ { 0x98c1cd4b, 192, -1 }, /* Ying Lie Qun Xia Zhuan (Chinese) */
{0xee810d55, 192, -1}, /* You Ling Xing Dong (Ch) */ { 0xee810d55, 192, -1 }, /* You Ling Xing Dong (Ch) */
{0x442f1a29, 192, -1}, /* Young chivalry */ { 0x442f1a29, 192, -1 }, /* Young chivalry */
{0x637134e8, 193, 1}, /* Fighting Hero */ { 0x637134e8, 193, 1 }, /* Fighting Hero */
{0xa925226c, 194, -1}, /* Dai-2-Ji - Super Robot Taisen (As) */ { 0xa925226c, 194, -1 }, /* Dai-2-Ji - Super Robot Taisen (As) */
{0x7f3dbf1b, 195, 0}, /* Chaos World (Ch) */ { 0x7f3dbf1b, 195, 0 }, /* Chaos World (Ch) */
{0xb616885c, 195, 0}, /* CHaos WOrld (Ch)*/ { 0xb616885c, 195, 0 }, /* CHaos WOrld (Ch)*/
{0x33c5df92, 195, -1}, /* Captain Tsubasa Vol. II - Super Striker (Ch) [a1] */ { 0x33c5df92, 195, -1 }, /* Captain Tsubasa Vol. II - Super Striker (Ch) [a1] */
{0x1bc0be6c, 195, -1}, /* Captain Tsubasa Vol 2 - Super Striker (C) */ { 0x1bc0be6c, 195, -1 }, /* Captain Tsubasa Vol 2 - Super Striker (C) */
{0xd5224fde, 195, -1}, /* Crystalis (c) */ { 0xd5224fde, 195, -1 }, /* Crystalis (c) */
{0xfdec419f, 196, -1}, /* Street Fighter VI 16 Peoples (Unl) [!] */ { 0xfdec419f, 196, -1 }, /* Street Fighter VI 16 Peoples (Unl) [!] */
{0x700705f4, 198, -1}, { 0x700705f4, 198, -1 },
{0x9a2cf02c, 198, -1}, { 0x9a2cf02c, 198, -1 },
{0xd8b401a7, 198, -1}, { 0xd8b401a7, 198, -1 },
{0x28192599, 198, -1}, { 0x28192599, 198, -1 },
{0x19b9e732, 198, -1}, /* Tenchi wo Kurau II - Shokatsu Koumei Den (J) (PRG0) [T-Chi] */ { 0x19b9e732, 198, -1 }, /* Tenchi wo Kurau II - Shokatsu Koumei Den (J) (PRG0) [T-Chi] */
{0xdd431ba7, 198, -1}, /* Tenchi wo kurau 2 (c) */ { 0xdd431ba7, 198, -1 }, /* Tenchi wo kurau 2 (c) */
{0xd871d3e6, 199, -1}, /* Dragon Ball Z 2 - Gekishin Freeza! (C) */ { 0xd871d3e6, 199, -1 }, /* Dragon Ball Z 2 - Gekishin Freeza! (C) */
{0xed481b7c, 199, -1}, /* Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (C) */ { 0xed481b7c, 199, -1 }, /* Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (C) */
{0x44c20420, 199, -1}, /* San Guo Zhi 2 (C) */ { 0x44c20420, 199, -1 }, /* San Guo Zhi 2 (C) */
{0x44c20420, 199, -1}, /* San Guo Zhi 2 (C) */ { 0x44c20420, 199, -1 }, /* San Guo Zhi 2 (C) */
{0x05658DED, 201, -1}, /* 21-in-1 (CF-043) (2006-V) (Unl) [p1].nes, submapper 15 */ { 0x05658DED, 201, -1 }, /* 21-in-1 (CF-043) (2006-V) (Unl) [p1].nes, submapper 15 */
{0x276237b3, 206, 0}, /* Karnov */ { 0x276237b3, 206, 0 }, /* Karnov */
{0xa5e6baf9, 206, 1}, /* Dragon Slayer 4 - Drasle Family (Japan) */ { 0xa5e6baf9, 206, 1 }, /* Dragon Slayer 4 - Drasle Family (Japan) */
{0x4f2f1846, 206, 1}, /* Famista '89 - Kaimaku Han!! (J) */ { 0x4f2f1846, 206, 1 }, /* Famista '89 - Kaimaku Han!! (J) */
{0x22d6d5bd, 206, 1}, /* Jikuu Yuuden - Debias (J) */ { 0x22d6d5bd, 206, 1 }, /* Jikuu Yuuden - Debias (J) */
{0x9d21fe96, 206, 1}, /* Lupin Sansei - Pandora no Isan (Japan) */ { 0x9d21fe96, 206, 1 }, /* Lupin Sansei - Pandora no Isan (Japan) */
{0xae321339, 206, 1}, /* Pro Yakyuu - Family Stadium '88 (Japan) */ { 0xae321339, 206, 1 }, /* Pro Yakyuu - Family Stadium '88 (Japan) */
{0x96dfc776, 206, 1}, /* R.B.I. Baseball 2 (USA) (Unl) */ { 0x96dfc776, 206, 1 }, /* R.B.I. Baseball 2 (USA) (Unl) */
{0xfd63e7ac, 206, 1}, /* R.B.I. Baseball 3 (USA) (Unl) */ { 0xfd63e7ac, 206, 1 }, /* R.B.I. Baseball 3 (USA) (Unl) */
{0x2a01f9d1, 206, 1}, /* Wagyan Land (Japan) */ { 0x2a01f9d1, 206, 1 }, /* Wagyan Land (Japan) */
{0x7678f1d5, 207, 8}, /* Fudou Myouou Den */ { 0x7678f1d5, 207, 8 }, /* Fudou Myouou Den */
{0x07eb2c12, 208, -1}, /* Street Fighter IV */ { 0x07eb2c12, 208, -1 }, /* Street Fighter IV */
{0xdd8ced31, 209, -1}, /* Power Rangers 3 */ { 0xdd8ced31, 209, -1 }, /* Power Rangers 3 */
{0x063b1151, 209, -1}, /* Power Rangers 4 */ { 0x063b1151, 209, -1 }, /* Power Rangers 4 */
{0xdd4d9a62, 209, -1}, /* Shin Samurai Spirits 2 */ { 0xdd4d9a62, 209, -1 }, /* Shin Samurai Spirits 2 */
{0x0c47946d, 210, 1}, /* Chibi Maruko Chan */ { 0x0c47946d, 210, 1 }, /* Chibi Maruko Chan */
{0xc247cc80, 210, 1}, /* Family Circuit '91 */ { 0xc247cc80, 210, 1 }, /* Family Circuit '91 */
{0x808606f0, 210, 1}, /* Famista '91 */ { 0x808606f0, 210, 1 }, /* Famista '91 */
{0x6ec51de5, 210, 1}, /* Famista '92 */ { 0x6ec51de5, 210, 1 }, /* Famista '92 */
{0xadffd64f, 210, 1}, /* Famista '93 */ { 0xadffd64f, 210, 1 }, /* Famista '93 */
{0x429103c9, 210, 1}, /* Famista '94 */ { 0x429103c9, 210, 1 }, /* Famista '94 */
{0x81b7f1a8, 210, 1}, /* Heisei Tensai Bakabon */ { 0x81b7f1a8, 210, 1 }, /* Heisei Tensai Bakabon */
{0x2447e03b, 210, 1}, /* Top Striker */ { 0x2447e03b, 210, 1 }, /* Top Striker */
{0x1dc0f740, 210, 1}, /* Wagyan Land 2 */ { 0x1dc0f740, 210, 1 }, /* Wagyan Land 2 */
{0xd323b806, 210, 1}, /* Wagyan Land 3 */ { 0xd323b806, 210, 1 }, /* Wagyan Land 3 */
{0xbd523011, 210, 0}, /* Namco Prism Zone - Dream Master (Japan) */ { 0xbd523011, 210, 0 }, /* Namco Prism Zone - Dream Master (Japan) */
{0x5daae69a, 211, -1}, /* Aladdin - Return of Jaffar, The (Unl) [!] */ { 0x5daae69a, 211, -1 }, /* Aladdin - Return of Jaffar, The (Unl) [!] */
{0x1ec1dfeb, 217, -1}, /* 255-in-1 (Cut version) [p1] */ { 0x1ec1dfeb, 217, -1 }, /* 255-in-1 (Cut version) [p1] */
{0x046d70cc, 217, -1}, /* 500-in-1 (Anim Splash, Alt Mapper)[p1][!] */ { 0x046d70cc, 217, -1 }, /* 500-in-1 (Anim Splash, Alt Mapper)[p1][!] */
{0x12f86a4d, 217, -1}, /* 500-in-1 (Static 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][!] */ { 0xd09f778d, 217, -1 }, /* 9999999-in-1 (Static Splash, Alt Mapper)[p1][!] */
{0x62ef6c79, 232, 8}, /* Quattro Sports -Aladdin */ { 0x62ef6c79, 232, 8 }, /* Quattro Sports -Aladdin */
{0x2705eaeb, 234, -1}, /* Maxi 15 */ { 0x2705eaeb, 234, -1 }, /* Maxi 15 */
{0x80CBCACB, 235, -1}, /* 100-in-1 (Unl).nes */ { 0x80CBCACB, 235, -1 }, /* 100-in-1 (Unl).nes */
{0x6175B9A0, 235, -1}, /* 150_in_1_199x-ASp */ { 0x6175B9A0, 235, -1 }, /* 150_in_1_199x-ASp */
{0x745A6791, 235, -1}, /* 210-in-1 and Contra 4-in-1 (212-in-1,212 Hong Kong,Reset Based)(Unl).nes */ { 0x745A6791, 235, -1 }, /* 210-in-1 and Contra 4-in-1 (212-in-1,212 Hong Kong,Reset Based)(Unl).nes */
{0xDF81364D, 235, -1}, /* 260-in-1 [p1][!].nes */ { 0xDF81364D, 235, -1 }, /* 260-in-1 [p1][!].nes */
{0xA38F2F1D, 235, -1}, /* 1500-in-1.nes */ { 0xA38F2F1D, 235, -1 }, /* 1500-in-1.nes */
{0x6f12afc5, 235, -1}, /* Golden Game 150-in-1 */ { 0x6f12afc5, 235, -1 }, /* Golden Game 150-in-1 */
{0x2537b3e6, 241, -1}, /* Dance Xtreme - Prima (Unl) */ { 0x2537b3e6, 241, -1 }, /* Dance Xtreme - Prima (Unl) */
{0x11611e89, 241, -1}, /* Darkseed (Unl) [p1] */ { 0x11611e89, 241, -1 }, /* Darkseed (Unl) [p1] */
{0x81a37827, 241, -1}, /* Darkseed (Unl) [p1][b1] */ { 0x81a37827, 241, -1 }, /* Darkseed (Unl) [p1][b1] */
{0xfb2b6b10, 241, -1}, /* Fan Kong Jing Ying (Ch) */ { 0xfb2b6b10, 241, -1 }, /* Fan Kong Jing Ying (Ch) */
{0xb5e83c9a, 241, -1}, /* Xing Ji Zheng Ba (Ch) */ { 0xb5e83c9a, 241, -1 }, /* Xing Ji Zheng Ba (Ch) */
{0x368c19a8, 241, -1}, /* LIKO Study Cartridge 3-in-1 (Unl) [!] */ { 0x368c19a8, 241, -1 }, /* LIKO Study Cartridge 3-in-1 (Unl) [!] */
{0x54d98b79, 241, -1}, /* Titanic 1912 (Unl) */ { 0x54d98b79, 241, -1 }, /* Titanic 1912 (Unl) */
{0xc2730c30, 34, 0}, /* Deadly Towers (U) [!] */ { 0xc2730c30, 34, 0 }, /* Deadly Towers (U) [!] */
{0xa21e675c, 34, 0}, /* Mashou (J) [!] */ { 0xa21e675c, 34, 0 }, /* Mashou (J) [!] */
{0x6bea1235, 245, -1}, /* MMC3 cart, but with nobanking applied to CHR-RAM, so let it be there */ { 0x6bea1235, 245, -1 }, /* MMC3 cart, but with nobanking applied to CHR-RAM, so let it be there */
{0x345ee51a, 245, -1}, /* DQ4c */ { 0x345ee51a, 245, -1 }, /* DQ4c */
{0x57514c6c, 245, -1}, /* Yong Zhe Dou E Long - Dragon Quest VI (Ch) */ { 0x57514c6c, 245, -1 }, /* Yong Zhe Dou E Long - Dragon Quest VI (Ch) */
{0xdb9d71b7, 114, -1}, /* Super Donkey Kong (Unl) [o1] */ { 0xdb9d71b7, 114, -1 }, /* Super Donkey Kong (Unl) [o1] */
{0x61fc4d20, 224, 0}, /* Pokemon HeartGold (KT-008 PCB)(Ch)[!] */ { 0x61fc4d20, 224, 0 }, /* Pokemon HeartGold (KT-008 PCB)(Ch)[!] */
{0x4d735cb1, 224, 0}, /* Pokemon Platinum (KT-008 PCB)(Ch)[!] */ { 0x4d735cb1, 224, 0 }, /* Pokemon Platinum (KT-008 PCB)(Ch)[!] */
{0x4f427110, 224, 0}, /* Pokemon Platinum Alt title 1 (KT-008 PCB)(Ch)[!] */ { 0x4f427110, 224, 0 }, /* Pokemon Platinum Alt title 1 (KT-008 PCB)(Ch)[!] */
{0xe001de16, 224, 0}, /* Pokemon Platinum Alt title 2 (KT-008 PCB)(Ch)[!] */ { 0xe001de16, 224, 0 }, /* Pokemon Platinum Alt title 2 (KT-008 PCB)(Ch)[!] */
{0xbdbe3c96, 238, 1}, /* Contra Fighter (Unl) */ { 0xbdbe3c96, 238, 1 }, /* Contra Fighter (Unl) */
{0xcfe02ada, 1, -1}, /* Darkman (E) [!] */ { 0xcfe02ada, 1, -1 }, /* Darkman (E) [!] */
{0xcb53c523, 11, 1}, /* King Neptune's Adventure (Color Dreams) [!] */ { 0xcb53c523, 11, 1 }, /* King Neptune's Adventure (Color Dreams) [!] */
{0x6e149729, 189, -1}, /* Master Fighter II (Unl) [a1] */ { 0x6e149729, 189, -1 }, /* Master Fighter II (Unl) [a1] */
{0x60bfeb0c, 90, -1}, /* Mortal Kombat 2 (Unl) [!] */ { 0x60bfeb0c, 90, -1 }, /* Mortal Kombat 2 (Unl) [!] */
{0x247cc73d, 150, -1}, /* Poker II (Sachen) [!] */ { 0x247cc73d, 150, -1 }, /* Poker II (Sachen) [!] */
{0xe41b440f, 3, 0}, /* Sidewinder (Joy Van) */ { 0xe41b440f, 3, 0 }, /* Sidewinder (Joy Van) */
{0x1f1326d4, 121, 0}, /* Super Sonic 5 (1997) (Unl) [!] */ { 0x1f1326d4, 121, 0 }, /* Super Sonic 5 (1997) (Unl) [!] */
{0xb0c871c5, 3, 1}, /* Wei Lai Xiao Zi (Joy Van) */ { 0xb0c871c5, 3, 1 }, /* Wei Lai Xiao Zi (Joy Van) */
{0xb3be2f71, 3, 0}, /* Yanshan Chess (Unl) */ { 0xb3be2f71, 3, 0 }, /* Yanshan Chess (Unl) */
{0x8dedea07, 3, 1}, /* Shui Guo Li (Ch) [a1] */ { 0x8dedea07, 3, 1 }, /* Shui Guo Li (Ch) [a1] */
{0x1a71fd06, 1, 1}, /* Kujaku Ou (J) [T+Eng1.1_Snark] */ { 0x1a71fd06, 1, 1 }, /* Kujaku Ou (J) [T+Eng1.1_Snark] */
{0x99748230, 215, 0}, /* EarthWorm Jim 2 (SuperGame) */ { 0x99748230, 215, 0 }, /* EarthWorm Jim 2 (SuperGame) */
{0x37876ac7, 215, 0}, /* Golden Card 6-in-1 (Unl) [!] */ { 0x37876ac7, 215, 0 }, /* Golden Card 6-in-1 (Unl) [!] */
{0x1a3320a3, 215, 0}, /* Mortal Kombat 3 (SuperGame) */ { 0x1a3320a3, 215, 0 }, /* Mortal Kombat 3 (SuperGame) */
{0x80eb1839, 114, 0}, /* Boogerman (Sugar Softec) (Unl) [!] */ { 0x80eb1839, 114, 0 }, /* Boogerman (Sugar Softec) (Unl) [!] */
{0x071e4ee8, 114, 0}, /* m114,submapper 1 test rom */ { 0x071e4ee8, 114, 0 }, /* m114,submapper 1 test rom */
{0xfe3e03a1, 197, -1}, /* Mortal Kombat III Special (YY-030) (Ch) [!] */ { 0xfe3e03a1, 197, -1 }, /* Mortal Kombat III Special (YY-030) (Ch) [!] */
{0x9151d311, 197, -1}, /* Mortal Kombat III 28 Peoples (NT-328) (Ch) [!] */ { 0x9151d311, 197, -1 }, /* Mortal Kombat III 28 Peoples (NT-328) (Ch) [!] */
{0x272709b9, 237, -1}, /* Teletubbies Y2K (420-in-1) */ { 0x272709b9, 237, -1 }, /* Teletubbies Y2K (420-in-1) */
{0x2e27e0af, 227, -1}, /* Bio Hazard (No-Bug) (Unl).nes */ { 0x2e27e0af, 227, -1 }, /* Bio Hazard (No-Bug) (Unl).nes */
{0x0e7e9309, 189, -1}, /* Street Fighter II - The World Warrior (Unl) [a1].nes */ { 0x0e7e9309, 189, -1 }, /* Street Fighter II - The World Warrior (Unl) [a1].nes */
{0xa3ac0095, 189, -1}, /* Street Fighter II - The World Warrior (Unl) [a2].nes */ { 0xa3ac0095, 189, -1 }, /* Street Fighter II - The World Warrior (Unl) [a2].nes */
{0xeced5899, 121, -1}, /* Ultimate Mortal Kombat 4 (Unl) [!].nes */ { 0xeced5899, 121, -1 }, /* Ultimate Mortal Kombat 4 (Unl) [!].nes */
{0x19C1ED51, 150, -1}, /* Poker III (Asia) (Ja) (Unl).nes */ { 0x19C1ED51, 150, -1 }, /* Poker III (Asia) (Ja) (Unl).nes */
{0x282745C5, 141, -1}, /* Q Boy (Asia) (Ja) (Unl).nes */ { 0x282745C5, 141, -1 }, /* Q Boy (Asia) (Ja) (Unl).nes */
{0x4B9ECFB2, 21, -1}, /* Wai Wai World 2 - SOS!! Paseri Jou (Japan) (Virtual Console).nes */ { 0x4B9ECFB2, 21, -1 }, /* Wai Wai World 2 - SOS!! Paseri Jou (Japan) (Virtual Console).nes */
{0x33751782, 4, -1}, /* Zoda's Revenge - StarTropics II (USA, Europe) (Virtual Console).nes */ { 0x33751782, 4, -1 }, /* Zoda's Revenge - StarTropics II (USA, Europe) (Virtual Console).nes */
{0x9BBF3E5D, 15, -1}, /* 168-in-1 New Contra Function 16 */ { 0x9BBF3E5D, 15, -1 }, /* 168-in-1 New Contra Function 16 */
/* TXC / Sachen / JoyVan */ /* TXC / Sachen / JoyVan */
/* This cart does not work anymore with latest mapper implementation. /* This cart does not work anymore with latest mapper implementation.
* This will be run using alternate mapper using override in m132 */ * This will be run using alternate mapper using override in m132 */
{0x2a5f4c5a, 132, -1}, /* /Zhan Guo Si Chuan Sheng (C&E) (Unl).nes */ { 0x2a5f4c5a, 132, -1 }, /* /Zhan Guo Si Chuan Sheng (C&E) (Unl).nes */
{0x0acfc3cd, 132, -1}, /* Mahjong Block (MGC-008) (Unl) [!].nes */ { 0x0acfc3cd, 132, -1 }, /* Mahjong Block (MGC-008) (Unl) [!].nes */
/* ines mappers that uses iNes 2.0 numbers */ /* ines mappers that uses iNes 2.0 numbers */
{0xf6bd8e31, 281, 0}, /* 1997 Super HIK 4-in-1 (JY-052) [p1][!] */ { 0xf6bd8e31, 281, 0 }, /* 1997 Super HIK 4-in-1 (JY-052) [p1][!] */
{0x5aa23a15, 361, 0}, /* 4-in-1 (OK-411)[p1][!] */ { 0x5aa23a15, 361, 0 }, /* 4-in-1 (OK-411)[p1][!] */
{0xf6b9d088, 366, 0}, /* 4-in-1 (K-3131GS, GN-45) [p1][!] */ { 0xf6b9d088, 366, 0 }, /* 4-in-1 (K-3131GS, GN-45) [p1][!] */
{0x503566b2, 366, 0}, /* 4-in-1 (K-3131SS, GN-45) [p1][!] */ { 0x503566b2, 366, 0 }, /* 4-in-1 (K-3131SS, GN-45) [p1][!] */
{0xDB2D2D88, 369, -1}, /* Super Mario Bros. Party.nes */ { 0xDB2D2D88, 369, -1 }, /* Super Mario Bros. Party.nes */
/* ines mappers that uses unif boards */ /* ines mappers that uses unif boards */
{0x0073dbd8, 260, -1}, /* 2-in-1 - Mortal Kombat V Turbo 30 + Super Aladdin (Unl) [p1][!] */ { 0x0073dbd8, 260, -1 }, /* 2-in-1 - Mortal Kombat V Turbo 30 + Super Aladdin (Unl) [p1][!] */
{0x4dc6107d, 260, -1}, /* 2-in-1 - Boogerman + Flintstones, The (Unl) [p1][!] */ { 0x4dc6107d, 260, -1 }, /* 2-in-1 - Boogerman + Flintstones, The (Unl) [p1][!] */
{0xb72b2cf4, 260, -1}, /* 2-in-1 - Aladdin + Lion King, The (Unl) [p1][!] */ { 0xb72b2cf4, 260, -1 }, /* 2-in-1 - Aladdin + Lion King, The (Unl) [p1][!] */
{0xa1dc16c0, 262, -1}, /* Street Heroes (Asia) (Ja) (Unl */ { 0x5638BA59, 260, -1 }, /* Mortal Kombat Trilogy - 8 People (M1274) (Ch) [!].nes */
{0x1df10182, 263, -1}, /* Boogerman II (Rex-Soft) [!].nes */ { 0xa1dc16c0, 262, -1 }, /* Street Heroes (Asia) (Ja) (Unl */
{0xf956fcea, 521, -1}, /* Korean Igo (Korea) (Unl) */ { 0x1df10182, 263, -1 }, /* Boogerman II (Rex-Soft) [!].nes */
{0x2EED2E34, 289, -1}, /* 76-in-1 [p1][a1].nes 2048 PRG, 0 CHR */ { 0xf956fcea, 521, -1 }, /* Korean Igo (Korea) (Unl) */
{ 0x2EED2E34, 289, -1 }, /* 76-in-1 [p1][a1].nes 2048 PRG, 0 CHR */
{0x00000000, -1, -1} { 0x00000000, -1, -1 }
#endif #endif

View File

@@ -571,7 +571,7 @@ static BMAPPING bmap[] = {
{ "HP2018-A", 260, BMCHPxx_Init, 0 }, { "HP2018-A", 260, BMCHPxx_Init, 0 },
{ "CHINA_ER_SAN2", 19, Mapper19_Init, 0 }, { "CHINA_ER_SAN2", 19, Mapper19_Init, 0 },
{ "WAIXING-FW01", 227, Mapper227_Init, 0 }, { "WAIXING-FW01", 227, Mapper227_Init, 0 },
{ "WAIXING-FS005", 176, BMCFK23C_Init, 0 }, { "WAIXING-FS005", 176, WAIXINGFS005_Init, 0 },
{ "80013-B", 274, BMC80013B_Init, 0 }, { "80013-B", 274, BMC80013B_Init, 0 },
{ "TH2131-1", 308, UNLTH21311_Init, 0 }, { "TH2131-1", 308, UNLTH21311_Init, 0 },
{ "LH51", 309, LH51_Init, 0 }, { "LH51", 309, LH51_Init, 0 },

View File

@@ -194,6 +194,7 @@ void BS110_Init(CartInfo *info);
void WellNoDG450_Init(CartInfo *info); void WellNoDG450_Init(CartInfo *info);
void AbG1l_Init(CartInfo *info); void AbG1l_Init(CartInfo *info);
void KG256_Init(CartInfo *info); void KG256_Init(CartInfo *info);
void WAIXINGFS005_Init(CartInfo *info);
#ifdef COPYFAMI #ifdef COPYFAMI
void MapperCopyFamiMMC3_Init(CartInfo *info); void MapperCopyFamiMMC3_Init(CartInfo *info);