Super Mario 64 Source Code Redesign Offers MASSIVE Performance Boosts!
Mike Sanders / 2 years ago
The N64 was undoubtedly an exceptionally popular console for Nintendo. At the same time though, it’s hard to deny that when faced with significantly more potent systems from both PlayStation and Sega, its hardware limitations were pretty evident. – Yes, there are many arguments to be made about how Nintendo could’ve improved the N64. One such key example is actually embracing CD-ROM technology rather than sticking with the significantly more expensive (and limited) cartridges. – When it came to early game development for the system though, clearly there were more than a few optimisation difficulties due to the fact that they didn’t exactly know at the time what hardware they were developing for.
Well, following a video posted by ‘Kaze Emanuar‘, it seems that in regards to Super Mario 64, huge optimisations were available there in the source code. So many, in fact, that they’re claiming that with the original hardware, their rework of the Super Mario 64 source code has seen the game’s performance boosted by up to 6 times seen in the original version!
N64 Source Code Rework Leads to HUGE Performance Gains!
So, what exactly has been done here? Well, in a nutshell, ‘Kaze Emanuar’ has gone through practically every single line of source code found within Super Mario 64 and has looked, wherever possible, to improve and/or optimise upon it.
How did they do it? Well, while they go into detail in the video below, I’ll break things down into some nice bite-size chunks (while keeping things as simple as possible, because even I’ll admit that I don’t entirely understand how a lot of this works):
- The original source code had more than a few errors, multiple entries, and general inefficiencies. This is largely attributed to its programming language being fairly new at the time as well as it being worked upon by multiple people for an unknown (at the time) final hardware configuration
- Absolutely masses of source code optimisations were available meaning a significant reduction in unnecessary executions. In some instances, this resulted in parts of the executable source code being 1/5th the size. A factor that, by proxy, immediately frees up resources
- Massive optimisations were made between how the game accesses the CPU and graphics renderer allowing for the shared access RAM to be, basically, able to handle tasks individually rather than receiving requests at the same time. (Bottlenecking the process). A slightly more detailed explanation is that the CPU is capable of reading its data faster which frees up time for the graphics renderer to have more primary access to the RAM. – The original Super Mario 64 source code was not designed to work this way. So it basically had to be rewritten from the ground up!
- The RAM bus itself was optimised allowing for significantly faster transfer speeds between the CPU and graphics renderer and far better simultaneous access
The only apparent drawback to this new source code is that in specific regard to the RAM optimisations, this required the 8MB addon pack which, as I’m sure many of you are aware, did not come as standard with the system nor Super Mario 64. Albeit, as a fun side fact, it was only included with Donkey Kong 64 not because the game necessarily needed the extra memory, but because it (for reasons that still remain a little unclear) fixed a huge crashing bug.
In a nutshell, though, this new version of the Super Mario 64 source code has resulted in the game not only pushing the boundaries of visual and gameplay performance further, but it holds a silky smooth (by the standards of the time) 30 frames per second. – Put simply, despite the fact that Super Mario 64 was an amazingly impressive game when it was released, had it had this source code at the time, it could’ve been vastly better!
That’s Nice… But Why?…
Now you might at this point be wondering why they even bothered to undertake such a huge workload for what is clearly a very old game. In answer to this ‘Kaze Emanuar‘ has said that it was largely to provide more stability for his mods and well as offering smoother (less janky) overall gameplay. – Important in the grand scheme of things? Not really. For those who really enjoy the masses of Super Mario 64 mods available though, this new source code is a huge and literal game changer!
If the metaphorical boundaries of what they could achieve were pressed up to their nose, then this new source code may well have now not only knocked that wall down but re-built it about 40 feet away!
If you do, therefore, want to learn more about this, you can check out ‘Kaze Emanuar’s’ YouTube channel via the link here! – For us though, we’re incredibly impressed!
What do you think? – Let us know in the comments!