If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Space Invaders DX (B System)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Space Invaders DX

Developer: Taito
Publisher: Taito
Platform: Arcade (Taito B System)
Released internationally: September 1994[1]


DebugIcon.png This game has debugging material.


Space Invaders DX (not to be confused with Space Invaders Deluxe) is essentially an arcade version of the SNES Space Invaders. The main addition is a new "Parody Mode" that replaces the invaders with characters from nine previous Taito games.

Debug Functions

Exception Handler

SpaceInvadersDXBCrashHandler.png
This game has a basic handler for the standard 68000 exception vectors. The information displayed includes the exception name, the values of the program counter, status register and stack pointer, and the 14 data/address registers.

BG/FG Viewer

Put the following code in MAME's spacedx.xml cheat file to access a graphics viewer after the export notice screen:

  <cheat desc="Tile Viewer">
    <script state="run">
      <action>maincpu.mw@07B8C=4E71</action>
    </script>
    <script state="off">
      <action>maincpu.mw@07B8C=4E75</action>
    </script>
  </cheat>

SpaceInvadersDXBGraphicsViewer1.png SpaceInvadersDXBGraphicsViewer2.png
This includes the contents of the SCN (FG/BG graphics) and MASK (HUD graphics) banks. Both banks contain the same graphics but use different tile sizes (16×16 in SCN, 8×8 in MASK).

Controls

  • 1P Up/Down: Scrolls through tiles.
  • 1P Left/Right: Adjusts the width of the graphics windows.
  • 1P Button 1 / 1P Button 2: Adjusts palette by 1.
  • 2P Start: Switches between SCN and MASK banks.

Process Meter

Both this and the following tool check if the RAM addresses at 9034BD and 903B4C, respectively, are set to non-zero values. If they are, the tools are enabled. The trouble is that the checks themselves are part of an orphaned subroutine. First, add the following code to spacedx.xml to inject a call to that subroutine into the game's coin handling code:

  <cheat desc="Enable Debug Checks">
    <script state="run">
      <action>maincpu.md@018B6=4EB90007</action>
      <action>maincpu.mw@018BA=F000</action>
      <action>maincpu.md@7F000=4EB87DE4</action>
      <action>maincpu.md@7F004=10390050</action>
      <action>maincpu.md@7F008=00024E75</action>
    </script>
    <script state="off">
      <action>maincpu.md@018B6=10390050</action>
      <action>maincpu.mw@018BA=0002</action>
      <action>maincpu.md@7F000=FFFFFFFF</action>
      <action>maincpu.md@7F004=FFFFFFFF</action>
      <action>maincpu.md@7F008=FFFFFFFF</action>
    </script>
  </cheat>

Then, place the following code and activate it to toggle the CPU usage meter:

  <cheat desc="Process Meter">
    <script state="run">
      <action>maincpu.pb@903B4C=01</action>
    </script>
    <script state="off">
      <action>maincpu.pb@903B4C=00</action>
    </script>
  </cheat>

SpaceInvadersDXBProcessMeter.png
The meter will appear in the upper-left corner of the screen. The graphics for the meter are broken - it should look something like this - but the CPU usage bar works as expected.

Task Status

Use the following code to toggle this debugging tool:

  <cheat desc="Task Status">
    <script state="run">
      <action>maincpu.pb@903B4D=01</action>
    </script>
    <script state="off">
      <action>maincpu.pb@903B4D=00</action>
    </script>
  </cheat>

SpaceInvadersDXBTaskStatus.png
Displays a list of all currently loaded task by their internal IDs. Tasks labeled "E" are currently running, while tasks labeled "W" are waiting for other tasks to complete.

(Source: Original TCRF research)

References