We just released a prototype of the cancelled SNES port of Puggsy! Take a look!
As always, thank you for supporting The Cutting Room Floor on Patreon!

Space Invaders (Arcade)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Space Invaders

Developer: Taito
Publishers: Taito (JP), Midway Manufacturing (NA/EU)
Platform: Arcade (Taito 8080-based black and white hardware)
Released in JP: June 1978
Released in US: July 1978
Released in EU: 1978

DevMessageIcon.png This game has a hidden developer message.
GraphicsIcon.png This game has unused graphics.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.

It's Space Invaders. What do you want from me?

Developer Message

Press 1P Left + 1P Right + 1P Fire + 2P Start, then 1P Left + 1P Fire + 1P Start during the game demo to make the text "TAITO COP" [sic] appear below the high score.

Registering 1P Left and 1P Right at the same time is difficult (Or impossible using an actual joystick), so put this MAME code in any Space Invaders set's XML file (Except the CV version) to change the first step to just 1P Right + 1P Fire + 2P Start:

  <cheat desc="Fix Taito Corp Easter Egg">
    <script state="run">
    <script state="off">

(Source: Chris Cantrell (Discovery), Original TCRF research (MAME Code))

Early Font

Early Final
SpaceInvadersArcFontEarly.PNG SpaceInvadersArcFontFinal.PNG

Part of an earlier version of the game's font can be found at the end of the diagnostics ROM at 0x13C0. This is only in the TV versions - see below for more on that mess.

The letters in the early font are unevenly spaced and placed one pixel higher, plus the 'D' and 'E' are squashed.

(Source: Original TCRF research)

Version Differences

There are eight different Space Invaders sets in MAME. There are three groups, each named after the labels on the ROM chips: TV, SV, and CV. They seem to follow the chronology below:

TV revision 1
MAME: sitv1
SV revision 2
MAME: sisv2
Midway version
MAME: invaders
TV revision 2
MAME: sitv
SV revision 3
MAME: sisv3
SV revision 4
MAME: sisv
CV revision
MAME: sicv
Diagnostics Yes No No Yes No No No
Color Usage Partial None Partial Partial None None Full
Score Digits Four Four Four Four Four Five Five
Screen Flip Delay No No No Yes Yes Yes Yes
Collision Check Change No Yes Yes No Yes Yes Yes
Invader "Alive" Check Old Old Old New New New Old
  • TV revision 1 seems to be the earliest set in MAME, with the fewest number of changes. It's likely that an undumped SV revision 1 set, if it exists, would predate this set.
  • SV revision 2 removes the diagnostic routine and is the first to make the wall collision change.
  • The Midway version is almost identical to SV revision 2, except that the subroutine that draws the Taito Corp copyright on the title screen has been dummied out.
  • TV revision 2 fixes a few bugs but keeps all of the other code from the first TV revision.
  • SV revision 3 applies the code changes from TV Revision 2 to SV Revision 2.
  • SV revision 4 adds five digit score support.
  • The CV revision cleans up the code to properly incorporate the bug fixes from previous versions. The "Invader Alive" check was reverted back to the original version.
There are actually two CV sets in MAME, but the only difference is the ROM chip size - one has 1KB chips, the other has 2KB chips. They're identical code-wise.

(Source: Chris Cantrell, MAME 8080 Black & White driver)


SpaceInvadersArcTestMode1.png SpaceInvadersArcTestMode2.png
The two TV versions are the only ones that have a working service mode. This was probably a cost-saving measure for the SV and early CV sets: They use 1KB ROM chips and ROM space 1000 to 13FF is reserved for the service mode, so they can just save a chip. The later CV sets use 2KB ROM chips, but they probably didn't want to bother with it by then.

It's a pretty basic test mode - after testing the monitor, the game goes to an I/O test screen. After playing every sound twice, the game loops back to the monitor test.

Color Usage

SV Version TV & Midway Versions CV Version
SpaceInvadersArcRevSV.png SpaceInvadersArcRevTV.png SpaceInvadersArcRevCV.png
  • The SV versions are in black & white only.
  • The TV & Midway versions add limited color support to the game board in the form of gel overlays.
  • The CV version adds proper hardware-based color to the game.
TV & Midway Versions CV Version
SpaceInvadersArcColorUseTV.png SpaceInvadersArcColorUseCV.png
  • The TV/Midway versions have color in only three places: The shields & player, the UFO area, and the extra life counter. The CV version's electronic coloring method allows for a more sophisticated color scheme.

Score Digits

In the CV revision and TV revision 4, the score was expanded to five digits.

To make room for the new score code, five of the letters in the game's font had to be overwritten in TV revision 4. The code cleanup in the CV revision allows that version to keep the entire character set.

Screen Flip Delay

Old New
SpaceInvadersArcFlipOld.png SpaceInvadersArcFlipNew.png

In older versions of the game, when the screen flips while playing a two player game, the game starts clearing the screen before the screen flips (Check out the top right corner of the screen). Later versions add a delay to the screen flip routine to keep this from happening.

(Source: Chris Cantrell)

Collision Check Change

If any pixels are written to the border (seen below in gray) on either side, the invaders will drop and reverse direction. In the TV revisions, the borders are 8 pixels shorter. The other revisions extend the border to include the UFO row, which actually introduces a new glitch to the game.

If the UFO and the invaders are headed left, and the UFO is hit on the frame before it disappears from the screen, one of the pixels from the explosion will be written to the border, causing the invaders to drop and reverse prematurely. This bug is even present in Space Invaders Deluxe!

(Source: Chris Cantrell)

Invader "Alive" Check

The code at 0x0154 that checks whether or not to draw an alien on screen is inconsistent with the rest of the code in some versions:

In the older routine, the game decrements the alien flag, and if the result is non-zero, then the game skips to the next alien.
In all other places, the game ANDs the alien flag, and if the flag is set to 0, the game skips to the next alien.

This is just a consistency fix - since the flag can only be 0 or 1, the results of the checks are identical.

(Source: Chris Cantrell)