diff options
author | Olivier Galibert <galibert@pobox.com> | 2015-06-04 21:42:58 +0200 |
---|---|---|
committer | Olivier Galibert <galibert@pobox.com> | 2015-06-24 08:43:34 +0200 |
commit | 88949a5b47798b3c82851c31b6f801e4fb8ca06f (patch) | |
tree | 7929d5f4beb47f8f6b61fe2a2b89f2302f3df19c /src/mame/drivers/cabal.c | |
parent | d1583b9850d9fb45470648a515eb734e05fd926f (diff) |
memory: Remove support for decrypted bases, use an address space instead [O. Galibert]
Diffstat (limited to 'src/mame/drivers/cabal.c')
-rw-r--r-- | src/mame/drivers/cabal.c | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c index 1ae39175190..54932b10902 100644 --- a/src/mame/drivers/cabal.c +++ b/src/mame/drivers/cabal.c @@ -468,7 +468,7 @@ static GFXDECODE_START( cabal ) GFXDECODE_END -static MACHINE_CONFIG_START( cabal, cabal_state ) +static MACHINE_CONFIG_START( cabal_base, cabal_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb */ @@ -511,6 +511,14 @@ static MACHINE_CONFIG_START( cabal, cabal_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.40) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( cabal, cabal_base ) + SEIBU_SOUND_SYSTEM_ENCRYPTED_LOW() +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( cabalbl2, cabal_base ) + SEIBU_SOUND_SYSTEM_ENCRYPTED_CUSTOM() +MACHINE_CONFIG_END + /* the bootleg has different sound hardware (2 extra Z80s for ADPCM playback) */ static MACHINE_CONFIG_START( cabalbl, cabal_state ) @@ -787,7 +795,7 @@ ROM_END // based on stickers present on the board it appears to have been manufactured by 'TAB-Austria' and is marked 'CA02' ROM_START( cabalbl2 ) - ROM_REGION( 0x50000, "maincpu", 0 ) /* 64k for cpu code */ + ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for cpu code */ ROM_LOAD16_BYTE( "c9.bin", 0x00000, 0x10000, CRC(00abbe0c) SHA1(bacf17444abfb4f56248ff56e37b0aa2b1a3800d) ) ROM_LOAD16_BYTE( "c7.bin", 0x00001, 0x10000, CRC(44736281) SHA1(1d6da95ef96d9c02aea70791e1cb87b70097d5ed) ) ROM_LOAD16_BYTE( "c8.bin", 0x20000, 0x10000, CRC(d763a47c) SHA1(146d8082a404b6eddaf2dc9ba41a997949c17f8a) ) @@ -831,33 +839,17 @@ ROM_START( cabalbl2 ) ROM_END - -void cabal_state::seibu_sound_bootleg(const char *cpu,int length) -{ - address_space &space = machine().device(cpu)->memory().space(AS_PROGRAM); - UINT8 *decrypt = auto_alloc_array(machine(), UINT8, length); - UINT8 *rom = memregion(cpu)->base(); - - space.set_decrypted_region(0x0000, (length < 0x10000) ? (length - 1) : 0x1fff, decrypt); - - memcpy(decrypt, rom+length, length); - - if (length > 0x10000) - membank("bank1")->configure_decrypted_entries(0, (length - 0x10000) / 0x8000, decrypt + 0x10000, 0x8000); -} - - - DRIVER_INIT_MEMBER(cabal_state,cabal) { - m_seibu_sound->decrypt("audiocpu",0x2000); m_adpcm1->decrypt("adpcm1"); m_adpcm2->decrypt("adpcm2"); } DRIVER_INIT_MEMBER(cabal_state,cabalbl2) { - seibu_sound_bootleg("audiocpu",0x2000); + UINT8 *decrypt = m_seibu_sound->get_custom_decrypt(); + memcpy(decrypt, memregion("audiocpu")->base()+0x2000, 0x2000); + memcpy(decrypt+0x8000, memregion("audiocpu")->base()+0x8000, 0x8000); m_adpcm1->decrypt("adpcm1"); m_adpcm2->decrypt("adpcm2"); } @@ -866,7 +858,7 @@ DRIVER_INIT_MEMBER(cabal_state,cabalbl2) GAME( 1988, cabal, 0, cabal, cabalj, cabal_state, cabal, ROT0, "TAD Corporation", "Cabal (World, Joystick version)", GAME_SUPPORTS_SAVE ) GAME( 1989, cabala, cabal, cabal, cabalj, cabal_state, cabal, ROT0, "TAD Corporation (Alpha Trading license)", "Cabal (Alpha Trading)", GAME_SUPPORTS_SAVE ) // korea? GAME( 1988, cabalbl, cabal, cabalbl, cabalbl, driver_device, 0, ROT0, "bootleg (Red Corporation)", "Cabal (bootleg of Joystick version, set 1, alternate sound hardware)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -GAME( 1988, cabalbl2,cabal, cabal, cabalj, cabal_state, cabalbl2,ROT0, "bootleg", "Cabal (bootleg of Joystick version, set 2)", GAME_SUPPORTS_SAVE ) +GAME( 1988, cabalbl2,cabal, cabalbl2,cabalj, cabal_state, cabalbl2,ROT0, "bootleg", "Cabal (bootleg of Joystick version, set 2)", GAME_SUPPORTS_SAVE ) GAME( 1988, cabalus, cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Fabtek license)", "Cabal (US set 1, Trackball version)", GAME_SUPPORTS_SAVE ) GAME( 1988, cabalus2,cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Fabtek license)", "Cabal (US set 2, Trackball version)", GAME_SUPPORTS_SAVE ) |