Hello,
I’m trying to customize The Lurking Horror, by Dave Lebling, using the source code that Jason Scott released and the ZILF compiler by Jesse McGrew. Unfortunately, after optimizing abbreviations with zapf, I am over the limit for a version 3 Z-machine. This is the error I get when trying to assemble:
…/…/…/zilf-0.9.0-linux-x64/bin/zapf lurkinghorror.zap
ZAPF 0.9
Reading lurkinghorror.zap
Reading ./lurkinghorror_freq.zap
Reading ./lurkinghorror_data.zap
Reading ./lurkinghorror_str.zap
Measuring…
warning: packed address overflow for string: STR?19
warning: packed address overflow for string: STR?20
warning: packed address overflow for string: STR?21
warning: packed address overflow for string: STR?29
warning: packed address overflow for string: STR?489
warning: packed address overflow for string: STR?493
warning: packed address overflow for string: STR?199
warning: packed address overflow for string: STR?145
warning: packed address overflow for string: STR?340
warning: packed address overflow for string: STR?341
warning: packed address overflow for string: STR?339
Assembling
error: file length of 131306 exceeds platform limit by 234 bytes
So close!
Anyhow, I’ve been looking into migrating to version 5, but simply replacing <VERSION ZIP> with <VERSION 5> in lurkinghorror.zil introduces errors:
…/…/…/zilf-0.9.0-linux-x64/bin/zilf -c ./lurkinghorror.zil
ZILF 0.9 built 8/11/19 6:31:00 AM
[error ZIL0405] /home/mantas/Documents/machine_learning/projects/2020/ethical_rl/labeling_code/infocom_files/GamesBeingAnnotated/lurkinghorror/misc.zil:327: USL is not supported in this Z-machine version
[error ZIL0405] /home/mantas/Documents/machine_learning/projects/2020/ethical_rl/labeling_code/infocom_files/GamesBeingAnnotated/lurkinghorror/verbs.zil:222: USL is not supported in this Z-machine version
[error ZIL0207] /home/mantas/Documents/machine_learning/projects/2020/ethical_rl/labeling_code/infocom_files/GamesBeingAnnotated/lurkinghorror/cs.zil:2960: undefined global or constant: A?SOUTH
[error ZIL0207] /home/mantas/Documents/machine_learning/projects/2020/ethical_rl/labeling_code/infocom_files/GamesBeingAnnotated/lurkinghorror/cs.zil:3418: undefined global or constant: A?NORTH
46 warnings (46 suppressed)
4 errors
It looks likes some opcodes changed / are no longer available in version 5. I see the USL opcode mentioned here, but I’m not sure how to figure out what it does and how to go about finding a version 5 replacement. Any advice would be greatly appreciated. Also, is migrating something like The Lurking Horror to version 5 feasible in the first place?
Thanks,
Mantas