Sunday, February 21, 2016

Skye, Space Invaders, and Tomohiro Nishikado

OK, I've been meaning to start documenting my electronics projects much sooner, but I always end up getting too busy with either the kids, work, or the projects themselves. So I'll start things off Tarantino style: tell what just happened, then go back and tell the story of how I got to that point, meet up again in the present, and then keep telling until the end. More or less. 

Around two years ago, I built a single-board 8-bit micro on a breadboard, centered around the Hitachi 63C09 CPU (a suped-up version of the much-loved Motorola 6809). It was a fun exercise to see how simple I could build a vintage system capable of running the FLEX operating system, which was a popular disk operating system for 6800- and 6809-based micros in the late 70's and early 80's. Since then, I've incrementally expanded it to three serial ports (ACIAs), a Versatile Interface Adapter (VIA) for a PS/2 keyboard, Atari-compatible joystick, and RAM bank switching register (as well as two hardware interval timers), and most importantly, graphics and sound courtesy of Texas Instruments' TMS9118 and SN76496.
My 8-bit micro, as it appears today.
Really retro, I know. I just imagined: if I was a kid back in the 80's, what would be the coolest computer I could come up with? That's this computer. I could go on, but the design and specs of my micro I'll leave for another post. So let's rewind to September of 2015, and the title of this post... I was expecting my third daughter, Skye, in two months, and was trying to think up something that would totally occupy my brain in the meantime. If you're a dad, you know what I'm talking about. If not, you'll catch on. I had previously ported a really awesome version of Asteroids (this will also be another post), so I thought, how can I top that? Space Invaders of course! Should I write it from scratch? In assembly language that could take more than two months, especially when this is a spare-time project. I'm a perfectionist when it comes to these things, so I wouldn't settle for anything less than an arcade quality Space Invaders.

Let's rewind a little more, back to around 1979 or 1980 (OK, a lot more). I first played Space Invaders at the local movie theater, the Elmwood in Elmhurst, Queens, NY. The theater's gone, but it's an important memory. (Amazingly, I can't find a single, real photo of Space Invaders with the original plastic overlays the screen had, to simulate the appearance of color.)
The original Taito Space Invaders, missing the plastic overlays in the screen image.
Around that same time, the home video game craze was gripping all of us kids, and that meant we had to have an Atari. My dad got me and my brother an Atari 2600, along with the Space Invaders and Missile Command cartridges. Space Invaders, at home, on the living room television set? I shit you not, I played that game the first few weeks until I had blisters on my fingers. It was probably the most amazing thing for a kid.
Atari 2600 Space Invaders
Now let's jump ahead back to September 2015 (see? Tarantino style)... I began a review of all the various home versions of Space Invaders, and I'd played quite a few of them. Then I narrowed the search by cross-referencing with any home system that had the same TI graphics and sound chips that I used in my system. There's of course the TI-99/4A, but my Z80 assembly skills are nearly second nature when compared to the 9900 CPU, which I never did much on. Enter the Sega SG-1000. Unheard of in the states, I discovered it in a google search. It was the predecessor to the Sega Master System, which I was very familiar with. I viewed some videos on youtube of Space Invaders as reprogrammed by Sega for their SG-1000, and my jaw dropped. This is an absolute arcade-quality Space Invaders from back in the mid-80's, and we'd never seen it nor heard of this Sega console at the time. I downloaded the BlueMSX emulator and tried out the game. Amazing is an understatement. The guy who wrote this adaptation LOVED Space Invaders. His attention to detail and faithfulness to the original is unparalleled in a home version. PLUS, he added some originality to it without changing the core feel of the game; the aliens have three types of bombs: small and slow, the original jagged ones, and a fast bomb! As you can see below, the color scheme is reminiscent of Space Invaders Part II. He even did up a very respectable intro screen with the score advance table, and an animation of an alien scrolling over to the inverted 'Y' in 'PLAY' in order to flip it over, just like in the arcade original. And an attract mode! Yes, the game can play itself while it waits for you to start.
Sega's Space Invaders for the SG-1000
This is the Space Invaders I wanted to port to my micro. Hands down. And that's exactly what I set out to do, starting on September 4th, 2015. 

Next up, I'll tell the story of how I hand-translated Sega's Space Invaders from Z80 to 6309 assembly language. Stay tuned!



Monday, September 15, 2014

Welcome!

This blog will serve to document my various electronics projects.