Jump to content
Jet Set Willy & Manic Miner Community

Pokes for Fixing the Cell Graphics Bug in JSW


IRF

Recommended Posts

I don't recall any discussion about it, ever, but, as mentioned before, I am interested in creating new games more than the details of the original. So I may have missed something.

 

It's quite possible, though, that you are the first person to ever bring this up.

 

Which makes me think: is there an automatic tool to list all the occurences of the Cell Graphis Bug in a game?

 

I am wondering if SPECSAISIE doesn't have such a function? I seem to recall something like this vaguely, but it may just be an illusion...

Edited by jetsetdanny
Link to comment
Share on other sites

Has anyone noticed the instance of the Cell Graphics Bug affecting the Fire cells in 'A Bit of Tree' in the original JSW?

 

It isn't documented anywhere in SkoolKid's JSW disassembly, I don't recall Stuart Brady mentioning it when he introduced his Cell Graphics Bug Fix, and a search in the Yahoo Group has drawn a blank.

 

However, I find it hard to believe (in fact incredible!) that this hasn't been spotted before!?

 

Got to admit I had not noticed it although they are a bit erm "out of the way" on the right hand side I guess :unsure:

Link to comment
Share on other sites

Has anyone noticed the instance of the Cell Graphics Bug affecting the Fire cells in 'A Bit of Tree' in the original JSW?

 

Can't say I have - time to update my JSW disassembly TODO list. :)

 

By the way, I checked and this is the only instance of a non-conveyor tile being affected by the Cell-Graphics bug.

Link to comment
Share on other sites

Can't say I have - time to update my JSW disassembly TODO list. :)

 

By the way, I checked and this is the only instance of a non-conveyor tile being affected by the Cell-Graphics bug.

Thanks Richard, that's useful to know. :)

 

Have you checked whether the Cell-Graphics Bug affects any cavern elements in Manic Miner? I can't think of any examples off the top of my head, but it can occur in theory because the same erroneous use of a CPIR command is present in the routine which draws the layout to the pixel-buffer.

 

I know that there are instances in Andrew Broad's mirror-imaged versions of both Manic Miner and Jet Set Willy - in the latter, there are new instances that arise because the graphic bytes are all laterally-inverted (Fire cells in The Attic, for example, whose attribute byte matches the penultimate graphic byte of the Earth cells if it's inverted), whilst I believe the same mirroring process either changes the nature of some of the existing examples of conveyor corruption, or in some cases 'cures' them altogether (i.e. prevents them from arising).

 

******

 

Here's another thing for your JSW TODO list (although I may have already mentioned this - can't remember - or perhaps you have already mentioned it in the JSW disassembly):

 

Several vertical guardians in Jet Set Willy can extend below the bottom of their specified range (one or two of the bats that lurk between the columns of Fire cells in 'At the Foot of the MegaTree' do so, for example). It happens if the difference between the guardian's upper and lower bounds isn't exactly divisible its vertical speed. The 'out of bounds' situation only prevails for a single time-frame, whilst the guardian's direction of travel is being reversed.

 

N.B. It doesn't happen at the top of a vertical guardian's specified range, because there is a specific command at #91A8 which sets the guardian's definition byte 06 as a 'hard' upper bound.

 

******

 

