capcom/cps1.cpp: Added SFZ63B mapper. (#10673)

This PAL was found on mpumpkin, assumed to come from sfz.
This commit is contained in:
Tom 2022-12-11 15:16:43 +00:00 committed by GitHub
parent ab4226221c
commit a4889dee2e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 12 deletions

View file

@ -13839,7 +13839,7 @@ ROM_START( pokonyan )
*/
ROM_END
ROM_START( mpumpkin ) // B board: ? C board: 92631C-6
ROM_START( mpumpkin ) // B board: 91634B-? C board: 92631C-6
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_WORD_SWAP( "mpa_23.8f", 0x00000, 0x80000, CRC(38b9883a) SHA1(94a89a360a502f209aa905e7eb2f1d472960850f) )
// remaining sockets are empty
@ -13994,6 +13994,9 @@ ROM_START( sfach )
ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
ROM_LOAD( "sfz18", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5) )
ROM_LOAD( "sfz19", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58) )
ROM_REGION( 0x0200, "bboardplds", 0 )
ROM_LOAD( "sfz63b.1a", 0x0000, 0x0104, CRC(f5a351da) SHA1(a867947d784167b5284efb76a8634ca5713dafdb) )
ROM_END
/* FIXME B-Board uncertain but should be 91634B from the program ROM names */
@ -14032,6 +14035,12 @@ ROM_START( sfzch )
ROM_REGION( 0x40000, "oki",0 ) /* Samples */
ROM_LOAD( "sfz_18.11c", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5) )
ROM_LOAD( "sfz_19.12c", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58) )
// SFZ63B was found on mpumpkin, assumed to be from SFZ
ROM_REGION( 0x0200, "bboardplds", 0 )
ROM_LOAD( "sfz63b.1a", 0x0000, 0x0104, CRC(f5a351da) SHA1(a867947d784167b5284efb76a8634ca5713dafdb) ) // PAL16L8
// TODO... confirm other pals (could be unique as this is the "cps changer" home console)
ROM_END
/* FIXME B-Board uncertain but should be 91634B from the program ROM names */
@ -14070,6 +14079,9 @@ ROM_START( sfzbch )
ROM_REGION( 0x40000, "oki",0 ) /* Samples */
ROM_LOAD( "sfz_18.11c", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5) )
ROM_LOAD( "sfz_19.12c", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58) )
ROM_REGION( 0x0200, "bboardplds", 0 )
ROM_LOAD( "sfz63b.1a", 0x0000, 0x0104, CRC(f5a351da) SHA1(a867947d784167b5284efb76a8634ca5713dafdb) )
ROM_END

View file

@ -1452,14 +1452,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 +1571,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 },
@ -1821,7 +1841,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_sfzch }, // PAL is dumped but not analyzed yet, same as SFZCH
{"mpumpkin", CPS_B_21_DEF, mapper_SFZ63B },
/* from here onwards the CPS-B board has suicide battery and multiply protection */
@ -1913,7 +1933,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 */
@ -1948,7 +1968,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 },
@ -1975,9 +1995,9 @@ static const struct CPS1config cps1_config_table[]=
/* 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 */