Classic text adventures, reformatted to look beautiful in Status Line on the Pico-8
There are a handful of interactive fiction classics which have hard-coded formatting values which prevent them from being played on screens under 40-characters wide (sometimes even under 60-characters), even if the target machine has enough processing power to play the game. This repo attempts to remove those layout restrictions to adapt a certain class of games to look and play great on small screens.
Because of the way the ZIL compiler makes a build, every revision to game code results in a game file whose save games are incompatible with one another. I currently see no way around this, as internal memory locations often change between builds. If an update to a game is published, you will not be able to continue an in-progress game from a previous build. This is only with regard to these specific game files and is not true of the main Status Line engine. Minor updates to Status Line proper have no effect on your save games; major updates may change the save game structure to accomodate new features.
Before submitting bug reports, be aware there are two categories of bugs
- Formatting bugs in which layout and UI/UX of the game doesn't work/fit on a small screen. This includes text boxes or titles that are cut off by the narrow screen.
- Game bugs, of which there are many. Each game's original repository has a long list of known issues, including strange responses to text, garbled text, and more.
Formatting bugs should be submitted to this repository.
Gameplay bugs should be submitted to each of the original repositories (and may actually have already been reported)
I wanted to expand beyond the Infocom canon, and saw that this classic had been rebuilt in Inform. It's use of extremely (!) long quote boxes proved a unique challenge to both preserve authorial intent (both Nelson and original quote author) while being formatted for a tiny screen. In the end, every quote box was preserved and brought over without exception.
The in-game status line and "rosetta stone" puzzle both also proved challenging to adapt and preserve Nelson's puzzle intent. I believe I've provided strong solutions to both layout challenges without compromising on his vision.
Zork 1, Planetfall, Leather Goddesses of Phobos, Wishbringer, and Hitchhiker's Guide were all tweaked in small ways, but most notably the Invisiclues screens were updated to fit and format to the narrow screen. This meant taking small liberties with phrasing of hint questions, to fit in the space provided without being quite as wordy as the originals. My apologies to any hard-line Infocom purists who might be offended by these truncations.
In addition to the Invisiclues reformatting, various signage and quote boxes about town needed gentle nudging to fit on screen. Sherlock will run on a narrow screen, but will deny the ability to read in-world signage; this is fixed.
A tricky adaptation to the small screen, mostly because of the unusual status bar animations(?) that drive realtime puzzles. The player must "watch" certain events, and the status bar displays a continuously updated realtime display of the status of those events. This leads to some timed puzzles which are based on the visual information in the status bar, so I tried to be careful about adjusting anything that might disrupt that timing. I think I got it right, but that section of the game is kind of hard to get through as a matter of course.
There is an entire, interesting story behind getting this game to work. Here we see the "Boysenberry computer" being used mid-puzzle, as well as the start game "registration form" formatted nicely for a 32-character/21 line screen.
Only light adjustments were necessary, mostly to make sure the status line always shows all possible exits and that invisiclues don't get cut off.
The easiest to adapt, mostly consisted of making sure quote boxes are centered and display entirely, but also took a moment to remove other artificial screen-width limitations. For example, Trinity credits are viewable by ask woman about trinity
at the start of the game. I added pagination to make it work on the small screen.
About as difficult as making Bureaucracy work, this one presented unique challenges with the "library mode," a fake file browser simulation that made grand assumptions about having a wide screen. I added the ability for the file list to paginate with a page counter to indicate where in the file list the user is looking. Lots of other quotations, signage, and the ink-blot test had to be adjusted as well.
I am the author of Status Line, a z-machine interpreter written with/for the virtual console known as Pico-8. The initial v1.x releases of Status Line targetted only z3 games, and due to the small feature set were easy to adapt to the Pico-8's 128x128px (32x21 character) display. One player even called it "my favorite way to play text adventures."
Expanding Status Line's capabilities into z4 compatibility and beyond, I am forced to reckon with the harsh fact that some titles were hard-coded to require a minimum 40-character (or more) display. Granted, a z-machine interpreter can "lie" and claim it supports such a screen. However, while this will trick the game into starting and playing, it can render certain games "playable" with the huge caveat that important text may be drawn off-screen. For most players this makes the games challenging to play, and not in the fun way.
To provide extra support to people who enjoy the cozy atmosphere of Status Line on the Pico-8, I endeavor to make classics (whose source code is available) that work well on a very small screen. I do (when appropriate) place specific emphasis on Status Line and its capabilities/limitations. I may (judiciously and while preserving authorial intent) reword/truncate a phrase or two here and there to fit the horizontal space of the small screen. This does not alter any wording of prose, and is mostly relegated to status line information, redundant to the main textual corpus.
For those wanting to build from source, you will need the ZILF and ZAPF compiler tools. Add the location for the tools to your PATH environment variable. https://foss.heptapod.net/zilf/zilf/
I've added a Windows .bat file which can be run quite simply from this project's top-level root directory.
./build <game>
This will generate a build/ folder at the top level. Inside that will be .z#, ready to play in the interpreter of your choice.
The Unix/macOS/WSL/gitbash build script build.sh
is also available.