MattKC just posted a video that, if true, points out an interesting choice by Nintendo’s Mario 64 dev team: Apparently they didn’t use optimization when compiling the C code used in the NTSC versions of the game. This resulted in certain areas being really slow and dropping well below the goal of 30fps.
The video speculates that since Nintendo was accustomed to programming in assembler, it’s possible that they were just new to C and didn’t realize the benefits of the optimization. Or maybe they were being overly cautious and wanted to leave no chance for “optimization bugs”? Either way, the PAL version of the game did use optimization, so the NTSC choice is an interesting one. Unfortunately, the PAL optimization isn’t something you can really notice, as the 50Hz PAL version runs slower than 60Hz NTSC versions anyway.
By far the most fascinating thing about this (both to myself and MattKC) is how people were able to verify this!!: Fans of the game essentially reverse engineered it to the point that they have what they think is the original source code. Then, when they recompile this code, it matches the N64 cart dump perfectly, confirming their work! That’s one very incredible achievement that shows both the talent and dedication of everyone involved.
Also, as you’d guess, when the team recompiles with optimization on, the game does see some framerate improvements in a few different areas. If I ever decide to play through Mario 64 again, I’d love to try this new, fan-recomplied version and would even be willing to try a version that’s even more optimized past the “safe” setting of 2, just to see if there’s even more improvement.
Check out the awesome video above for more info and here’s the link to Romhacking.net to get the re-complied patch: http://www.romhacking.net/hacks/4905/