Jump to content
Jet Set Willy & Manic Miner Community

Undocumented Quirky Features of JSW2


IRF

Recommended Posts

I am not aware of any previous discussion of this quirky feature of Jet Set Willy 2 - it isn't mentioned in Andrew Broad's fairly comprehensive list of quirky features.

 

If you open up the attached 'JSW2 New Quirky Feature' test file, and try to collect the new Bathroom tap, you'll find that Willy gets stuck, with no hope of escape!

 

But in the other attached file, 'JSW2 New Quirky Feature not in original JSW', which has the exact same layout changes implemented to The Bathroom, Willy can collect the new item behind the newly-inserted walls, and get back out again.

 

Curious!  The subtly different behaviour could form the basis of a frustrating trap in a modified game based on the JSW2 game engine!  (Not with an item at the bottom of the hole, though, as that would render the game uncompletable without loss of a life.)

 

N.B. It might be prudent to have an occasional arrow come along at head-height, to put Willy out of his misery if he gets stuck!

JSW2 New Quirky Feature.z80

JSW2 New Quirky Feature not in original JSW.z80

Edited by IRF
Link to comment
Share on other sites

Furthermore, I've just discovered an even stranger quirk in the previously-uploaded 'JSW2 New Quirky Feature' test file.  Start up the game, then immediately press Right+Jump simultaneously and keep them depressed - Willy lands on the original Bathroom tap, and eventually the new tap item if you keep those keys depressed, without collecting them!!

Edited by IRF
Link to comment
Share on other sites

Its the jump effecting his escape as if you go to the far right and turn around, he moves forward one pixel, preventing his subsequent jump forward to escape, as I see it anyway. :)

 

Quick 'combi' pic:

 

wall.png

 

The jump control is different between JSW1 and JSW2, this is very obvious if you are say climbing East Wall (Priest's Hole is a better example actually) , as the way I play I tend to stand on the very edge of the platform and hold jump then press left or right, in JSW1 he will jump safely, in JSW2 he will just fall off. Best I can tell this is due to the way the keyboard is being read in JSW2 vs JSW1. It is slightly easier to do a 'last pixel stand on the edge' jump in JSW1 than JSW2.

 

To be fair some other platform variants of JSW1 behave the same as JSW2 though. Mind you having said that some versions the Toilet is deadly to touch too, and the C64 version well that has some 'extra' screens as Willy can fall into it (no escape) :lol:

Edited by Spider
Link to comment
Share on other sites

The 'jump' thing is something that I found made JSW2 more difficult. Here is a 'positioning' pic:

 

jump.png

 

Now, in both JSW1 (and also in MM but that's not too relevant here I guess) , hold 'jump' and then while he is airbourne (if you like, its how I do it!) press left. :)

 

In JSW1 and MM he will land then jump forwards as expected and land on the appropriate platform.

 

Repeat this with JSW2. He will nearly always just move forward and fall :ph34r: :)

 

Its not an 'issue' as such but does demonstrate the slight difference in the control I guess, similar in a way to how he moves 'forward' a pixel or two when turning around as per your demo. :) I can only guess without looking the 'left/right' controls are read and acted upon before the jump control in JSW2 vs JSW1 hence the 'difference' ?

 

I'm not sure if the fact he's up against a solid earth cell has a mass bearing on it in your case or if he is 'positioned' slightly differently when he turns around between the two variants. :unsure:

Edited by Spider
Link to comment
Share on other sites

