summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cabal.c
diff options
context:
space:
mode:
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
commit88949a5b47798b3c82851c31b6f801e4fb8ca06f (patch)
tree7929d5f4beb47f8f6b61fe2a2b89f2302f3df19c /src/mame/drivers/cabal.c
parentd1583b9850d9fb45470648a515eb734e05fd926f (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.c36
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 )