First post, by Spikey

User metadata
Rank Oldbie

Hey folks,

Been finally getting around to playing this lost gem of a game and it's very fun. However, there's a bug (?) that crops up both in DOSBox 0.74 and DOSBox-X. In Level 6 of the shareware episode, a teleporter is introduced where you need to press UP to activate it. However, in both DOSBox's, the teleporter doesn't activate. The key mappings are all default (I tried changing them, same result), and I don't believe there's anything in the game I'm missing (YouTube confirms this).

Attached are my save games, the one named "6 - 2" at the end (slot 5) is saved right there.
EDIT: To get the saves to work, there must be save games in the relevant slots (i.e., slot 5). If you haven't played the game, start a new game, save in slot 5, then overwrite with my save, it will become available.

Thanks for any and all assistance, would love to finish it! 😀


  • Filename
    File size
    20.42 KiB
    File license
    Public domain

Reply 1 of 2, by Kippesoep

User metadata
Rank Oldbie

As you know from the SQH Discord, I've been trying this out using other methods... and just for reference here:

  • the /KEYB switch in the readme doesn't make a difference
  • the up arrow doesn't work in real DOS either
  • configuring the game to joystick mode does allow passing the teleporter, but only once and after that, I had to restart the game to get it to work just once again

Having checked the old version in STORM1A.ZIP at https://www.dosgames.com/forum/viewtopic.php?t=18422, which does work correctly, I found that the old version's keyboard IRQ handler is completely different. The new version (4.0) just uses an array of bytes, indexes it using the scancode, and ORs the byte to 1. The old version (2.02d) explicitly checks a whole bunch of scancodes right there in the IRQ handler, including scancode 48h for the up arrow.

After unpacking the executables, I've found:

  • IRQ handlers at file offset CFC6 (old) and CE0D (new)
  • code that checks for the teleporter activation at F33E (old) and EEE4 (new).
  • it checks for DS:9724=0000 DS:9744=01 (old) and DS:76A2=0000 DS:A2EA=01 (new), and writing those values to those memory locations with the DOSBox debugger triggers the transporter in both
  • the IRQ handler in the old version writes those variables directly, in the new version there's code that writes them at file offset C1DD - but this appears to not be executed

My site: Ramblings on mostly tech stuff.

Reply 2 of 2, by Spikey

User metadata
Rank Oldbie

If anyone else sees this with the same problem, V2.02D of the shareware episode works without the teleporter bug, and as it turns out is the version included with the Registered version.