I started playing the game using the modern ScottFree interpreter, but the Mysterious Adventures handle lamp expiration in a different way than the Adams games, causing some odd behavior. So I switched to the vintage Commodore 64 version
What exactly are the difference in the handling of lamp expiration? Of course, the only way to find out is to play the games in both interpreters and compare the results, but I was just wondering if anyone had already investigated this.
I’m not sure. But here are some initial findings from the ScottFree source code:
A game consists of a header of 14 values each apparently 16 bit …
[value number 9:] Time light source lasts. This counts down every time item 9 is in game. Brian Howarths games allow -1 for never run down. When it runs out the light item (9) is dumped in room 0 and a look done. Messages vary between interpreters and include things like ‘Your light is flickering and dying’ as well as ‘Light runs out in %d turns’.
I don’t know if there’s more to the Howarth-style timer than just allowing -1 for never-run-down.
Thanks! I’m going to assume for now that the Mysterious Adventures are pretty much working as intended in ScottFree, although it shouldn’t be too hard to, say, hack the ZX Spectrum executable to set the light remaining time to a low value and then check if the number of turns before lights out match the ScottFree behavior.
I don’t really know how to hack Spectrum games, but in the BBC Micro version of Golden Baton (Howarth #1), the timer lasts for 200 turns, as in ScottFree. After you light the lamp in the Beeb version, 175 turns later you get the message “Light runs out in %d turns” on each and every subsequent turn till the light runs out — whereas in ScottFree you get “Your light is growing dim” every five turns, when you’ve less than 25 turns’ worth of light remaining.
I just tried the same thing here with the ZX Spectrum version of The Golden Baton, with pretty much the same results. If the “light time” value is set to 25, it will say “Light runs out in 24 turns!” the moment you turn the lamp on, and then count down every turn.
By the way, anyone interested in hacking the ZX Spectrum or other 8-bit systems should take a look at Tiny Emulators. I’ve only really used the Spectrum emulator, but it has a lot of features I haven’t seen anywhere else and is very easy to use. Make sure to click the “UI” icon to get the debug menu.
EDIT: To get back on topic, the Howarth light messages are actually already implemented in ScottFree, and can be activated with the -s command line switch.
Heh, I found the important difference: In ScottFree, the lit lamp is not removed automatically by default when the light runs out. For that you need the -p switch (PREHISTORIC_LAMP). Otherwise you end up still holding the lit lamp while an empty lamp appears on the floor.
Made a small video of the now hopefully correct lamp behaviour in Spatterlight (and some other random stuff):
No, I just assumed that all the Mysterious Adventures need it. And it will only autodetect the C64 and ZX Spectrum versions, not the extracted text-only ScottFree DAT versions of them, though I guess that would be trivial to do with a list of checksums.