In 1994, Sub-Etha Software released Invaders09 – a Space Invaders-style game for the CoCO 3.
The game was written in 6809 assembly, and ran under Microware OS-9 Level 2.
Jamie Cho took on the task of porting the game to the MM/1, a “CoCo 4” system that ran OS-9/68000.
Years later, he ported the MM/1 version to run on classic MacOS (on the original 68000 series of processors).
This led to the game being re-ported to the Mac OS for PowerPC, then Intel x86, and finally Apple’s ARM-based M1 series of processors.
Invaders 09 was originally written in 6809 assembly language for the Tandy Color Computer 3 running OS-9 Level 2. I ported it to C on the MM/1 running OS-9 68K sometime around 1995 or so and eventually to the Mac in the early 2000s or so. This means the game has successfully run more or less natively on 5 different platforms – the 6809, 68K, PowerPC, x86 and ARM. This also explains the kind of weird way the bitmaps are drawn to the screen…– Jamie Cho on his GitHub page.
You can download the source code for the current release from his GitHub:
If you just want to download the binary and play it, he has that available here:
(Note, this leads to the current 1.0.6 build. If that link doesn’t work, check his main page for a later release.)
After opening the archive file, you will see the “MacInvaders09.app” application. If you try to run it, you will get this warning:
Click OK on that box to dismiss it. Go in to “System Preferences”, then in to the “Security & Privacy” section. It will look like this:
You can then click “Open Anyway” to allow this program to run. You should then see the same warning box, but now you can “Open” the program to run it.
The game will open in a tiny size, matching its 1994 CoCo 3 release:
You can go full screen if you actually want to see it on a modern sized monitor:
Differences from the CoCo 3 original
Jamie’s port is more of an update/rewrite than a straight port. Trying to port 6809 assembly to C doesn’t make a lot of sense. Instead, the game graphics were brought over, and likely some of the logic. There are some significant differences:
- The laser shots were enhanced to vertical lines instead of just dots. Nice.
- There are new sound effects added. Also nice.
- The Power level seems to be missing. (I’m not sure if the game increases the number of simultaneous shots you get as levels progress.)
- There is no joystick support.
- As far as I know, the undocumented “cheat mode” is not implemented, nor is the “zoop mode” which made the game play too fast on the CoCo 3.
- The Invader graphics are upside down from the original. You will notice they have some dots at the top of them. In the CoCo 3 original, I looked for a “hit” by seeing is my bullet dot encountered a non-empty screen byte. I put those dots there just to give it a target at the bottom of the invader. I didn’t like the way they looked, but I didn’t know a better way to do it at the time.
- The UFO in the original would always drop a bomb the moment it was above the player, forcing the player to NEVER sit still as the UFO passes. In this version, the UFO seems to drop bombs in a more random pattern.
- The UFO bombs can be stopped by the shields. In the original, the UFO bomb would go THROUGH the shields, forcing the player to not hide under shields. I always through it was unfair that the player could just sit in one spot and nothing could hurt them there.
- The player is allowed to move while shooting. In the original, any time you fired the laser, your movement was stopped. This prevented the player from doing “run and shoot” moves, making it a bit harder since you couldn’t take a pot shot as you scooted across the screen.
- The damage taken to the shields is different. In the original, the blocks kind of pushed outwards, with the first hit taking a small dent out of the shield, and another hit in that location making the dent wider. This version takes longer bits out of the shield, matching the longer laser bolts.
- I think the Invaders may move down at a slower rate. It seems much easier to clear them all out and have one left that is still very high, but I’d have to play them side by side to really compare that.
I am quite impressed and honored that Jamie has taken time to do these ports. I can’t express how thrilled I was the first time I saw this on an MM/1, and even more so on an Apple Macintosh.
Thank you, Jamie Cho, for your efforts to make defending the Earth a cross-platform activity!
Thank you for the nice post Allen! I had a lot of fun doing the ports and keeping them working for nearly 30 years!
“Everybody’s gotta have a hobby!” :-)