One other little point that you might be interested in, Richard - please see the post at the following link, which gives a possible explanation for the existence of a redundant instruction that is present in the 'Lose a Life' routine of both JSW (#8C19) and Manic Miner (#8925). You describe the instruction thus: "Set bit 4 of A (for no apparent reason)".

 

http://jswmm.co.uk/topic/185-free-space-and-code-optimisation-in-jsw/?p=7817

Edited by IRF
Link to comment
Share on other sites

Which makes me think: is there an automatic tool to list all the occurences of the Cell Graphis Bug in a game?

 

I am wondering if SPECSAISIE doesn't have such a function? I seem to recall something like this vaguely, but it may just be an illusion...

 

OK, I've checked it and it turns out I was right  :D .

 

As mentioned in Andrew Broad's description of his SPECSAISIE 1.2 (SPECSAISIE 1.3 Beta 5 was also made available to the members of the MM & JSW Yahoo! Group), it has the following function:

 

BGB_JSW: Detect occurrences of the block-graphics bug in a JSW game (an experimental implementation)

 

[Later on Andrew started using the term "Cell-Graphics Bug" instead.]

 

Apparently, this functionality has been there since SPECSAISIE v. 1.0.

 

Furthermore, John Elliott once wondered about incorporating this functionality into JSWED (but has not applied it so far, TTBOMK - something for the future, perhaps?).

Edited by jetsetdanny
Link to comment
Share on other sites

Should have gone to SPECSAISIE! :D

 

EDIT: Danny, in case that goes over your head - that's a play on the words of a series of TV adverts for a budget opticians we have here in Britain, called Specsavers. (Someone does something ridiculous due to their poor eyesight, followed by the punchline: "Should have gone to Specsavers!". Check out YouTube if you want a brief diversion.)

 

BTW, did you try out that function of SPECSAISIE on an unmodified copy of JSW and/or MM, Danny? (To confirm what we already know in relation to the former, or to spot previously unidentified instances in the latter - there may be some lurking in the defined-but-unused cell types?)

Edited by IRF
Link to comment
Share on other sites

BTW, did you try out that function of SPECSAISIE on an unmodified copy of JSW and/or MM, Danny? (To confirm what we already know in relation to the former, or to spot previously unidentified instances in the latter - there may be some lurking in the defined-but-unused cell types?)

 

Regarding the point in bold, this is actually the case in Jet Set Willy!  If you place some Fire cells into 'The Nightmare Room', they aren't drawn as defined in the code, because their attribute byte matches the penultimate Earth cell graphic byte and so the Cell-Graphics Bug kicks into effect again!

 

Richard's investigations evidently only took into account the defined room tiles that actually made it into the published game, not the ones that Matthew Smith defined but left unused and buried in the code!

Link to comment
Share on other sites

Regarding the point in bold, this is actually the case in Jet Set Willy!  If you place some Fire cells into 'The Nightmare Room', they aren't drawn as defined in the code, because their attribute byte matches the penultimate Earth cell graphic byte and so the Cell-Graphics Bug kicks into effect again!

 

Richard's investigations evidently only took into account the defined room tiles that actually made it into the published game, not the ones that Matthew Smith defined but left unused and buried in the code!

 

The 'unused' bits usually fascinate me as its a case of 'what else could of been...' :)

Link to comment
Share on other sites

Should have gone to SPECSAISIE! :D

 

EDIT: Danny, in case that goes over your head - that's a play on the words of a series of TV adverts for a budget opticians we have here in Britain, called Specsavers. (Someone does something ridiculous due to their poor eyesight, followed by the punchline: "Should have gone to Specsavers!". Check out YouTube if you want a brief diversion.)

 

BTW, did you try out that function of SPECSAISIE on an unmodified copy of JSW and/or MM, Danny? (To confirm what we already know in relation to the former, or to spot previously unidentified instances in the latter - there may be some lurking in the defined-but-unused cell types?)

 

Thanks for your explanation, Ian. The reference would indeed have been lost on me without it  :lol: .

 

No, I haven't tried out that SPECSAISIE function.

Link to comment
Share on other sites

OK, I've done it for you since you've asked about it, Ian  :).

 

Attached below are screenshots of results of running the BGB-JSW function in SPECSAISIE on a basically unmodified JSW file (it's got things like the colour code bypassed, but I believe no editing was done regarding graphics).

 

If I understand the output correctly, SPECSAISIE shows the Cell Graphics Bug (=Block Graphics Bug) occurs in rooms 16, 31, 33, 41, 47, 51, 52, 62 and 63. This partly contradicts the common knowledge about the problem, I think, both in omitting some of the rooms where the bug occurs and by pointing to others where (possibly) it does not occur (unless these are instances of its occurring in unused cell types).

post-28-0-98030000-1511025060_thumb.png

post-28-0-22829300-1511025066_thumb.png

post-28-0-96091000-1511025070_thumb.png

post-28-0-85624500-1511025087_thumb.png

post-28-0-54736100-1511025100_thumb.png

post-28-0-29169200-1511025108_thumb.png

post-28-0-18123300-1511025115_thumb.png

post-28-0-95087000-1511025121_thumb.png

post-28-0-93155200-1511025127_thumb.png

post-28-0-24063000-1511025133_thumb.png

post-28-0-46219400-1511025138_thumb.png

post-28-0-92973500-1511025144_thumb.png

post-28-0-16229900-1511025151_thumb.png

post-28-0-27532600-1511025158_thumb.png

post-28-0-29393400-1511025163_thumb.png

post-28-0-36033500-1511025168_thumb.png

post-28-0-88189800-1511025173_thumb.png

post-28-0-86449200-1511025179_thumb.png

post-28-0-36300000-1511025192_thumb.png

post-28-0-13844100-1511025200_thumb.png

post-28-0-90771000-1511025207_thumb.png

post-28-0-81674900-1511025214_thumb.png

post-28-0-22049800-1511025221_thumb.png

post-28-0-75301400-1511025228_thumb.png

post-28-0-23702100-1511025238_thumb.png

post-28-0-97040300-1511025244_thumb.png

post-28-0-19563200-1511025253_thumb.png

post-28-0-45997100-1511025261_thumb.png

post-28-0-18704200-1511025273_thumb.png

post-28-0-81077900-1511025279_thumb.png

post-28-0-76174600-1511025286_thumb.png

post-28-0-29307700-1511025295_thumb.png

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.