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

Space Gun (Arcade)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Space Gun

Developer: Taito
Publisher: Taito
Platform: Arcade (Taito Z System)
Released in JP: October 1990[1]
Released in US: December 1990[2]


GraphicsIcon.png This game has unused graphics.
DebugIcon.png This game has debugging material.
LevelSelectIcon.png This game has a hidden level select.


Space Gun is a game about first-person shooting aliens in space. With guns.

Debug Features

Stage Select

SpaceGunArcRoundSelect.png
This game uses the Taito Code:

  • While the game boots up, hold the Service Coin button until a "SERVICE SWITCH ERROR" message pops up on the screen.
  • Then, press 1P Start (x3), Service Coin, 1P Start.

Press 1P Button 1/1P Button 2 to select which stage to start from and Service 1 to start the game.

Game Pause

ROM address 0x7FF76, when set to a non-zero value, will enable a game pause feature. Just press 2P Start to pause the game.

Put the following code in MAME's spacegun.xml cheat file to enable:

  <cheat desc="Game Pause">
    <script state="run">
      <action>maincpu.mw@7FF76=0x0001</action>
    </script>
    <script state="off">
      <action>maincpu.mw@7FF76=0x0000</action>
    </script>
  </cheat>
(Source: Original TCRF research)

Other Debug Features

ROM address 0x7FF7C controls which debug functions are available to the player. This is normally set to 00, which enables the above stage select through the Taito Code. Set that address to any other value between 01 and 06 (Excluding 02), to enable other debug functions. Place the following code in spacegun.xml to switch between debug options:

  <cheat desc="Select Game Mode"> <comment>Unknown dip switch must be set to "On"</comment>
    <parameter>
      <item value="0x0001">Taito Code For Special Mode</item>
      <item value="0x0003">Special Mode On Boot</item>
      <item value="0x0004">No Hit Mode</item>
      <item value="0x0005">Endless Mode</item>
      <item value="0x0006">Special Mode, No Debug Disp</item>
      <item value="0x0002">No Debug Features</item>
    </parameter>
    <script state="run">
      <action>maincpu.mw@7FF7C=param</action>
    </script>
    <script state="off">
      <action>maincpu.mw@7FF7C=0x0000</action>
    </script>
  </cheat>

As the code says, for values 01, 03, 04, and 05, the first "Unknown" dip switch has to be flipped to activate those debug functions.

Special Debug Menu

SpaceGunArcDebugMenu.png
A full debug mode is available if 0x7FF7C is set to 01 (requires Taito Code), 03 (requires Unknown dip dip switch), or 06 (always). Move the cursor by tilting 1P Stick up and down and press 1P Button 1 to select that option.

General Tools
There are a number of debug tools that are accessible in debug gameplay and in most of the tests:

  • Moving 2P Stick to the far right side of the screen and pressing 2P Start will cycle between four game speeds: Paused, 1/6 speed, 1/2 speed, and normal speed.
  • Moving 2P Stick to the far left and pressing 2P Start will pause the game regardless of the current speed setting.

SpaceGunArcDipSwitchB3.png

  • When Dip Switch B3 is flipped, a list of currently running tasks will appear in the upper-right corner of the screen. These are labelled by a single letter or number: For instance, "D" is demo mode, "M" is the main gameplay, and "G" is the global task that keeps everything running.

SpaceGunArcDipSwitchB4.png

  • Dip Switch B4, when flipped, will display the list 17 point bonuses for each player. The most recent bonuses are at the top of the stack.

SpaceGunArcDipSwitchB5.png

  • When Dip Switch B5 is set, two counters are added to the left of 2P's score. The first seems to increment every time the game mode is changed, while the second counter is unknown.

SpaceGunArcDipSwitchB6.png

  • When Dip Switch B6 is flipped, two CPU process meters will appear at the bottom of the screen. The counter at the bottom is the main CPU, while the counter on top is for the sub CPU.

SpaceGunArcDipSwitchB7.png

  • When the "Allow Continue" dip switch is set off, the game will display sprite count data for each row and column of the screen.

SpaceGunArcDipSwitchB8.png

  • Flipping the Disable Pedal dip switch will display some miscellaneous sprite information. The first digit is decremented every time a new sprite is loaded; the other digits track unknown data.

Normal Game
Boots the game with no debug functions enabled.

