+ 228\r
+};\r
+typedef struct {\r
+ char* name;\r
+ int number;\r
+ void (*init)(CartInfo *);\r
+} BMAPPINGLocal;\r
+\r
+static BMAPPINGLocal bmap[] = {\r
+ {"NROM", 0, NROM_Init},\r
+ {"MMC1", 1, Mapper1_Init},\r
+ {"UNROM", 2, UNROM_Init},\r
+ {"CNROM", 3, CNROM_Init},\r
+ {"MMC3", 4, Mapper4_Init},\r
+ {"MMC5", 5, Mapper5_Init},\r
+// {6, Mapper6_Init},\r
+ {"ANROM", 7, ANROM_Init},\r
+ {"", 8, Mapper8_Init}, // Nogaems, it's worthless\r
+// {9, Mapper9_Init},\r
+// {10, Mapper10_Init},\r
+ {"Color Dreams", 11, Mapper11_Init},\r
+ {"", 12, Mapper12_Init},\r
+ {"CPROM", 13, CPROM_Init},\r
+// {14, Mapper14_Init},\r
+ {"100-in1", 15, Mapper15_Init},\r
+ {"Bandai", 16, Mapper16_Init},\r
+ {"", 17, Mapper17_Init},\r
+ {"", 18, Mapper18_Init},\r
+ {"Namcot 106", 19, Mapper19_Init},\r
+// {20, Mapper20_Init},\r
+// {21, Mapper21_Init},\r
+// {22, Mapper22_Init},\r
+ {"Konami VRC2 type B", 23, Mapper23_Init},\r
+// {24, Mapper24_Init},\r
+// {25, Mapper25_Init},\r
+// {26, Mapper26_Init},\r
+// {27, Mapper27_Init},\r
+// {28, Mapper28_Init},\r
+// {29, Mapper29_Init},\r
+// {30, Mapper30_Init},\r
+// {31, Mapper31_Init},\r
+// {32, Mapper32_Init},\r
+// {33, Mapper33_Init},\r
+ {"", 34, Mapper34_Init},\r
+ {"Wario Land 2", 35, UNLSC127_Init}, // Wario Land 2\r
+ {"TXC Policeman", 36, Mapper36_Init}, // TXC Policeman\r
+ {"", 37, Mapper37_Init},\r
+ {"Bit Corp. Crime Busters", 38, Mapper38_Init}, // Bit Corp. Crime Busters\r
+// {39, Mapper39_Init},\r
+// {40, Mapper40_Init},\r
+// {41, Mapper41_Init},\r
+// {42, Mapper42_Init},\r
+ {"", 43, Mapper43_Init},\r
+ {"", 44, Mapper44_Init},\r
+ {"", 45, Mapper45_Init},\r
+// {46, Mapper46_Init},\r
+ {"", 47, Mapper47_Init},\r
+// {48, Mapper48_Init},\r
+ {"", 49, Mapper49_Init},\r
+// {50, Mapper50_Init},\r
+// {51, Mapper51_Init},\r
+ {"", 52, Mapper52_Init},\r
+// {53, Mapper53_Init},\r
+// {54, Mapper54_Init},\r
+// {55, Mapper55_Init},\r
+// {56, Mapper56_Init},\r
+ {"", 57, Mapper57_Init},\r
+ {"", 58, BMCGK192_Init},\r
+// {59, Mapper59_Init},\r
+ {"", 60, BMCD1038_Init},\r
+// {61, Mapper61_Init},\r
+// {62, Mapper62_Init},\r
+// {63, Mapper63_Init},\r
+// {64, Mapper64_Init},\r
+// {65, Mapper65_Init},\r
+ {"MHROM", 66, MHROM_Init},\r
+// {67, Mapper67_Init},\r
+ {"Sunsoft Mapper #4", 68, Mapper68_Init},\r
+// {69, Mapper69_Init},\r
+ {"", 70, Mapper70_Init},\r
+// {71, Mapper71_Init},\r
+// {72, Mapper72_Init},\r
+// {73, Mapper73_Init},\r
+ {"", 74, Mapper74_Init},\r
+// {75, Mapper75_Init},\r
+// {76, Mapper76_Init},\r
+// {77, Mapper77_Init},\r
+ {"Irem 74HC161/32", 78, Mapper78_Init},\r
+// {79, Mapper79_Init},\r
+// {80, Mapper80_Init},\r
+// {81, Mapper81_Init},\r
+ {"", 82, Mapper82_Init},\r
+ {"", 83, Mapper83_Init},\r
+// {84, Mapper84_Init},\r
+// {85, Mapper85_Init},\r
+ {"", 86, Mapper86_Init},\r
+ {"", 87, Mapper87_Init},\r
+ {"", 88, Mapper88_Init},\r
+ {"", 89, Mapper89_Init},\r
+ {"", 90, Mapper90_Init},\r
+ {"", 91, Mapper91_Init},\r
+ {"", 92, Mapper92_Init},\r
+ {"Sunsoft UNROM", 93, SUNSOFT_UNROM_Init},\r
+ {"", 94, Mapper94_Init},\r
+ {"", 95, Mapper95_Init},\r
+ {"", 96, Mapper96_Init},\r
+ {"", 97, Mapper97_Init},\r
+// {98, Mapper98_Init},\r
+ {"", 99, Mapper99_Init},\r
+// {100, Mapper100_Init},\r
+ {"", 101, Mapper101_Init},\r
+// {102, Mapper102_Init},\r
+ {"", 103, Mapper103_Init},\r
+// {104, Mapper104_Init},\r
+ {"", 105, Mapper105_Init},\r
+ {"", 106, Mapper106_Init},\r
+ {"", 107, Mapper107_Init},\r
+ {"", 108, Mapper108_Init},\r
+// {109, Mapper109_Init},\r
+// {110, Mapper110_Init},\r
+// {111, Mapper111_Init},\r
+ {"", 112, Mapper112_Init},\r
+ {"", 113, Mapper113_Init},\r
+ {"", 114, Mapper114_Init},\r
+ {"", 115, Mapper115_Init},\r
+ {"UNLSL12", 116, UNLSL12_Init},\r
+ {"", 117, Mapper117_Init},\r
+ {"TSKROM", 118, TKSROM_Init},\r
+ {"", 119, Mapper119_Init},\r
+ {"", 120, Mapper120_Init},\r
+ {"", 121, Mapper121_Init},\r
+// {122, Mapper122_Init},\r
+ {"UNLH2288", 123, UNLH2288_Init},\r
+// {124, Mapper124_Init},\r
+// {125, Mapper125_Init},\r
+// {126, Mapper126_Init},\r
+// {127, Mapper127_Init},\r
+// {128, Mapper128_Init},\r
+// {129, Mapper129_Init},\r
+// {130, Mapper130_Init},\r
+// {131, Mapper131_Init},\r
+ {"UNL22211", 132, UNL22211_Init},\r
+ {"SA72008", 133, SA72008_Init},\r
+ {"", 134, Mapper134_Init},\r
+// {135, Mapper135_Init},\r
+ {"TCU02", 136, TCU02_Init},\r
+ {"S8259D", 137, S8259D_Init},\r
+ {"S8259B", 138, S8259B_Init},\r
+ {"S8259C", 139, S8259C_Init},\r
+ {"", 140, Mapper140_Init},\r
+ {"S8259A", 141, S8259A_Init},\r
+ {"UNLKS7032", 142, UNLKS7032_Init},\r
+ {"TCA01", 143, TCA01_Init},\r
+ {"", 144, Mapper144_Init},\r
+ {"SA72007", 145, SA72007_Init},\r
+ {"SA0161M", 146, SA0161M_Init},\r
+ {"TCU01", 147, TCU01_Init},\r
+ {"SA0037", 148, SA0037_Init},\r
+ {"SA0036", 149, SA0036_Init},\r
+ {"S74LS374N", 150, S74LS374N_Init},\r
+ {"", 151, Mapper151_Init},\r
+ {"", 152, Mapper152_Init},\r
+ {"", 153, Mapper153_Init},\r
+ {"", 154, Mapper154_Init},\r
+ {"", 155, Mapper155_Init},\r
+ {"", 156, Mapper156_Init},\r
+ {"", 157, Mapper157_Init},\r
+// {158, Mapper158_Init},\r
+// {159, Mapper159_Init},\r
+ {"SA009", 160, SA009_Init},\r
+// {161, Mapper161_Init},\r
+ {"", 162, UNLFS304_Init},\r
+ {"", 163, Mapper163_Init},\r
+ {"", 164, Mapper164_Init},\r
+ {"", 165, Mapper165_Init},\r
+// {166, Mapper166_Init},\r
+// {167, Mapper167_Init},\r
+ {"", 168, Mapper168_Init},\r
+// {169, Mapper169_Init},\r
+ {"", 171, Mapper171_Init},\r
+ {"", 172, Mapper172_Init},\r
+ {"", 173, Mapper173_Init},\r
+ {"", 175, Mapper175_Init},\r
+// {174, Mapper174_Init},\r
+ {"", 175, Mapper175_Init},\r
+ {"BMCFK23C", 176, BMCFK23C_Init},\r
+ {"", 177, Mapper177_Init},\r
+ {"", 178, Mapper178_Init},\r
+// {179, Mapper179_Init},\r
+ {"", 180, Mapper180_Init},\r
+ {"", 181, Mapper181_Init},\r
+// {"", 182, Mapper182_Init}, // identical to 114\r
+ {"", 183, Mapper183_Init},\r
+ {"", 184, Mapper184_Init},\r
+ {"", 185, Mapper185_Init},\r
+ {"", 186, Mapper186_Init},\r
+ {"", 187, Mapper187_Init},\r
+ {"", 188, Mapper188_Init},\r
+ {"", 189, Mapper189_Init},\r
+// {190, Mapper190_Init},\r
+ {"", 191, Mapper191_Init},\r
+ {"", 192, Mapper192_Init},\r
+ {"", 193, Mapper193_Init},\r
+ {"", 194, Mapper194_Init},\r
+ {"", 195, Mapper195_Init},\r
+ {"", 196, Mapper196_Init},\r
+ {"", 197, Mapper197_Init},\r
+ {"", 198, Mapper198_Init},\r
+ {"", 199, Mapper199_Init},\r
+ {"", 200, Mapper200_Init},\r
+// {201, Mapper201_Init},\r
+// {202, Mapper202_Init},\r
+// {203, Mapper203_Init},\r
+// {204, Mapper204_Init},\r
+ {"", 205, Mapper205_Init},\r
+ {"DEIROM", 206, DEIROM_Init},\r
+// {207, Mapper207_Init},\r
+ {"", 208, Mapper208_Init},\r
+ {"", 209, Mapper209_Init},\r
+ {"", 210, Mapper210_Init},\r
+ {"", 211, Mapper211_Init},\r
+// {212, Mapper212_Init},\r
+// {213, Mapper213_Init},\r
+// {214, Mapper214_Init},\r
+ {"", 215, UNL8237_Init},\r
+ {"", 216, Mapper216_Init},\r
+// {"", 217, Mapper217_Init},\r
+// {218, Mapper218_Init},\r
+ {"UNLA9746", 219, UNLA9746_Init},\r
+ {"", 220, UNLKS7057_Init}, // DEBUG mapper\r
+ {"UNLN625092", 221, UNLN625092_Init},\r
+ {"", 222, Mapper222_Init},\r
+// {223, Mapper223_Init},\r
+// {224, Mapper224_Init},\r
+ {"", 225, Mapper225_Init},\r
+ {"", 226, Mapper226_Init},\r
+// {227, Mapper227_Init},\r
+// {228, Mapper228_Init},\r
+// {229, Mapper229_Init},\r
+// {230, Mapper230_Init},\r
+// {231, Mapper231_Init},\r
+// {232, Mapper232_Init},\r
+ {"BMC42in1r", 233, BMC42in1r_Init},\r
+// {234, Mapper234_Init},\r
+ {"", 235, Mapper235_Init},\r
+// {236, Mapper236_Init},\r
+// {237, Mapper237_Init},\r
+ {"UNL6035052", 238, UNL6035052_Init},\r
+// {239, Mapper239_Init},\r
+ {"", 240, Mapper240_Init},\r
+// {241, Mapper241_Init},\r
+// {242, Mapper242_Init},\r
+ {"S74LS374NA", 243, S74LS374NA_Init},\r
+// {244, Mapper244_Init},\r
+ {"", 245, Mapper245_Init},\r
+// {246, Mapper246_Init},\r
+// {247, Mapper247_Init},\r
+// {248, Mapper248_Init},\r
+ {"", 249, Mapper249_Init},\r
+ {"", 250, Mapper250_Init},\r
+// {251, Mapper251_Init},\r
+// {252, Mapper252_Init},\r
+ {"", 253, Mapper253_Init},\r
+ {"", 254, Mapper254_Init},\r
+// {255, Mapper255_Init},\r
+ {"", 0, 0}\r
+};\r
+\r
+void cleanup(struct iNES_HEADER *this)\r
+{\r
+ if(!memcmp((char *)(this)+0x7,"DiskDude",8))\r
+ {\r
+ memset((char *)(this)+0x7,0,0x9);\r
+ }\r
+\r
+ if(!memcmp((char *)(this)+0x7,"demiforce",9))\r
+ {\r
+ memset((char *)(this)+0x7,0,0x9);\r
+ }\r
+\r
+ if(!memcmp((char *)(this)+0xA,"Ni03",4))\r
+ {\r
+ if(!memcmp((char *)(this)+0x7,"Dis",3))\r
+ memset((char *)(this)+0x7,0,0x9);\r
+ else\r
+ memset((char *)(this)+0xA,0,0x6);\r
+ }\r
+}\r
+\r
+int iNESLoad(const char *name, int fp, int OverwriteVidMode)\r
+{\r
+ struct md5_context md5;\r