summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/capcom/cps1_v.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/capcom/cps1_v.cpp')
-rw-r--r--src/mame/capcom/cps1_v.cpp54
1 files changed, 40 insertions, 14 deletions
diff --git a/src/mame/capcom/cps1_v.cpp b/src/mame/capcom/cps1_v.cpp
index 7aebc0a68d3..b6981fc02a5 100644
--- a/src/mame/capcom/cps1_v.cpp
+++ b/src/mame/capcom/cps1_v.cpp
@@ -81,7 +81,7 @@ Mercs (USA 900608) 89624B-3 O2
Senjou no Ookami II (Japan 900302) 89625B-1 O222B LWIO? 90628-C-1 CPS-B-12 DL-0411-10007 C628
Mega Twins (World 900619) 1990 89624B-3 CK24B IOB1 88622-C-5 CPS-B-14 DL-0411-10009 None
-Chiki Chiki Boys (Japan 900619) 89625B-1 CK22B ? ? CPS-B-14 DL-0411-10009 None
+Chiki Chiki Boys (Japan 900619) 89625B-1 CK22B IOB1 88622-C-5 CPS-B-14 DL-0411-10009 None
Magic Sword: Heroic Fantasy (World 900623) 1990 89624B-3 MS24B IOB1 88622-C-5 CPS-B-13 DL-0411-10008 None
Magic Sword: Heroic Fantasy (World 900725) 89624B-3 MS24B IOB1 88622-C-5 CPS-B-13 DL-0411-10008 None
@@ -96,7 +96,8 @@ U.S. Navy (Japan 901012) 89625B-1 CA
Nemo (World 901109) 1990 89624B-3 NM24B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None
Nemo (World 901130) 89624B-3 NM24B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None
-Nemo (Japan 901120) 89625B-1 NM22B ? ? CPS-B-15 DL-0411-10010
+Nemo (Japan 901120) 89622B-3 NM22B LWIO 88622-C-5 CPS-B-15 DL-0411-10010 None
+Nemo (Japan 901120) 89625B-1 NM22B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None
Street Fighter II: The World Warrior (World 910129) 1991 90629B-2 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632
Street Fighter II: The World Warrior (World 910204)# 90629B-2 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632
@@ -1452,14 +1453,34 @@ static const struct gfx_range mapper_TN2292_table[] =
};
+// RCM63B, SFZ63B (megaman, sfzch) are equivalent, should be interchangeable on real PCBs without issue
+
#define mapper_RCM63B { 0x8000, 0x8000, 0x8000, 0x8000 }, mapper_RCM63B_table
static const struct gfx_range mapper_RCM63B_table[] =
{
// verified from PAL dump:
// bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
// bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
- // bank0 = pin 15 (ROMs 10,12) & pin 14 (ROMs 11,13)
- // bank1 = pin 13 (ROMs 14,16) & pin 12 (ROMs 15,17)
+ // bank2 = pin 15 (ROMs 10,12) & pin 14 (ROMs 11,13)
+ // bank3 = pin 13 (ROMs 14,16) & pin 12 (ROMs 15,17)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x10000, 0x17fff, 2 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x18000, 0x1ffff, 3 },
+ { 0 }
+};
+
+
+#define mapper_SFZ63B { 0x8000, 0x8000, 0x8000, 0x8000 }, mapper_SFZ63B_table
+static const struct gfx_range mapper_SFZ63B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // bank2 = pin 15 (ROMs 10,12) & pin 14 (ROMs 11,13)
+ // bank3 = pin 13 (ROMs 14,16) & pin 12 (ROMs 15,17)
/* type start end bank */
{ GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
@@ -1551,9 +1572,9 @@ static const struct gfx_range mapper_CP1B1F_boot_table[] =
};
-/* unverified, no dump */
-#define mapper_sfzch { 0x20000, 0, 0, 0 }, mapper_sfzch_table
-static const struct gfx_range mapper_sfzch_table[] =
+// varthb2, slampic2 bootlegs
+#define mapper_varthb2 { 0x20000, 0, 0, 0 }, mapper_varthb2_table
+static const struct gfx_range mapper_varthb2_table[] =
{
/* type start end bank */
{ GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 },
@@ -1760,6 +1781,7 @@ static const struct CPS1config cps1_config_table[]=
{"ffightj3", CPS_B_03, mapper_S222B }, // equivalent to S224B
{"ffightj4", CPS_B_05, mapper_S222B }, // equivalent to S224B
{"ffightjh", CPS_B_01, mapper_S224B }, // wrong, ffightjh hack doesn't even use the S222B PAL, since replaced with a GAL.
+ {"ffightae", CPS_B_21_DEF, mapper_S224B, 0x36 },
{"1941", CPS_B_05, mapper_YI24B },
{"1941r1", CPS_B_05, mapper_YI24B },
{"1941u", CPS_B_05, mapper_YI24B },
@@ -1779,7 +1801,8 @@ static const struct CPS1config cps1_config_table[]=
{"chikij", CPS_B_14, mapper_CK22B }, // equivalent to CK24B
{"nemo", CPS_B_15, mapper_NM24B },
{"nemor1", CPS_B_15, mapper_NM24B },
- {"nemoj", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B, still not dumped
+ {"nemoj", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B (dumped), specific mapper not implemented
+ {"nemoja", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B (dumped), specific mapper not implemented
{"cawing", CPS_B_16, mapper_CA24B },
{"cawingr1", CPS_B_16, mapper_CA24B },
{"cawingu", CPS_B_05, mapper_CA22B }, // equivalent to CA24B
@@ -1821,6 +1844,7 @@ static const struct CPS1config cps1_config_table[]=
{"sf2qp2", CPS_B_14, mapper_STF29, 0x36 },
{"sf2thndr", CPS_B_17, mapper_STF29, 0x36 },
{"sf2thndr2", CPS_B_17, mapper_STF29, 0x36 },
+ {"mpumpkin", CPS_B_21_DEF, mapper_SFZ63B },
/* from here onwards the CPS-B board has suicide battery and multiply protection */
@@ -1854,6 +1878,7 @@ static const struct CPS1config cps1_config_table[]=
{"pokonyan", CPS_B_21_DEF, mapper_pokonyan, 0x36 }, // wrong, this set uses an unknown PAL, still not dumped
{"sf2ce", CPS_B_21_DEF, mapper_S9263B, 0x36 },
{"sf2ceea", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceec", 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 },
@@ -1912,7 +1937,7 @@ static const struct CPS1config cps1_config_table[]=
{"sf2mkot", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 },
{"varth", CPS_B_04, mapper_VA24B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */
{"varthb", CPS_B_04, mapper_VA63B, 0, 0, 0, 0x0F },
- {"varthb2", HACK_B_3, mapper_sfzch, 0, 0, 0, 0xc1 }, // unknown gal, other varth mappers don't work (game looks for sprites in >0x8000 unmapped region)
+ {"varthb2", HACK_B_3, mapper_varthb2, 0, 0, 0, 0xc1 }, // unknown gal, other varth mappers don't work (game looks for sprites in >0x8000 unmapped region)
{"varthb3", CPS_B_04, mapper_VA63B, 0, 0, 0, 0x0F }, // TODO: wrong
{"varthr1", CPS_B_04, mapper_VA24B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */
{"varthu", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */
@@ -1947,7 +1972,7 @@ static const struct CPS1config cps1_config_table[]=
{"slammast", CPS_B_21_QS4, mapper_MB63B },
{"slammastu", CPS_B_21_QS4, mapper_MB63B },
{"slampic", CPS_B_21_QS4, mapper_MB63B },
- {"slampic2", CPS_B_21_QS4, mapper_sfzch }, // default cps2 mapper breaks scroll layers
+ {"slampic2", CPS_B_21_QS4, mapper_varthb2 }, // default cps2 mapper breaks scroll layers
{"mbomberj", CPS_B_21_QS4, mapper_MB63B },
{"mbombrd", CPS_B_21_QS5, mapper_MB63B },
{"mbombrdj", CPS_B_21_QS5, mapper_MB63B },
@@ -1970,13 +1995,14 @@ static const struct CPS1config cps1_config_table[]=
{"pang3b4", CPS_B_21_DEF, mapper_pang3b4 },
{"pang3b5", CPS_B_21_DEF, mapper_CP1B1F_boot }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */
{"ganbare", CPS_B_21_DEF, mapper_GBPR2 },
+ {"pmonster", CPS_B_21_DEF, mapper_GBPR2 }, // wrong, this set uses GBP63B, dumped but not reversed yet
{"gulunpa", CPS_B_21_DEF, mapper_gulunpa }, // wrong
/* 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
+ {"sfach", CPS_B_21_DEF, mapper_SFZ63B }, // SFZ63B found on mpumpkin, assumed to be from SFZ
+ {"sfzbch", CPS_B_21_DEF, mapper_SFZ63B },
+ {"sfzch", CPS_B_21_DEF, mapper_SFZ63B },
{"wofch", CPS_B_21_DEF, mapper_TK263B },
/* CPS2 games */
@@ -3089,7 +3115,7 @@ uint32_t cps_state::screen_update_cps1(screen_device &screen, bitmap_ind16 &bitm
return 0;
}
-WRITE_LINE_MEMBER(cps_state::screen_vblank_cps1)
+void cps_state::screen_vblank_cps1(int state)
{
// rising edge
if (state)