All Debug Game
SpaceGunArcAllDebug.png
Selecting this option bring up a start screen that explains how the slow motion function works, and details the three different options for starting a game:

  • Pressing 1P Start will boot the game in "NO HIT" mode, which disables enemy collision.
  • Pressing 2P Start will boot the game in "ENDLESS" mode, which gives both players infinite life.
  • Pressing Service Coin will boot the game in "HIT USE" mode, which enables enemy collision and gives both players a standard health bar.

SpaceGunArcBuildDates.png
Build dates for the game's main and sub CPUs are added to the title screen.

SpaceGunArcDebugGame.png
In a debug game, both players will start with 8 of each ammo type. Additional debug information will appear on-screen regardless of dip switch or collision settings:

  • The leftmost values list data on the last loaded sprites. The first digit is the sprite slot, the second is the ID of the sprite, and the third and fourth are the X and Y spawn coordinates. The first set of four values are for "simple" objects like the ceiling guns at the start of the first round, while the second set of four values are for more complex objects like the roaming aliens.
  • The two numbers above 1P/2P's ammo counts are the X and Y coordinates of the last thing that damaged those players.
  • The digits to the right / left of those coordinates count how many shots each player has fired in the current stage.
  • The green digit in either player's ammo display box is that player's invulnerability timer.

Round Select Game
Like the standard stage select menu, but starts the game in All Debug Game mode.

ROM Message
SpaceGunArcROMMessage.png
Gives information on the Title Type (game title), Credit Type (coin settings), and Taito Type (region + copyright string). "Tamco" is short for Taito of America Corp.

After about five seconds have passed, press 1P Button 1 to start a normal game.

Mask Display
SpaceGunArcMaskDisplay.png
Displays the contents of the "Mask", or HUD, graphics ROM. Moving 1P Stick left or right will change the palette.

Screen Display
SpaceGunArcScreenDisplay.png
Displays the raw contents of the game's FG/BG graphics ROM.

