There's a demo recorder that's enabled if ROM address 0x3FFF0 is set to 0000: It's set to FFFF in commercial sets. Place the following code in MAME's cabal.xml cheat file (or the cheat file for the Cabal set of your choice) to re-enable the demo recorder.
<cheat desc="Demo Recorder"> <script state="run"> <action>maincpu.mw@3FFF0=0000</action> </script> <script state="off"> <action>maincpu.mw@3FFF0=FFFF</action> </script> </cheat>
The game will try to write both player's inputs and the current RNG value to the main board, but since the commercial boards are read-only it doesn't quite work. Pressing 1P Start will (try to) write FFFF to the ROM to mark the end of the demo; After that, the game goes into an infinite loop to prevent further recording.
Found in 0x0F00 in the audio CPU:
Michel/Seibu sound 11/04/88
"Seibu" probably refers to Seibu Kaihatsu, which would go on to release Dynamite Duke, a shooter with gameplay very similar to Cabal, in 1989.
Six levels were designed for Cabal, but an entire level was dummied out before release. Put the following cheat code in MAME's cabal.xml cheat file and enable it to replace Level-1 with this unused level.
<cheat desc="Lost Level"> <script state="run"> <action>maincpu.mw@02124=BF70</action> <action>maincpu.mw@03296=8770</action> <action>maincpu.mw@0329A=8970</action> <action>maincpu.mw@0329E=8B70</action> <action>maincpu.mw@032A2=8D70</action> </script> <script state="off"> <action>maincpu.mw@02124=C370</action> <action>maincpu.mw@03296=9770</action> <action>maincpu.mw@0329A=9970</action> <action>maincpu.mw@0329E=9B70</action> <action>maincpu.mw@032A2=9D70</action> </script> </cheat>
|Screen 1||Screen 2||Screen 3||Screen 4|
Though the level intro screen says this is Level-5, the internal order of the game's levels suggests that this was supposed to be Level-1. Perhaps they were debating on which of the levels would end up as Level-5 and which one would be cut.
Unfortunately, only the screen and tilemap data remain in the ROM. There's no object data for any of the four screens, nor do there seem to be any sprites in the object graphics ROM that match up with the buildings shown in the level intro.
Alternate Explosive Behavior
Normally, when enemy explosives land on the player's level, they just explode. However, there's unused code in the game that would spawn four fireballs in the explosion -- two to the left, two to the right -- that could also kill the player. This is effectively dummied out by an RTS opcode at the start of the subroutine, but putting the following code in cabal.xml will restore this behavior:
<cheat desc="Alternate Explosive Behavior"> <script state="on"> <action>maincpu.mw@$08F8A=FBAE</action> </script> <script state="off"> <action>maincpu.mw@$08F8A=FBAC</action> </script> </cheat>
The monolith in Level 1-2 seems to have accidentally been assigned the wrong palette number, 06. The correct palette number, 0C, makes the message on the monolith legible.
The Japanese, North American, and European releases use trackball controls. The nebulous "World" set uses a joystick instead.
There are at least two US revisions of Cabal. The newer revision -- cabalus in MAME -- was produced sometime after January 1989, so the now mandatory "Winners Don't Use Drugs" screen was added to the game's attract mode.