In my unending quest to port Six/Six to all major platforms, I’ve finally decided to tackle the next major computing system. The game was originally developed entirely on aRainbow 100 personal computer under MS-DOS, one of the leading computing platforms if measured by the proportion of computers in my house. Next, Six/Six came to modern Windows machines thanks to an overly complicated emulation of the Rainbow’s video memory.
So what platform is left? Obviously the answer is the Atari ST/TT line of computers. For the past few weeks, I’ve been sneaking moments to improve the port to Atari’s GEM interface, which has proved to be a challenge.

One might argue that the Windows port is just drawing text in a window; surely, the same could be done on GEM. Well, the Windows port is actually a multithreaded application where a background screen refresh thread is running all the time to copy any changes detected in the “Rainbow” video memory to the screen. On GEM, multithreading really isn’t a great idea. There aren’t any Atari machines running with multiple CPUs (please don’t tell me I’m technically incorrect; you know what I meant), and thread support is unpleasant, even on the latest operating system releases.
One nice aspect of GEM, though, is that it tends to be a little more loosey-goosey with how the event loops needs to work. If you’ve ever seen the Windows event loop in C, the design is a little wacky and complicated until you get used to it. However, it’s also very structured, making free-form handling of Windows events outside of a strict loop difficult. On GEM, you can just check in with a call toevnt_multi on occasion to see if anything, like a redraw or a resize or a mouse click, needs handling.
The Rainbow version of Six/Six just bangs away at hardware like crazy. I’ve basically, on the Atari, replaced all calls to timers and keyboard checks withevnt_multi calls to handle repaints, resizes, etc. It makes the port a little closer to the Rainbow code in spirit, at least, by eschewing “good design practices” in favor of “it freakin’ works.”
There’s still a few weeks until anything is ready to release, though. Trying to start the game emits a delightful “Bus Error” on FreeMiNT. Additionally, it is slow. It might require a TT030 or Falcon030 or better to play, and I’m not sure I really want to bother improving on that.
A text-mode adventure for your Rainbow 100 (and other inferior platforms)!