IRF Posted March 9, 2021 Report Share Posted March 9, 2021 (edited) 6 hours ago, jetsetdanny said: Ian, thank you so much for your detailed explanation of how the code works to form the password that activates the cheat mode! 👍 Your explanation has allowed me to understand how it works and it's all clear to me now, which I have confirmed by making a test and modifying the password successfully 🙂. To take this a bit further, the following three commands in the JSW128 Cheat routine could be edited to change the half-rows of keys that are picked up: At #C428, there is LD BC, #FBFE (01 FE FB in opcode) At #C446, you will find LD B, #DF (06 DF) At #C45E, we have LD B, #FD (06 FD) Changing the value that is loaded up to B in one or more of the above commands will change the half-row(s) from which keypresses are detected. Doing that in conjunction with editing the data at #C480-#C49A could allow you to have a 9-letter Cheat password that draws characters from any three half-rows of keys. e.g. POKE #C45F, #FE changes the existing password to ZUPERUZER (loading B=#FE allows you to access the half-row SHIFT-V, and in this case there is no need to edit the table at #C480-9A, because 'Z' occupies the same position as 'S' in their respective half-rows - pressing them resets Bit 1 in both cases). Note that if you're using a key like 'Z' as part of your password, which also functions as a Jump key, then you have to wait until Willy has landed again after pressing it before proceeding with pressing the next character in the password sequence - I've just tried it though and it does work! There is a very handy table below (from the following link), which gives a full list of all the ports and bits that correspond to each key on the Spectrum: http://www.breakintoprogram.co.uk/computers/zx-spectrum/keyboard Edited March 9, 2021 by IRF andrewbroad 1 Quote Link to comment Share on other sites More sharing options...
IRF Posted March 9, 2021 Report Share Posted March 9, 2021 (edited) P.S. I did try out using 'A' in a Cheat password, but it seems to pause the game and therefore cause the code which detects Cheat keypresses to be bypassed, before the program gets chance to update the Cheat Key Counter variable. So if you come up with a password for which you wish to use the 'A' key - which may well be the case since it happens to be a vowel - then you would need to change the Pause button. e.g. changing the 'AND 01 CP 01' at #8AC8-8ACB to 'AND 04 CP 04' makes 'D' the JSW128 pause button instead of 'A'. (Or you could just ditch having an in-game Pause key, and use your emulator's Pause function instead!) Edited March 9, 2021 by IRF jetsetdanny 1 Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted March 10, 2021 Author Report Share Posted March 10, 2021 19 hours ago, IRF said: I do recall observing that glitch a while ago (and coming up with an explanation how it works in terms of the code - I think the Main Loop gets stuck in a, er, loop!) You can easily get out of it though, without resetting the game, by just toggling Invincibility Mode back off again.🙂 In my particular experience it didn't work. I toggled both special modes (invincibility and antigravity) off, but Willy didn't get killed. It was as if he wasn't there to get killed (or reappear), sort of... Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted March 10, 2021 Author Report Share Posted March 10, 2021 Thanks for the additional info and tips, Ian! 👍 IRF 1 Quote Link to comment Share on other sites More sharing options...
IRF Posted March 10, 2021 Report Share Posted March 10, 2021 6 hours ago, jetsetdanny said: In my particular experience it didn't work. I toggled both special modes (invincibility and antigravity) off, but Willy didn't get killed. It was as if he wasn't there to get killed (or reappear), sort of... How strange, I wonder if it was an issue with your emulator? I've done a RZX recording to try and replicate what you described - see the attached - but I didn't encounter the problem (well, I did get the empty screen, but toggling the Forcefield off resolved the issue). Once the recording has finished, perhaps you could 'take back control' to see if you can replicate what you saw before? Forcefield Bug.rzx Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted March 10, 2021 Author Report Share Posted March 10, 2021 Ian, You're most probably right about how it works. I can't replicate the effect now. It must have been that I did not switch the Forcefield off back then, I must have switched off Antigravity only, and it just seemed to me that I had switched both off when I wrote my message. IRF 1 Quote Link to comment Share on other sites More sharing options...
IRF Posted March 12, 2021 Report Share Posted March 12, 2021 On 3/9/2021 at 9:59 AM, IRF said: in terms of the usefulness of the Forcefield and antiGravity features, I believe they are useful tools to be used in conjunction with the inter-room teleportation via Z/X/C/V (part of the package, if you will). If you try to teleport between rooms without using SHIFT+F and SHIFT+G, then it is possible to inadvertently end up in an Infinite Death Scenario if you appear in a room on top of a guardian or Fire cell, or if you emerge suspended in mid-air more than four character rows above a solid surface. The Forcefield and antiGrav features are therefore recommended (by none other than John Elliott himself!) to be toggled on before you attempt to use Z/X/C/V for inter-room teleportation, and then once you have arrived at your intended destination, and you've ensured that Willy is in a safe position, you can toggle F and G back off again. 😃 Regarding the above, I meant to point out that the same is also true of using the WRITETYPER feature in a JSW128/JSW64 game. i.e. If you have activated Forcefield and anti-Gravity, then you can use WRITETYPER to get around without risk of accidentally suffering an IDS. jetsetdanny 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.