Terp testing game suggestions

I’m at “alpha” for v3.0 of my interpreter, Status Line. Things look good so far, but now it is really time to exercise the terp much more vigorously.

Aside from the usual suite of “correctness” test suites (etude, praxix, et al), are there any games (z3, z4, z5, z8) that you’ve found to be good at revealing problems in your own interpreters?

Maybe the game exercises some rarely-used opcodes. Maybe it pushes the display system in interesting ways. Maybe you’ve just found that certain games give you a personal sense of safety and satisfaction knowing they play to completion accurately.

For example, for myself I “turn on sonar” in Seastalker to feel satisfaction that split window in z3 games is behaving properly. I’ve also been testing Freefall (for timed routine) and Photopia (for formatting and color changes). Lost Pig is just a personal “I want it to play well in my terp” goal.

Any other suggestions?

2 Likes

I’d recommend trying games from all compilers: Infocom, modern ZIL, Inform 6, Inform 7. They do things slightly differently so you might find obscure bugs that only occur with one compiler. Adventure has been compiled for all except the original Infocom, so that’s a direct comparison too.

But you’ll never find all the bugs before release. So just release it and people will eventually report more. That’s the life of an interpreter developer!

1 Like

Beyond Zork is a torture test all unto itself: unusual text output (for the map and runes), preloaded input (for defined macro keys), etc.

Border Zone: timed input with reads occurring within interrupts.

Bureaucracy: Reads in the upper window, output that needs to be slowed down on fast machines.

The Lurking Horror: Difficult to get right if you want it to play sounds exactly the way the Amiga version did.

2 Likes

I should note that my terp cannot play sound effects aside from beep and boop, but it’s still nice to have these suggestions for other terp writers.

I certainly don’t expect to find every bug, but I do want to feel I’ve performed my due-diligence on the matter.

Test the quote-box display in both Trinity and Curses.

2 Likes

The Dragon and the Troll doesn’t use a library, nor does it use the dictionary, but lots of printing of strings to memory. Also, being just a few KB big, it’s convenient to run on 8-bit interpreters without involving virtual memory.

The MST3K games do a lot of weird stuff, like turning buffering on and off in the middle of a line of text.

The Job: All PunyInform games released before 2024, except Stefan Vogt’s games, need to read the cursor position when printing the status line. This opcode was rarely, if ever, used by Infocom, and it was broken in their Amiga z5 interpreter. PunyInform games in z5 format also use the scan_table, copy_table and print_table opcodes pretty much every move (the standard library doesn’t use any of them).

Nord and Bert is one of the games that require the terp to auto-extend the upper window.

Robot Finds Kitten is special.

The Werner’s Quest games were transpiled from Quill games to Z-code. I remember having issues with them in some interpreters.

Advent, PunyInform version, in z5 format, uses a custom alphabet table (e.g. putting “.” in the first row instead of the little-used letter “j”.)

Aventyr.z5: Advent, Swedish version, uses a custom alphabet table with some accented characters, and dictionary words with accented characters. When the game starts, you should be able to examine the house with “undersök huset” or “UNDERSÖK HUSET” (Reply: “Det är en liten tegelbyggnad. Det verkar vara ett brunnshus.”), and the stream with “se på bäcken” or “SE PÅ BÄCKEN” (Reply: “Du ser inget speciellt med bäcken.”). This also tests proper downcasing of input. If you type “TRANSKRIPTION VISA”, you should be able to type aa, ae and oe instead of å, ä and ö respectively, e.g. “se paa baecken” should give the same result as “se på bäcken”.

Tethered: Uses lots of throw/catch. Try typing stuff that is and stuff that isn’t understood.

2 Likes

Playing Milliways on the Windows interpreter (that’s the only one i tried) throws an immediate error which doesn’t happen normally. I can replicate it and show it here.

(The other two z5 games I’m writing throw a different error, too.)

1 Like

Robot Finds Kitten… just adorable.
Visually a good fit for the Pico-8 colors and font, IMHO
Gameplay logic adjusts itself to fit the tiny screen (some very long text gets truncated, but the game proper seems to flex properly)

1 Like