Spider Posted November 21, 2016 Author Report Share Posted November 21, 2016 (edited) Disable arrows: POKE 37431,195 : POKE 37432,161 : POKE 37433,146 Disable guardians POKE 37334,195 : POKE 37335,52 : POKE 37336,146 These work better than some of the other methods as those either leave the ink behind (so if you stand in the path of a guardian you can see where it was) or some disable all the ropes too which is not ideal. The methods above apply a JP to skip over the 'guardian' or 'arrow' code when the routine looks at the type of entity to deal with. There are probably other ways of doing this however this seems to work fine. Edited November 21, 2016 by Spider jetsetdanny and Metalmickey 2 Quote Link to comment Share on other sites More sharing options...
Spider Posted November 25, 2016 Author Report Share Posted November 25, 2016 During game development, It's sometimes useful to be able to quickly switch features on and off without having to resort to either re-starting the game, manually editing the assembly or worse still: having to reload it to test again.With this in mind the following "quick debug" pok files should prove useful. They certainly have to me! :)Note that its not really intended to use all options at once although you could, but there is little point in for example disabling a guardians movement and removing it as well. Note due to differences in how emulators handle (or not!) .pok files especially concerning zero values or replacement zero's, it is necessary to have two files and that you check / uncheck what is needed with each one.Debug_on.pok provides the following options:FREEZE Vertical Guardians: As described, they are not removed and are still harmful, they just stop moving. Re-entering a room will reset them to their initial positions which may be good (or bad!) news for Willy. It would probably be wise to use the Guardian Collision Detect with this, depending on what you are doing.FREEZE Horizontal Guardians: The same as above, except for the horizontal ones.FREEZE Ropes: The same as guardians but acting on ropes. Note Willy can still safely climb and use them in their frozen state.REMOVE All Guardians: This removes both horizontal and vertical guardians, apart from Maria who is not really a Guardian in the 'normal' sense as such. Note that this does not stop their movement routines, so if you re-enable them they may not appear in the same place along their path when they were removed.REMOVE All Arrows: Similar to Remove All Guardians, except it acts on arrows instead.REMOVE Ropes: As the two above but for ropes.DISABLE Guardian Detection: Allows Willy to walk straight through horizontal and vertical guardians without harm.DISABLE Fire Cell Collision Detection: Allows Willy to walk straight through any fire cells. Note they are partly treated as water cells and its possible for him to accidentally fall through them. This is only really an issue if the cell is the lowest block on the screen where care must be taken to avoid him falling through to the room below if its been defined.DISABLE Earth Cell Detection: This in effect treats solid earth cells as water cells, meaning Willy can walk through and also climb them as if they were water cells. This means he can walk or jump through most previously solid walls. A small side effect is if the lowest block in a room is an earth cell he can sometimes fall through it upon standing on it so a little bit of care must be taken.DISABLE All conveyors: Allows Willy free travel in either direction on a conveyor. Note the conveyor remains animated.FREEZE Clock: Infinite Time On.Writetyper Mode ON: Should not really need any explanation!Auto Item Collection ON: Again, pretty obvious. All items are automatically collected upon entry to a room.Fall Any Height ON: Self explanatory!Infinite Lives ON: Pretty obvious.The Debug_off.pok reverses all (or some) of the changes above:UN-FREEZE Vertical Guardians: As it says, it would be wise to ensure Willy is not too nearby a Guardian before switching their movement back on, unless you have disabled collision detection.UN-FREEZE Horizontal Guardians: As above, but for the horizontal ones.UN-FREEZE Ropes: Allow them to continue to swing.ENABLE All Guardians: Switches them back on. See the note above about their positioning upon activating this.ENABLE All Arrows: The same as enabling the Guardians but for arrows instead.ENABLE Ropes: Switches ropes back on if they were disabled.ENABLE Fire Cell Collision Detection: Switches instant death upon contacting a fire cell back on.ENABLE Earth Cell Detection: Restores earth cells back to being solid again. Ensure Willy is not standing inside a wall when applying this.ENABLE Conveyors: Switches the conveyor movement back on.UN-FREEZE Clock: Infinite Time Off.Writetype Mode OFF: Disables Writetyper mode. Re-activate via the above or the more conventional method in the Landing if preferred.Auto Item Collection OFF: Willy will need to touch the item to collect it as per normal.Fall Any Height OFF: Restores normal death by falling too far. Note that re-enabling this 'mid fall' could have some odd effects.Infinite Lives OFF: Pretty obvious I hope.JSW_Debug_Mode_ON.pok JSW_Debug_Mode_OFF.pok Metalmickey, andrewbroad and IRF 3 Quote Link to comment Share on other sites More sharing options...
Metalmickey Posted November 26, 2016 Report Share Posted November 26, 2016 The new 'no nasties' poke is very much an improvement with very few side effects and Willy can still be Tarzan .. with the exception of the item counter going a bit wonky once more than 9 items are picked up... Spider 1 Quote Link to comment Share on other sites More sharing options...
Spider Posted November 26, 2016 Author Report Share Posted November 26, 2016 The new 'no nasties' poke is very much an improvement with very few side effects and Willy can still be Tarzan .. with the exception of the item counter going a bit wonky once more than 9 items are picked up... Yes the traditional old poke for this worked but it also removed all the ropes too which was not great. :) Metalmickey 1 Quote Link to comment Share on other sites More sharing options...
Metalmickey Posted November 29, 2016 Report Share Posted November 29, 2016 (edited) Perhaps unsurprisingly, the 'Disable Arrows' poke prevents the attic bug from taking effect! Would adding the keycode bypass be beneficial? Edited November 29, 2016 by Metalmickey Spider 1 Quote Link to comment Share on other sites More sharing options...
Spider Posted November 29, 2016 Author Report Share Posted November 29, 2016 Perhaps unsurprisingly, the 'Disable Arrows' poke prevents the attic bug from taking effect! Would adding the keycode bypass be beneficial? I did consider (well kind of) that but its only effective initially. There are a few ways of doing it: 1. Change the (slightly obfuscated) code to make it jump to the title page , completely bypassing the code section. At least two ways of doing this. 2. Change it so it accepts any code on the first attempt. 3. As (2) but for the second attempt 4. As (2) and (3) but make it go to the title screen after the second code (rightly or wrongly) :) You can't jump to the immediate title page from Basic without issues, however all the (largish) startup code can be thrown out (I have an update to my trim tool coming soon) with simply setting the SP and disabling the interrupts, at this stage you can then jump straight to the start. I'd sort of consider this not normal although doing this does relive a lot of free space potentially (all the startup code and all the keypad code) plus the 'DI / SP / JP' can go anywhere as its never used again once its called. Metalmickey 1 Quote Link to comment Share on other sites More sharing options...
Spider Posted November 30, 2016 Author Report Share Posted November 30, 2016 1. POKE 33792,243 DI ; Disable interrupts POKE 33793,49 POKE 33794,254 POKE 33795,91 LD SP, 23550 ; set the stack pointer POKE 33796,195 POKE 33797,202 POKE 33798,135 JP 34762 ; jump to the title screen code 2. POKE 34483, 195 ;This changes what was 'JP Z, 34762' (jump to title screen if code was correct) to 'JP 34762' (jump to title screen) regardless of what code was entered. 3. POKE 34493, 195 ; Same as (2) but on the second entry attempt. If the first code was actually correct ( ! ) then it would start the game anyway. Otherwise the second code (right or wrong) is accepted. 4. POKE 34497, 202 : POKE 34498, 135 ; These change the 'the second code was incorrect so reset the machine aka 'JP 0' to 'JP 34762' so that after failing the second attempt the game is started anyway. Hope that explains it a bit. The actual 'test code' looks like this: LD HL, 16384 ; 34463 33 0 64LD DE, 16385 ; 34466 17 1 64LD BC, 6911 ; 34469 1 255 26LD (HL), 0 ; 34472 54 0LDIR ; 34474 237 176The code above blacks out the screen. Paper 0 etc.LD IX, 34187 ; 34476 221 33 139 133CALL 34499 ; 34480 205 195 134The code above tells it where to get the message to display "enter code..." and calls the keypad entry routineJP Z, 34762 ; 34483 202 202 135If the code was correct (Z flag set) then jump to the title screen (34762) else...LD IX, 34219 ; 34486 221 33 171 133CALL 34499 ; 34490 205 195 134The code above similar to the first attempt (different message, "sorry please try...") and calls the keypad routine againJP Z, 34762 ; 34493 202 202 135Again, if the code entered was correct jump to the title screen (34762) else...JP 0 ; 34496 195 0 Reset the machine aka USR 0 Metalmickey and jetsetdanny 2 Quote Link to comment Share on other sites More sharing options...
Metalmickey Posted December 1, 2016 Report Share Posted December 1, 2016 (edited) On the subject of bugs, I've created a POK file with all the bug corrections I can find so far with the help of this site and Skoolkid so far they include conveyor appearance, lowering max rope heights, revealing 1st landing and swimming pool objects, patching the nightmare room plus all the official ones but what i'd like to find is the one for the 'Saw' guardian in the 'Cuckoo's Nest' .. can't seem to find it anywhere? Edited December 1, 2016 by Metalmickey Spider 1 Quote Link to comment Share on other sites More sharing options...
IRF Posted December 1, 2016 Report Share Posted December 1, 2016 I think that's on Skoolkit, as well as the monk that walks backwards in The Chapel: http://skoolkid.github.io/jetsetwilly/reference/facts.html#oneWaySaw http://skoolkid.github.io/jetsetwilly/reference/facts.html#disrespectfulMonk Or for an alternative fix for that monk, try: POKE 56311,140 Which I believe will still make it walk backwards, but more 'respectfully' i.e. always facing the altar! Spider, Metalmickey and andrewbroad 3 Quote Link to comment Share on other sites More sharing options...
Spider Posted December 2, 2016 Author Report Share Posted December 2, 2016 (edited) On the subject of bugs, I've created a POK file with all the bug corrections I can find so far with the help of this site and Skoolkid so far they include conveyor appearance, lowering max rope heights, revealing 1st landing and swimming pool objects, patching the nightmare room plus all the official ones but what i'd like to find is the one for the 'Saw' guardian in the 'Cuckoo's Nest' .. can't seem to find it anywhere? POKE 41785,227 (Monk) The Chapel POKE 41849,227 (Saw) Cuckoo's Nest Do you need any help with giving the 'new object in Hall' a shape and / or adjusting the beach object down to one item via a POKE ? I think that's on Skoolkit, as well as the monk that walks backwards in The Chapel: http://skoolkid.github.io/jetsetwilly/reference/facts.html#oneWaySaw http://skoolkid.github.io/jetsetwilly/reference/facts.html#disrespectfulMonk Or for an alternative fix for that monk, try: POKE 56311,140 Which I believe will still make it walk backwards, but more 'respectfully' i.e. always facing the altar! I think that will still have them facing the wrong way just using all the frames ? :unsure: Edited December 2, 2016 by Spider Metalmickey 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.