diff --git a/src/boards/01-222.cpp b/src/boards/01-222.cpp index e02f4ccf..30ac3e87 100644 --- a/src/boards/01-222.cpp +++ b/src/boards/01-222.cpp @@ -16,88 +16,94 @@ * 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 - * TXC mappers + * + * TXC mappers, originally much complex banksitching + * + * 01-22111-000 (05-00002-010) (132, 22211) - MGC-001 Qi Wang + * 01-22110-000 (52S ) - MGC-002 2-in-1 Gun + * 01-22111-100 (02-00002-010) (173 ) - MGC-008 Mahjong Block + * (079 ) - MGC-012 Poke Block + * 01-22110-200 (05-00002-010) (036 ) - MGC-014 Strike Wolf + * 01-22000-400 (05-00002-010) (036 ) - MGC-015 Policeman + * 01-22017-000 (05-PT017-080) (189 ) - MGC-017 Thunder Warrior + * 01-11160-000 (04-02310-000) ( , 11160) - MGC-023 6-in-1 + * 01-22270-000 (05-00002-010) (132, 22211) - MGC-xxx Creatom + * 01-22200-400 (------------) (079 ) - ET.03 F-15 City War + * (172 ) - 1991 Du Ma Racing + * */ #include "mapinc.h" static uint8 reg[4], cmd, is172, is173; -static SFORMAT StateRegs[]= +static SFORMAT StateRegs[] = { - {reg, 4, "REGS"}, - {&cmd, 1, "CMD"}, - {0} + { reg, 4, "REGS" }, + { &cmd, 1, "CMD" }, + { 0 } }; -static void Sync(void) -{ - setprg32(0x8000,(reg[2]>>2)&1); - if(is172) - setchr8((((cmd^reg[2])>>3)&2)|(((cmd^reg[2])>>5)&1)); // 1991 DU MA Racing probably CHR bank sequence is WRONG, so it is possible to - // rearrange CHR banks for normal UNIF board and mapper 172 is unneccessary - else - setchr8(reg[2]&3); +static void Sync(void) { + setprg32(0x8000, (reg[2] >> 2) & 1); + if (is172) + setchr8((((cmd ^ reg[2]) >> 3) & 2) | (((cmd ^ reg[2]) >> 5) & 1)); // 1991 DU MA Racing probably CHR bank sequence is WRONG, so it is possible to + // rearrange CHR banks for normal UNIF board and mapper 172 is unneccessary + else + setchr8(reg[2] & 3); } -static DECLFW(UNL22211WriteLo) -{ -// FCEU_printf("bs %04x %02x\n",A,V); - reg[A&3]=V; +static DECLFW(UNL22211WriteLo) { +// FCEU_printf("bs %04x %02x\n",A,V); + reg[A & 3] = V; } -static DECLFW(UNL22211WriteHi) -{ -// FCEU_printf("bs %04x %02x\n",A,V); - cmd=V; - Sync(); +static DECLFW(UNL22211WriteHi) { +// FCEU_printf("bs %04x %02x\n",A,V); + cmd = V; + Sync(); } -static DECLFR(UNL22211ReadLo) -{ - return (reg[1]^reg[2])|(is173?0x01:0x40); -// if(reg[3]) -// return reg[2]; -// else -// return X.DB; +static DECLFR(UNL22211ReadLo) { + return (reg[1] ^ reg[2]) | (is173 ? 0x01 : 0x40); +// if(reg[3]) +// return reg[2]; +// else +// return X.DB; } -static void UNL22211Power(void) -{ - Sync(); - SetReadHandler(0x8000,0xFFFF,CartBR); - SetReadHandler(0x4100,0x4100,UNL22211ReadLo); - SetWriteHandler(0x4100,0x4103,UNL22211WriteLo); - SetWriteHandler(0x8000,0xFFFF,UNL22211WriteHi); +static void UNL22211Power(void) { + Sync(); + SetReadHandler(0x8000, 0xFFFF, CartBR); + SetReadHandler(0x4100, 0x4100, UNL22211ReadLo); + SetWriteHandler(0x4100, 0x4103, UNL22211WriteLo); + SetWriteHandler(0x8000, 0xFFFF, UNL22211WriteHi); } -static void StateRestore(int version) -{ - Sync(); +static void StateRestore(int version) { + Sync(); } -void UNL22211_Init(CartInfo *info) -{ - is172=0; - is173=0; - info->Power=UNL22211Power; - GameStateRestore=StateRestore; - AddExState(&StateRegs, ~0, 0, 0); +void UNL22211_Init(CartInfo *info) { + is172 = 0; + is173 = 0; + info->Power = UNL22211Power; + GameStateRestore = StateRestore; + AddExState(&StateRegs, ~0, 0, 0); } -void Mapper172_Init(CartInfo *info) -{ - is172=1; - is173=0; - info->Power=UNL22211Power; - GameStateRestore=StateRestore; - AddExState(&StateRegs, ~0, 0, 0); +void Mapper172_Init(CartInfo *info) { + is172 = 1; + is173 = 0; + info->Power = UNL22211Power; + GameStateRestore = StateRestore; + AddExState(&StateRegs, ~0, 0, 0); } -void Mapper173_Init(CartInfo *info) -{ - is172=0; - is173=1; - info->Power=UNL22211Power; - GameStateRestore=StateRestore; - AddExState(&StateRegs, ~0, 0, 0); +void Mapper173_Init(CartInfo *info) { + is172 = 0; + is173 = 1; + info->Power = UNL22211Power; + GameStateRestore = StateRestore; + AddExState(&StateRegs, ~0, 0, 0); } + diff --git a/src/boards/34.cpp b/src/boards/34.cpp index f7889021..71f1b300 100644 --- a/src/boards/34.cpp +++ b/src/boards/34.cpp @@ -16,74 +16,77 @@ * 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 + * + * Many-in-one hacked mapper crap. + * + * Original BNROM is actually AxROM variations without mirroring control, + * and haven't SRAM on-board, so it must be removed from here + * + * Difficult banking is what NINA board doing, most hacks for 34 mapper are + * NINA hacks, so this is actually 34 mapper + * */ #include "mapinc.h" static uint8 regs[3]; -static uint8 *WRAM=NULL; +static uint8 *WRAM = NULL; static uint32 WRAMSIZE; -static SFORMAT StateRegs[]= +static SFORMAT StateRegs[] = { - {regs, 3, "REGS"}, - {0} + { regs, 3, "REGS" }, + { 0 } }; -static void Sync(void) -{ - setprg8r(0x10,0x6000,0); - setprg32(0x8000,regs[0]); - setchr4(0x0000,regs[1]); - setchr4(0x1000,regs[2]); +static void Sync(void) { + setprg8r(0x10, 0x6000, 0); + setprg32(0x8000, regs[0]); + setchr4(0x0000, regs[1]); + setchr4(0x1000, regs[2]); } -static DECLFW(M34Write) -{ - if(A>=0x8000) - regs[0] = V; - else - switch(A) - { - case 0x7ffd: regs[0] = V; break; - case 0x7ffe: regs[1] = V; break; - case 0x7fff: regs[2] = V; break; - } - Sync(); +static DECLFW(M34Write) { + if (A >= 0x8000) + regs[0] = V; + else + switch (A) { + case 0x7ffd: regs[0] = V; break; + case 0x7ffe: regs[1] = V; break; + case 0x7fff: regs[2] = V; break; + } + Sync(); } -static void M34Power(void) -{ - regs[0] = 0; - Sync(); - SetReadHandler(0x6000,0x7ffc,CartBR); - SetWriteHandler(0x6000,0x7ffc,CartBW); - SetReadHandler(0x8000,0xffff,CartBR); - SetWriteHandler(0x7ffd,0xffff,M34Write); +static void M34Power(void) { + regs[0] = regs[1] = 0; + regs[2] = 1; + Sync(); + SetReadHandler(0x6000, 0x7ffc, CartBR); + SetWriteHandler(0x6000, 0x7ffc, CartBW); + SetReadHandler(0x8000, 0xffff, CartBR); + SetWriteHandler(0x7ffd, 0xffff, M34Write); } -static void M34Close(void) -{ - if(WRAM) - FCEU_gfree(WRAM); - WRAM=NULL; +static void M34Close(void) { + if (WRAM) + FCEU_gfree(WRAM); + WRAM = NULL; } -static void StateRestore(int version) -{ - Sync(); +static void StateRestore(int version) { + Sync(); } -void Mapper34_Init(CartInfo *info) -{ - info->Power=M34Power; - info->Close=M34Close; - GameStateRestore=StateRestore; +void Mapper34_Init(CartInfo *info) { + info->Power = M34Power; + info->Close = M34Close; + GameStateRestore = StateRestore; - WRAMSIZE=8192; - WRAM=(uint8*)FCEU_gmalloc(WRAMSIZE); - SetupCartPRGMapping(0x10,WRAM,WRAMSIZE,1); - AddExState(WRAM, WRAMSIZE, 0, "WRAM"); + WRAMSIZE = 8192; + WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); + SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); + AddExState(WRAM, WRAMSIZE, 0, "WRAM"); - AddExState(&StateRegs, ~0, 0, 0); + AddExState(&StateRegs, ~0, 0, 0); } diff --git a/src/boards/addrlatch.cpp b/src/boards/addrlatch.cpp index 5101f487..888a558f 100644 --- a/src/boards/addrlatch.cpp +++ b/src/boards/addrlatch.cpp @@ -44,8 +44,8 @@ static void LatchPower(void) { if (WRAM) { SetReadHandler(0x6000, 0x7FFF, CartBR); SetWriteHandler(0x6000, 0x7FFF, CartBW); - } - SetReadHandler(0x8000, 0xFFFF, defread); + } else + SetReadHandler(0x6000, 0xFFFF, defread); SetWriteHandler(addrreg0, addrreg1, LatchWrite); } @@ -67,7 +67,7 @@ static void Latch_Init(CartInfo *info, void (*proc)(void), readfunc func, uint16 if (func != NULL) defread = func; else - defread = CartBR; + defread = CartBROB; info->Power = LatchPower; info->Reset = LatchReset; info->Close = LatchClose; @@ -103,7 +103,7 @@ static void BMCD1038Sync(void) { if (latche & 0x80) { setprg16(0x8000, (latche & 0x70) >> 4); setprg16(0xC000, (latche & 0x70) >> 4); - }else + } else setprg32(0x8000, (latche & 0x60) >> 5); setchr8(latche & 7); setmirror(((latche & 8) >> 3) ^ 1); @@ -132,7 +132,7 @@ void BMCD1038_Init(CartInfo *info) { static void UNL43272Sync(void) { if ((latche & 0x81) == 0x81) { setprg32(0x8000, (latche & 0x38) >> 3); - }else + } else FCEU_printf("unrecognized command %04!\n", latche); setchr8(0); setmirror(0); @@ -162,7 +162,7 @@ static void BMCGK192Sync(void) { if (latche & 0x40) { setprg16(0x8000, latche & 7); setprg16(0xC000, latche & 7); - }else + } else setprg32(0x8000, (latche >> 1) & 3); setchr8((latche >> 3) & 7); setmirror(((latche & 0x80) >> 7) ^ 1); @@ -205,7 +205,7 @@ static void M92Sync(void) { case 0xD0: setprg16(0xc000, latche & 15); break; case 0xE0: setchr8(latche & 15); break; } - }else { + } else { switch (reg) { case 0xB0: setprg16(0xc000, latche & 15); break; case 0x70: setchr8(latche & 15); break; @@ -249,11 +249,14 @@ void Mapper201_Init(CartInfo *info) { //------------------ Map 202 --------------------------- static void M202Sync(void) { - int32 tmp = (latche >> 1) & 0x7; - setmirror((latche & 1)^1); - setprg16(0x8000, tmp); - setprg16(0xc000, tmp + (((tmp & 0x6) == 0x6) ? 1 : 0)); - setchr8(tmp); + // According to more carefull hardware tests and PCB study + int32 mirror = latche & 1; + int32 bank = (latche >> 1) & 0x7; + int32 select = (mirror & (bank >> 2)); + setprg16(0x8000, select ? (bank & 6) | 0 : bank); + setprg16(0xc000, select ? (bank & 6) | 1 : bank); + setmirror(mirror ^ 1); + setchr8(bank); } void Mapper202_Init(CartInfo *info) { @@ -277,6 +280,13 @@ void Mapper204_Init(CartInfo *info) { //------------------ Map 212 --------------------------- +static DECLFR(M212Read) { + uint8 ret = CartBROB(A); + if ((A & 0xE010) == 0x6000) + ret |= 0x80; + return ret; +} + static void M212Sync(void) { if(latche & 0x4000) { setprg32(0x8000, (latche >> 1) & 3); @@ -289,7 +299,7 @@ static void M212Sync(void) { } void Mapper212_Init(CartInfo *info) { - Latch_Init(info, M212Sync, NULL, 0xFFFF, 0x8000, 0xFFFF, 0); + Latch_Init(info, M212Sync, M212Read, 0xFFFF, 0x8000, 0xFFFF, 0); } //------------------ Map 213 --------------------------- @@ -315,6 +325,17 @@ void Mapper214_Init(CartInfo *info) { Latch_Init(info, M214Sync, NULL, 0x0000, 0x8000, 0xFFFF, 0); } +//------------------ Map 217 --------------------------- + +static void M217Sync(void) { + setprg32(0x8000, (latche >> 2) & 3); + setchr8(latche & 7); +} + +void Mapper217_Init(CartInfo *info) { + Latch_Init(info, M217Sync, NULL, 0x0000, 0x8000, 0xFFFF, 0); +} + //------------------ Map 227 --------------------------- static void M227Sync(void) { @@ -408,9 +429,9 @@ void Mapper242_Init(CartInfo *info) { //------------------ 190in1 --------------------------- static void BMC190in1Sync(void) { - setprg16(0x8000, (latche >> 2) & 0x07); - setprg16(0xC000, (latche >> 2) & 0x07); - setchr8((latche >> 2) & 0x07); + setprg16(0x8000, (latche >> 2) & 7); + setprg16(0xC000, (latche >> 2) & 7); + setchr8((latche >> 2) & 7); setmirror((latche & 1) ^ 1); } @@ -448,7 +469,7 @@ static void BMCNTD03Sync(void) { if (latche & 0x80) { setprg16(0x8000, prg | ((latche >> 6) & 1)); setprg16(0xC000, prg | ((latche >> 6) & 1)); - }else + } else setprg32(0x8000, prg >> 1); setchr8(chr); setmirror(((latche >> 10) & 1) ^ 1); @@ -457,3 +478,25 @@ static void BMCNTD03Sync(void) { void BMCNTD03_Init(CartInfo *info) { Latch_Init(info, BMCNTD03Sync, NULL, 0x0000, 0x8000, 0xFFFF, 0); } + +//-------------- BMCG-146 ------------------------ + +static void BMCG146Sync(void) { + setchr8(0); + if (latche & 0x800) { // UNROM mode + setprg16(0x8000, (latche & 0x1F) | (latche & ((latche & 0x40) >> 6))); + setprg16(0xC000, (latche & 0x18) | 7); + } else { + if (latche & 0x40) { // 16K mode + setprg16(0x8000, latche & 0x1F); + setprg16(0xC000, latche & 0x1F); + } else { + setprg32(0x8000, (latche >> 1) & 0x0F); + } + } + setmirror(((latche & 0x80) >> 7) ^ 1); +} + +void BMCG146_Init(CartInfo *info) { + Latch_Init(info, BMCG146Sync, NULL, 0x0000, 0x8000, 0xFFFF, 0); +} diff --git a/src/boards/datalatch.cpp b/src/boards/datalatch.cpp index e8b9b955..5b2c5b75 100644 --- a/src/boards/datalatch.cpp +++ b/src/boards/datalatch.cpp @@ -42,7 +42,7 @@ static void LatchPower(void) { if (WRAM) { SetReadHandler(0x6000, 0xFFFF, CartBR); SetWriteHandler(0x6000, 0x7FFF, CartBW); - }else { + } else { SetReadHandler(0x8000, 0xFFFF, CartBR); } SetWriteHandler(addrreg0, addrreg1, LatchWrite); @@ -226,7 +226,7 @@ void Mapper38_Init(CartInfo *info) { //------------------ Map 66 --------------------------- static void MHROMSync(void) { - + setprg32(0x8000, latche >> 4); setchr8(latche & 0xf); } @@ -478,3 +478,16 @@ void BMCA65AS_Init(CartInfo *info) { Latch_Init(info, BMCA65ASSync, 0, 0x8000, 0xFFFF, 0, 0); } +//------------------ BMC-11160 --------------------------- +// Simple BMC discrete mapper by TXC + +static void BMC11160Sync(void) { + uint32 bank = (latche >> 4) & 7; + setprg32(0x8000, bank); + setchr8((bank << 2) | (latche & 3)); + setmirror((latche >> 7) & 1); +} + +void BMC11160_Init(CartInfo *info) { + Latch_Init(info, BMC11160Sync, 0, 0x8000, 0xFFFF, 0, 0); +} diff --git a/src/ines-correct.h b/src/ines-correct.h index 010967b7..f3f5b75b 100644 --- a/src/ines-correct.h +++ b/src/ines-correct.h @@ -178,6 +178,7 @@ {0x5b457641, 157, 8}, /* Datach Ultraman Club */ {0xf51a7f46, 157, 8}, /* Datach Yuu Yuu Hakusho */ {0x58152b42, 160, 1}, /* Pipe 5 (Sachen) */ + {0x1c098942, 162, -1}, /* Xi You Ji Hou Zhuan (Ch) */ {0x081caaff, 163, -1}, /* Commandos (Ch) */ {0x02c41438, 176, -1}, /* Xing He Zhan Shi (C) */ {0x558c0dc3, 178, -1}, /* Super 2in1 (unl)[!] {mapper unsupported} */ @@ -226,11 +227,21 @@ {0xd323b806, 210, 1}, /* Wagyan Land 3 */ {0xbd523011, 210, 2}, /* Dream Master */ {0x5daae69a, 211, -1}, /* Aladdin - Return of Jaffar, The (Unl) [!] */ + {0x046d70cc, 217, -1}, /* 500-in-1 (Anim Splash, Alt Mapper)[p1][!] */ + {0x12f86a4d, 217, -1}, /* 500-in-1 (Static Splash, Alt Mapper)[p1][!] */ + {0xd09f778d, 217, -1}, /* 9999999-in-1 (Static Splash, Alt Mapper)[p1][!] */ {0x62ef6c79, 232, 8}, /* Quattro Sports -Aladdin */ {0x2705eaeb, 234, -1}, /* Maxi 15 */ {0x6f12afc5, 235, -1}, /* Golden Game 150-in-1 */ {0xfb2b6b10, 241, -1}, /* Fan Kong Jing Ying (Ch) */ {0xb5e83c9a, 241, -1}, /* Xing Ji Zheng Ba (Ch) */ + {0x2537b3e6, 241, -1}, /* Dance Xtreme - Prima (Unl) */ + {0x11611e89, 241, -1}, /* Darkseed (Unl) [p1] */ + {0x81a37827, 241, -1}, /* Darkseed (Unl) [p1][b1] */ + {0xc2730c30, 241, -1}, /* Deadly Towers (U) [!] */ + {0x368c19a8, 241, -1}, /* LIKO Study Cartridge 3-in-1 (Unl) [!] */ + {0xa21e675c, 241, -1}, /* Mashou (J) [!] */ + {0x54d98b79, 241, -1}, /* Titanic 1912 (Unl) */ {0x6bea1235, 245, -1}, /* MMC3 cart, but with nobanking applied to CHR-RAM, so let it be there */ {0x345ee51a, 245, -1}, /* DQ4c */ {0x57514c6c, 245, -1}, /* Yong Zhe Dou E Long - Dragon Quest VI (Ch) */ diff --git a/src/ines.cpp b/src/ines.cpp index ca9a42fb..4197585a 100644 --- a/src/ines.cpp +++ b/src/ines.cpp @@ -523,262 +523,262 @@ typedef struct { } BMAPPINGLocal; static BMAPPINGLocal bmap[] = { - {"NROM", 0, NROM_Init}, - {"MMC1", 1, Mapper1_Init}, - {"UNROM", 2, UNROM_Init}, - {"CNROM", 3, CNROM_Init}, - {"MMC3", 4, Mapper4_Init}, - {"MMC5", 5, Mapper5_Init}, -// {"", 6, Mapper6_Init}, - {"ANROM", 7, ANROM_Init}, - {"", 8, Mapper8_Init}, // Nogaems, it's worthless -// {"", 9, Mapper9_Init}, -// {"", 10, Mapper10_Init}, - {"Color Dreams", 11, Mapper11_Init}, - {"", 12, Mapper12_Init}, - {"CPROM", 13, CPROM_Init}, -// {"", 14, Mapper14_Init}, - {"100-in-1", 15, Mapper15_Init}, - {"Bandai", 16, Mapper16_Init}, - {"", 17, Mapper17_Init}, - {"", 18, Mapper18_Init}, - {"Namcot 106", 19, Mapper19_Init}, -// {"", 20, Mapper20_Init}, - {"Konami VRC2/VRC4", 21, Mapper21_Init}, - {"Konami VRC2/VRC4", 22, Mapper22_Init}, - {"Konami VRC2/VRC4", 23, Mapper23_Init}, -// {"", 24, Mapper24_Init}, - {"Konami VRC2/VRC4", 25, Mapper25_Init}, -// {"", 26, Mapper26_Init}, -// {"", 27, Mapper27_Init}, // Deprecated, dupe for VRC2/VRC4 mapper - {"INL-ROM", 28, Mapper28_Init}, -// {"", 29, Mapper29_Init}, -// {"", 30, Mapper30_Init}, -// {"", 31, Mapper31_Init}, - {"IREM G-101", 32, Mapper32_Init}, - {"TC0190FMC/TC0350FMR", 33, Mapper33_Init}, - {"", 34, Mapper34_Init}, - {"Wario Land 2", 35, UNLSC127_Init}, - {"TXC Policeman", 36, Mapper36_Init}, - {"", 37, Mapper37_Init}, - {"Bit Corp.", 38, Mapper38_Init}, // Crime Busters -// {"", 39, Mapper39_Init}, -// {"", 40, Mapper40_Init}, -// {"", 41, Mapper41_Init}, -// {"", 42, Mapper42_Init}, - {"", 43, Mapper43_Init}, - {"", 44, Mapper44_Init}, - {"", 45, Mapper45_Init}, -// {"", 46, Mapper46_Init}, - {"", 47, Mapper47_Init}, - {"TAITO TCxxx", 48, Mapper48_Init}, - {"", 49, Mapper49_Init}, -// {"", 50, Mapper50_Init}, -// {"", 51, Mapper51_Init}, - {"", 52, Mapper52_Init}, -// {"", 53, Mapper53_Init}, // iNES version of complex UNIF board, can't emulate properly as iNES -// {"", 54, Mapper54_Init}, -// {"", 55, Mapper55_Init}, -// {"", 56, Mapper56_Init}, - {"", 57, Mapper57_Init}, - {"", 58, BMCGK192_Init}, - {"", 59, Mapper59_Init}, // Check this out - {"", 60, BMCD1038_Init}, -// {"", 61, Mapper61_Init}, -// {"", 62, Mapper62_Init}, -// {"", 63, Mapper63_Init}, -// {"", 64, Mapper64_Init}, -// {"", 65, Mapper65_Init}, - {"MHOM", 66, MHROM_Init}, -// {"", 67, Mapper67_Init}, - {"Sunsoft Mapper #4", 68, Mapper68_Init}, -// {"", 69, Mapper69_Init}, - {"", 70, Mapper70_Init}, -// {"", 71, Mapper71_Init}, -// {"", 72, Mapper72_Init}, -// {"", 73, Mapper73_Init}, - {"", 74, Mapper74_Init}, -// {"", 75, Mapper75_Init}, -// {"", 76, Mapper76_Init}, -// {"", 77, Mapper77_Init}, - {"Irem 74HC161/32", 78, Mapper78_Init}, -// {"", 79, Mapper79_Init}, -// {"", 80, Mapper80_Init}, -// {"", 81, Mapper81_Init}, - {"", 82, Mapper82_Init}, - {"", 83, Mapper83_Init}, -// {"", 84, Mapper84_Init}, -// {"", 85, Mapper85_Init}, - {"", 86, Mapper86_Init}, - {"", 87, Mapper87_Init}, - {"", 88, Mapper88_Init}, - {"", 89, Mapper89_Init}, - {"", 90, Mapper90_Init}, - {"", 91, Mapper91_Init}, - {"", 92, Mapper92_Init}, - {"Sunsoft UNROM", 93, SUNSOFT_UNROM_Init}, - {"", 94, Mapper94_Init}, - {"", 95, Mapper95_Init}, - {"", 96, Mapper96_Init}, - {"", 97, Mapper97_Init}, -// {"", 98, Mapper98_Init}, - {"", 99, Mapper99_Init}, -// {"", 100, Mapper100_Init}, - {"", 101, Mapper101_Init}, -// {"", 102, Mapper102_Init}, - {"", 103, Mapper103_Init}, -// {"", 104, Mapper104_Init}, - {"", 105, Mapper105_Init}, - {"", 106, Mapper106_Init}, - {"", 107, Mapper107_Init}, - {"", 108, Mapper108_Init}, -// {"", 109, Mapper109_Init}, -// {"", 110, Mapper110_Init}, -// {"", 111, Mapper111_Init}, - {"", 112, Mapper112_Init}, - {"", 113, Mapper113_Init}, - {"", 114, Mapper114_Init}, - {"", 115, Mapper115_Init}, - {"", 116, UNLSL12_Init}, - {"", 117, Mapper117_Init}, - {"TSKROM", 118, TKSROM_Init}, - {"", 119, Mapper119_Init}, - {"", 120, Mapper120_Init}, - {"", 121, Mapper121_Init}, -// {"", 122, Mapper122_Init}, - {"UNLH2288", 123, UNLH2288_Init}, -// {"", 124, Mapper124_Init}, - {"", 125, LH32_Init}, -// {"", 126, Mapper126_Init}, -// {"", 127, Mapper127_Init}, -// {"", 128, Mapper128_Init}, -// {"", 129, Mapper129_Init}, -// {"", 130, Mapper130_Init}, -// {"", 131, Mapper131_Init}, - {"UNL22211", 132, UNL22211_Init}, - {"SA72008", 133, SA72008_Init}, - {"", 134, Mapper134_Init}, -// {"", 135, Mapper135_Init}, - {"TCU02", 136, TCU02_Init}, - {"S8259D", 137, S8259D_Init}, - {"S8259B", 138, S8259B_Init}, - {"S8259C", 139, S8259C_Init}, - {"", 140, Mapper140_Init}, - {"S8259A", 141, S8259A_Init}, - {"UNLKS7032", 142, UNLKS7032_Init}, - {"TCA01", 143, TCA01_Init}, - {"", 144, Mapper144_Init}, - {"SA72007", 145, SA72007_Init}, - {"SA0161M", 146, SA0161M_Init}, - {"TCU01", 147, TCU01_Init}, - {"SA0037", 148, SA0037_Init}, - {"SA0036", 149, SA0036_Init}, - {"S74LS374N", 150, S74LS374N_Init}, - {"", 151, Mapper151_Init}, - {"", 152, Mapper152_Init}, - {"", 153, Mapper153_Init}, - {"", 154, Mapper154_Init}, - {"", 155, Mapper155_Init}, - {"", 156, Mapper156_Init}, - {"", 157, Mapper157_Init}, -// {"", 158, Mapper158_Init}, -// {"", 159, Mapper159_Init}, - {"SA009", 160, SA009_Init}, -// {"", 161, Mapper161_Init}, - {"", 162, UNLFS304_Init}, - {"", 163, Mapper163_Init}, - {"", 164, Mapper164_Init}, - {"", 165, Mapper165_Init}, -// {"", 166, Mapper166_Init}, -// {"", 167, Mapper167_Init}, - {"", 168, Mapper168_Init}, -// {"", 169, Mapper169_Init}, - {"", 170, Mapper170_Init}, - {"", 171, Mapper171_Init}, - {"", 172, Mapper172_Init}, - {"", 173, Mapper173_Init}, -// {"", 174, Mapper174_Init}, - {"", 175, Mapper175_Init}, - {"BMCFK23C", 176, BMCFK23C_Init}, //zero 26-may-2012 - well, i have some WXN junk games that use 176 for instance ????. i dont know what game uses this BMCFK23C as mapper 176. we'll have to make a note when we find it. - {"", 177, Mapper177_Init}, - {"", 178, Mapper178_Init}, -// {"", 179, Mapper179_Init}, - {"", 180, Mapper180_Init}, - {"", 181, Mapper181_Init}, -// {"", 182, Mapper182_Init}, // Deprecated, dupe - {"", 183, Mapper183_Init}, - {"", 184, Mapper184_Init}, - {"", 185, Mapper185_Init}, - {"", 186, Mapper186_Init}, - {"", 187, Mapper187_Init}, - {"", 188, Mapper188_Init}, - {"", 189, Mapper189_Init}, -// {"", 190, Mapper190_Init}, - {"", 191, Mapper191_Init}, - {"", 192, Mapper192_Init}, - {"", 193, Mapper193_Init}, - {"", 194, Mapper194_Init}, - {"", 195, Mapper195_Init}, - {"", 196, Mapper196_Init}, - {"", 197, Mapper197_Init}, - {"", 198, Mapper198_Init}, - {"", 199, Mapper199_Init}, - {"", 200, Mapper200_Init}, - {"", 201, Mapper201_Init}, - {"", 202, Mapper202_Init}, - {"", 203, Mapper203_Init}, - {"", 204, Mapper204_Init}, - {"", 205, Mapper205_Init}, - {"DEIROM", 206, DEIROM_Init}, -// {"", 207, Mapper207_Init}, - {"", 208, Mapper208_Init}, - {"", 209, Mapper209_Init}, - {"", 210, Mapper210_Init}, - {"", 211, Mapper211_Init}, - {"", 212, Mapper212_Init}, - {"", 213, Mapper213_Init}, - {"", 214, Mapper214_Init}, - {"", 215, UNL8237_Init}, - {"", 216, Mapper216_Init}, -// {"", 217, UNL8237A_Init}, -// {"", 218, Mapper218_Init}, - {"UNLA9746", 219, UNLA9746_Init}, - {"Debug Mapper", 220, UNLKS7057_Init}, - {"UNLN625092", 221, UNLN625092_Init}, - {"", 222, Mapper222_Init}, -// {"", 223, Mapper223_Init}, -// {"", 224, Mapper224_Init}, - {"", 225, Mapper225_Init}, - {"BMC 22+20-in-1", 226, Mapper226_Init}, - {"", 227, Mapper227_Init}, - {"", 228, Mapper228_Init}, - {"", 229, Mapper229_Init}, - {"BMC 22-in-1+Contra", 230, Mapper230_Init}, - {"", 231, Mapper231_Init}, - {"BMC QUATTRO", 232, Mapper232_Init}, - {"BMC 22+20-in-1 RST", 233, Mapper233_Init}, - {"BMC MAXI", 234, Mapper234_Init}, - {"", 235, Mapper235_Init}, -// {"", 236, Mapper236_Init}, -// {"", 237, Mapper237_Init}, - {"UNL6035052", 238, UNL6035052_Init}, -// {"", 239, Mapper239_Init}, - {"", 240, Mapper240_Init}, - {"", 241, Mapper241_Init}, - {"", 242, Mapper242_Init}, - {"S74LS374NA", 243, S74LS374NA_Init}, - {"DECATHLON", 244, Mapper244_Init}, - {"", 245, Mapper245_Init}, - {"FONG SHEN BANG", 246, Mapper246_Init}, -// {"", 247, Mapper247_Init}, -// {"", 248, Mapper248_Init}, - {"", 249, Mapper249_Init}, - {"", 250, Mapper250_Init}, -// {"", 251, Mapper251_Init}, - {"SAN GUO ZHI PIRATE", 252, Mapper252_Init}, - {"DRAGON BALL PIRATE", 253, Mapper253_Init}, - {"", 254, Mapper254_Init}, -// {"", 255, Mapper255_Init}, // Doesn't have any good dump for this mapper + {"NROM", 0, NROM_Init}, + {"MMC1", 1, Mapper1_Init}, + {"UNROM", 2, UNROM_Init}, + {"CNROM", 3, CNROM_Init}, + {"MMC3", 4, Mapper4_Init}, + {"MMC5", 5, Mapper5_Init}, +// {"", 6, Mapper6_Init}, + {"ANROM", 7, ANROM_Init}, + {"", 8, Mapper8_Init}, // Nogaems, it's worthless +// {"", 9, Mapper9_Init}, +// {"", 10, Mapper10_Init}, + {"Color Dreams", 11, Mapper11_Init}, + {"", 12, Mapper12_Init}, + {"CPROM", 13, CPROM_Init}, +// {"", 14, Mapper14_Init}, + {"100-in-1", 15, Mapper15_Init}, + {"Bandai", 16, Mapper16_Init}, + {"", 17, Mapper17_Init}, + {"", 18, Mapper18_Init}, + {"Namcot 106", 19, Mapper19_Init}, +// {"", 20, Mapper20_Init}, + {"Konami VRC2/VRC4", 21, Mapper21_Init}, + {"Konami VRC2/VRC4", 22, Mapper22_Init}, + {"Konami VRC2/VRC4", 23, Mapper23_Init}, +// {"", 24, Mapper24_Init}, + {"Konami VRC2/VRC4", 25, Mapper25_Init}, +// {"", 26, Mapper26_Init}, +// {"", 27, Mapper27_Init}, // Deprecated, dupe for VRC2/VRC4 mapper + {"INL-ROM", 28, Mapper28_Init}, +// {"", 29, Mapper29_Init}, +// {"", 30, Mapper30_Init}, +// {"", 31, Mapper31_Init}, + {"IREM G-101", 32, Mapper32_Init}, + {"TC0190FMC/TC0350FMR", 33, Mapper33_Init}, + {"", 34, Mapper34_Init}, + {"Wario Land 2", 35, UNLSC127_Init}, + {"TXC Policeman", 36, Mapper36_Init}, + {"", 37, Mapper37_Init}, + {"Bit Corp.", 38, Mapper38_Init}, // Crime Busters +// {"", 39, Mapper39_Init}, +// {"", 40, Mapper40_Init}, +// {"", 41, Mapper41_Init}, +// {"", 42, Mapper42_Init}, + {"", 43, Mapper43_Init}, + {"", 44, Mapper44_Init}, + {"", 45, Mapper45_Init}, +// {"", 46, Mapper46_Init}, + {"", 47, Mapper47_Init}, + {"TAITO TCxxx", 48, Mapper48_Init}, + {"", 49, Mapper49_Init}, +// {"", 50, Mapper50_Init}, +// {"", 51, Mapper51_Init}, + {"", 52, Mapper52_Init}, +// {"", 53, Mapper53_Init}, // iNES version of complex UNIF board, can't emulate properly as iNES +// {"", 54, Mapper54_Init}, +// {"", 55, Mapper55_Init}, +// {"", 56, Mapper56_Init}, + {"", 57, Mapper57_Init}, + {"", 58, BMCGK192_Init}, + {"", 59, Mapper59_Init}, // Check this out + {"", 60, BMCD1038_Init}, +// {"", 61, Mapper61_Init}, +// {"", 62, Mapper62_Init}, +// {"", 63, Mapper63_Init}, +// {"", 64, Mapper64_Init}, +// {"", 65, Mapper65_Init}, + {"MHOM", 66, MHROM_Init}, +// {"", 67, Mapper67_Init}, + {"Sunsoft Mapper #4", 68, Mapper68_Init}, +// {"", 69, Mapper69_Init}, + {"", 70, Mapper70_Init}, +// {"", 71, Mapper71_Init}, +// {"", 72, Mapper72_Init}, +// {"", 73, Mapper73_Init}, + {"", 74, Mapper74_Init}, +// {"", 75, Mapper75_Init}, +// {"", 76, Mapper76_Init}, +// {"", 77, Mapper77_Init}, + {"Irem 74HC161/32", 78, Mapper78_Init}, +// {"", 79, Mapper79_Init}, +// {"", 80, Mapper80_Init}, +// {"", 81, Mapper81_Init}, + {"", 82, Mapper82_Init}, + {"", 83, Mapper83_Init}, +// {"", 84, Mapper84_Init}, +// {"", 85, Mapper85_Init}, + {"", 86, Mapper86_Init}, + {"", 87, Mapper87_Init}, + {"", 88, Mapper88_Init}, + {"", 89, Mapper89_Init}, + {"", 90, Mapper90_Init}, + {"", 91, Mapper91_Init}, + {"", 92, Mapper92_Init}, + {"Sunsoft UNROM", 93, SUNSOFT_UNROM_Init}, + {"", 94, Mapper94_Init}, + {"", 95, Mapper95_Init}, + {"", 96, Mapper96_Init}, + {"", 97, Mapper97_Init}, +// {"", 98, Mapper98_Init}, + {"", 99, Mapper99_Init}, +// {"", 100, Mapper100_Init}, + {"", 101, Mapper101_Init}, +// {"", 102, Mapper102_Init}, + {"", 103, Mapper103_Init}, +// {"", 104, Mapper104_Init}, + {"", 105, Mapper105_Init}, + {"", 106, Mapper106_Init}, + {"", 107, Mapper107_Init}, + {"", 108, Mapper108_Init}, +// {"", 109, Mapper109_Init}, +// {"", 110, Mapper110_Init}, +// {"", 111, Mapper111_Init}, + {"", 112, Mapper112_Init}, + {"", 113, Mapper113_Init}, + {"", 114, Mapper114_Init}, + {"", 115, Mapper115_Init}, + {"", 116, UNLSL12_Init}, + {"", 117, Mapper117_Init}, + {"TSKROM", 118, TKSROM_Init}, + {"", 119, Mapper119_Init}, + {"", 120, Mapper120_Init}, + {"", 121, Mapper121_Init}, +// {"", 122, Mapper122_Init}, + {"UNLH2288", 123, UNLH2288_Init}, +// {"", 124, Mapper124_Init}, + {"", 125, LH32_Init}, +// {"", 126, Mapper126_Init}, +// {"", 127, Mapper127_Init}, +// {"", 128, Mapper128_Init}, +// {"", 129, Mapper129_Init}, +// {"", 130, Mapper130_Init}, +// {"", 131, Mapper131_Init}, + {"UNL22211", 132, UNL22211_Init}, + {"SA72008", 133, SA72008_Init}, + {"", 134, Mapper134_Init}, +// {"", 135, Mapper135_Init}, + {"TCU02", 136, TCU02_Init}, + {"S8259D", 137, S8259D_Init}, + {"S8259B", 138, S8259B_Init}, + {"S8259C", 139, S8259C_Init}, + {"", 140, Mapper140_Init}, + {"S8259A", 141, S8259A_Init}, + {"UNLKS7032", 142, UNLKS7032_Init}, + {"TCA01", 143, TCA01_Init}, + {"", 144, Mapper144_Init}, + {"SA72007", 145, SA72007_Init}, + {"SA0161M", 146, SA0161M_Init}, + {"TCU01", 147, TCU01_Init}, + {"SA0037", 148, SA0037_Init}, + {"SA0036", 149, SA0036_Init}, + {"S74LS374N", 150, S74LS374N_Init}, + {"", 151, Mapper151_Init}, + {"", 152, Mapper152_Init}, + {"", 153, Mapper153_Init}, + {"", 154, Mapper154_Init}, + {"", 155, Mapper155_Init}, + {"", 156, Mapper156_Init}, + {"", 157, Mapper157_Init}, +// {"", 158, Mapper158_Init}, +// {"", 159, Mapper159_Init}, + {"SA009", 160, SA009_Init}, +// {"", 161, Mapper161_Init}, + {"", 162, UNLFS304_Init}, + {"", 163, Mapper163_Init}, + {"", 164, Mapper164_Init}, + {"", 165, Mapper165_Init}, +// {"", 166, Mapper166_Init}, +// {"", 167, Mapper167_Init}, + {"", 168, Mapper168_Init}, +// {"", 169, Mapper169_Init}, + {"", 170, Mapper170_Init}, + {"", 171, Mapper171_Init}, + {"", 172, Mapper172_Init}, + {"", 173, Mapper173_Init}, +// {"", 174, Mapper174_Init}, + {"", 175, Mapper175_Init}, + {"BMCFK23C", 176, BMCFK23C_Init}, //zero 26-may-2012 - well, i have some WXN junk games that use 176 for instance ????. i dont know what game uses this BMCFK23C as mapper 176. we'll have to make a note when we find it. + {"", 177, Mapper177_Init}, + {"", 178, Mapper178_Init}, +// {"", 179, Mapper179_Init}, + {"", 180, Mapper180_Init}, + {"", 181, Mapper181_Init}, +// {"", 182, Mapper182_Init}, // Deprecated, dupe + {"", 183, Mapper183_Init}, + {"", 184, Mapper184_Init}, + {"", 185, Mapper185_Init}, + {"", 186, Mapper186_Init}, + {"", 187, Mapper187_Init}, + {"", 188, Mapper188_Init}, + {"", 189, Mapper189_Init}, +// {"", 190, Mapper190_Init}, + {"", 191, Mapper191_Init}, + {"", 192, Mapper192_Init}, + {"", 193, Mapper193_Init}, + {"", 194, Mapper194_Init}, + {"", 195, Mapper195_Init}, + {"", 196, Mapper196_Init}, + {"", 197, Mapper197_Init}, + {"", 198, Mapper198_Init}, + {"", 199, Mapper199_Init}, + {"", 200, Mapper200_Init}, + {"", 201, Mapper201_Init}, + {"", 202, Mapper202_Init}, + {"", 203, Mapper203_Init}, + {"", 204, Mapper204_Init}, + {"", 205, Mapper205_Init}, + {"DEIROM", 206, DEIROM_Init}, +// {"", 207, Mapper207_Init}, + {"", 208, Mapper208_Init}, + {"", 209, Mapper209_Init}, + {"", 210, Mapper210_Init}, + {"", 211, Mapper211_Init}, + {"", 212, Mapper212_Init}, + {"", 213, Mapper213_Init}, + {"", 214, Mapper214_Init}, + {"", 215, UNL8237_Init}, + {"", 216, Mapper216_Init}, + {"", 217, Mapper217_Init}, // Redefined to a new Discrete BMC mapper +// {"", 218, Mapper218_Init}, + {"UNLA9746", 219, UNLA9746_Init}, + {"Debug Mapper", 220, UNLKS7057_Init}, + {"UNLN625092", 221, UNLN625092_Init}, + {"", 222, Mapper222_Init}, +// {"", 223, Mapper223_Init}, +// {"", 224, Mapper224_Init}, + {"", 225, Mapper225_Init}, + {"BMC 22+20-in-1", 226, Mapper226_Init}, + {"", 227, Mapper227_Init}, + {"", 228, Mapper228_Init}, + {"", 229, Mapper229_Init}, + {"BMC 22-in-1+Contra", 230, Mapper230_Init}, + {"", 231, Mapper231_Init}, + {"BMC QUATTRO", 232, Mapper232_Init}, + {"BMC 22+20-in-1 RST", 233, Mapper233_Init}, + {"BMC MAXI", 234, Mapper234_Init}, + {"", 235, Mapper235_Init}, +// {"", 236, Mapper236_Init}, +// {"", 237, Mapper237_Init}, + {"UNL6035052", 238, UNL6035052_Init}, +// {"", 239, Mapper239_Init}, + {"", 240, Mapper240_Init}, + {"", 241, Mapper241_Init}, + {"", 242, Mapper242_Init}, + {"S74LS374NA", 243, S74LS374NA_Init}, + {"DECATHLON", 244, Mapper244_Init}, + {"", 245, Mapper245_Init}, + {"FONG SHEN BANG", 246, Mapper246_Init}, +// {"", 247, Mapper247_Init}, +// {"", 248, Mapper248_Init}, + {"", 249, Mapper249_Init}, + {"", 250, Mapper250_Init}, +// {"", 251, Mapper251_Init}, // No good dumps for this mapper, use UNIF version + {"SAN GUO ZHI PIRATE", 252, Mapper252_Init}, + {"DRAGON BALL PIRATE", 253, Mapper253_Init}, + {"", 254, Mapper254_Init}, +// {"", 255, Mapper255_Init}, // No good dumps for this mapper {"", 0, NULL} }; diff --git a/src/ines.h b/src/ines.h index d3acc83f..3dc1743e 100644 --- a/src/ines.h +++ b/src/ines.h @@ -485,6 +485,7 @@ void Mapper212_Init(CartInfo *); void Mapper213_Init(CartInfo *); void Mapper214_Init(CartInfo *); void Mapper216_Init(CartInfo *); +void Mapper217_Init(CartInfo *); void Mapper220_Init(CartInfo *); void Mapper222_Init(CartInfo *); void Mapper225_Init(CartInfo *); diff --git a/src/unif.cpp b/src/unif.cpp index 243f4b99..b4b52674 100644 --- a/src/unif.cpp +++ b/src/unif.cpp @@ -317,136 +317,138 @@ static int LoadCHR(FCEUFILE *fp) static BMAPPING bmap[] = { - { "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}, - { "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_EXPCHRR}, - { "FK23CA", BMCFK23CA_Init,BMCFLAG_EXPCHRR}, - { "FS304", UNLFS304_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}, - { "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}, - { "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}, - { "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}, - { "UOROM", UNROM_Init,0}, - { "VRC7", UNLVRC7_Init,0}, - { "YOKO", UNLYOKO_Init,0}, + { "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 }, + { "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_EXPCHRR }, + { "FK23CA", BMCFK23CA_Init, BMCFLAG_EXPCHRR }, + { "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 }, + { "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 }, + { "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 }, + { "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 }, + { "UOROM", UNROM_Init, 0 }, + { "VRC7", UNLVRC7_Init, 0 }, + { "YOKO", UNLYOKO_Init, 0 }, {0,0,0} }; diff --git a/src/unif.h b/src/unif.h index e68aeb16..ff7d7ef5 100644 --- a/src/unif.h +++ b/src/unif.h @@ -20,6 +20,7 @@ void AC08_Init(CartInfo *info); void ANROM_Init(CartInfo *info); +void BMC11160_Init(CartInfo *info); void BMC12IN1_Init(CartInfo *info); void BMC13in1JY110_Init(CartInfo *info); void BMC190in1_Init(CartInfo *info); @@ -34,6 +35,7 @@ void BMCBS5_Init(CartInfo *info); void BMCD1038_Init(CartInfo *info); void BMCFK23CA_Init(CartInfo *info); void BMCFK23C_Init(CartInfo *info); +void BMCG146_Init(CartInfo *info); void BMCGK192_Init(CartInfo *info); void BMCGS2004_Init(CartInfo *info); void BMCGS2013_Init(CartInfo *info);