I believe that there may be differences in some of the entries in the left-right movement table (the equivalent of the table at #8421 in JSW1) in the JSW2 game engine, which have the result that if Willy is facing rightwards and you press left (or vice versa), then he doesn't just turn around but his animation-frame is also incremented at the same time.

This allows him to jump leftwards and then rightwards in quick succession (whereas in JSW1 if you try to do that, he will turn around upon landing but do a vertical jump before performing the jump back the way he came from).

One way to get around this effect in the 'Priest's Hole' scenario is to have Willy standing on the edge of the platform facing away from the direction he is about to jump, and then press the 'opposite left-right' key and Jump key simultaneously. Then he will turn around and jump without falling off his precarious perch!

****

However, this 'turn around and move at the same time' effect doesn't explain what is going on in my 'JSW2 New Quirky Feature' test file. If you move Willy into the bottom-right corner, facing right, then press Left+Jump simultaneously (so that he turns around but starts the jump from as far right a position as possible), then he still jumps all the way over the pillar and falls down into the hole on the other side.

Conversely, in the test file based on the JSW1 game engine, you can walk Willy all the way up to the two-high Earth block pillar (facing it and touching it), and then jump up onto it without him falling down into the hole on the far side - he lands on top of the pillar, one animation-frame short of falling past it.

****

During my earlier experimentation, playing around with the jumping routine in JSW1, I managed to recreate the behaviour seen in JSW2, in my 'Jump Code rewrite' test file (http://jswmm.co.uk/topic/185-free-space-and-code-optimisation-in-jsw/page-20?do=findComment&comment=8311). In fact, I came up with that test file, and discovered the 'different' jumping outcomes, before I spotted the similar behaviour manifesting itself in JSW2.

I believe that the difference in the JSW2 jumping behaviour may arise because in each time-frame of a jump, the check for a solid underfoot platform (to curtail the descent phase of a jump) takes place before Willy's y-coordinate is incremented downwards.*

Whereas in the JSW1 game engine, he is moved downwards during a jump before the check for underfoot behaviour takes place. That, I believe, is the fundamental reason why Willy can jump into supposedly solid blocks.

So really, it is the JSW1 jumping that is the illogical and quirky behaviour - Willy shouldn't be able to jump up onto a two-block high wall (such as you get in 'Banyan Tree') unless he takes several steps back from it before taking the jump. I'll try to create a few frame-by-frame screenshots later to illustrate exactly why that is the case.


(*EDIT: Either that, or both vertical AND horizontal incrementations of Willy are performed in JSW2 before a check for underfoot platforms is made - actually, that might explain why Willy is able to jump into the slots in 'Wine Cellar' without his head entering an Earth block on the way down.)

Edited by IRF
Link to comment
Share on other sites

Now, in both JSW1 (and also in MM but that's not too relevant here I guess) , hold 'jump' and then while he is airbourne (if you like, its how I do it!) press left. :)

 

In JSW1 and MM he will land then jump forwards as expected and land on the appropriate platform.

 

Repeat this with JSW2. He will nearly always just move forward and fall

 

Sorry, in my previous response I thought you were considering a 'turn around and jump' scenario in 'Priest's Hole'. In the situation your screenshot depicts, the 'safe' way to do it is to ensure that Willy is positioned two steps away from falling off the platform (i.e. two steps if he were to walk forwards), and then perform the jump/hold jump/press left sequence of keypresses.

 

****

 

There seems to be another quirk at play. If you stand somewhere on a solid floor (with no overhead obstacles), press Left+Jump simultaneously, and see how many horizontal increments Willy has moved on by when he lands at the end of the jump, it is one more increment than if you do a vertical jump first and then hold down Left+Jump whilst he is still airborne.

 

I wonder if, in the single time-frame when Willy lands, he is responsive to horizontal keypresses but not to the jump keys? That could explain the difference in behaviour for both of the above scenarios.

 

I don't suppose there's a disassembly of the JSW2 game engine available anywhere, is there?

Link to comment
Share on other sites

I've just spotted a couple of changes to the layouts of classic rooms in JSW2:

 

- In 'The Bow', the Water platform with the 'ship's wheel' item at the end of it, has been extended by one cell - this was presumably done to overcome the difference in the jumping behaviour when Willy is up against the adjacent Earth pillar (which extends two cells higher than the Water platform); just as in 'Banyan Tree' or The Bathroom in my earlier test file, Willy cannot jump up and land on top of the Earth pillar unless he steps far enough back from it (hence the need to extend the 'ships wheel' supporting platform);

 

- In 'Under the Drive', one of the platforms to the left of (and two cell-rows higher than) the end of the conveyor has been moved leftwards by one cell-column - without that change, the difference in the sequence of the 'Move Willy' routine presumably meant that Willy would have missed that platform at the end of the sequence of three consecutive jumps after entering from 'Tree Root'.

 

****

 

This doesn't involve a layout change between JSW1 and JSW2, but there is a change in Willy's behaviour - when Willy walks down the flagpole in 'On top of the house', in JSW1 he passes through the wall/Earth block at the base, and then emerges out the other side of that block and carries on his way (until the next wall blocks him from walking any further). But when performing the same manoeuvre in JSW2, he once again walks into the first wall block, but he is then prevented from proceeding any further unless he jumps out of that wall block.

Link to comment
Share on other sites

There's something strange and asymmetrical about JSW2 conveyor behaviour. Try starting up the game (with Willy at the left of the bath, facing right) and keep the jump key depressed, without pressing any sideways movement keys. Willy jumps straight up, then turns around and proceeds leftwards by one increment at a time, in between a series of vertical jumps - rather than being sent into a leftwards jump by the action of the bath (which is a left-conveyor), as occurs in JSW1. But if you start off with Willy in the middle of the bath, and try to perform vertical jumps, then he is sent jumping leftwards as you would expect.

 

And if you perform a similar (mirror imaged) set of jumps at the right-hand end of the 'ballroom table' (i.e. the right-conveyor in 'Ballroom West'), then Willy is sent into a rightwards jump (which is more in line with JSW1 conveyor behaviour).

 

****

 

A more well-documented difference between JSW1 and JSW2 is that, in the latter game engine, Willy can safely jump over a head-height Fire cell (provided he starts the jump from precisely the right position). Completing the room 'The Garden' wouldn't be possible without this, although it does provide Willy with a 'short-cut' out from the upper Ballroom platforms without having to climb up the East Wall (by jumping over the spider at the top-right of 'To the Kitchens...Main Stairway').

 

I would speculate that this manoeuvre is possible because the routine which draws Willy's attributes (and checks if he has collided with, or stood upon, Fire cells) doesn't make a check for underfoot Fire if Willy is jumping (or at least, if he is on the ascent part of a jump)?

Link to comment
Share on other sites

I think there's partial dissasembly of the JSW2 engine but not a complete one, its quite complicated I think.

 

I was aware of the 'turn around to jump' thing yes but erm 'old habits' die hard :lol:

 

The behaviour control-wise in JSW2 matches the Amstrad versions of both JSW1 and JSW2 not surprisingly given JSW2 (ZX) was 'based' upon the Amstrad version, in other words the 'turn around and jump or fall' is needed in that platform.

 

I'd seen the 'single step jumping' effect previously but not really considered it to any great degree. I just tried the Amstrad version of JSW2 out of interest to see this 'effect' (assuming it was there!)  and it does not do that :huh: he jumps as you'd expect in that he turns around and jumps fully. Same with JSW1 on that platform.

Link to comment
Share on other sites

Last few for now:

 

- In JSW2, in a room with a narrow passage along a conveyor with Earth blocks located two rows above Willy's head, you can't perform the trick of pressing the Jump and [opposite sideways movement key to the direction of the conveyor] simultaneously, and then keeping the 'opposite L/R' key depressed, to bring Willy to a halt on the conveyor (as you can do in 'Tree Root', or in the Final Barrier in MM) - Willy's progress along the conveyor can be slowed down, but not stopped;

 

- Conversely, in JSW2 Willy can progress 'upstream' along a conveyor in a similar scenario (with Earth blocks two rows above the conveyor) by jumping up onto the conveyor - in JSW1, Willy would bump his head on the overhead Earth block, and this would reset his Movement Flag, preventing him from proceeding up the conveyor.

 

 

[Looking at Andrew Broad's list of quirky features for JSW2, hitting an overhead Earth block during a jump also alters Willy's Airborne Status Indicator in a different way as well, meaning that he can't fall as far afterwards as he can in JSW1 - although I haven't explored this behaviour yet.)

Edited by IRF
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.