14th May 2006: Jet-Set Willy Ivy added.
This page identifies, and gives proposed solutions to, bugs that make specific JSW games impossible to complete (plus any bugs caused by the Bad Pause-Bug Fix). I don't believe in editing other people's games for them, so on this page I suggest a solution to each problem, and give pokes to implement each solution. I also attempt to contact the authors in the hope that they will correct these bugs - or tell me I'm mistaken, as the case may occasionally be! ;-)
Completing a JSW game is defined as follows:
Each poke is given in two alternative formats:
In the case of JSW128 and JSW64 games, it is necessary to select a bank of 128K memory before applying any poke in the 49152-65535 (#C000-FFFF) range, as these addresses refer to whichever RAM-bank is paged in at the time (normally Bank 0). Pokes in Banks 1-7 shall be given in hexadecimal format only (e.g. Bank 1: Hex DE2C: 04), for use with JSWED, because they cannot be applied directly using the denary methods listed above.
This page will be extended as I get around to playing through all the JSW games. So far, I have found bugs in the following games:
Software Projects actually published four official pokes to make Jet Set Willy possible to complete:
Click here for a version of Jet Set Willy with these four pokes applied (courtesy of Ed Duffy), plus the three pokes to bypass the colour-code protection:
POKE 34480,195 POKE 34481,202 POKE 34482,135 (Hex 86B0: C3 CA 87)
With the above pokes applied, Jet Set Willy: Spectrum Computing is bed-completable. It can be made toilet-completable with the following two pokes to turn four Earth-cells at the bottom-right of "Down From The Lab" [34] into Water:
POKE 57967,5 (Hex E26F: 05) POKE 57975,5 (Hex E277: 05)
Adam Britton released a Special Edition of The Continuing Adventures that is possible to complete, and has many other improvements. However, since TCA-SE removes "The Sky-Ladder" [42], and also because the original TCA has historical value, I consider TCA and TCA-SE to be parallel variants, rather than that TCA-SE absolutely supersedes TCA.
Only one of the changes from TCA to TCA-SE needs to be applied to TCA to make it completable: "The Miniature Sherwood Forest!" [17] has an unreachable item.
POKE 53557,1 puts a Water-cell at (6,23) so that you can jump up for it. (Hex D135: 01)
When The Deadly Mission was transferred to emulator-format in 1995, the Bad Pause-Bug Fix was applied, which overwrites Room 63's guardian-instance list with code to correct the Pause-Bug in addresses 65520-65535 (#FFF0-FFFF). These data are interpreted as guardian-instances which kill you immediately on entry to Room 63 ("Mystery Room").
POKE 35591,33 POKE 35592,0 POKE 35593,154 (Hex 8B07: 21 00 9A)
It is most unlikely that the uncorrupted "Mystery Room" [63] had any guardians, as it has a non-blank pixel-pattern for Air.
WARNING!! Editing JSW-WH.SNA in JSWED will corrupt "The Hotel Bathroom" [2], because JSWED sets the snapshot to run the game immediately, bypassing the BASIC loader that installs that room! Therefore you should first load JSW-WH.SNA in an emulator, and resave it when the usual title-screen appears - and make sure you save a 48K SNA file, because JSWED interprets 128K SNA files as JSW128 games!
When Willy's Holiday was transferred to emulator-format in 1995, the Bad Pause-Bug Fix was applied, which overwrites Room 63's guardian-instance list with code to correct the Pause-Bug in addresses 65520-65535 (#FFF0-FFFF). These data are interpreted as guardian-instances which kill you immediately on entry to Room 63 ("The Beach").
POKE 35591,33 POKE 35592,0 POKE 35593,154 (Hex 8B07: 21 00 9A)
Here's my best guess as to which guardians may have been in "The Beach" [63]:
Willy's New Hat comes with a BASIC loader intended for the original Jet Set Willy, which blindly applies the following pokes:
POKE 36635,239: REM Interface 1 fix
The Bad Pause-Bug Fix
POKE 34476,195: POKE 34477,202: POKE 34478,135: REM bypass colour-code protection
The Official Software Projects Pokes
None of these pokes are necessary for Willy's New Hat, and in fact the official Software Projects POKE 42183,11 moves an item from "Down Down .... Just Wasting Time" [16] to "Get The Point ?" [11], where it is uncollectable; POKE 56876,4 creates an erroneous floor-block in "The Gas Works" [30].
To solve this problem using JSWED, simply load Willy'sNewHat.SNA into JSWED and resave it immediately. This works because JSWED sets the snapshot to run the game immediately, bypassing the BASIC loader.
To get around this problem using an emulator:
The snapshot starts with a 5-way menu. To bypass the application of the above pokes: instead of entering a number from 1 to 5, enter USR 33792 (to get "USR " you have to hold CAPS SHIFT and SYMBOL SHIFT together so that the cursor changes to a flashing "E", then press 'L') to start the game immediately.
(In the RealSpectrum emulator, CAPS SHIFT is represented by the normal shift key, SYMBOL SHIFT by Ctrl.)
If you are already playing Willy's New Hat on an emulator that allows pokes to be applied at runtime, and you encounter the uncollectable item at the top-right of "Get The Point ?" [11], use POKE 42183,80 to move it to "Down Down .... Just Wasting Time" [16].
The reason why it has to be POKE 42183,80 at runtime rather than 42183,16 (the correct static poke) is that the game-engine flags all items as uncollected at the start of the game by adding 64, hence 16 + 64 = 80. Were you to use POKE 42183,16 at runtime (which flags the item as collected), the item would disappear without being added to the items collected.
The cyan corkscrew in "Rm41" is seventh in the guardian-instance list, so it collides with the arrows (the first four guardian-instances), killing you before it is possible to collect the items.
To solve this problem, the corkscrew must be moved to first place in the guardian-instance list - before the arrows. The solution with the fewest pokes is to swap the corkscrew with the first arrow (i.e. swap the seventh and first entries in the guardian-instance list):
POKE 59888,44: POKE 59889,151: REM corkscrew as 1st guardian-instance (Hex E9F0: 2C 97)
POKE 59900,29: POKE 59901,204: REM arrow as 7th guardian-instance (Hex E9FC: 1D CC)
Eventually the green monster collides with an arrow, but the above pokes are all that are required to make the game completable.
The following pokes undo the Bad Pause-Bug Fix, allowing you to pause the game without erroneous colour-attributes appearing on the screen:
POKE 35591,33 POKE 35592,0 POKE 35593,154 (Hex 8B07: 21 00 9A)