diff --git a/src/ines.c b/src/ines.c index 68371f2..1db9530 100644 --- a/src/ines.c +++ b/src/ines.c @@ -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; diff --git a/src/unif.c b/src/unif.c index ce3c61a..7f8e672 100644 --- a/src/unif.c +++ b/src/unif.c @@ -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[] = {