Just what the world wanted… a new Scott Adams interpreter…
I did this much as an excercise in ZIL. This is a first release and so far I only tested it with a couple of games… I’m happy to recieve any bug-reports (here or as an issue in GitHub).
Tool for creating converting a SA-game dat-file to ZIL that compiles with ZILF.
Scott2Zil is a tool that takes a data-file for a game in the Scott Adams-style genre (games that can be played with for example ScottFree or PerlScott) and repackage it inside a ZIL-shell that can be compiled with ZILF to and independed z5-game.
pdxiv, the creator of PerlScott for inspiration and code that is much more readable than the original basic interpreter by Scott Adams. (https://github.com/pdxiv/PerlScott)
Take the data from the *.sao or *.dat you created with scottkit or obtained by other means and paste it in the table game-dat. Currently there is adventure 1 - Adventureland, just replace it.
If you want you can change some of the game constants that controls for example the standard messages and if the gameflow is with split screen or conversational.
Compile the game with ZILF and play in a Z-machine of your choice (I use Windows Frotz 1.21 myself). There is a make-file with the syntax for ZILF and ZAPF but you probably need to change the paths.
That’s awesome! I’m sure it will solve a lot of the problems that people have had with running SA games on different platforms, like the web.
This is the first time I’ve tried using ZILF, and when I run the second command in the make.bat file manually on my Linux box (../zilf-0.9.0-linux-x64/bin/zapf -ab scott2zil.zap > scott2zil_freq.xzap) i get the error message:
Assembling
:0: fatal error: unrecognized symbol: WORDS
Not sure if my ZILF installation is just broken or if there’s something else I’m missing.
The second step is only to create an abbreviation file. You don’t need that for these small games (I only think it saves about 1500 bytes). So you could just try zapf without the -ab and the > …
just tried it with a fresh copy and had no problem. I work in Win10 that could possible make a difference.
I switched to z5 when I implemented the split screen because I needed CLEAR and CURSET (not avaible in z3).
I just tried to compile with ZIP (–> z3) and the following commands that I use is not supported in ZIP:
LEX
CLEAR
CURSET
CURGET
INPUT
I use LEX to reparse for the abbreviations (e --> go east).
CLEAR, CURSET & CURGET is only used in split screen.
INPUT is used in the intro text and the “pause” (wait one second).
I think it would work to compile a game as ZIP if you remove the split screen and only play in conversational mode. You also will lose the pause (not vital, I think).
I will create an issue in GitHub to fix this with compiler directives.
In other words: If you choose ZIP (z3) as target you get a conversational game with no abbreviations for directions (like the old BASIC-interpreter).
If you want the abbreviations you create in step 2 to be use in step 3 you need to delete the “scott2zil_freq.zap”-file between step 2 and 3. Otherwise zapf will use the *_freq.zap instead of the newly created *_freq.xzap.
I think there is an issue to make this process a bit more streamlined for future versions of ZILF…
There is a new release (release 4) of scott2zil. I have fixed a couple of issues in this. Most notably is that:
More parameters are configurable in game-dat.zil.
Conversion table that converts ISO-8859-1 to ZASCII_C1. This “should” fix international characters, but I have not tested more than a little bit with some swedish letters.
If you compile to z3 you still can use the shortform for directions and inventory.
It loaded much faster than the recently C64 port of ScottFree. Gameplay was a bit slower but still acceptable (Brian Howarth’s 1984 C64-version is still the fastest I tried).
I’ve played through a couple of games with scott2zil and currently is the following games testet:
01 Adventureland
02 Pirate Adventure
03 Mission Impossible
12 The Golden Voyage
14b Buckaroo Banzai
Ghost King
The IFDB entry on The Golden Voyage specifically states that the inform conversion of the game is " *WARNING! The Z-Code conversion of this game is certifiably unwinnable, due to a faulty conversion." so I wanted to check if the scott2zil-version is winnable (which it is, I’m happy to say).
If you want to try the games the convertet versions are here (I’m gonna update the IFDB entries as soon as the new parchment version is released that hopefully fixes a problem with INPUT 1 (ZIL)/read_char (Inform)).