Controls

  • 1P Stick X Position (Near): Adjusts palette number by 1
  • 1P Stick X Position (Far): Adjusts palette number by 5
  • 1P Stick X Position (Near): Adjusts tile index by {{hex|20}.
  • 1P Stick X Position (Far): Adjusts tile index by {{hex|200}.

Style Display
SpaceGunArcStyleDisplay.png
Displays the raw contents of the game's sprite graphics ROM.

Controls

  • 1P Stick X Position: Adjusts sprite number by 100.
  • 1P Stick Y Position: Adjusts sprite number by 10.
  • 2P Stick X Position: Adjusts sprite number by 1.
  • 2P Stick Y Position (Near): Adjusts palette number by 1.
  • 2P Stick Y Position (Far): Adjusts palette number by 5.
  • 1P Start: Decreases zoom level by 1.
  • 2P Start: Increases zoom level by 1.

Color RAM Edit
SpaceGunArcColorRAMEdit1.png
This first brings up a screen detailing the controls of this tool, then loads a stage select menu. Service Coin will start the game in All Debug Game mode.

SpaceGunArcColorRAMEdit2.png SpaceGunArcColorRAMEdit3.png
During gameplay, hold Service Coin and press 2P Button 2 to pause the game and activate a palette editor. Controls

  • 1P Stick X Position: Moves color selection cursor.
  • 1P Stick Y Position: Moves R/G/B selection cursor.
  • 1P Button 1: Increments the currently selected color's R/G/B value.
  • 1P Button 2: Decrements the current selected color's R/G/B value.
  • 2P Stick X Position: Adjusts palette number by 10.
  • 2P Stick Y Position: Adjusts palette number by 1.
  • Service Coin + 2P Button 1: Exits palette editor, resume game.

Check RAM
SpaceGunArcCheckRAM.png
Checks the game's RAM. Mm.

Check Sum
SpaceGunArcCheckSum.png
Displays the checksums of the main and sub CPUs. After about five seconds have passed, the game will start on its own.

Test Mode
Brings up the game's standard test mode (color bars + input test, dip switch display, and sound test).

Screen Block Disp
SpaceGunArcScreenBlockDisp.png
Allows the user to view the game's FG/BG graphics in assembled form.

Controls

  • 1P Button 1: Increased palette number by 1.
  • 1P Button 2: Decreases palette number by 1.
  • 1P Button 3: Advances to the next block.
  • 2P Button 3: Goes back to the previous block.

Soyano
SpaceGunArcSoyano.png
Loads Round 1 with player input & collision disabled and a missing HUD.

Gomi
SpaceGunArcGomi.png
This is an odd one. Displays the grid of text seen above and has a counter that is manipulated by moving 1P Stick' left and right. Pressing 1P Button 1 is supposed to jump to a new subroutine based on the value of the counter and the table at 0x08C0C, but all values in the table point to ROM address 0x08E66, which just jumps back to the start of the test!

Ishii Test
SpaceGunArcIshiiTest1.png
Allows the user to view the game's cutscenes. Moving 1P Stick left or right will change which cutscene will be viewed, and 1P Button 1 will view that cutscene. Scenes that have already been viewed are highlighted in red.

SpaceGunArcIshiiTest2.png SpaceGunArcIshiiTest3.png
Viewing a cutscene will display the text "Next menu, please.", then kick the user back to the menu. Viewing every cutscene displays the text in the second screen which translates to "You've seen everything."

Hikaru Test
SpaceGunArcHikaruTest.png
Tests the sprite rotation effect used on the title screen, then hangs.

Wall Hit Edit
SpaceGunArcWallHitEdit1.png
This tool was used to modify each stage's collision data. There doesn't seem to be a way to save changes at this point, though.

First, the user has to select which stage to edit with 1P Button 1/1P Button 2. Service Coin loads that stage.

SpaceGunArcWallHitEdit2.png
From here, the user can edit that stage's collision data.

Controls

  • 1P Stick: Moves cursor.
  • 1P Button 1: Makes selected tile solid.
  • 1P Button 2: Clears selected tile.
  • 1P Start + 2P Stick: Recenters the collision map.

Enemy Randomize
SpaceGunArcEnemyRandomize.png
As the name suggests, this introduces random enemy spawns to the game. The user starts on Round 1 with no debug features enables, and the game hangs after completing the round.

Enemy Test
SpaceGunArcEnemyTestM.png
First, the user has to select which stage to load.

Controls

  • 1P Button 1: Increases round number.
  • 1P Button 2: Decreases round number.
  • Service Coin: Loads selected round.

SpaceGunArcEnemyTest.png
The stage will load in All Debug Game mode with most objects removed; the only exception are objects that spawn out of walls. The user is free to spawn whatever they want here - the ID of the object that will be spawned is printed in the upper-left corner.

Controls

  • 1P Start: Increases enemy ID.
  • 2P Button 1: Toggles player movement.
  • 2P Start: Decreased enemy ID.
  • Service Coin: Spawns enemy.

SpaceGunArcEnemyTestColumn1.png SpaceGunArcEnemyTestColumn2.png
Enemy 000F is a special debug object that tests sprite collisions. The user can move this column around through the following controls:

  • 1P Stick X Position (Far): Modifies the pillar's X position.
  • 1P Stick Y Position (Far): Modifies the pillar's Y position.

After spawning, the game writes additional debug information on-screen:

  • The white diamond on the left lists the cardinal directions that the column can move in. Invalid directions are marked with an "O".
  • The red square displays column-on-sprite collisions. The corners of the column that are currently in contact with another sprite are marked with an "O".
  • "TamaX" and "tamaY" are the X and Y coordinates of the column.

Map Data Test
SpaceGunArcMapDataTest1.png SpaceGunArcMapDataTest2.png
The user first chooses whether to test map data for all rounds or a specific round, then presses Service to perform the test. If everything come back okay (Which it always does on a retail unit), the message "DATA OK" is displayed, and then the game loads the All Debug Game menu.

There are three different errors that this test checked for during development:

0x0ECB7 0x0ECCB 0x0ECB7
     ERR ENEMY      
     ERR ITEM       
  set kind error    

Enemy Data Editor
SpaceGunArcEnemyDataEditor1.png
A pretty complete editor and viewer for the game's enemies. "Normal pattern" and "1/2 pattern" seem to be identical: Both allow the user to look through each enemy's "patterns", or the enemy's assembled frames. Each pattern can have up to 8 sprites.

Variables

  • Enemy: The current enemy number.
  • Action: The action to be viewed (Attacking, idle, dying, etc.)
  • Pattern: The frame number for the current action.
  • Color mode: The applied palette.
  • Zoom: The zoom level for the current frame.

Controls (General)

  • 1P Button 1 / 1P Button 2: Moves green cursor.
  • 1P Button 3 / 2P Button 3: Adjusts selected variable.
  • 2P Button 1: Toggles visibility of selected sprite for this frame.
  • 2P Button 2: Cycles through sprites for this frame.

SpaceGunArcEnemyDataEditorGrid.png

  • Service Coin: Toggles a grid behind the current frame.

SpaceGunArcEnemyDataEditor2.png
"Hit data load" allows the user to look at view the hit data coordinates. This can only be done for a single sprite at a time, so look at the general controls for info on how to swap sprites. Each sprite can have up to five blocks of hit data.

SpaceGunArcEnemyDataEditor3.png
"Hit data modify" allows the user to modify the hit data of the current sprite. It isn't possible to edit more than one sprite's hit data - the player has to select a new sprite through Hit data load first. There also doesn't seem to be a way to save changes.

Controls (General)

  • 1P Start + 1P Stick: Moves the yellow (Left and upper) boundary for the selected sprite.
  • 2P Start + 1P Stick: Moves the blue (Right and lower) boundary for the selected sprite.

Style Display 2
SpaceGunArcStyleDisplay2.png
Another version of the sprite graphics viewer with a different control scheme.

Controls

  • 1P Button 1: Increases sprites number by 1.
  • 1P Button 2: Decreases sprite number by 1.
  • 2P Stick Y Position (Near): Adjusts palette number by 1.
  • 2P Stick Y Position (Far): Adjusts palette number by 5.
  • 1P Start: Decreases zoom level by 1.
  • 2P Start: Increases zoom level by 1.

CPU Count Test
SpaceGunArcCPUCountTest.png
Tests the speeds of the main and sub CPUs. Somehow.

Test Solnoid
SpaceGunArcTestSolnoid1.png
This should test the solnoids (of the guns, presumably), but it doesn't do much in an emulator but act as an odd timer.

Controls

  • 1P Start: Starts test.
  • 2P Start: Jumps to edit mode.

SpaceGunArcTestSolnoid2.png
Once the test starts, the counter is affected by the following four parameters:

  • On Time ranges from 1 to 5.
  • Off Time ranges from (2*On Time) to to 20. The counter increments by 1 every (On Time + Off Time) frames.
  • Work Time ranges from 0 to 600 seconds. This is the amount of time that the counter increments.
  • Self Time ranges from 0 to 120 seconds. This is the amount of time that the counter is paused for.

The "Work Clock" at the bottom counts how long the current test has been active.

Controls

  • 2P Start: Jumps to edit mode.
  • Service: Resets test.

SpaceGunArcTestSolnoid3.png
The user can modify the test's parameters at any time, though doing this will reset the counter.

Controls

  • 1P Button 1: Moves cursor.
  • 1P Button 3: Increases selected variable by 1.
  • 1P Start: Starts test.
  • 2P Button 3: Decreases selected variable by 1.
  • Service: Resets the test menu.

No Hit Mode

Set 0x7FF7C to 04 and the unknown dip switch to "On" to start a normal game in "NO HIT." mode, which makes both players invincible.

Endless Mode

Set 0x7FF7C to 05 and the unknown dip switch to "On" to start a normal game in "ENDLESS" mode, which gives both players infinite energy.


(Source: ねこ自慢ブログ (升) Wayder Cheat 0.169, ねこ自慢ブログ デバッグモード解説 (未完成)
(Additional documentation: Original TCRF research)

Alternate Titles

The game is called "Space Gun" in all regions, but there are two alternate titles left in the game. Put the following code in MAME's spacegun.xml cheat file to change the game's title:

  <cheat desc="Change Game Title">
    <parameter>
      <item value="0x0001">Annihilator</item>
      <item value="0x0002">Creatures Shock</item>
      <item value="0x0003">Annihilator Alt</item>
    </parameter>
    <script state="run">
      <action>maincpu.mw@7FF7A=param</action>
    </script>
    <script state="off">
      <action>maincpu.mw@7FF7A=0x0000</action>
    </script>
  </cheat>

SpaceGunArcAltTitle1.png SpaceGunArcAltTitle2.png
According to Atsuchi Taniguchi, one of the game's producers, "Space Gun" was originally only a tentative title. During the location test phase, two different titles were proposed, only for the game to end up with the provisional title anyway.

SpaceGunArcAltTitle3A.png SpaceGunArcAltTitle3B.png
There's an alternate version of the Annihilator title screen that's set against a black background. The title slowly dissolves in, then fades out and then back in and changes to a seemingly incorrect palette. This was probably used during one of the game's location tests.


(First two titles: ねこ自慢ブログ (升) Wayder Cheat 0.169)
(Annihilator alternate title screen: Original TCRF research)