Gunbuster
Gunbuster |
---|
Also known as: Operation Gunbuster (US cabinet) This game has hidden development-related text. |
Gunbuster is a first-person shooter game by Taito. It was one of the very first arcade games to have free-roaming FPS gameplay, the same year Wolfenstein 3D was released for home computers. It has absolutely nothing to do with the OVA of the same name.
Contents
Debug Functions
To use tany of the following MAME cheats without triggering the game's checksum routine, place this code in MAME's gunbustr.xml (World set), gunbustrj.xml (JP set), or gunbustru.xml (US set) cheat file and enable it:
<cheat desc="Skip ROM Check"> <script state="run"> <action>maincpu.md@0051C=4E714E71</action> </script> <script state="off"> <action>maincpu.md@0051C=4EBA10DE</action> </script> </cheat>
Game Pause
Simply hold 1P Button 3 to pause the game. The controllers on the actual Gunbuster cabinet only have two buttons each, but MAME fully supports this phantom third button.
Level Select
This game uses the Taito Code:
- Hold the Service Coin button upon booting, and wait until a "SERVICE SWITCH ERROR" message pops up on the screen.
- Press 1P Start (x3), Service Coin, then 1P Start again.
Upon this, the player is redirected to a stage select menu, which can be navigated by pressing 1P Up/Down. Additionally, upon selecting a stage, the player gains 9 credits.
Running Debug
Place this code in the appropriate MAME cheat file to enable a button-activated debug menu:
<cheat desc="Running Debug"> <script state="run"> <action>maincpu.mw@00902=0x1A4A</action> </script> <script state="off"> <action>maincpu.mw@00902=0x01EE</action> </script> </cheat>
To activate the debug menu, hold Service 1 and press Coin 1. This method is a bit awkward and can only be done so many times before the game's coin lockout kicks in; enter the code below to change the activation method to the Service Mode button:
<cheat desc="Modify Debug Access"> <script state="run"> <action>maincpu.mw@02356=0x0000</action> <action>maincpu.mw@02360=0x0000</action> </script> <script state="off"> <action>maincpu.mw@02356=0x0001</action> <action>maincpu.mw@02360=0x0002</action> </script> </cheat>
"CANCEL" and "RESET" are self-explanatory.
Process Meter
Displays two process meters in the bottom-left corner. Unfortunately neither meter seems to work; they always appear at max length.
Task Status
Displays the internal task IDs for every currently-loaded task. Tasks with "W" mark are waiting for other tasks to end.
Edit Map-Hit
Allows the user to edit collision data for the current map.
- 1P Joystick: Moves the red cursor. This cursor is used to select which block to edit.
- 1P Button 1: Writes the data in the "WRITE" row to the selected block.
- 1P Button 2: Sets the selected block's collision bits to 00000000.
- 1P Start + 1P Joystick: Moves the blur cursor. This cursor represents the player's current position.
- 2P Button 1: Toggles Hit Check. When enabled, the user won't be able to move into solid blocks.
- 2P Button 2: Clears the 4, 8, 16, and 32 bits of every block on the map.
- 2P Start + 2P Joystick: Moves the red cursor in the "WRITE" row.
- 2P Start + 2P Button 1: Toggles the selected bit in the "WRITE" row.
Color Edit
Allow the user to adjust the game's currently loaded palettes. The game does not pause when this tool is active, so using it somewhere like the Push Start screen is preferred.
Controls (Palette Selection)
- 1P Up/Down: Adjusts palette number by 1.
- 1P Left/Right: Increases palette number by 8.
- 1P Button 1: Selects a palette for editing.
- 1P Button 2: Exits palette editor.
Controls (Color Selection)
- 1P Joystick: Moves the cursor (that black square).
- 1P Button 1: Selects a color for editing.
- 1P Button 2: Exits back to selection mode.
Controls (Color Editing)
- 1P Left/Right: Moves the cursor (the number highlighted in red).
- 1P Button 1: Toggles the currently selected color bit.
- 1P Button 2: Exits back to color selection mode.
Debug Menu
This takes a fair amount of setting up. First, put the following code in the appropriate MAME cheat file:
<cheat desc="Expand Config Menu"> <script state="run"> <action>maincpu.mw@03C74=0x0009</action> <action>maincpu.mw@03C7E=0x0009</action> <action>maincpu.mw@03CC6=0x7409</action> </script> <script state="off"> <action>maincpu.mw@03C74=0x0008</action> <action>maincpu.mw@03C7E=0x0008</action> <action>maincpu.mw@03CC6=0x7408</action> </script> </cheat>
This will add a tenth entry to the configuration menu, "Debug Mode". Simply set this entry to "ON" and then save; the setting should be saved to address 02A in the EEPROM.
Problem is, the game doesn't actually check this address when booting, and instead always sets the Debug Mode flag (200182 in RAM) to 00. To fix this, use the following code:
<cheat desc="Fix Debug Mode Flag"> <script state="run"> <action>maincpu.md@00710=0x4EB9000E</action> <action>maincpu.md@00714=0xC9004E71</action> <action>maincpu.md@EC900=0x70154EB9</action> <action>maincpu.md@EC904=0x0002E47E</action> <action>maincpu.md@EC908=0xE04813C0</action> <action>maincpu.md@EC90C=0x00200182</action> <action>maincpu.mw@EC910=0x4E75</action> </script> <script state="off"> <action>maincpu.md@00710=0x13FC0000</action> <action>maincpu.md@00714=0x00200182</action> <action>maincpu.md@EC900=0xFFFFFFFF</action> <action>maincpu.md@EC904=0xFFFFFFFF</action> <action>maincpu.md@EC908=0xFFFFFFFF</action> <action>maincpu.md@EC90C=0xFFFFFFFF</action> <action>maincpu.mw@EC910=0xFFFF</action> </script> </cheat>
Even with that fixed, the subroutine that checks whether or not to load the debug menu is never referenced in the retail version. This final code will inject a call into the game's boot-up routine:
<cheat desc="Debug Menu"> <script state="run"> <action>maincpu.md@06436=4EB85B88</action> <action>maincpu.mw@0643A=600C</action> </script> <script state="off"> <action>maincpu.md@06436=4A6D81C2</action> <action>maincpu.mw@0643A=670C</action> </script> </cheat>
(To skip the first two steps, just change 4EB85B88 in this cheat to 4EB85B90.)
After all that work, the menu should appear after the game boots. Use 1P/Down to move the cursor and press any of the action buttons to select an option.
Normal Game
Starts a new game with no debugging features.
Debug Game
Starts a new game with the Process Meter and Task Status debug tools enabled, as well as an additional display in the top-left corner that shows the first player's X, Y, and Z coordinates, and the raw values of their degree and angle.
Mask CHR Test
Displays the contents of the Mask, or HUD, graphics bank. Use 1P Left/Right to switch between palettes.
Gun Test Mode
This is identical to the "Gun Adjustment" option in the test mode menu.
Style Display
Displays the contents of the object, or sprite, graphics bank.
Controls
- 1P Up/Down: Scrolls through graphics.
- 1P Left/Right: Adjusts the width of the graphics window.
- 1P Button 1 / Button 2: Adjusts palette by 1.
- 1P Start / 2P Start: Adjusts the zoom level of each block.
Screen Display
Displays the contents of the FG/BG graphics bank.
Controls
- 1P Up/Down: Scrolls through graphics.
- 1P Left/Right: Adjusts the width of the graphics window.
- 1P Button 1 / Button 2: Adjusts palette by 1.
OBJCHR Pattern
Tests the game's angle system on a select number of sprites.
Controls
- 1P Left/Right: Adjusts the degree variable.
- 1P Left/Right: Adjusts the width of the graphics window.
- 1P Button 1 / Button 2: Adjusts palette by 1.
- 2P Start: When held, removes the armor overlay of the current sprite (where applicable).
Removal Test
Selecting this option will first bring up a map select menu.
Parameters
- Stage: Map number. Valid numbers are 1-13 for normal stages and 24-29 for VS. stages.
- Rank: The internal difficulty value. Ranges from 0 to 31.
- 1P/2P CHR: The player characters for 1P and 2P. Setting the value to "-------" disables that player.
- Control: Designates which player controls the camera.
Pressing 1P Button 1 will start a game with enemies enabled, and 1P Button 2 will removed all objects from the map.
Loading a map will enable the process meter and coordinate display features from the Debug Game option. The three columns on the right give the ROM offsets of every simple object (explosions, glass panes, enemy fragments, etc.) in memory. When an object is deleted, it's also removed from the list.
Pressing 1P Start or 2P Start will adjust the value of the "NO." variable displayed in the center-left part of the screen, but this doesn't seem to do much.
Enemy Test
The only difference between the Enemy Test and Clear Test is the type of objects tracked. The Enemy Test lists the object IDs of all complex objects (Enemies, bullets, crushing walls, etc.) in memory.
Unused Graphics
Old character select graphics that predate the multi-angle character displays seen in the final game. The first two sprites were reused in the instructions for two-player mode.
Graphics for three different power-ups. The final game has no power-ups whatsoever.
Animations of the joystick tilting in the same style as the game's other tutorial graphics. Probably would have been used in Stage 2, as that's the first stage where the player is required to walk around.
Purple arrows that would guide the player to the stage targets. Could've been more helpful than the left / right turn graphics that ended up being used.
A totally unused snake enemy! Those orbs on the right are for its long slithery body.
A roadblock hazard that would best in the highway path of Stage 5.
A strange one-way sign on a floating platform, drawn in the eight classic angles.
Yet another unused hazard: A stack o' tires. The palette for these tires is loaded in the junkyard path of Stage 6.
An incomplete android with a giant gun. This enemy would pop up and obscure the players' view like the knife and chainsaw-wielding enemies seen elsewhere. The design of this android is used as a destructible object in Stage 7.
A muzzle flash for the hanging robot. That's a big blast.
Hidden Text
A complete set of sample names can be found at the start of each bank in the Ensoniq sample ROMs (d27-08.bin, d27-09.bin):
0x000000 | 0x080000 | 0x100000 | 0x180000 |
---|---|---|---|
SE-1-06 SE-1-07 SE-1-16 SE-2-03 SE-2-04 SE-2-05 SE-3-16 SE-2-06 SE-2-7 SE-2-08 SE-2-09 SE-2-12 SE-2-13 SE-2-15 TK 1 SE-2-16 SE-2-17 SE-2-22 SE-2-23 SE-3-02 TK 1 SE-3-03 SE-3-08 SE-3-09 |
SE-3-12 SE-3-11 SE-3-18 SE-3-19 SE-3-20 SE-2-11 TK 2 SE-1-05 TK 2 SE-1-12 TK 1 SE-1-13 TK 2 SE-2-01 TK 2 SE-2-02 TK 2 SE-2-21 TK 2 SE-3-01 TK 1 SE-3-06 TK 1 SE-3-07 TK 1 BOSS FUYUU 1 AU 1 AU 2 AME GUN3 |
GUN1 GUN2 GUN4 WIND HURRY LAST BOSS NAMI SIBUKI TITLE BOM GUN BEEM FIRE GUN BEEM 2 LIFE MIZUBASIRA AUU1 AUU2 SE-3-17 TK 1 |
SOLO GUIT 808 DR PIANO YMD BASS YMD SCLATCH |
Regional Differences
In the Japan set, the English-language prologue has a set of Japanese subtitles. These were naturally from all other sets.
- Pages missing developer references
- Games developed by Taito
- Pages missing publisher references
- Games published by Taito
- Arcade games
- Pages missing date references
- Games released in 1992
- Games released in September
- Games with hidden development-related text
- Games with unused graphics
- Games with debugging functions
- Games with hidden level selects
- Games with regional differences
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Games > Games by content > Games with debugging functions
Games > Games by content > Games with hidden development-related text
Games > Games by content > Games with hidden level selects
Games > Games by content > Games with regional differences
Games > Games by content > Games with unused graphics
Games > Games by developer
Games > Games by developer > Games developed by Square Enix > Games developed by Taito
Games > Games by platform > Arcade games
Games > Games by publisher
Games > Games by publisher > Games published by Square Enix > Games published by Taito
Games > Games by release date > Games released in 1992
Games > Games by release date > Games released in September