Jump to content


Photo

MM/JSW disassemblies: 20160511


  • Please log in to reply
82 replies to this topic

#1 SkoolKid

SkoolKid

    Advanced Member

  • Contributor
  • 54 posts

Posted 12 May 2016 - 12:15 PM

Rather than announce this in the existing disassemblies thread, I thought I'd start a new one to rebase the feedback (as it were). I've just made a new cut of the MM/JSW disassemblies:

 

Manic Miner disassembly (decimal) (download here)

Jet Set Willy disassembly (decimal) (download here)

Manic Miner disassembly (hexadecimal) (download here - click 'Download ZIP')

Jet Set Willy disassembly (hexadecimal) (download here - click 'Download ZIP')

 

To see what's new, check the changelogs: MM, JSW.

 
As always, comments and bug reports are welcome!


#2 Spider

Spider

    DEC (HL)

  • Administrator
  • 3,903 posts

Posted 12 May 2016 - 08:07 PM

Great thank you! :D


Changing order to chaos since 1984

#3 jetsetdanny

jetsetdanny

    Advanced Member

  • Contributor
  • 2,098 posts

Posted 12 May 2016 - 08:37 PM

Thanks a lot, Richard!  :)



#4 IRF

IRF

    Advanced Member

  • Contributor
  • 4,228 posts

Posted 13 May 2016 - 10:38 AM

Good work, Richard!

