{
/* name CPSB gfx mapper in2 in3 out2 kludge */
{"forgottn", CPS_B_01, mapper_LW621 },
{"forgottnu", CPS_B_01, mapper_LW621 },
{"forgottnua", CPS_B_01, mapper_LWCHR },
{"lostwrld", CPS_B_01, mapper_LWCHR },
{"lostwrldo", CPS_B_01, mapper_LWCHR },
{"ghouls", CPS_B_01, mapper_DM620 },
{"ghoulsu", CPS_B_01, mapper_DM620 },
{"daimakai", CPS_B_01, mapper_DM22A }, // equivalent to DM620
{"daimakair", CPS_B_21_DEF, mapper_DAM63B }, // equivalent to DM620, also CPS_B_21_DEF is equivalent to CPS_B_01
{"strider", CPS_B_01, mapper_ST24M1 },
{"striderua", CPS_B_01, mapper_ST24M1 }, // wrong, this set uses ST24B2, still not dumped
{"striderj", CPS_B_01, mapper_ST22B }, // equivalent to ST24M1
{"striderjr", CPS_B_21_DEF, mapper_ST24M1 }, // wrong, this set uses STH63B, still not dumped
{"dynwar", CPS_B_02, mapper_TK22B }, // wrong, this set uses TK24B1, dumped but equations still not added
{"dynwara", CPS_B_02, mapper_TK22B },
{"dynwarj", CPS_B_02, mapper_TK22B },
{"dynwarjr", CPS_B_21_DEF, mapper_TK22B }, // wrong, this set uses TK163B, still not dumped
{"willow", CPS_B_03, mapper_WL24B },
{"willowo", CPS_B_03, mapper_WL24B },
{"willowj", CPS_B_03, mapper_WL24B }, // wrong, this set uses WL22B, still not dumped
{"ffight", CPS_B_04, mapper_S224B },
{"ffightu", CPS_B_04, mapper_S224B },
{"ffightu1", CPS_B_04, mapper_S224B },
{"ffightua", CPS_B_01, mapper_S224B },
{"ffightub", CPS_B_05, mapper_S224B },
{"ffightj", CPS_B_04, mapper_S224B }, // wrong, this set uses S222B, still not dumped
{"ffightj1", CPS_B_01, mapper_S224B }, // wrong, this set uses S222B, still not dumped
{"ffightj2", CPS_B_02, mapper_S224B }, // wrong, this set uses S222B, still not dumped
{"ffightjh", CPS_B_01, mapper_S224B }, // wrong, ffightjh hack doesn't even use the S222B PAL, since replaced with a GAL.
{"1941", CPS_B_05, mapper_YI24B },
{"1941u", CPS_B_05, mapper_YI24B },
{"1941j", CPS_B_05, mapper_YI24B }, // wrong, this set uses YI22B, still not dumped
{"unsquad", CPS_B_11, mapper_AR24B },
{"area88", CPS_B_11, mapper_AR22B }, // equivalent to AR24B
{"area88r", CPS_B_21_DEF, mapper_AR22B }, // wrong, this set uses ARA63B, still not dumped
{"mercs", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
{"mercsu", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
{"mercsur1", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
{"mercsj", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 }, // wrong, this set uses O222B, still not dumped
{"msword", CPS_B_13, mapper_MS24B },
{"mswordr1", CPS_B_13, mapper_MS24B },
{"mswordu", CPS_B_13, mapper_MS24B },
{"mswordj", CPS_B_13, mapper_MS24B }, // wrong, this set uses MS22B, still not dumped
{"mtwins", CPS_B_14, mapper_CK24B },
{"chikij", CPS_B_14, mapper_CK24B }, // wrong, this set uses CK22B, still not dumped
{"nemo", CPS_B_15, mapper_NM24B },
{"nemoj", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B, still not dumped
{"cawing", CPS_B_16, mapper_CA24B },
{"cawingr1", CPS_B_16, mapper_CA24B },
{"cawingu", CPS_B_16, mapper_CA24B },
{"cawingj", CPS_B_16, mapper_CA22B }, // equivalent to CA24B
{"cawingbl", CPS_B_16, mapper_CA22B }, // equivalent to CA24B
{"cawingb", CPS_B_16, mapper_CA24B, 0, 0, 0, 3 },
{"sf2", CPS_B_11, mapper_STF29, 0x36 },
{"sf2eb", CPS_B_17, mapper_STF29, 0x36 },
{"sf2ee", CPS_B_18, mapper_STF29, 0x3c },
{"sf2ebbl", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
{"sf2ua", CPS_B_17, mapper_STF29, 0x36 },
{"sf2ub", CPS_B_17, mapper_STF29, 0x36 },
{"sf2uc", CPS_B_12, mapper_STF29, 0x36 },
{"sf2ud", CPS_B_05, mapper_STF29, 0x36 },
{"sf2ue", CPS_B_18, mapper_STF29, 0x3c },
{"sf2uf", CPS_B_15, mapper_STF29, 0x36 },
{"sf2ui", CPS_B_14, mapper_STF29, 0x36 },
{"sf2uk", CPS_B_17, mapper_STF29, 0x36 },
{"sf2j", CPS_B_13, mapper_STF29, 0x36 },
{"sf2ja", CPS_B_17, mapper_STF29, 0x36 },
{"sf2jc", CPS_B_12, mapper_STF29, 0x36 },
{"sf2qp1", CPS_B_17, mapper_STF29, 0x36 },
{"sf2thndr", CPS_B_17, mapper_STF29, 0x36 },
/* from here onwards the CPS-B board has suicide battery and multiply protection */
{"3wonders", CPS_B_21_BT1, mapper_RT24B },
{"3wondersu", CPS_B_21_BT1, mapper_RT24B },
{"wonder3", CPS_B_21_BT1, mapper_RT22B }, // equivalent to RT24B
{"3wondersh", CPS_B_02 , mapper_RT24B }, /* Not 100% sure of the CPS B-ID */
{"kod", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
{"kodr1", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
{"kodu", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
{"kodj", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
{"kodja", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, // wrong, this set uses KD22B, still not dumped
{"kodb", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, /* bootleg, doesn't use multiply protection */
{"kodh", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 },
{"captcomm", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcommr1", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcommu", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcommj", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcommjr1", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcommb", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34, 2 },
#ifdef KAILLERA
{"captcomm3p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcomu3p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcomj3p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcomm4p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcomu4p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcomj4p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
#endif /* KAILLERA */
{"knights", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
{"knightsu", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
{"knightsj", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
{"knightsja", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // wrong, this set uses KR22B, still not dumped
{"knightsb", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // wrong, knightsb bootleg doesn't use the KR63B PAL
{"knightsb2", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34, 4 },
{"knightsh", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 },
{"sf2ce", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2ceea", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2ceua", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2ceub", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2ceuc", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2cej", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2rb", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2rb2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2rb3", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2red", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2v004", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2acc", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2accp2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2dkot2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2m1", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 5 },
{"sf2m2", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m3", HACK_B_3, mapper_S9263B, 0x36, 0, 0, 6 },
{"sf2m4", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m5", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m6", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m7", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m8", HACK_B_3, mapper_S9263B, 0x36, 0, 0, 6 },
{"sf2m9", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m10", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m11", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m12", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m13", HACK_B_4, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2yyc", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2koryu", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2mdt", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2tlona", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2tlonb", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"varth", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=000 register is also written to, possibly leftover from development */ // wrong, this set uses VA24B, dumped but equations still not added
{"varthr1", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=000 register is also written to, possibly leftover from development */ // wrong, this set uses VA24B, dumped but equations still not added
{"varthu", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=000 register is also written to, possibly leftover from development */
{"varthj", CPS_B_21_BT5, mapper_VA22B }, /* CPSB test has been patched out (72=0001) register is also written to, possibly leftover from development */
{"cworld2j", CPS_B_21_BT6, mapper_Q522B, 0x36, 0, 0x34 }, /* (ports 36, 34 probably leftover input code from another game) */
{"wof", CPS_B_21_QS1, mapper_TK263B },
{"wofr1", CPS_B_21_DEF, mapper_TK263B },
{"wofa", CPS_B_21_DEF, mapper_TK263B },
{"wofu", CPS_B_21_QS1, mapper_TK263B },
{"wofj", CPS_B_21_QS1, mapper_TK263B },
{"wofhfh", CPS_B_21_DEF, mapper_TK263B, 0x36 }, /* Chinese bootleg */
{"wofh", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wofha", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wof3js", CPS_B_21_DEF, mapper_TK263B },
{"wofsj", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wofsja", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wofsjb", CPS_B_21_DEF, mapper_TK263B },
{"wof3sj", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wof3sja", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wofb", CPS_B_21_DEF, mapper_TK263B },
{"dino", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
{"dinou", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
{"dinoj", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
{"dinopic", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
{"dinopic2", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
{"dinoh", CPS_B_21_DEF, mapper_CD63B }, /* layer enable never used */
{"dinoha", CPS_B_21_DEF, mapper_CD63B }, /* layer enable never used */
{"dinohb", CPS_B_21_QS2, mapper_CD63B, 0, 0, 0, 5 }, /* layer enable never used */
{"dinohunt", CPS_B_21_DEF, mapper_CD63B }, /* Chinese bootleg */
{"punisher", CPS_B_21_QS3, mapper_PS63B },
{"punisheru", CPS_B_21_QS3, mapper_PS63B },
{"punisherj", CPS_B_21_QS3, mapper_PS63B },
{"punipic", CPS_B_21_QS3, mapper_PS63B },
{"punipic2", CPS_B_21_QS3, mapper_PS63B },
{"punipic3", CPS_B_21_QS3, mapper_PS63B },
{"punisherbz", CPS_B_21_DEF, mapper_PS63B }, /* Chinese bootleg */
{"slammast", CPS_B_21_QS4, mapper_MB63B },
{"slammastu", CPS_B_21_QS4, mapper_MB63B },
{"mbomberj", CPS_B_21_QS4, mapper_MB63B },
{"mbombrd", CPS_B_21_QS5, mapper_MB63B },
{"mbombrdj", CPS_B_21_QS5, mapper_MB63B },
{"sf2hf", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2hfu", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2hfj", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"qad", CPS_B_21_BT7, mapper_QD22B, 0x36 }, /* TODO: layer enable (port 36 probably leftover input code from another game) */
{"qadj", CPS_B_21_DEF, mapper_QD63B, 0x36, 0x38, 0x34 }, /* (ports 36, 38, 34 probably leftover input code from another game) */
{"qtono2j", CPS_B_21_DEF, mapper_qtono2j,0x36, 0x38, 0x34 }, /* (ports 36, 38, 34 probably leftover input code from another game) */
{"megaman", CPS_B_21_DEF, mapper_RCM63B },
{"megamana", CPS_B_21_DEF, mapper_RCM63B },
{"rockmanj", CPS_B_21_DEF, mapper_RCM63B },
{"pnickj", CPS_B_21_DEF, mapper_PKB10B },
{"pang3", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9KA still not dumped
{"pang3r1", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
{"pang3j", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
{"pang3b", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
/* CPS Changer */
{"sfach", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
{"sfzbch", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
{"sfzch", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
{"wofch", CPS_B_21_DEF, mapper_TK263B },
/* name CPSB gfx mapper in2 in3 out2 kludge */
{"forgottn", CPS_B_01, mapper_LW621 },
{"forgottnu", CPS_B_01, mapper_LW621 },
{"forgottnua", CPS_B_01, mapper_LWCHR },
{"lostwrld", CPS_B_01, mapper_LWCHR },
{"lostwrldo", CPS_B_01, mapper_LWCHR },
{"ghouls", CPS_B_01, mapper_DM620 },
{"ghoulsu", CPS_B_01, mapper_DM620 },
{"daimakai", CPS_B_01, mapper_DM22A }, // equivalent to DM620
{"daimakair", CPS_B_21_DEF, mapper_DAM63B }, // equivalent to DM620, also CPS_B_21_DEF is equivalent to CPS_B_01
{"strider", CPS_B_01, mapper_ST24M1 },
{"striderua", CPS_B_01, mapper_ST24M1 }, // wrong, this set uses ST24B2, still not dumped
{"striderj", CPS_B_01, mapper_ST22B }, // equivalent to ST24M1
{"striderjr", CPS_B_21_DEF, mapper_ST24M1 }, // wrong, this set uses STH63B, still not dumped
{"dynwar", CPS_B_02, mapper_TK22B }, // wrong, this set uses TK24B1, dumped but equations still not added
{"dynwara", CPS_B_02, mapper_TK22B },
{"dynwarj", CPS_B_02, mapper_TK22B },
{"dynwarjr", CPS_B_21_DEF, mapper_TK22B }, // wrong, this set uses TK163B, still not dumped
{"willow", CPS_B_03, mapper_WL24B },
{"willowo", CPS_B_03, mapper_WL24B },
{"willowj", CPS_B_03, mapper_WL24B }, // wrong, this set uses WL22B, still not dumped
{"ffight", CPS_B_04, mapper_S224B },
{"ffightu", CPS_B_04, mapper_S224B },
{"ffightu1", CPS_B_04, mapper_S224B },
{"ffightua", CPS_B_01, mapper_S224B },
{"ffightub", CPS_B_05, mapper_S224B },
{"ffightj", CPS_B_04, mapper_S224B }, // wrong, this set uses S222B, still not dumped
{"ffightj1", CPS_B_01, mapper_S224B }, // wrong, this set uses S222B, still not dumped
{"ffightj2", CPS_B_02, mapper_S224B }, // wrong, this set uses S222B, still not dumped
{"ffightjh", CPS_B_01, mapper_S224B }, // wrong, ffightjh hack doesn't even use the S222B PAL, since replaced with a GAL.
{"1941", CPS_B_05, mapper_YI24B },
{"1941u", CPS_B_05, mapper_YI24B },
{"1941j", CPS_B_05, mapper_YI24B }, // wrong, this set uses YI22B, still not dumped
{"unsquad", CPS_B_11, mapper_AR24B },
{"area88", CPS_B_11, mapper_AR22B }, // equivalent to AR24B
{"area88r", CPS_B_21_DEF, mapper_AR22B }, // wrong, this set uses ARA63B, still not dumped
{"mercs", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
{"mercsu", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
{"mercsur1", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
{"mercsj", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 }, // wrong, this set uses O222B, still not dumped
{"msword", CPS_B_13, mapper_MS24B },
{"mswordr1", CPS_B_13, mapper_MS24B },
{"mswordu", CPS_B_13, mapper_MS24B },
{"mswordj", CPS_B_13, mapper_MS24B }, // wrong, this set uses MS22B, still not dumped
{"mtwins", CPS_B_14, mapper_CK24B },
{"chikij", CPS_B_14, mapper_CK24B }, // wrong, this set uses CK22B, still not dumped
{"nemo", CPS_B_15, mapper_NM24B },
{"nemoj", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B, still not dumped
{"cawing", CPS_B_16, mapper_CA24B },
{"cawingr1", CPS_B_16, mapper_CA24B },
{"cawingu", CPS_B_16, mapper_CA24B },
{"cawingj", CPS_B_16, mapper_CA22B }, // equivalent to CA24B
{"cawingbl", CPS_B_16, mapper_CA22B }, // equivalent to CA24B
{"cawingb", CPS_B_16, mapper_CA24B, 0, 0, 0, 3 },
{"sf2", CPS_B_11, mapper_STF29, 0x36 },
{"sf2eb", CPS_B_17, mapper_STF29, 0x36 },
{"sf2ee", CPS_B_18, mapper_STF29, 0x3c },
{"sf2ebbl", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
{"sf2ua", CPS_B_17, mapper_STF29, 0x36 },
{"sf2ub", CPS_B_17, mapper_STF29, 0x36 },
{"sf2uc", CPS_B_12, mapper_STF29, 0x36 },
{"sf2ud", CPS_B_05, mapper_STF29, 0x36 },
{"sf2ue", CPS_B_18, mapper_STF29, 0x3c },
{"sf2uf", CPS_B_15, mapper_STF29, 0x36 },
{"sf2ui", CPS_B_14, mapper_STF29, 0x36 },
{"sf2uk", CPS_B_17, mapper_STF29, 0x36 },
{"sf2j", CPS_B_13, mapper_STF29, 0x36 },
{"sf2ja", CPS_B_17, mapper_STF29, 0x36 },
{"sf2jc", CPS_B_12, mapper_STF29, 0x36 },
{"sf2qp1", CPS_B_17, mapper_STF29, 0x36 },
{"sf2thndr", CPS_B_17, mapper_STF29, 0x36 },
/* from here onwards the CPS-B board has suicide battery and multiply protection */
{"3wonders", CPS_B_21_BT1, mapper_RT24B },
{"3wondersu", CPS_B_21_BT1, mapper_RT24B },
{"wonder3", CPS_B_21_BT1, mapper_RT22B }, // equivalent to RT24B
{"3wondersh", CPS_B_02 , mapper_RT24B }, /* Not 100% sure of the CPS B-ID */
{"kod", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
{"kodr1", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
{"kodu", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
{"kodj", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
{"kodja", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, // wrong, this set uses KD22B, still not dumped
{"kodb", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, /* bootleg, doesn't use multiply protection */
{"kodh", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 },
{"captcomm", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcommr1", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcommu", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcommj", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcommjr1", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcommb", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34, 2 },
#ifdef KAILLERA
{"captcomm3p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcomu3p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcomj3p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcomm4p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcomu4p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
{"captcomj4p", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
#endif /* KAILLERA */
{"knights", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
{"knightsu", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
{"knightsj", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
{"knightsja", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // wrong, this set uses KR22B, still not dumped
{"knightsb", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // wrong, knightsb bootleg doesn't use the KR63B PAL
{"knightsb2", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34, 4 },
{"knightsh", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 },
{"sf2ce", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2ceea", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2ceua", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2ceub", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2ceuc", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2cej", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2rb", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2rb2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2rb3", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2red", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2v004", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2acc", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2accp2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2dkot2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2m1", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 5 },
{"sf2m2", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m3", HACK_B_3, mapper_S9263B, 0x36, 0, 0, 6 },
{"sf2m4", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m5", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m6", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m7", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m8", HACK_B_3, mapper_S9263B, 0x36, 0, 0, 6 },
{"sf2m9", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m10", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m11", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m12", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2m13", HACK_B_4, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2yyc", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2koryu", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2mdt", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2tlona", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2tlonb", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"varth", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=000 register is also written to, possibly leftover from development */ // wrong, this set uses VA24B, dumped but equations still not added
{"varthr1", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=000 register is also written to, possibly leftover from development */ // wrong, this set uses VA24B, dumped but equations still not added
{"varthu", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=000 register is also written to, possibly leftover from development */
{"varthj", CPS_B_21_BT5, mapper_VA22B }, /* CPSB test has been patched out (72=0001) register is also written to, possibly leftover from development */
{"cworld2j", CPS_B_21_BT6, mapper_Q522B, 0x36, 0, 0x34 }, /* (ports 36, 34 probably leftover input code from another game) */
{"wof", CPS_B_21_QS1, mapper_TK263B },
{"wofr1", CPS_B_21_DEF, mapper_TK263B },
{"wofa", CPS_B_21_DEF, mapper_TK263B },
{"wofu", CPS_B_21_QS1, mapper_TK263B },
{"wofj", CPS_B_21_QS1, mapper_TK263B },
{"wofhfh", CPS_B_21_DEF, mapper_TK263B, 0x36 }, /* Chinese bootleg */
{"wofh", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wofha", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wof3js", CPS_B_21_DEF, mapper_TK263B },
{"wofsj", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wofsja", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wofsjb", CPS_B_21_DEF, mapper_TK263B },
{"wof3sj", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wof3sja", HACK_B_2, mapper_TK263B, 0, 0, 0, 5 },
{"wofb", CPS_B_21_DEF, mapper_TK263B },
{"dino", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
{"dinou", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
{"dinoj", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
{"dinopic", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
{"dinopic2", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
{"dinoh", CPS_B_21_DEF, mapper_CD63B }, /* layer enable never used */
{"dinoha", CPS_B_21_DEF, mapper_CD63B }, /* layer enable never used */
{"dinohb", CPS_B_21_QS2, mapper_CD63B, 0, 0, 0, 5 }, /* layer enable never used */
{"dinohunt", CPS_B_21_DEF, mapper_CD63B }, /* Chinese bootleg */
{"punisher", CPS_B_21_QS3, mapper_PS63B },
{"punisheru", CPS_B_21_QS3, mapper_PS63B },
{"punisherj", CPS_B_21_QS3, mapper_PS63B },
{"punipic", CPS_B_21_QS3, mapper_PS63B },
{"punipic2", CPS_B_21_QS3, mapper_PS63B },
{"punipic3", CPS_B_21_QS3, mapper_PS63B },
{"punisherbz", CPS_B_21_DEF, mapper_PS63B }, /* Chinese bootleg */
{"slammast", CPS_B_21_QS4, mapper_MB63B },
{"slammastu", CPS_B_21_QS4, mapper_MB63B },
{"mbomberj", CPS_B_21_QS4, mapper_MB63B },
{"mbombrd", CPS_B_21_QS5, mapper_MB63B },
{"mbombrdj", CPS_B_21_QS5, mapper_MB63B },
{"sf2hf", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2hfu", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2hfj", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"qad", CPS_B_21_BT7, mapper_QD22B, 0x36 }, /* TODO: layer enable (port 36 probably leftover input code from another game) */
{"qadj", CPS_B_21_DEF, mapper_QD63B, 0x36, 0x38, 0x34 }, /* (ports 36, 38, 34 probably leftover input code from another game) */
{"qtono2j", CPS_B_21_DEF, mapper_qtono2j,0x36, 0x38, 0x34 }, /* (ports 36, 38, 34 probably leftover input code from another game) */
{"megaman", CPS_B_21_DEF, mapper_RCM63B },
{"megamana", CPS_B_21_DEF, mapper_RCM63B },
{"rockmanj", CPS_B_21_DEF, mapper_RCM63B },
{"pnickj", CPS_B_21_DEF, mapper_PKB10B },
{"pang3", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9KA still not dumped
{"pang3r1", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
{"pang3j", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
{"pang3b", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
/* CPS Changer */
{"sfach", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
{"sfzbch", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
{"sfzch", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
{"wofch", CPS_B_21_DEF, mapper_TK263B },