Halo for Atari 2600

I've been operating in a state of perpetual overtiredness this week, which is my way of apologizing for not posting about this sooner. If there's any chance you haven't yet seen this, by God, please do check it out: Former Microsoft executive Ed Fries has suddenly and irrevocably established his geek creds forever by creating a version of the game Halo that runs on the Atari 2600. And I mean, runs on the Atari 2600: AtariAge actually sold the game in cartridge form at a recent classic video game conference.

Here's the background story, by Mr. Fries himself, and again, kudos on this. And please, do read the whole thing, this is just an excerpt:

Someone suggested that I read the book "Racing the Beam" about programming the Atari 2600. It sounded cool so I did.

After reading the book I thought it might be fun to play around with writing some of my own code for the machine. I hadn't written 6502 assembler in almost 30 years but it turns out it's pretty easy to pick up again since there are so few instructions. I wasn't sure what to write so I created a little Master Chief from Halo and made him run around the screen. Then I created an Elite for him to shoot at. At this point it wasn't my intention to make a full game. I was just screwing around.

As I became more familiar with the machine I thought it might be possible to make something that was actually fun to play. I also ran into some fans of classic games at the Game Developers Conference in March and they encouraged me to keep going and try to make a finished game. At first I had the player battling through a linear series of rooms. You had to kill all the enemies before it would unlock the walls and let you move to the next room. As you can imagine, this got dull pretty quickly. I was doing it this way because it was relatively easy on the Atari 2600 but what if, instead, I could make a 64 room map the player had to explore, kind of like the old atari game Adventure? To implement this would require that I make an "asymmetric playfield" so that some rooms might have a wall on one side but not on the other. It turns out that's pretty tricky to do on the 2600, at least while you are trying to drawn everything else you want to draw, but I managed to get it working.