Start assigning NES 2.0 mapper numbers to UNIF boards (256+ boards)

This commit is contained in:
retro-wertz
2019-07-08 21:42:20 +08:00
parent 51199e59d7
commit 8f19234f55
2 changed files with 283 additions and 197 deletions

View File

@@ -651,14 +651,96 @@ static BMAPPINGLocal bmap[] = {
{(uint8_t*)"", 254, Mapper254_Init},
{(uint8_t*)"", 255, Mapper255_Init}, /* Duplicate of M225? */
{(uint8_t*)"BMC-HPxx", 260, BMCHPxx_Init},
{(uint8_t*)"UNL-SHERO", 262, UNLSHeroes_Init},
/* -------------- ----NES 2.0 -------------------------- */
/* NES 2.0 BOARDS THAT DO NOT HAVE UNIF ASSOCIATION */
{(uint8_t*)"OK-411", 361, GN45_Init}, /* OK-411 is emulated together with GN-45 */
{(uint8_t*)"HUMMER/JY-052", 281, Mapper281_Init},
{(uint8_t*)"GN-45", 366, GN45_Init},
{(uint8_t*)"DREAMTECH01", 521, DreamTech01_Init},
{(uint8_t*)"GN-45", 366, GN45_Init},
{(uint8_t*)"", 0, NULL}
/* UNIF to NES 2.0 BOARDS */
{(uint8_t*)"OneBus", 256, UNLOneBus_Init },
{(uint8_t*)"158B", 258, UNL158B_Init },
{(uint8_t*)"F-15", 259, BMCF15_Init },
{(uint8_t*)"HPxx / HP2018-A", 260, BMCHPxx_Init },
{(uint8_t*)"810544-C-A1", 261, BMC810544CA1_Init },
{(uint8_t*)"SHERO", 262, UNLSHeroes_Init },
{(uint8_t*)"KOF97", 263, UNLKOF97_Init },
{(uint8_t*)"YOKO", 264, UNLYOKO_Init },
{(uint8_t*)"T-262", 265, BMCT262_Init },
{(uint8_t*)"CITYFIGHT", 266, UNLCITYFIGHT_Init },
{(uint8_t*)"COOLBOY", 268, COOLBOY_Init },
/* {(uint8_t*)"MINDKIDS", 268, MINDKIDS_Init }, */
{(uint8_t*)"80013-B", 274, BMC80013B_Init },
{(uint8_t*)"GS-2004", 283, BMCGS2004_Init },
/* {(uint8_t*)"GS-2013", 283, BMCGS2013_Init }, */
{(uint8_t*)"A65AS", 285, BMCA65AS_Init },
{(uint8_t*)"BS-5", 286, BMCBS5_Init },
{(uint8_t*)"411120-C", 287, BMC411120C_Init },
/* {(uint8_t*)"K-3088", 287, BMCK3088_Init }, */
{(uint8_t*)"60311C", 289, BMC60311C_Init },
{(uint8_t*)"NTD-03", 290, BMCNTD03_Init },
{(uint8_t*)"DRAGONFIGHTER", 292, UNLBMW8544_Init },
{(uint8_t*)"13in1JY110", 295, BMC13in1JY110_Init },
{(uint8_t*)"TF1201", 298, UNLTF1201_Init },
{(uint8_t*)"11160", 299, BMC11160_Init },
{(uint8_t*)"190in1", 300, BMC190in1_Init },
{(uint8_t*)"8157", 301, UNL8157_Init },
{(uint8_t*)"KS7057", 302, UNLKS7057_Init },
{(uint8_t*)"KS7017", 303, UNLKS7017_Init },
{(uint8_t*)"SMB2J", 304, UNLSMB2J_Init },
{(uint8_t*)"KS7031", 305, UNLKS7031_Init },
{(uint8_t*)"KS7016", 306, UNLKS7016_Init },
{(uint8_t*)"KS7037", 307, UNLKS7037_Init },
{(uint8_t*)"TH2131-1", 308, UNLTH21311_Init },
{(uint8_t*)"LH51", 309, LH51_Init },
{(uint8_t*)"KS7013B", 312, UNLKS7013B_Init },
{(uint8_t*)"RESET-TXROM", 313, BMCRESETTXROM_Init },
{(uint8_t*)"64in1NoRepeat", 314, BMC64in1nr_Init },
{(uint8_t*)"830134C", 315, BMC830134C_Init },
{(uint8_t*)"HP898F", 319, BMCHP898F_Init },
{(uint8_t*)"830425C-4391T", 320, BMC830425C4391T_Init },
{(uint8_t*)"K-3033", 322, BMCK3033_Init },
{(uint8_t*)"FARID_SLROM_8-IN-1", 323, FARIDSLROM8IN1_Init },
{(uint8_t*)"FARID_UNROM_8-IN-1", 324, FARIDUNROM_Init },
{(uint8_t*)"MALISB", 325, UNLMaliSB_Init },
{(uint8_t*)"10-24-C-A1", 327, BMC1024CA1_Init },
{(uint8_t*)"RT-01", 328, UNLRT01_Init },
{(uint8_t*)"EDU2000", 329, UNLEDU2000_Init },
{(uint8_t*)"12-IN-1", 331, BMC12IN1_Init },
{(uint8_t*)"WS", 332, BMCWS_Init },
{(uint8_t*)"NEWSTAR-GRM070-8IN1", 333, BMC8IN1_Init },
{(uint8_t*)"CTC-09", 335, BMCCTC09_Init },
{(uint8_t*)"K-3046", 336, BMCK3046_Init },
{(uint8_t*)"CTC-12IN1", 337, BMCCTC12IN1_Init },
{(uint8_t*)"SA005-A", 338, BMCSA005A_Init },
{(uint8_t*)"K-3006", 339, BMCK3006_Init },
{(uint8_t*)"K-3036", 340, BMCK3036_Init },
{(uint8_t*)"TJ-03", 341, BMCTJ03_Init },
{(uint8_t*)"GN-26", 344, BMCGN26_Init },
{(uint8_t*)"L6IN1", 345, BMCL6IN1_Init },
{(uint8_t*)"KS7012", 346, UNLKS7012_Init },
{(uint8_t*)"KS7030", 347, UNLKS7030_Init },
{(uint8_t*)"830118C", 348, BMC830118C_Init },
{(uint8_t*)"G-146", 349, BMCG146_Init },
{(uint8_t*)"891227", 350, BMC891227_Init },
{(uint8_t*)"3D-BLOCK", 355, UNL3DBlock_Init },
{(uint8_t*)"SA-9602B", 513, SA9602B_Init },
{(uint8_t*)"DANCE2000", 518, UNLD2000_Init },
{(uint8_t*)"EH8813A", 519, UNLEH8813A_Init },
{(uint8_t*)"DREAMTECH01", 521, DreamTech01_Init },
{(uint8_t*)"LH10", 522, LH10_Init },
{(uint8_t*)"900218", 524, BTL900218_Init },
{(uint8_t*)"KS7021A", 525, UNLKS7021A_Init },
{(uint8_t*)"BJ-56", 526, UNLBJ56_Init },
{(uint8_t*)"AX-40G", 527, UNLAX40G_Init },
{(uint8_t*)"T-230", 529, UNLT230_Init },
{(uint8_t*)"AX5705", 530, UNLAX5705_Init },
{(uint8_t*)"LH53", 535, LH53_Init },
{(uint8_t*)"", 0, NULL}
};
int iNESLoad(const char *name, FCEUFILE *fp) {
@@ -917,8 +999,10 @@ static int iNES_Init(int num) {
case 29:
case 30:
case 45:
case 96: CHRRAMSize = 32 * 1024; break;
case 96:
case 513: CHRRAMSize = 32 * 1024; break;
case 176: CHRRAMSize = 128 * 1024; break;
case 268: CHRRAMSize = 256 * 1024; break;
default: CHRRAMSize = 8 * 1024; break;
}
iNESCart.chrRam = CHRRAMSize;

View File

@@ -47,6 +47,7 @@ typedef struct {
typedef struct {
char *name;
int ines_mapper;
void (*init)(CartInfo *);
int flags;
} BMAPPING;
@@ -378,6 +379,7 @@ static void CheckHashInfo(void) {
}
#define NO_INES -1
#define BMCFLAG_FORCE4 0x01
#define BMCFLAG_16KCHRR 0x02
#define BMCFLAG_32KCHRR 0x04
@@ -385,201 +387,201 @@ static void CheckHashInfo(void) {
#define BMCFLAG_256KCHRR 0x10
static BMAPPING bmap[] = {
{ "11160", BMC11160_Init, 0 },
{ "12-IN-1", BMC12IN1_Init, 0 },
{ "13in1JY110", BMC13in1JY110_Init, 0 },
{ "190in1", BMC190in1_Init, 0 },
{ "22211", UNL22211_Init, 0 },
{ "3D-BLOCK", UNL3DBlock_Init, 0 },
{ "411120-C", BMC411120C_Init, 0 },
{ "42in1ResetSwitch", Mapper226_Init, 0 },
{ "43272", UNL43272_Init, 0 },
{ "603-5052", UNL6035052_Init, 0 },
{ "64in1NoRepeat", BMC64in1nr_Init, 0 },
{ "70in1", BMC70in1_Init, 0 },
{ "70in1B", BMC70in1B_Init, 0 },
{ "810544-C-A1", BMC810544CA1_Init, 0 },
{ "8157", UNL8157_Init, 0 },
{ "8237", UNL8237_Init, 0 },
{ "8237A", UNL8237A_Init, 0 },
{ "830118C", BMC830118C_Init, 0 },
{ "A65AS", BMCA65AS_Init, 0 },
{ "AC08", AC08_Init, 0 },
{ "ANROM", ANROM_Init, 0 },
{ "AX5705", UNLAX5705_Init, 0 },
{ "BB", UNLBB_Init, 0 },
{ "BS-5", BMCBS5_Init, 0 },
{ "CC-21", UNLCC21_Init, 0 },
{ "CITYFIGHT", UNLCITYFIGHT_Init, 0 },
{ "10-24-C-A1", BMC1024CA1_Init, 0 },
{ "CNROM", CNROM_Init, 0 },
{ "CPROM", CPROM_Init, BMCFLAG_16KCHRR },
{ "D1038", BMCD1038_Init, 0 },
{ "DANCE", UNLOneBus_Init, 0 }, /* redundant */
{ "DANCE2000", UNLD2000_Init, 0 },
{ "DREAMTECH01", DreamTech01_Init, 0 },
{ "EDU2000", UNLEDU2000_Init, 0 },
{ "EKROM", EKROM_Init, 0 },
{ "ELROM", ELROM_Init, 0 },
{ "ETROM", ETROM_Init, 0 },
{ "EWROM", EWROM_Init, 0 },
{ "FK23C", BMCFK23C_Init, BMCFLAG_256KCHRR },
{ "FK23CA", BMCFK23CA_Init, BMCFLAG_256KCHRR },
{ "FS304", UNLFS304_Init, 0 },
{ "G-146", BMCG146_Init, 0 },
{ "GK-192", BMCGK192_Init, 0 },
{ "GS-2004", BMCGS2004_Init, 0 },
{ "GS-2013", BMCGS2013_Init, 0 },
{ "Ghostbusters63in1", BMCGhostbusters63in1_Init, 0 },
{ "H2288", UNLH2288_Init, 0 },
{ "HKROM", HKROM_Init, 0 },
{ "KOF97", UNLKOF97_Init, 0 },
{ "KONAMI-QTAI", Mapper190_Init, 0 },
{ "KS7012", UNLKS7012_Init, 0 },
{ "KS7013B", UNLKS7013B_Init, 0 },
{ "KS7016", UNLKS7016_Init, 0 },
{ "KS7017", UNLKS7017_Init, 0 },
{ "KS7030", UNLKS7030_Init, 0 },
{ "KS7031", UNLKS7031_Init, 0 },
{ "KS7032", UNLKS7032_Init, 0 },
{ "KS7037", UNLKS7037_Init, 0 },
{ "KS7057", UNLKS7057_Init, 0 },
{ "LE05", LE05_Init, 0 },
{ "LH10", LH10_Init, 0 },
{ "LH32", LH32_Init, 0 },
{ "LH53", LH53_Init, 0 },
{ "MALISB", UNLMaliSB_Init, 0 },
{ "MARIO1-MALEE2", MALEE_Init, 0 },
{ "MHROM", MHROM_Init, 0 },
{ "N625092", UNLN625092_Init, 0 },
{ "NROM", NROM_Init, 0 },
{ "NROM-128", NROM_Init, 0 },
{ "NROM-256", NROM_Init, 0 },
{ "NTBROM", Mapper68_Init, 0 },
{ "NTD-03", BMCNTD03_Init, 0 },
{ "NovelDiamond9999999in1", Novel_Init, 0 },
{ "OneBus", UNLOneBus_Init, 0 },
{ "PEC-586", UNLPEC586Init, 0 },
{ "RROM", NROM_Init, 0 },
{ "RROM-128", NROM_Init, 0 },
{ "SA-002", TCU02_Init, 0 },
{ "SA-0036", SA0036_Init, 0 },
{ "SA-0037", SA0037_Init, 0 },
{ "SA-009", SA009_Init, 0 },
{ "SA-016-1M", SA0161M_Init, 0 },
{ "SA-72007", SA72007_Init, 0 },
{ "SA-72008", SA72008_Init, 0 },
{ "SA-9602B", SA9602B_Init, BMCFLAG_32KCHRR },
{ "SA-NROM", TCA01_Init, 0 },
{ "SAROM", SAROM_Init, 0 },
{ "SBROM", SBROM_Init, 0 },
{ "SC-127", UNLSC127_Init, 0 },
{ "SCROM", SCROM_Init, 0 },
{ "SEROM", SEROM_Init, 0 },
{ "SGROM", SGROM_Init, 0 },
{ "SHERO", UNLSHeroes_Init, 0 },
{ "SKROM", SKROM_Init, 0 },
{ "SL12", UNLSL12_Init, 0 },
{ "SL1632", UNLSL1632_Init, 0 },
{ "SL1ROM", SL1ROM_Init, 0 },
{ "SLROM", SLROM_Init, 0 },
{ "SMB2J", UNLSMB2J_Init, 0 },
{ "SNROM", SNROM_Init, 0 },
{ "SOROM", SOROM_Init, 0 },
{ "SSS-NROM-256", SSSNROM_Init, 0 },
{ "SUNSOFT_UNROM", SUNSOFT_UNROM_Init, 0 }, /* fix me, real pcb name, real pcb type */
{ "Sachen-74LS374N", S74LS374N_Init, 0 },
{ "Sachen-74LS374NA", S74LS374NA_Init, 0 }, /* seems to be custom mapper */
{ "Sachen-8259A", S8259A_Init, 0 },
{ "Sachen-8259B", S8259B_Init, 0 },
{ "Sachen-8259C", S8259C_Init, 0 },
{ "Sachen-8259D", S8259D_Init, 0 },
{ "Super24in1SC03", Super24_Init, 0 },
{ "SuperHIK8in1", Mapper45_Init, 0 },
{ "Supervision16in1", Supervision16_Init, 0 },
{ "T-227-1", BMCT2271_Init, 0 },
{ "T-230", UNLT230_Init, 0 },
{ "T-262", BMCT262_Init, 0 },
{ "TBROM", TBROM_Init, 0 },
{ "TC-U01-1.5M", TCU01_Init, 0 },
{ "TEK90", Mapper90_Init, 0 },
{ "TEROM", TEROM_Init, 0 },
{ "TF1201", UNLTF1201_Init, 0 },
{ "TFROM", TFROM_Init, 0 },
{ "TGROM", TGROM_Init, 0 },
{ "TKROM", TKROM_Init, 0 },
{ "TKSROM", TKSROM_Init, 0 },
{ "TLROM", TLROM_Init, 0 },
{ "TLSROM", TLSROM_Init, 0 },
{ "TQROM", TQROM_Init, 0 },
{ "TR1ROM", TFROM_Init, BMCFLAG_FORCE4 },
{ "TSROM", TSROM_Init, 0 },
{ "TVROM", TLROM_Init, BMCFLAG_FORCE4 },
{ "Transformer", Transformer_Init, 0 },
{ "UNROM", UNROM_Init, 0 },
{ "UNROM-512-8", UNROM512_Init, 0 },
{ "UNROM-512-16", UNROM512_Init, BMCFLAG_16KCHRR },
{ "UNROM-512-32", UNROM512_Init, BMCFLAG_32KCHRR },
{ "UOROM", UNROM_Init, 0 },
{ "VRC7", UNLVRC7_Init, 0 },
{ "YOKO", UNLYOKO_Init, 0 },
{ "COOLBOY", COOLBOY_Init, BMCFLAG_256KCHRR },
{ "158B", UNL158B_Init, 0 },
{ "DRAGONFIGHTER", UNLBMW8544_Init, 0 },
{ "EH8813A", UNLEH8813A_Init, 0 },
{ "HP898F", BMCHP898F_Init, 0 },
{ "F-15", BMCF15_Init, 0 },
{ "RT-01", UNLRT01_Init, 0 },
{ "81-01-31-C", BMC810131C_Init, 0 },
{ "8-IN-1", BMC8IN1_Init, 0 },
{ "RET-CUFROM", Mapper29_Init, BMCFLAG_32KCHRR },
{ "60311C", BMC60311C_Init, 0 },
{ "WS", BMCWS_Init, 0 },
{ "HPxx", BMCHPxx_Init, 0 },
{ "HP2018-A", BMCHPxx_Init, 0 },
{ "CHINA_ER_SAN2", Mapper19_Init, 0 }, /* http://forums.nesdev.com/viewtopic.php?t=16465&p=216531 */
{ "WAIXING-FW01", Mapper227_Init, 0 }, /* https://wiki.nesdev.com/w/index.php/Talk:INES_Mapper_242 */
{ "WAIXING-FS005", BMCFK23C_Init, 0 }, /* https://wiki.nesdev.com/w/index.php/INES_Mapper_176 */
{ "80013-B", BMC80013B_Init, 0 },
{ "TH2131-1", UNLTH21311_Init, 0 },
{ "LH51", LH51_Init, 0 },
{ "RESETNROM-XIN1", BMCRESETNROMXIN1_Init, 0 },
{ " BMC-RESET-TXROM", BMCRESETTXROM_Init, 0 },
{ "RESET-TXROM", BMCRESETTXROM_Init, 0 },
{ "K-3088", BMCK3088_Init, 0 },
{ "FARID_SLROM_8-IN-1", FARIDSLROM8IN1_Init, 0 },
{ "830425C-4391T", BMC830425C4391T_Init, 0 },
{ "TJ-03", BMCTJ03_Init, 0 },
{ "CTC-09", BMCCTC09_Init, 0 },
{ "K-3046", BMCK3046_Init, 0 },
{ "SA005-A", BMCSA005A_Init, 0 },
{ "K-3006", BMCK3006_Init, 0 },
{ "K-3036", BMCK3036_Init, 0 },
{ "MINDKIDS", MINDKIDS_Init, BMCFLAG_256KCHRR },
{ "KS7021A", UNLKS7021A_Init, 0 },
{ "KS106C", BMCKS106C_Init, 0 },
{ "900218", BTL900218_Init, 0 },
{ "JC-016-2", Mapper205_Init, 0 },
{ "AX-40G", UNLAX40G_Init, 0 },
{ " BMC-STREETFIGTER-GAME4IN1", BMCSFGAME4IN1_Init, 0 },
{ "G631", BMCGhostbusters63in1_Init, 0 },
{ "BJ-56", UNLBJ56_Init, 0 },
{ "L6IN1", BMCL6IN1_Init, 0 },
{ "CTC-12IN1", BMCCTC12IN1_Init, 0 },
{ "891227", BMC891227_Init, 0 },
{ "NEWSTAR-GRM070-8IN1", BMC8IN1_Init, 0 },
{ "FARID_UNROM_8-IN-1", FARIDUNROM_Init, 0 },
{ "K-3033", BMCK3033_Init, 0 },
{ "830134C", BMC830134C_Init, 0 },
{ "GN-26", BMCGN26_Init, 0 },
{ "T4A54A", Mapper134_Init, 0 },
{ "11160", 299, BMC11160_Init, 0 },
{ "12-IN-1", 331, BMC12IN1_Init, 0 },
{ "13in1JY110", 295, BMC13in1JY110_Init, 0 },
{ "190in1", 300, BMC190in1_Init, 0 },
{ "22211", 132, UNL22211_Init, 0 },
{ "3D-BLOCK", 355, UNL3DBlock_Init, 0 },
{ "411120-C", 287, BMC411120C_Init, 0 },
{ "42in1ResetSwitch", 226, Mapper226_Init, 0 },
{ "43272", 227, UNL43272_Init, 0 },
{ "603-5052", 238, UNL6035052_Init, 0 },
{ "64in1NoRepeat", 314, BMC64in1nr_Init, 0 },
{ "70in1", 236, BMC70in1_Init, 0 },
{ "70in1B", 236, BMC70in1B_Init, 0 },
{ "810544-C-A1", 261, BMC810544CA1_Init, 0 },
{ "8157", 301, UNL8157_Init, 0 },
{ "8237", 215, UNL8237_Init, 0 },
{ "8237A", 215, UNL8237A_Init, 0 },
{ "830118C", 348, BMC830118C_Init, 0 },
{ "A65AS", 285, BMCA65AS_Init, 0 },
{ "AC08", NO_INES, AC08_Init, 0 }, /* Mapper 42.. but not.. Used for Green Beret */
{ "ANROM", 7, ANROM_Init, 0 },
{ "AX5705", 530, UNLAX5705_Init, 0 },
{ "BB", 108, UNLBB_Init, 0 },
{ "BS-5", 286, BMCBS5_Init, 0 },
{ "CC-21", 27, UNLCC21_Init, 0 },
{ "CITYFIGHT", 266, UNLCITYFIGHT_Init, 0 },
{ "10-24-C-A1", 327, BMC1024CA1_Init, 0 },
{ "CNROM", 3, CNROM_Init, 0 },
{ "CPROM", 13, CPROM_Init, BMCFLAG_16KCHRR },
{ "D1038", 59, BMCD1038_Init, 0 },
{ "DANCE", 256, UNLOneBus_Init, 0 }, /* redundant */
{ "DANCE2000", 518, UNLD2000_Init, 0 },
{ "DREAMTECH01", 521, DreamTech01_Init, 0 },
{ "EDU2000", 329, UNLEDU2000_Init, 0 },
{ "EKROM", 5, EKROM_Init, 0 },
{ "ELROM", 5, ELROM_Init, 0 },
{ "ETROM", 5, ETROM_Init, 0 },
{ "EWROM", 5, EWROM_Init, 0 },
{ "FK23C", 176, BMCFK23C_Init, BMCFLAG_256KCHRR },
{ "FK23CA", 176, BMCFK23CA_Init, BMCFLAG_256KCHRR },
{ "FS304", 162, UNLFS304_Init, 0 },
{ "G-146", 349, BMCG146_Init, 0 },
{ "GK-192", NO_INES, BMCGK192_Init, 0 }, /* mapper 58? */
{ "GS-2004", 283, BMCGS2004_Init, 0 },
{ "GS-2013", 283, BMCGS2013_Init, 0 },
{ "Ghostbusters63in1", NO_INES, BMCGhostbusters63in1_Init, 0 }, /* 226 is non-split version */
{ "H2288", 123, UNLH2288_Init, 0 },
{ "HKROM", 4, HKROM_Init, 0 },
{ "KOF97", 263, UNLKOF97_Init, 0 },
{ "KONAMI-QTAI", NO_INES, Mapper190_Init, 0 },
{ "KS7012", 346, UNLKS7012_Init, 0 },
{ "KS7013B", 312, UNLKS7013B_Init, 0 },
{ "KS7016", 306, UNLKS7016_Init, 0 },
{ "KS7017", 303, UNLKS7017_Init, 0 },
{ "KS7030", 347, UNLKS7030_Init, 0 },
{ "KS7031", 305, UNLKS7031_Init, 0 },
{ "KS7032", 142, UNLKS7032_Init, 0 },
{ "KS7037", 307, UNLKS7037_Init, 0 },
{ "KS7057", 302, UNLKS7057_Init, 0 },
{ "LE05", NO_INES, LE05_Init, 0 },
{ "LH10", 522, LH10_Init, 0 },
{ "LH32", 125, LH32_Init, 0 },
{ "LH53", 535, LH53_Init, 0 },
{ "MALISB", 325, UNLMaliSB_Init, 0 },
{ "MARIO1-MALEE2", 42, MALEE_Init, 0 },
{ "MHROM", 66, MHROM_Init, 0 },
{ "N625092", 221, UNLN625092_Init, 0 },
{ "NROM", 0, NROM_Init, 0 },
{ "NROM-128", 0, NROM_Init, 0 },
{ "NROM-256", 0, NROM_Init, 0 },
{ "NTBROM", 68, Mapper68_Init, 0 },
{ "NTD-03", 290, BMCNTD03_Init, 0 },
{ "NovelDiamond9999999in1", 201, Novel_Init, 0 },
{ "OneBus", 256, UNLOneBus_Init, 0 },
{ "PEC-586", NO_INES, UNLPEC586Init, 0 },
{ "RROM", 0, NROM_Init, 0 },
{ "RROM-128", 0, NROM_Init, 0 },
{ "SA-002", 136, TCU02_Init, 0 },
{ "SA-0036", 149, SA0036_Init, 0 },
{ "SA-0037", 148, SA0037_Init, 0 },
{ "SA-009", 160, SA009_Init, 0 },
{ "SA-016-1M", 146, SA0161M_Init, 0 },
{ "SA-72007", 145, SA72007_Init, 0 },
{ "SA-72008", 133, SA72008_Init, 0 },
{ "SA-9602B", 513, SA9602B_Init, BMCFLAG_32KCHRR },
{ "SA-NROM", 143, TCA01_Init, 0 },
{ "SAROM", 1, SAROM_Init, 0 },
{ "SBROM", 1, SBROM_Init, 0 },
{ "SC-127", 35, UNLSC127_Init, 0 },
{ "SCROM", 1, SCROM_Init, 0 },
{ "SEROM", 1, SEROM_Init, 0 },
{ "SGROM", 1, SGROM_Init, 0 },
{ "SHERO", 262, UNLSHeroes_Init, 0 },
{ "SKROM", 1, SKROM_Init, 0 },
{ "SL12", 116, UNLSL12_Init, 0 },
{ "SL1632", 14, UNLSL1632_Init, 0 },
{ "SL1ROM", 1, SL1ROM_Init, 0 },
{ "SLROM", 1, SLROM_Init, 0 },
{ "SMB2J", 304, UNLSMB2J_Init, 0 },
{ "SNROM", 1, SNROM_Init, 0 },
{ "SOROM", 1, SOROM_Init, 0 },
{ "SSS-NROM-256", NO_INES, SSSNROM_Init, 0 },
{ "SUNSOFT_UNROM", 93, SUNSOFT_UNROM_Init, 0 }, /* fix me, real pcb name, real pcb type */
{ "Sachen-74LS374N", 150, S74LS374N_Init, 0 },
{ "Sachen-74LS374NA", 243, S74LS374NA_Init, 0 }, /* seems to be custom mapper */
{ "Sachen-8259A", 141, S8259A_Init, 0 },
{ "Sachen-8259B", 138, S8259B_Init, 0 },
{ "Sachen-8259C", 139, S8259C_Init, 0 },
{ "Sachen-8259D", 137, S8259D_Init, 0 },
{ "Super24in1SC03", 176, Super24_Init, 0 },
{ "SuperHIK8in1", 45, Mapper45_Init, 0 },
{ "Supervision16in1", 53, Supervision16_Init, 0 },
{ "T-227-1", NO_INES, BMCT2271_Init, 0 },
{ "T-230", 529, UNLT230_Init, 0 },
{ "T-262", 265, BMCT262_Init, 0 },
{ "TBROM", 4, TBROM_Init, 0 },
{ "TC-U01-1.5M", 147, TCU01_Init, 0 },
{ "TEK90", 90, Mapper90_Init, 0 },
{ "TEROM", 4, TEROM_Init, 0 },
{ "TF1201", 298, UNLTF1201_Init, 0 },
{ "TFROM", 4, TFROM_Init, 0 },
{ "TGROM", 4, TGROM_Init, 0 },
{ "TKROM", 4, TKROM_Init, 0 },
{ "TKSROM", 118, TKSROM_Init, 0 },
{ "TLROM", 4, TLROM_Init, 0 },
{ "TLSROM", 118, TLSROM_Init, 0 },
{ "TQROM", 119, TQROM_Init, 0 },
{ "TR1ROM", 4, TFROM_Init, BMCFLAG_FORCE4 },
{ "TSROM", 4, TSROM_Init, 0 },
{ "TVROM", 4, TLROM_Init, BMCFLAG_FORCE4 },
{ "Transformer", NO_INES, Transformer_Init, 0 },
{ "UNROM", 2, UNROM_Init, 0 },
{ "UNROM-512-8", 30, UNROM512_Init, 0 },
{ "UNROM-512-16", 30, UNROM512_Init, BMCFLAG_16KCHRR },
{ "UNROM-512-32", 30, UNROM512_Init, BMCFLAG_32KCHRR },
{ "UOROM", 2, UNROM_Init, 0 },
{ "VRC7", 85, UNLVRC7_Init, 0 },
{ "YOKO", 264, UNLYOKO_Init, 0 },
{ "COOLBOY", 268, COOLBOY_Init, BMCFLAG_256KCHRR },
{ "158B", 258, UNL158B_Init, 0 },
{ "DRAGONFIGHTER", 292, UNLBMW8544_Init, 0 },
{ "EH8813A", 519, UNLEH8813A_Init, 0 },
{ "HP898F", 319, BMCHP898F_Init, 0 },
{ "F-15", 259, BMCF15_Init, 0 },
{ "RT-01", 328, UNLRT01_Init, 0 },
{ "81-01-31-C", NO_INES, BMC810131C_Init, 0 },
{ "8-IN-1", 333, BMC8IN1_Init, 0 },
{ "RET-CUFROM", 29, Mapper29_Init, BMCFLAG_32KCHRR },
{ "60311C", 289, BMC60311C_Init, 0 },
{ "WS", 332, BMCWS_Init, 0 },
{ "HPxx", 260, BMCHPxx_Init, 0 },
{ "HP2018-A", 260, BMCHPxx_Init, 0 },
{ "CHINA_ER_SAN2", 19, Mapper19_Init, 0 },
{ "WAIXING-FW01", 227, Mapper227_Init, 0 },
{ "WAIXING-FS005", 176, BMCFK23C_Init, 0 },
{ "80013-B", 274, BMC80013B_Init, 0 },
{ "TH2131-1", 308, UNLTH21311_Init, 0 },
{ "LH51", 309, LH51_Init, 0 },
{ "RESETNROM-XIN1", NO_INES, BMCRESETNROMXIN1_Init, 0 }, /* split roms */
{ " BMC-RESET-TXROM", 313, BMCRESETTXROM_Init, 0 },
{ "RESET-TXROM", 313, BMCRESETTXROM_Init, 0 },
{ "K-3088", 287, BMCK3088_Init, 0 },
{ "FARID_SLROM_8-IN-1", 323, FARIDSLROM8IN1_Init, 0 },
{ "830425C-4391T", 320, BMC830425C4391T_Init, 0 },
{ "TJ-03", 341, BMCTJ03_Init, 0 },
{ "CTC-09", 335, BMCCTC09_Init, 0 },
{ "K-3046", 336, BMCK3046_Init, 0 },
{ "SA005-A", 338, BMCSA005A_Init, 0 },
{ "K-3006", 339, BMCK3006_Init, 0 },
{ "K-3036", 340, BMCK3036_Init, 0 },
{ "MINDKIDS", 268, MINDKIDS_Init, BMCFLAG_256KCHRR },
{ "KS7021A", 525, UNLKS7021A_Init, 0 },
{ "KS106C", NO_INES, BMCKS106C_Init, 0 }, /* split roms */
{ "900218", 524, BTL900218_Init, 0 },
{ "JC-016-2", 205, Mapper205_Init, 0 },
{ "AX-40G", 527, UNLAX40G_Init, 0 },
{ " BMC-STREETFIGTER-GAME4IN1", NO_INES, BMCSFGAME4IN1_Init, 0 }, /* mapper 49? */
{ "G631", 226, BMCGhostbusters63in1_Init, 0 }, /* duplicate, probably wrong name */
{ "BJ-56", 526, UNLBJ56_Init, 0 },
{ "L6IN1", 345, BMCL6IN1_Init, 0 },
{ "CTC-12IN1", 337, BMCCTC12IN1_Init, 0 },
{ "891227", 350, BMC891227_Init, 0 },
{ "NEWSTAR-GRM070-8IN1", 333, BMC8IN1_Init, 0 },
{ "FARID_UNROM_8-IN-1", 324, FARIDUNROM_Init, 0 },
{ "K-3033", 322, BMCK3033_Init, 0 },
{ "830134C", 315, BMC830134C_Init, 0 },
{ "GN-26", 344, BMCGN26_Init, 0 },
{ "T4A54A", 134, Mapper134_Init, 0 },
#ifdef COPYFAMI
{ "COPYFAMI_MMC3", MapperCopyFamiMMC3_Init, 0 },
{ "COPYFAMI", MapperCopyFami_Init, 0 },
{ "COPYFAMI_MMC3", NO_INES, MapperCopyFamiMMC3_Init, 0 },
{ "COPYFAMI", NO_INES, MapperCopyFami_Init, 0 },
#endif
{ NULL, NULL, 0 }
{ NULL, NO_INES, NULL, 0 }
};
static BFMAPPING bfunc[] = {