Jump to content


Photo

Pokes for Fixing the Cell Graphics Bug in JSW


  • Please log in to reply
45 replies to this topic

#21 jetsetdanny

jetsetdanny

    Advanced Member

  • Contributor
  • 1,935 posts

Posted 17 November 2017 - 07:28 AM

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, 17 November 2017 - 07:34 AM.


#22 Spider

Spider

    DEC (HL)

  • Administrator
  • 3,486 posts

Posted 17 November 2017 - 11:27 AM

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:


  • IRF likes this
Changing order to chaos since 1984

#23 SkoolKid

SkoolKid

    Advanced Member

  • Contributor
  • 54 posts

Posted 17 November 2017 - 08:16 PM

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.



#24 IRF

IRF

    Advanced Member

  • Contributor
  • 3,891 posts

Posted 17 November 2017 - 11:10 PM

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/t...-in-jsw/?p=7817

Edited by IRF, 18 November 2017 - 10:07 AM.


#25 jetsetdanny

jetsetdanny

    Advanced Member

  • Contributor
  • 1,935 posts

Posted 17 November 2017 - 11:40 PM

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, 17 November 2017 - 11:52 PM.


#26 IRF

IRF

    Advanced Member

  • Contributor
  • 3,891 posts

Posted 18 November 2017 - 12:53 AM

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, 18 November 2017 - 10:15 AM.


#27 IRF

IRF

    Advanced Member

  • Contributor
  • 3,891 posts

Posted 18 November 2017 - 11:31 AM

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!



#28 Spider

Spider

    DEC (HL)

  • Administrator
  • 3,486 posts

Posted 18 November 2017 - 11:48 AM

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...' :)


Changing order to chaos since 1984

#29 jetsetdanny

jetsetdanny

    Advanced Member

  • Contributor
  • 1,935 posts

Posted 18 November 2017 - 03:44 PM

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.



#30 jetsetdanny

jetsetdanny

    Advanced Member

  • Contributor
  • 1,935 posts

Posted 18 November 2017 - 05:17 PM

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).

Attached Thumbnails

  • Rooms 00-01.png
  • Rooms 02-03.png
  • Rooms 04-05.png
  • Rooms 06-07.png
  • Rooms 08-09.png
  • Rooms 10-11.png
  • Rooms 12-13.png
  • Rooms 14-15.png
  • Rooms 16-17.png
  • Rooms 18-19.png
  • Rooms 20-21.png
  • Rooms 22-23.png
  • Rooms 24-25.png
  • Rooms 26-27.png
  • Rooms 28-29.png
  • Rooms 30-31.png
  • Rooms 32-33.png
  • Rooms 34-35.png
  • Rooms 36-37.png
  • Rooms 38-39.png
  • Rooms 40-41.png
  • Rooms 42-43.png
  • Rooms 44-45.png
  • Rooms 46-47.png
  • Rooms 48-49.png
  • Rooms 50-51.png
  • Rooms 52-53.png
  • Rooms 54-55.png
  • Rooms 56-57.png
  • Rooms 58-59.png
  • Rooms 60-61.png
  • Rooms 62-63.png





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users