4 ms·
Super Metroid is a game where the developers did make revisions so that the game would play at the correct speed on PAL consoles. But those tweaks still end up
by NobodyNada 2y ago
Super Metroid is a game where the developers did make revisions so that the game would play at the correct speed on PAL consoles. But those tweaks still end up making material differences in gameplay, especially in a speedrunning context, because the slight differences in physics constants and animation timings can make a difference when exploting glitches or race conditions. For example, the slower framerate makes it easier to clip through things, because Samus and her projectiles move more pixels in one frame, so this gate glitch can only be done on PAL: https://www.youtube.com/watch?v=RvyIwtO_qgM https://www.youtube.com/watch?v=RvyIwtO_qgM
Also, the developers properly adjusted Samus's physics constants and animation timings for the new framerate, but they didn't adjust enemies, cutscenes, or other aspects of the game environment. So Samus moves at the same speed as on NTSC, but the rest of the world moves slower. This means that on PAL you can grab Bombs and escape the room just in time before the door locks, skipping the miniboss fight: https://www.youtube.com/watch?v=R3t8TIIj7IM https://www.youtube.com/watch?v=R3t8TIIj7IM On the NTSC version, that same skip requires a complicated setup and several dozen frame perfect inputs in a row, and only one person has ever managed to pull it off: https://www.youtube.com/watch?v=jcKUMk5g8Wk https://www.youtube.com/watch?v=jcKUMk5g8Wk
Here's a comparison of the fastest tool-assisted speedruns between NTSC (left) and PAL (right): https://www.youtube.com/watch?v=KD_-thqcB5s https://www.youtube.com/watch?v=KD_-thqcB5s Both runs take the same route up until the very end; the NTSC version is faster in almost every single room, but PAL ends up finishing first because the arbitrary-code-execution setups are very different. The NTSC run has to do a very slow sequence of pausing and unpausing to move through a door without activating it, in order to get out of bounds and trigger memory corruption. Whereas on the PAL version, we're able to exploit a race condition in the game's animation system to achive ACE fully inbounds. The race is between a spike's knockback timer and Samus's landing animation; because Samus's timings were revised for PAL but the spike's were not, the timing works out a little differently and the race ends up being exploitable in this context on PAL but not on NTSC.
- progmetaldev 2y agoI absolutely love Super Metroid, but only played it briefly on a Super Nintendo in the 1990's. I've played the NTSC version on emulators for years, and definitely came across timing issues with memory corruption when pausing through a door, but it wasn't even intentional. I always thought developing for different architectures was the only issue developers had to deal with (beyond faster or slower CPU/GPU/RAM), but had no idea that even something like the SNES had issues between NTSC and PAL. This whole comment section has been amazing as someone who loves these classic games, and also enjoys watching speedruns. Gaming got me into software development, even though I never got into that side of development, but your comment and articles like this remind me why development is so interesting (and difficult for the strangest reasons!).