About This File
"Jet Set Willy: The Deadly Mission" is a 1985 game by Adam Britton. It was created using Paul Rhodes' "JetSet Editor".
In the mid-1990s, the game was recovered from the original tape and transferred to emulator format by Richard Hallas. It was released in January/February 1996 as part of the snapshot pack in Issue 4 of the "Emulate!" online magazine.
The SNA file of the game included in the "Emulate!" magazine was completable without losing a single life, so there was no reason to correct it and the only 'value added' this ZIP package offers is its conversion to tape format.
However, a modified version of the game started doing rounds on the internet, with a critical bug that made it incompletable. It must have been created just two days after the file that was included in the "Emulate!" magazine. The latter has a date stamp of 21 September 1995, while the earliest known Z80 snapshot which features the bug has a date stamp of 23 September 1995 (it is currently hosted, for example, on World of Spectrum and Spectrum Computing).
The bug was discussed by Andrew Broad on his website, the archival version of which can be found here. As Andrew explains, the application of the Bad Pause-Bug Fix causes the guardian instance list in "Mystery Room" (63) at #FFF0-FFFF to be overwritten with code to correct the Pause-Bug. These data are interpreted as guardian instances which kill the player immediately on entry to "Mystery Room".
As mentioned above, the SNA file included in the "Emulate!" magazine snapshot pack does *not* suffer from this problem.
This download offers "JSW: The Deadly Mission" in TAP and TZX format, converted to tape format from the SNA snapshot from the "Emulate!" online magazine, dated 21 September 1995.
The following changes have been made:
1. The Empty Room Screen Buffer at #8000 - #80FF and the Empty Room Guardian Buffer at #8100 - #813F have been NOPped out (with the value #FF at #8140 terminating the buffer). This change was done for the sake of the 'elegance' of the tape file, as a game loaded from tape should not have any values there other than zeroes before the initial room and its guardians are loaded into the buffers.
2. Three bytes at #8180 - #8182 have been NOPped out, for the sake of 'elegance' as well. These addresses (in fact, the whole range from #8141 to #81FF) are unused in the original "Jet Set Willy". It is hard to tell why the code in the SNA file was placed there (it is a jump to the address #8BFF, which is the first letter "y" in the name of "Mystery Room"), but there is certainly no reason for it to appear there in that otherwise unused chunk of code.
3. The following variables: the number of lives remaining (#85CC), Willy's y-coordinate (#85CF), Willy's animation frame (#85D2), the address of Willy's location in the attribute buffer at #5C00 (#85D3 and #85D4), the Rope status indicator at #85D6, the In-game music note index at #85E1 and the Music flags at #85E2 have been NOPped out, for the same reason of 'elegance'. These variables are initiated when the game starts, so their addresses should have a value of #00 right after the game has been loaded from tape. A visible (or rather audible) effect of this is that the in-game music is turned on by default when the game is started (contrary to what happens in the SNA snapshot, where it is turned off).
4. A custom BASIC loader was created. It aims to reflect Adam Britton's original solution to the loading screen, which is a block of compressed code loaded and then decompressed to display the picture it contains on the screen while the rest of the game loads. The loader is simplified in comparison to the original one, which apparently installed the room "In The Lair Of The Zaquaroid" (33) in its proper shape and to correct the value of several addresses by POKing them. A short pause was introduced after the loading screen has been displayed to make it visible to people who use fast loading on emulators.
As a result of the changes described above, the player is offered a completable version of Adam Britton's historic game in a choice of two tape formats. The game can be completed without any loss of life. Currently, the best known in-game completion time is 8:27 am (please see the video on the JSW Central YouTube channel).
The SNA snapshot of the game from the "Emulate!" online magazine (JSWDEADL.SNA) is included in the ZIP package offered here for download, for the sake of completeness.
It is possible that one day the file of "JSW: The Deadly Mission" will be recovered (again) from its original tape and transferred to the TZX format. If this happens, the conversion of the game to tape format included in this ZIP package will become obsolete. Until then - enjoy it!
John Elliott's JSWED v. 2.3.7, Andrew Broad's SPECSAISIE 1.3 Beta 5 (the latest publicly available version is v. 1.2) and Claus Jahn's ZX-Blockeditor v. 2.4.3 (a newer version 2.4.3.1 is available were used to prepare this bugfixed version of "JSW: The Continuing Adventures". Richard Dymond (SkoolKid)'s complete JSW disassembly (available in hexadecimal and in decimal) was also very helpful in this endeavour.
The game's page on JSW Central is here.