From 744cf19119e4b089857c2b5b177aba6eed2735e0 Mon Sep 17 00:00:00 2001 From: "Alex W. Jackson" Date: Thu, 2 Jun 2011 12:21:40 +0000 Subject: [PATCH] cps2: Replaced mvsc bad ROM with hand-repaired one (no whatsnew) --- src/mame/drivers/cps2.c | 51 +++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c index c72e19d861b..0d21eb8dd39 100644 --- a/src/mame/drivers/cps2.c +++ b/src/mame/drivers/cps2.c @@ -597,7 +597,7 @@ Stephh's inputs notes (based on some tests on the "parent" set) : #include "machine/eeprom.h" #include "cpu/m68000/m68000.h" #include "sound/qsound.h" -#include "sound/okim6295.h" // gigaman2 bootleg +#include "sound/okim6295.h" // gigamn2 bootleg #include "includes/cps1.h" /* External CPS1 definitions */ @@ -1208,7 +1208,7 @@ static MACHINE_START( cps2 ) state->save_item(NAME(state->m_scancount)); - if (state->m_audiocpu != NULL) // gigaman2 has no audiocpu + if (state->m_audiocpu != NULL) // gigamn2 has no audiocpu memory_configure_bank(machine, "bank1", 0, (QSOUND_SIZE - 0x10000) / 0x4000, machine.region("audiocpu")->base() + 0x10000, 0x4000); } @@ -1267,7 +1267,7 @@ static MACHINE_CONFIG_DERIVED( dead_cps2, cps2 ) MCFG_CPU_PROGRAM_MAP(dead_cps2_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED( gigaman2, cps2 ) +static MACHINE_CONFIG_DERIVED( gigamn2, cps2 ) MCFG_DEVICE_REMOVE("audiocpu") @@ -3605,26 +3605,26 @@ Sound : Atmel AT89C4051-24PI + M6295 (noted AD-65) */ -ROM_START( gigaman2 ) +ROM_START( gigamn2 ) ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "sys_rom1.bin", 0x000000, 0x400000, CRC(2eaa5e10) SHA1(79f9a137bf5b3317579c548f346c1dc1cccdb771) ) + ROM_LOAD16_WORD_SWAP( "prog.bin", 0x000000, 0x400000, CRC(2eaa5e10) SHA1(79f9a137bf5b3317579c548f346c1dc1cccdb771) ) ROM_REGION(0x10000, "mcu", 0 ) /* sound MCU code */ ROM_LOAD( "89c4051.bin", 0x000000, 0x10000, NO_DUMP ) ROM_REGION( 0x1000000, "gfx", 0 ) + ROM_FILL( 0x000000, 0x800000, 0 ) /* you can use the original CPS2 gfx roms, but the 'GIGA part of GIGAMAN2 is missing, on real HW it isn't, roms are different */ // ROMX_LOAD( "rm2.14m", 0x800000, 0x200000, CRC(9b1f00b4) SHA1(c1c5c2d9d00121425ae6598444d704f420ef4eef) , ROM_GROUPWORD | ROM_SKIP(6) ) // ROMX_LOAD( "rm2.16m", 0x800002, 0x200000, CRC(c2bb0c24) SHA1(38724c49d9db49765a4ed9bc2dc8f57cec45ec7c) , ROM_GROUPWORD | ROM_SKIP(6) ) // ROMX_LOAD( "rm2.18m", 0x800004, 0x200000, CRC(12257251) SHA1(20cb58afda0e6200991277817485340a6a41ae2b) , ROM_GROUPWORD | ROM_SKIP(6) ) // ROMX_LOAD( "rm2.20m", 0x800006, 0x200000, CRC(f9b6e786) SHA1(aeb4acff7208e66a35198143fd2478039fdaa3a6) , ROM_GROUPWORD | ROM_SKIP(6) ) - /* TODO: understand the proper ROM loading and gfxdecoding */ - ROM_LOAD32_WORD( "cg_rom1.bin", 0x0000000, 0x800000, CRC(ed55a641) SHA1(fa798779a3787317937a646047620b1c0dbe102a) ) - ROM_LOAD32_WORD( "cg_rom2.bin", 0x0000002, 0x800000, CRC(63918c05) SHA1(3a7fdf88e87bdbc622504276287740c08df38f6f) ) + ROM_LOAD( "gfx1.bin", 0x800000, 0x400000, NO_DUMP ) + ROM_LOAD( "gfx2.bin", 0xc00000, 0x400000, NO_DUMP ) - ROM_REGION( 0x800000, "oki", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "oki", 0 ) /* QSound samples */ /* No Qsound, OKI instead.. */ - ROM_LOAD( "pcm_rom1.bin", 0x000000, 0x800000, CRC(41a854ab) SHA1(206448c3e27d260d0650c28a9cd524854ce0b64d) ) + ROM_LOAD( "oki.bin", 0x000000, 0x400000, NO_DUMP ) ROM_END ROM_START( mmatrix ) @@ -4235,10 +4235,21 @@ ROM_START( mshvsfb1 ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) ROM_END +/* +Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123): +The originally dumped ROM4 contains garbage instructions that cause the game to crash during the ending staff roll. +The ROM has been repaired so that the code matches the other sets after decryption: + + offset dumped repaired decrypted + 0x40/2 001a 189a EB11 -> 4EF9 + 0x60/2 800b c00b 0843 -> 227C +*/ + ROM_START( mvsc ) ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_WORD_SWAP( "mvce.03a", 0x000000, 0x80000, CRC(824e4a90) SHA1(5c79c166d988d8a75d9941f4ee6fa4d6476e55e1) ) - ROM_LOAD16_WORD_SWAP( "mvce.04a", 0x080000, 0x80000, BAD_DUMP CRC(cac02153) SHA1(ee9f9da6fda53f21ba7b74367612c90281269690) ) +// ROM_LOAD16_WORD_SWAP( "mvce.04a", 0x080000, 0x80000, BAD_DUMP CRC(cac02153) SHA1(ee9f9da6fda53f21ba7b74367612c90281269690) ) + ROM_LOAD16_WORD_SWAP( "mvce.04a", 0x080000, 0x80000, CRC(436c5a4e) SHA1(82f4586e888f2550c53bfdc93a53791a595e05bd) ) ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) ) ROM_LOAD16_WORD_SWAP( "mvc.06a", 0x180000, 0x80000, CRC(8528e1f5) SHA1(cd065c05268ab581b05676da544baf6af642acac) ) ROM_LOAD16_WORD_SWAP( "mvc.07", 0x200000, 0x80000, CRC(c3baa32b) SHA1(d35589847e0753e869ffcd7c3abed925bfdb0fa2) ) @@ -8015,19 +8026,19 @@ static DRIVER_INIT ( pzloop2 ) machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x804000, 0x804001, FUNC(joy_or_paddle_r)); } -static READ16_HANDLER( gigaman2_dummyqsound_r ) +static READ16_HANDLER( gigamn2_dummyqsound_r ) { cps_state *state = space->machine().driver_data(); - return state->m_gigaman2_dummyqsound_ram[offset]; + return state->m_gigamn2_dummyqsound_ram[offset]; }; -static WRITE16_HANDLER( gigaman2_dummyqsound_w ) +static WRITE16_HANDLER( gigamn2_dummyqsound_w ) { cps_state *state = space->machine().driver_data(); - state->m_gigaman2_dummyqsound_ram[offset] = data; + state->m_gigamn2_dummyqsound_ram[offset] = data; }; -static DRIVER_INIT( gigaman2 ) +static DRIVER_INIT( gigamn2 ) { cps_state *state = machine.driver_data(); address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); @@ -8036,10 +8047,10 @@ static DRIVER_INIT( gigaman2 ) DRIVER_INIT_CALL(cps2); - state->m_gigaman2_dummyqsound_ram = auto_alloc_array(machine, UINT16, 0x20000 / 2); - state->save_pointer(NAME(state->m_gigaman2_dummyqsound_ram), 0x20000 / 2); + state->m_gigamn2_dummyqsound_ram = auto_alloc_array(machine, UINT16, 0x20000 / 2); + state->save_pointer(NAME(state->m_gigamn2_dummyqsound_ram), 0x20000 / 2); - machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x618000, 0x619fff, FUNC(gigaman2_dummyqsound_r), FUNC(gigaman2_dummyqsound_w)); // no qsound.. + machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x618000, 0x619fff, FUNC(gigamn2_dummyqsound_r), FUNC(gigamn2_dummyqsound_w)); // no qsound.. space->set_decrypted_region(0x000000, (length) - 1, &rom[length/4]); m68k_set_encrypted_opcode_range(machine.device("maincpu"), 0, length); } @@ -9620,7 +9631,7 @@ GAME( 1996, sfz2jd, sfa2, dead_cps2, cps2_2p6b, cps2, ROT0, "bootleg" GAME( 1996, spf2td, spf2t, dead_cps2, cps2_2p2b, cps2, ROT0, "bootleg", "Super Puzzle Fighter II Turbo (USA 960620 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE ) GAME( 1996, spf2xjd, spf2t, dead_cps2, cps2_2p2b, cps2, ROT0, "bootleg", "Super Puzzle Fighter II X (Japan 960531 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE ) GAME( 1996, ddsomud, ddsom, dead_cps2, cps2_4p4b, cps2, ROT0, "bootleg", "Dungeons & Dragons: Shadow over Mystara (USA 960619 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE ) -GAME( 1996, gigaman2, megaman2, gigaman2, cps2_2p3b, gigaman2,ROT0, "bootleg", "Giga Man 2: The Power Fighters (bootleg of Mega Man 2: The Power Fighters)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // flash roms aren't dumped, layer offsets different, different sound system +GAME( 1996, gigamn2, megaman2, gigamn2, cps2_2p3b, gigamn2, ROT0, "bootleg", "Giga Man 2: The Power Fighters (bootleg of Mega Man 2: The Power Fighters)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // flash roms aren't dumped, layer offsets different, different sound system GAME( 1996, megamn2d, megaman2, dead_cps2, cps2_2p3b, cps2, ROT0, "bootleg", "Mega Man 2: The Power Fighters (USA 960708 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE ) GAME( 1996, sfz2ald, sfz2al, dead_cps2, cps2_2p6b, cps2, ROT0, "bootleg", "Street Fighter Zero 2 Alpha (Asia 960826 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE ) GAME( 1996, xmvsfu1d, xmvsf, dead_cps2, cps2_2p6b, cps2, ROT0, "bootleg", "X-Men Vs. Street Fighter (USA 961004 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )