Space Invaders (Arcade)
It's Space Invaders. What do you want from me?
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>
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.
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
|SV revision 2
|TV revision 2
|SV revision 3
|SV revision 4
|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.
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.
|SV Version||TV & Midway Versions||CV Version|
- 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|
- 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.
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
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.
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!
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.
The Space Invaders series
|Arcade||Space Invaders • Space Invaders Deluxe • Return of the Invaders • Mini Vaders • Space Invaders DX (B System, F3 System) • Space Invaders '95: The Attack of Lunar Loonies|
|Game Boy (Color)||Space Invaders (Game Boy, Super Game Boy, Game Boy Color)|
|Genesis||Space Invaders '91|
|SNES||The Original Game|
|TurboGrafx-CD||The Original Game|
|Virtual Boy||Virtual Collection|
|Windows||The Original Game|
|Nintendo 64||Space Invaders|
|Game Boy Advance||Space Invaders|
|Plug & Play||Space Invaders|
|PlayStation 3, Xbox 360||Infinity Gene|