About This File
"Willy the Rogue" is a JSW128 game by the DrUnKeN mAsTeR!!! (BaSe1 PrOdUcTiOnZ) released in 2002.
The last gamma-released revision of the game, v. 1.2, suffered from critical bugs which made the game impossible to complete properly. They have now been fixed and the game has been made toilet-completable.
The problems and the fixes:
1.
The problem: There was no way to collect the top-right item in the room "Oh Globbits!" (078), which made the game incompletable.
The fix: A Water cell was added which allows access to this item.
Technical solution: The value of the address #CE6F in bank 3 was changed from #00 to #40.
2.
The problem: After the game was made bed-completable with the modification of one byte described in point 1, it was not toilet-completable yet, because the code which should set the Game Mode to 3, showing Willy with his head inside the toilet and legs kicking wildly in the air, would not work. This was because the toilet had been moved from the original room 033 to room 000 "Oops I did it again!!!", but there was no corresponding change in the code which checks if Willy has reached the toilet.
The fix: The code was fixed to check for the correct room.
Technical solution: The value of the address #9588 in bank 0 was changed from #21 to #00.
3.
The problem: After the above fix was applied, there was still no Willy with his head inside the toilet at the end of the toilet run, because the sprites of Willy in the toilet (or, to be precise, of Willy's legs kicking wildly in the air above the toilet), originally at #A640-#A657 and #A660-#A67F, had been modified to show the shower in "Oops I did it again!!!".
The fix: The proper sprites of Willy with his head inside the toilet and legs kicking wildly in the air were restored and used.
Technical solution: The sprites of the toilet (without Willy in it) were copied to #9700-#971F and #9720-#973F in bank 0 (into an area of unused code and free space). The sprites of Willy inside the toilet were created (the toilet in "Willy the Rogue" is slightly modified in relation to the one in the original "Jet Set Willy") and placed at #9740-#975F and #9760-#977F in bank 0 (previously free space). The value of the address #95B3 in bank 0 was changed from #A6 to #97 to point to the right place where the complete sprite toilets are.
4.
The problem: The bed in "Willy the Rogue" is one block longer than the one in the original "Jet Set Willy". However, the code which checks whether Willy has reached the bed was not adjusted, which meant that Willy wouldn't start the toilet run at the edge of the bed, but would have to move one block "into" the bed. While this issue was not critical at all, it seemed better to make the toilet run start at the edge of the bed, just like in the original "Jet Set Willy" and various JSW remakes.
The fix: The code was adjusted to check for the correct position within the room.
Technical solution: The value of the address #957C in bank 0 was changed from #06 to #07.
No other changes were made to the original game file. The original game file and Readme are included in this ZIP package.
The game was modified using Claus Jahn's ZX-Blockeditor v. 2.4.3 after the proper values were figured out using John Elliott's JSWED v. 2.3.7 and SkoolKid's JSW disassembly. The bugfixed game was never loaded into JSWED. Therefore, it preserves the original Hacklevel 8 of the JSW128 game engine (which the current version of JSWED would have upgraded automatically had the game been loaded into the editor).
This bugfixed, toilet-completable version is released with the DrUnKeN mAsTeR!!!'s approval expressed in a message posted in the Contributor Lounge of this forum, where he wrote, "I give you the full blessing to bugfix the original games, and put them on JSW Central" (the message is only visible to those members who have Contributor status).
Enjoy!