Hatari, Lantronix, and CosmosEx: My quixotic quest to play “Thieves Guild”

Allow me introduce you to the “Thieves Guild Emulator,” a graphical front-end client for the Atari ST BBS game “Thieves Guild.”

(Update: I have replaced the original video I posted with a new version that includes the game’s sound effects, as well as some gory combat)

It took me a long time to reach the point where I could make that video. In this blog post, I’m going to explain that journey. I’ll also tell you a bit about the game itself. In fact, maybe that’s where I should begin.

Front-end clients

Last year I began researching BBS games which offered front-end clients. The authors of these games wanted to give users a richer experience than was possible within the strictly-text environment of BBSes. One way authors could circumvent the limitations of BBS technology was to write their own custom terminal programs. These “front-ends” were designed to communicate with the game on the host BBS computer. When the game detected such a front-end, it would change from sending plain text to sending codes which could be interpreted by the front-end client to trigger custom graphics, maps, animations, and sound effects.

It was (and remains) my intention to write a series of blog posts about various front-end clients.

But then I found out there had been a BBS game for Atari ST computers which offered a front-end, called Thieves Guild, by Mythyn Software. Though I owned an Atari ST and called Atari BBSes as a teen, I had never come across this game before. Naturally I was eager to try it. As luck would have it, the game is available to play today on the Dark Force BBS.

Paul Witte, the author of Thieves Guild, called the game’s front-end client an “emulator.” When you play Thieves Guild without it, the game looks much like any other BBS game from the late 1980s and early 1990s. The game is purely text; each location, from taverns to temples, is simply a list of numbered options. The Atari ST version of the game offers ASCII and VT-52 terminal modes, but the only difference between the two is that VT-52 had colored text. There were no graphics (not even textual graphics) to speak of.

Playing the “emulator” in an emulator

I wanted to try the Thieves Guild Emulator and see what sort of graphics it offered. I had long ago sold my own Atari hardware, so my options were limited to emulation on my Mac. I started with Hatari, the excellent Atari ST emulator.

I came up with a way to connect Hatari’s virtual serial port to the tcpser4j telnet->serial program. Using this method, I could connect to a BBS using a terminal program running inside Hatari, such as ANSIterm.

thieves-guild-title

This method worked, but only partially, for the Thieves Guild Emulator. I could connect to the Dark Force BBS just fine, and I could launch Thieves Guild on the board. But the game would not recognize that I was running the front-end. It simply played in normal text mode.

I tweaked various settings, but never found anything that made a difference. I suspected that the problem might be incorrect translation going on inside tcpser4j, so I looked for alternative telnet->serial options I could use on my Mac. But I didn’t find anything that would do what I wanted.

You need real hardware

It occurred to me that the problem might not be on my end. The Dark Force BBS runs on an actual Atari ST, and uses a Lantronix UDS-1100 to translate telnet connections into serial that the Atari understands.

Dark Lord, the sysop of Dark Force BBS, decided to try the front-end for himself. He installed it on his Atari STacy computer and connected to the BBS. Lo and behold, it worked for him.

So, now I knew the front-end worked. It was cool to see photos Dark Lord posted of the game being played on his monitor. I hoped someday to try it myself. Obviously the problem had not been on the BBS side, it had been on my side. Genuine hardware seemed to be the only way I could use the Thieves Guild Emulator myself.

Fast forward a year, and I bought an Atari Mega STe. The early weeks were spent testing my old disks (which mostly no longer worked), and exploring the software that had been left on the Mega’s dying hard drive. Because Macs have not had floppy drives or serial ports in many years, I had no immediate way to transfer files between my Mac and Mega. I settled on purchasing two devices to help: a Lantronix UDS-1100, and a CosmosEx.

As I described above, the Lantronix lets you fool the Atari into thinking it has a modem attached, when in reality the Lantronix is making telnet connections. It works great, and using the Lantronix, I could download files from BBSes, old-school style, to my hard drive.

With the Lantronix and genuine Atari hardware, at last I was able to play Thieves Guild using the front-end client. I was greatly impressed by the quality of the art, and the attention to small details in the graphics. The emulator also uses some sound effects and voice samples.

My problem now became finding a satisfactory way to make screen captures or video recordings of the front-end in action.

Oh, and the hard drive was dying.

Meet the CosmosEx

When I heard about the CosmosEx, a Raspberry Pi-powered communications device for the Atari, I knew I wanted one. The designer, Jookie, announced the device in February with a long list of features:

  • floppy drive emulation
  • use an SD card as a hard drive
  • browse directories shared from a Mac or PC over a network
  • connect USB sticks, keyboards, mice, and gamepads

The SD card and shared directory features were the ones I was most interested in, given my dying hard drive. The shared directory was particularly interesting, because in theory I could work out of the same directory using my real Atari OR emulators on my Mac.

I finally got my hands on one in August. There were many bugs at first, but Jookie has done a great job of issuing frequent updates to his drivers and software. Over time, the CosmosEx has become more stable and usable. It’s been fun setting up the SD card hard drive and slowly building up a software library.

Over time the CosmosEx has added features, too. It has a lot of untapped potential, given that it is a small modern computer attached to a big, old computer. The coolest of the new features has to be a VNC-style screencast which lets you see and control your Atari remotely, from a web browser on another computer.

ST Screencast web shows the Thieves Guild Emulator loading on my Atari, from within the Chrome browser.

ST Screencast web shows the Thieves Guild Emulator loading on my Atari, from within the Chrome browser.

This feature is experimental for now, but it works. I was able to use it to record a Thieves Guild session and make screencaps for this blog post.

Mark Fechtner, who developed the screencast feature, explained to me how it works, as well as its limitations. The Atari ST sends a complete unpacked 32k screen frame at a user-defined interval to the CosmosEx via the Atari’s ACSI port. Adjusting the interval to sending frames more frequently results in better video, but slows down or interrupts the Atari’s hard disk communication, and can cause crashes.

Despite this, the idea that I could control my actual Atari hardware from an office or internet café is mind-blowing.

Front-ends

As I mentioned above, I still intend to write a series of posts about BBS game front-ends. This series has been on the back burner for longer than I care to admit because of other interruptions. Rest assured, though, it’s coming!

Share your thoughts!