bbZIP: The ultimate z-device?

(Been here before? Jump to the latest news)

I ported jzip to the RIM BlackBerry 957. It probably also works on the 950 and 850/857.

If you've read this far and don't know what I'm talking about, you probably don't care. I'll explain anyway: A long time ago (around 1980) a company called Infocom designed a virtual computer that we now call a "Z Machine." They implemented it on several popular home computer platforms at the time (Commodore 64, Apple][, and MSDOS are probably the most noteworthy) so that they could write their games once, for a lowest-common-denominator computing platform, and have them magically run on all sorts of computers without any modifications!

Yes, this sounds a lot like the concept behind Java. It's essentially the same idea, but the Z Machine came first.

But I digress. Much better-researched (I assume!) histories of Infocom and the Z-Machine are available elsewhere on the net.

bbZIP

So yeah, the Blackberry is cool hardware, and I always thought it was the ideal implementation platform for a z-machine: The 957 (my current unit is a 957) lasts over a week on a battery charge cycle (the 950, which is smaller, actually goes a whole month on one AA cell). You can carry it with you at all times, and you can (sort of) get the SDK free of charge from RIM. If they feel like it.

Screenshots

Zork I in action

A scene near the beginning of Zork I. One of several shameless self-promotions Infocom stuck into the game. The cat is included for scale.

Download

It's generally accepted these days that Zork I is in the public domain (Activision bought Infocom a while ago, and released Zork I for download on their website around the turn of the millennium), so I've included it in this download. My next big enhancement (see below) will be to allow you to put several games on the pager simultaneously, and switch between them. Then I'll implement saving and restoring games in progress.

Before you download, note the following caveats:

Get bbZIP with Zork I here! (571k)

Future Enhancement Plans

  1. Mechanism for loading zcode files into the filesystem (instead of wiring it into the DLL where it takes up application memory needlessly). JZIP also supported zlib compression, which I'll look into. The obvious questions are: how much space can gzip save per game, and how much larger will bbzip.dll become if I add zlib support into it?
  2. Saving restoring of games in Quetzal format
  3. User-selectable fonts (including RIM's standard 8- and 10-line proportional fonts)
  4. More rigorous testing for Z Machine Spec v1.0 compliance (I already know a few cosmetic items that break compatibility, and one noncosmetic violation that was in JZIP before I started hacking it to bits)

Revision History


News

January 31, 2003:
I'm working on a protable YMODEM impementation for blackberry (or any platform where the C library is unavailable). It currently seems to work for transmitting files from the handheld to the PC. The next step is being able to recieve files from the PC on the handheld. Obviously (well, it's obvious in my geeky world) this is how you (the Gentle User) will copy the Z-Machine story files and saved games to and from the handheld.


Jonathan Fuerth
Last modified: Fri Jan 31 21:23:01 EST 2003