IRF Posted April 22, 2016 Report Share Posted April 22, 2016 Question: on the toilet dash, the code at around #8A06 "sets Willy's animation frame at 85D2 to 1 or 3 if Willy is running to the toilet or already has his head down it; this has the effect of moving Willy at twice his normal speed as he makes his way to the toilet". But doesn't he display animation frames 0 and 2 when he's on the toilet dash? (i.e. The two 'intermediate' frames, so it looks like he's gliding without moving his legs at all.) Quote Link to comment Share on other sites More sharing options...
SkoolKid Posted April 23, 2016 Author Report Share Posted April 23, 2016 [Pedantry alert!] I've just noticed an error (I think) in the disassembly. The entry at #8820-8827 is described as "Copy the attribute bytes for the top two-thirds of the title screen from 9800 to the attribute file". In fact, the LD BC command at #8823 copies the attribute bytes for the entire title screen from #9800 AND #9A00, as determined by the operand #0300. (So it sets the attributes for the bottom third of the title screen, as well as for the playing area.) Well spotted! Another item for my TODO list... Spider and IRF 2 Quote Link to comment Share on other sites More sharing options...
SkoolKid Posted April 23, 2016 Author Report Share Posted April 23, 2016 Question: on the toilet dash, the code at around #8A06 "sets Willy's animation frame at 85D2 to 1 or 3 if Willy is running to the toilet or already has his head down it; this has the effect of moving Willy at twice his normal speed as he makes his way to the toilet". But doesn't he display animation frames 0 and 2 when he's on the toilet dash? (i.e. The two 'intermediate' frames, so it looks like he's gliding without moving his legs at all.) Yes, Willy's animation frame is either 0 or 2 during the toilet dash, because it's incremented from 3 or 1 by the 'Move Willy' routine on the next pass through the main loop before he's drawn. I'll add a note to the comment to make that clearer. IRF 1 Quote Link to comment Share on other sites More sharing options...
IRF Posted April 23, 2016 Report Share Posted April 23, 2016 (edited) Yes, Willy's animation frame is either 0 or 2 during the toilet dash, because it's incremented from 3 or 1 by the 'Move Willy' routine on the next pass through the main loop before he's drawn. I'll add a note to the comment to make that clearer. There does seem to be a mismatch between Willy's 'physical presence' (the room cells that take on his attributes), and where his sprite is drawn on the screen. Certainly during jumping - if you take the 'Through the Wall' illustrations in the Bugs section of your Manic Miner disassembly, they certainly do give a better representation of how he interacts with the various room elements. However, if you study Willy's jumping by pausing the game at each time-frame during a jump, his sprite appears on screen at a higher y-coordinate (during the descent from the highest point of the jump), than is shown in your illustrations. e.g. When Willy is cell-row aligned in his 'left-facing animation-frame 0', whilst directly above a Fire cell (and he would be killed, save for a certain part of the code, which instead allows him to fall into the adjacent Earth block). If you watch that sequence in-game, his sprite at animation-frame 0 is several pixels above the Fire cell, and at the next time-frame his sprite is sitting directly above the Earth block and he has cleared the Fire cell altogether - by that point he's in 'left-facing animation-frame 3' and occupying the next pair of cell-columns. So it appears illogical, watching his sprite, why he should then fall into the Earth block!? EDIT: Perhaps this explains why Willy can land on certain guardians and jump safely away IF the player keeps the jump key depressed; whereas landing in the exact same spot kills Willy if the player has let go of the jump key! Edited April 23, 2016 by IRF Quote Link to comment Share on other sites More sharing options...
IRF Posted April 24, 2016 Report Share Posted April 24, 2016 Well spotted! Another item for my TODO list... And another suggestion for your TODO list - you could mention the fact that the 'Don't Mind Your Head' Bug can cause Willy to get stuck inside Earth cells (in at least two places that I can think of, namely Dr Jones... and The Wine Cellar, via The Forgotten Abbey) - forcing the player to abandon the game! Spider 1 Quote Link to comment Share on other sites More sharing options...
SkoolKid Posted April 24, 2016 Author Report Share Posted April 24, 2016 And another suggestion for your TODO list - you could mention the fact that the 'Don't Mind Your Head' Bug can cause Willy to get stuck inside Earth cells (in at least two places that I can think of, namely Dr Jones... and The Wine Cellar, via The Forgotten Abbey) - forcing the player to abandon the game! Can you explain how Willy can get stuck inside Earth cells (wall tiles?) in The Wine Cellar, for example? I'm not seeing it. Quote Link to comment Share on other sites More sharing options...
IRF Posted April 24, 2016 Report Share Posted April 24, 2016 (edited) I'll try and do an rzx recording when I get a chance, to demonstrate this.By the way, something else that I've though of - if an arrow is placed before a guardian in the list for a room, and if the arrow's flight takes it into the path of the guardian, then it will kill Willy even if the guardian is NOT White. So to be on the safe side, the arrow should be placed AFTER the guardians in the list. Edited January 24, 2017 by IRF Quote Link to comment Share on other sites More sharing options...
SkoolKid Posted April 24, 2016 Author Report Share Posted April 24, 2016 There does seem to be a mismatch between Willy's 'physical presence' (the room cells that take on his attributes), and where his sprite is drawn on the screen. Certainly during jumping - if you take the 'Through the Wall' illustrations in the Bugs section of your Manic Miner disassembly, they certainly do give a better representation of how he interacts with the various room elements. However, if you study Willy's jumping by pausing the game at each time-frame during a jump, his sprite appears on screen at a higher y-coordinate (during the descent from the highest point of the jump), than is shown in your illustrations. You're right - I hadn't noticed that before. I'll update the images and description in 'Through the wall' accordingly. Thanks! By the way, the reason for the mismatch you've noticed is that the check for nasty/fire cells below Willy takes place after his y-coordinate has been updated but before his x-coordinate has been updated. In other words, the code is looking for danger at (x-1,y) instead of (x,y) (where (x,y) are Willy's new coordinates). Spider 1 Quote Link to comment Share on other sites More sharing options...
SkoolKid Posted April 24, 2016 Author Report Share Posted April 24, 2016 EDIT: Perhaps this explains why Willy can land on certain guardians and jump safely away IF the player keeps the jump key depressed; whereas landing in the exact same spot kills Willy if the player has let go of the jump key! I've never seen that happen before. Do you have an RZX that demonstrates this bug? Quote Link to comment Share on other sites More sharing options...
SkoolKid Posted April 24, 2016 Author Report Share Posted April 24, 2016 By the way, something else that I've though of - if an arrow is placed before a guardian in the list for a room, and if the guardian's flight takes it into the path of the guardian, then it will kill Willy even if the guardian is NOT White. So to be on the safe side, the arrow should be placed AFTER the guardians in the list. And another one for the trivia entry TODO list. Thanks! IRF 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.