As the topic indicates, I've been looking through the Super Mario Bros. source code (and some related posts) to better understand how it works. A few questions:
- Sprite 0's tile is the bottom sliver of the status bar coin, which appears to sit behind the coin tile that color cycles. However, when Mario breaks through the upper boundary (e.g. 1-2) and stands in front of the coin, that small sliver appears in front of his leg. What is the priority of sprite 0 and what exactly is showing through? It seems to be the only portion of the status bar that Mario doesn't obscure. I am not clear on tile priorities in this case. Does sprite 0's collision still work if it is behind BG tiles?
- When I load the ROM in FCEUX and watch the name tables, the scroll bar never moves. In most other scrolling games, it tracks along the name tables as expected. Is this a FCEUX anomaly or something else I'm missing?
- tepples has mentioned previously that SMB uses a 32x13 metatile sliding window in RAM for collision purposes. In certain cases, Mario can kick a Koopa shell offscreen and follow it until it rebounds from a nearby obstacle but without colliding with enemies directly offscreen. Are enemy objects spawned in a tighter perimeter than the collision buffer so that a ricocheting shell can miss them on the way out but collide on the way back (once they are visible)?
- I'm not very experienced with debugging tools. How could I experiment with repositioning sprite 0 (e.g. move it further down the screen)?
- I understand how the coins/question blocks use palette cycling to 'shimmer' but I can't figure out how the fire flower works. In Nintendulator it looks like the sprites are quickly changing, but I don't see any palette changes.
- Sprite 0's tile is the bottom sliver of the status bar coin, which appears to sit behind the coin tile that color cycles. However, when Mario breaks through the upper boundary (e.g. 1-2) and stands in front of the coin, that small sliver appears in front of his leg. What is the priority of sprite 0 and what exactly is showing through? It seems to be the only portion of the status bar that Mario doesn't obscure. I am not clear on tile priorities in this case. Does sprite 0's collision still work if it is behind BG tiles?
- When I load the ROM in FCEUX and watch the name tables, the scroll bar never moves. In most other scrolling games, it tracks along the name tables as expected. Is this a FCEUX anomaly or something else I'm missing?
- tepples has mentioned previously that SMB uses a 32x13 metatile sliding window in RAM for collision purposes. In certain cases, Mario can kick a Koopa shell offscreen and follow it until it rebounds from a nearby obstacle but without colliding with enemies directly offscreen. Are enemy objects spawned in a tighter perimeter than the collision buffer so that a ricocheting shell can miss them on the way out but collide on the way back (once they are visible)?
- I'm not very experienced with debugging tools. How could I experiment with repositioning sprite 0 (e.g. move it further down the screen)?
- I understand how the coins/question blocks use palette cycling to 'shimmer' but I can't figure out how the fire flower works. In Nintendulator it looks like the sprites are quickly changing, but I don't see any palette changes.