I have a couple of other suggestions for the next update (on top of the 'disrespectful Monk in The Chapel, which I mentioned in the previous thread):

In the unused code section of the JSW disassembly:

http://skoolkid.gith...aps/unused.html
You could also mention the unused Screen Flash routine, which is embedded in the Main Loop (1), but always jumped (unless you POKE the value of the Screen Flash Counter at #85CD to a non-zero value). It's a relic from Manic Miner, where it kicks in every time Willy gains 10000 points, I believe.

And talking of points gained in Manic Miner, there's an entry in the Trivia section of the MM disassembly here:

http://skoolkid.gith...ePersistentItem
"The item below the portal in The Sixteenth Cavern does not disappear if Willy leaves it till last and collects it by falling on it from above. The reason for this is that the portal is opened as soon as Willy collects the item, and the screen is not refreshed before he moves on to the next cavern."

Of course, he has to leave that item till last in order to be able to complete the screen! But that's not my substantive point...

I think I read somewhere that, not only does the item not disappear when he collects it, but he doesn't acquire the usual 100 points from doing so! i.e. as soon as Willy enters the portal, the game moves on to count down the remaining air - which in itself updates the points count - but it bypasses the code that assigns 100 points per item collected.

That probably isn't readily apparent noticeable when there's a lot of air left, and so the score goes up substantially anyway, but one way to check would be to complete the rest of the screen, then wait above the portal until the air has nearly expired, before dropping into the portal at the last minute.

I should point out that I haven't actually checked this myself yet! But if indeed Willy can't acquire points from collecting this item (unless he collects it 'too early' which then means he's stuck, and has to sacrifice a life and start the screen again), then I think it should be classed as a 'Bug' rather than a 'Trivia' entry.

Furthermore, it should be quite easy to fix by providing a single POKE to shift the item downwards by one cell-row. Then Willy will only collect it after he's dropped sufficiently far through the portal so as not to activate it straight away. Upon landing he will get the 100 points, the item will disappear and the portal will start flashing. Then he can simply back jump up into the portal and head on to the next cavern!

Edited by IRF, 22 January 2017 - 03:55 PM.


#5 SkoolKid

SkoolKid

    Advanced Member

  • Contributor
  • 54 posts

Posted 13 May 2016 - 04:56 PM

Regarding unused code: the table of unused blocks is generated automatically, and I can't add an entry for a section of code/data that's embedded in a block. I could add some intro text to the 'Unused addresses' page that lists such sections, though.

 

Regarding the item below the portal in The Sixteenth Cavern: after looking at the code, I'm sceptical that Willy doesn't get 100 points for collecting the item - the points are added at the same time as the item is collected. You could try POKE 36739,41 to check this - it would award 100,000 points per item collected, which is more obvious than 100. (Actually, that's a good candidate for the POKEs page.)


  • IRF likes this

#6 IRF

IRF

    Advanced Member

  • Contributor
  • 4,228 posts

Posted 13 May 2016 - 05:20 PM

Regarding unused code: the table of unused blocks is generated automatically, and I can't add an entry for a section of code/data that's embedded in a block. I could add some intro text to the 'Unused addresses' page that lists such sections, though.

 

Regarding the item below the portal in The Sixteenth Cavern: after looking at the code, I'm sceptical that Willy doesn't get 100 points for collecting the item - the points are added at the same time as the item is collected. You could try POKE 36739,41 to check this - it would award 100,000 points per item collected, which is more obvious than 100. (Actually, that's a good candidate for the POKEs page.)

 

As I said, I haven't tried it myself, I just have a memory of reading it somewhere (which doesn't in itself mean that it's true!)  It's easily checked, especially with that POKE - which incidentally, will set the Screen Flash off (and increment the lives) every time an item is collected!  N.B. Care might be needed in case the remaining lives display runs off the edge of the screen and causes corruption elsewhere?

 

Anyway, even if the points are allocated, I still think the fact that the item doesn't disappear from the display is worthy of shifting to the Bugs section, and a POKE provided to shift it one cell lower.



#7 IRF

IRF

    Advanced Member

  • Contributor
  • 4,228 posts

Posted 13 May 2016 - 05:45 PM

http://skoolkid.gith...ePersistentItem

"The item below the portal in The Sixteenth Cavern does not disappear if Willy leaves it till last and collects it by falling on it from above. The reason for this is that the portal is opened as soon as Willy collects the item, and the screen is not refreshed before he moves on to the next cavern."
 
Of course, he has to leave that item till last in order to be able to complete the screen!
 
................
 
if indeed Willy can't acquire points from collecting this item (unless he collects it 'too early' which then means he's stuck, and has to sacrifice a life and start the screen again)

 

Ignore that statement in bold, I was having a senior moment - of course, he can drop through the crumbly platform on the left and jump up through the conveyor to access it from beneath!  Thus he can make the item disappear and complete the screen!


Edited by IRF, 13 May 2016 - 05:48 PM.


#8 SkoolKid

SkoolKid

    Advanced Member

  • Contributor
  • 54 posts

Posted 13 May 2016 - 06:44 PM

It's easily checked, especially with that POKE - which incidentally, will set the Screen Flash off (and increment the lives) every time an item is collected!  N.B. Care might be needed in case the remaining lives display runs off the edge of the screen and causes corruption elsewhere?

 

Actually, Willy gets an extra life only when the thousands digit is rolled over from 9 to 0, so that POKE won't give rise to a too-many-lives problem.


  • IRF likes this

#9 IRF

IRF

    Advanced Member

  • Contributor
  • 4,228 posts

Posted 14 May 2016 - 09:07 AM

I think the fact that Willy can walk DOWN a ramp into an Earth cell (as in On Top of the House in the original game) is worth a mention in the JSW disassembly.

It happens because the routine that checks for Earth blocks when he's trying to walk across a cell boundary, doesn't check for Earth blocks lying two cells below the top of his sprite when he is only occupying two cell-rows (see 36901 / 37012).

Which is obviously a good thing when he's standing on two Earth cells (otherwise he wouldn't be able to walk along Earth platforms at all!), but it means that when he's got an Earth cell and a Ramp cell beneath him, the Ramp cell takes precedence when he's walking down.

Also perhaps the fact that Willy can walk UP a ramp through an Earth cell above him is worth a mention (because there is no effective check for Earth cells above him, unless he's jumping).

I can't think of an actual example of this in the original game, but whilst we're 'on top of the house', if you pop next door into Rescue Esmeralda, a single POKE will illustrate the point nicely. Simply take the single Earth block that sits under the conveyor and extend it downwards by one cell (POKE 52790, 8).

Of course, this would make walking up the ramp in Rescue Esmeralda a one-way route, were it not for the 'Don't Mind Your Head' bug allowing Willy to walk back down the ramp, during which manoeuvre the same Earth block is at head-height on his left!


Edited by IRF, 24 May 2016 - 03:27 PM.


#10 IRF

IRF

    Advanced Member

  • Contributor
  • 4,228 posts

Posted 14 May 2016 - 09:23 AM

P.S. When coming up with the above POKE I noticed that, based on the value of the bytes for the appropriate point on the screen, the conveyor in Rescue Esmeralda seems to be overlaying Earth cells (i.e. 52774 has a value of 170, or 10101010 in binary,not just zero as is the case for most conveyors).

So presumably Willy can't jump up through that conveyor - perhaps this gives the player a bit of protection against accidentally 'overshooting' and hitting Esmeralda when trying to collect the 'gate' items?

I'd never noticed this before! (the conveyor pixel pattern and colour overrides the Earth cell graphics, so they aren't visible). Matthew Smith's original game can still throw up a few surprises!!


Scrap that, the routine at 36203 is ordered such that conveyor attributes (and then ramp attributes) overwrite all the attributes that were previously laid out on the screen buffer, so Willy can jump through the conveyor in Rescue Esmeralda! (i.e. it doesn't display Earth cell-like properties, despite the above).

Edited by IRF, 14 May 2016 - 10:16 AM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users