3 ms·
Based on the original leaked source code, it appears they really did intend to increment the variable they did. The comment matches the name and purpose:
by raldi 4y ago
Based on the original leaked source code, it appears they really did intend to increment the variable they did. The comment matches the name and purpose:
BEQ PLTMRT ; Scrool stopping ?
; : yes !
LDA PLYPS1
AND <PLYPS0
BNE PLTMRT ; Player Y pos = 0 ?
;
STA SRSTFG ; yes !
INC CMSLFG ; Chimney select flag
- NobodyNada 4y agoThe buggy AND is really interesting to me -- the comment suggests that maybe the programmer meant to use an ORA instead, which would have been a clever way to check if both bytes of the Y position were zero. But that's still not something that makes sense to check, right? Assuming I'm understanding the video right, that'd only unlock the scroll if Mario was way up above the top of the screen...
- raldi 4y agoI believe the NES's 6502 didn't have a logical-OR operator (which is what the situation calls for), only bitwise. The apparent goal was to find out, "Are either PLYPS0 or PLYPS1 equal to 0?" They probably started with ORA, and when that didn't work, tried AND, and that seemed to work, so they went with it.
- NobodyNada 4y agoOhhh, that makes sense. Thanks!