Posted January 19, 2025 by Christopher Drum
Testing can be a tedious process, for sure. I need to play games, start to finish, that represent "genetic differences" in a variety of games.
You can imagine the combinatorial matrix of z-machine games that are needed to satisfy every combination of authorial possibilities. With true due-diligence we should be able to verify everything in that list as behaving accurately.
I do my best to find games that provide as much coverage in the genetic differences as possible. That said, I certainly do place particular emphasis on the Infocom canon and games which have proven noteworthy/famous in the modern age.
I grab a variety of games, especially in a variety of z-formats, and I test them "simultaenously." Using walkthroughs I start up a game, play to some notable point in the walkthrough, then save the game and quit. Then, drag in another game in the test list, play to some notable point, save, quit. Drag in another game, do the same. Drag in another game, do the same. I typically have 4 or 5 games in progress at any one time.
As I play through the games, I sometimes have the same game running in another interpreter (WinFrotz, Lectrote, Yazmin) to verify behavior in Status Line. Sometimes I check behavior against Ozmoo on a C64 or C128. For an Infocom game, I typically go straight to the originals in an emulator and see how they behaved.
For example, in playing Infocom's Sherlock, I noticed in the beginning some strange formatting when I performed "read paper" in Holmes's study. In cases like that, I need to see, "Is it me or is it the game?" (it was the game)
Likewise, I noticed spelling mistakes ("the" read as "he") in Lost Pig and needed to check, "Is Status Line skipping data bytes, or is the spelling actually wrong?" (it was the game)
After I've satisfied myself on who is to blame for the noted issue, I cycle through the games again. Reload the first game, restore the save point, and continue from there. After making a chunk of progress, save the game again, quit, load the next game, and just keep going until all games are finished.
This process forces me to play lots of games, in a style similar to how I'd play for fun, robustly checks the critical save/restore function, exposes me rapidly to a wide variety of z-machine state possibilities, and attenuates me to "normal" interpreter flow such that anomalies stick out rather prominently.
And so on.
The following games are slated for Status Line Classics updates. (modified source code to look and play great in Status Line)
Obligatory screenshot, just because it looks so, so cute in Status Line on a Pico-8.