As an amusing side-effect, the team working on this effort also implemented IRIX userland support for QEMU since the original N64 toolchain ran on IRIX on the SGI Indy, and they need the original compilers to verify functional equivalence of their source: <a href="https://github.com/n64decomp/qemu-irix" rel="nofollow">https://github.com/n64decomp/qemu-irix</a> .
One thing I've always been curious about: is there any sort of clear continuity of architecture or design patterns between the games in the Super Mario series? Yes, they're probably all from-scratch rewrites of the engine, but could each successive engine be said to be a "descendant" of a previous one, on a design level?<p>One thing I know (and can be seen in this repo) is that SM64 emulates a version of the NES/SNES "Object Attribute Memory", as a pure-software ring-buffer. (I'd love to know whether that carries on to later titles like Galaxy, 3D World, NSMB(U), Mario Maker, etc.)
This is cool and illegal. What makes me envy of the West (or countries other than Japan in general) is that this kind of attempt is somewhat condoned and praised, while in Japan there would be a vocal outcry and finger-pointing campaign (with some media exposure) to the point where the author would be forced to shut down the project. It's a blessing that people can pursue things like this, and it's a huge shame that Japan is such an anal when it comes to a marginally illegal activity in an open space. (I'm sure some people do it underground though.)
I am looking forward to the mods that this will enable. I highly recommend trying mario 64 on dolphin EMU at 1080P with a texture pack. A HD mod that added a few more polygons would really round out the experience.
"For Windows, install WSL and a distro of your choice and follow the Linux guide."<p>I love these instructions!<p>Also, I'd love to see this converted to a native executable. I wish Nintendo would actually allow that, although I'm sure they wouldn't.
It's interesting there are bits of code that don't have a purpose, and may have been there to support a second player. For example here:<p><pre><code> > This is evidence of a removed second player, likely Luigi.
> This variable lies in memory just after the gMarioObject and
> has the same type of shadow that Mario does. The `isLuigi`
> variable is never 1 in the game. Note that since this was a
> switch-case, not an if-statement, the programmers possibly
> intended there to be even more than 2 characters.
</code></pre>
<a href="https://github.com/n64decomp/sm64/blob/4b46247686fd0e1ee691bf0f09201cfeeeb1d9f1/src/game/shadow.c#L530" rel="nofollow">https://github.com/n64decomp/sm64/blob/4b46247686fd0e1ee691b...</a><p>And more results when searching for "luigi":<p><a href="https://github.com/n64decomp/sm64/search?q=luigi&unscoped_q=luigi" rel="nofollow">https://github.com/n64decomp/sm64/search?q=luigi&unscoped_q=...</a>
Always a little humbling to remember the developers are just like you and I.<p><a href="https://github.com/n64decomp/sm64/blob/master/src/game/camera.h#L379" rel="nofollow">https://github.com/n64decomp/sm64/blob/master/src/game/camer...</a><p><a href="https://github.com/n64decomp/sm64/blob/4b46247686fd0e1ee691bf0f09201cfeeeb1d9f1/src/game/level_select_menu.c#L111" rel="nofollow">https://github.com/n64decomp/sm64/blob/4b46247686fd0e1ee691b...</a><p><a href="https://github.com/n64decomp/sm64/blob/4b46247686fd0e1ee691bf0f09201cfeeeb1d9f1/src/game/behaviors/spiny.inc.c#L59" rel="nofollow">https://github.com/n64decomp/sm64/blob/4b46247686fd0e1ee691b...</a><p><a href="https://github.com/n64decomp/sm64/blob/4b46247686fd0e1ee691bf0f09201cfeeeb1d9f1/src/game/debug.c#L181" rel="nofollow">https://github.com/n64decomp/sm64/blob/4b46247686fd0e1ee691b...</a><p><a href="https://github.com/n64decomp/sm64/blob/4b46247686fd0e1ee691bf0f09201cfeeeb1d9f1/src/game/mario_misc.c#L33" rel="nofollow">https://github.com/n64decomp/sm64/blob/4b46247686fd0e1ee691b...</a>
What an awesome project. I would love to mess with random stuff like whirlpool strength and see what it does to the game. Efforts like this to make the decompiler output intelligible e.g. meaningful variable names make this much more approachable for a technical person like me without much of the niche platform-specific reverse engineering skills. In fact there are countless games I'd love to dive into like this.
Is there a usb compatible n64 controller?<p>Part of what makes this game such a watershed moment for 3d gaming is how the controller was designed to maximize it's potential.<p>To this day Mario 64 is one of the best games ever made.