Several years ago I was really getting heavily into Atari VCS programming—for teaching, for art, and for research on Racing the Beam. VCS programming is notoriously hard at first, but like anything once you get the hang of it, it feels natural.
What never felt natural, however, was the process of running command-line build tools and editing code in plain text editors. Obviously, we have things much, much easier today than the original Atari programmers did. We’ve been spoiled by sophisticated IDEs and debuggers. Despite my penchant for traditionalism, I was happy to use modern tools to make Atari games.
So, back in 2007 I made a toolkit for doing Atari VCS programming with Apple’s Xcode IDE. It had a project template, language definition for syntax coloring, and instructions for how to configure build settings to build-and-run in the Stella emulator. Pretty cool. I’ve been using it ever since.
That is, until a month ago when I upgraded to Xcode 4. It’s a complete rewrite of the IDE, and it totally broke my VCS development stuff. Apple had changed the template structure before, but I’d always been able to make adjustments to my package. This time, Apple hasn’t even yet published documentation on how to make project and language templates. Even though it does offer external build support, Xcode is now effectively purpose-built for Cocoa development only, which is a shame because it’s a pretty nice IDE.
So, I decided to abandon Xcode entirely (for VCS dev, anyway), and move to TextMate, an excellent customizable plain text editor. I was familiar with TextMate from earlier writing—Nick and I wrote all of Racing the Beam in markdown format in TextMate—but I hadn’t yet used it for development. Turns out it’s great!
I’ve packaged the TextMate bundle and VCS prerequisites in an installer, which you can download at the top of this page. Some of the features I baked in:
- Syntax coloring for Atari VCS assembly files, including 6502 assembly instructions and Atari register names.
- A Template for Atari VCS games, giving developers a simple framework to start from–including initialization, vertical sync/blank, a simple kernel, and overscan.
- Build and Run support using the Stella emulator. The scripts will automatically find and run your builds in Stella for easier iterative development, no per-project configuration required.
- Scripts and related tools for simple testing tasks, such as ROM size and running Stella with paddle controllers pre-selected, as well as symbol shortcuts to labels.
Even though it seems like a downgrade from an IDE, I’ve managed to automate even more of the setup and build process in TextMate than was feasible in Xcode, so now it’s even more streamlined than it was before.
Some may wonder why I’d spend time on such a strange task, so I’ll repeat what I said back in 2007 when I first released the Xcode tools: Learning to program the Atari is difficult, but learning the hardware and assembly is only part of that challenge. Another part of the problem is just getting code written, assembled, and running on an emulator. It may sound silly, but the more steps it takes to do this easily, the harder it is to motivate oneself to start. And for the more experienced programmer, it makes iterative development much easier.