A random historical question about printed text extraction in 2003

This is actually a question about an Inform 5 story file, circa 1996.

I know we have Glulx Strings (as one example) for getting printed text out of compiled story files today. What tools were available in 2003 to extract text from a 1996 I5 game? What would have been used (assuming this was a thing at the time)?

2003 is oddly specific, I know.

1 Like

txd existed, I guess?

EDIT: The ZTools suite is from the 90’.

3 Likes

Yep, that’s what I was looking for. Thanks!

2 Likes

Yeah, the ztools suite (including txd) was released in '92 and it’s as revelatory (for zcode games) as glulx-strings, just noisier from the point of view of someone wanting only the text. A short sample from Zarf’s 1995 A Change in the Weather (albeit with a recent txd):

Routine R0238, 0 locals

       TEST_ATTR       G1e,#09 [TRUE] L0001
       PRINT           "The excavation has left rather a lot of dirt and dried
mud near the path."
       JUMP            L0003
L0001: JL              G83,#08 [TRUE] L0002
       PRINT           "The excavation has left rather a lot of dirt and mud
near the path. It's all been soaked by the rain, and it's pretty messy."
       JUMP            L0003
L0002: PRINT           "The excavation has left rather a lot of dirt and dried
mud near the path. Some of it has been wetted down."

Reform, which decompiles to Inform 6, didn’t come out till 2004-01-31.

But maybe more importantly, the Z-machine spec came out in 1997 and it became straightforward for any programmer to see how it would be done, without even having to delve through source code.

2 Likes

txd and ztools come from the first explosion of fan analysis of the Z-machine. The first open-source interpreters were created in parallel.

The 1997 Z-Spec was really just collecting everything that had been learned in the early 90s and writing it down in the form of a reference document.

5 Likes

I remember being fascinated by infodump’s ability to extract the dictionaries from Infocom games. Particularly when it produced strange words like “zzkjlk”, which didn’t seem to fill any function.

But now, thanks to the preserved source code, we can finally find out that…

<OBJECT LOCAL-GLOBALS
	(IN GLOBAL-OBJECTS)
	(SYNONYM ZZKJLK)	;"This synonym is necessary - God knows">

… ok, so I guess it’s still a bit of a mystery.

4 Likes