the cutting room mirror

Space Invaders (Arcade)

It's Space Invaders!

What do you want from me...?

Developer Message#

SpaceInvadersArcHiddenMessage.png
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">
      <action>maincpu.mb@19A6=52</action>
    </script>
    <script state="off">
      <action>maincpu.mb@19A6=72</action>
    </script>
  </cheat>

(Source: Chris Cantrell (discovery), original TCRF research (MAME code))

Early Font#

Early

Final

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)

Diagnostics#

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-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.

SpaceInvadersArcTestMode3.png
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

  • The SV versions are in black & white only.
  • The TV and 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

  • 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#

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

SpaceInvadersArcErasedLetters.png
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

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.

SpaceInvadersArcUFOError.png
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)