TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Super Mario 64 has been decompiled

445 pointsby sjuutover 5 years ago

19 comments

bri3dover 5 years ago
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:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;qemu-irix" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;qemu-irix</a> .
评论 #20803563 未加载
评论 #20805840 未加载
评论 #20803192 未加载
评论 #20806216 未加载
评论 #20804974 未加载
derefrover 5 years ago
One thing I&#x27;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&#x27;re probably all from-scratch rewrites of the engine, but could each successive engine be said to be a &quot;descendant&quot; 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&#x2F;SNES &quot;Object Attribute Memory&quot;, as a pure-software ring-buffer. (I&#x27;d love to know whether that carries on to later titles like Galaxy, 3D World, NSMB(U), Mario Maker, etc.)
评论 #20804144 未加载
评论 #20804060 未加载
评论 #20804890 未加载
评论 #20803572 未加载
评论 #20805983 未加载
评论 #20803550 未加载
euskeover 5 years ago
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&#x27;s a blessing that people can pursue things like this, and it&#x27;s a huge shame that Japan is such an anal when it comes to a marginally illegal activity in an open space. (I&#x27;m sure some people do it underground though.)
评论 #20805723 未加载
评论 #20805419 未加载
评论 #20808487 未加载
评论 #20806666 未加载
ortusduxover 5 years ago
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.
评论 #20803294 未加载
评论 #20803840 未加载
doogliusover 5 years ago
Previous discussion: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20418577" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20418577</a>
评论 #20804167 未加载
DiseasedBadgerover 5 years ago
&quot;For Windows, install WSL and a distro of your choice and follow the Linux guide.&quot;<p>I love these instructions!<p>Also, I&#x27;d love to see this converted to a native executable. I wish Nintendo would actually allow that, although I&#x27;m sure they wouldn&#x27;t.
评论 #20804237 未加载
评论 #20804196 未加载
laurent123456over 5 years ago
It&#x27;s interesting there are bits of code that don&#x27;t have a purpose, and may have been there to support a second player. For example here:<p><pre><code> &gt; This is evidence of a removed second player, likely Luigi. &gt; This variable lies in memory just after the gMarioObject and &gt; has the same type of shadow that Mario does. The `isLuigi` &gt; variable is never 1 in the game. Note that since this was a &gt; switch-case, not an if-statement, the programmers possibly &gt; intended there to be even more than 2 characters. </code></pre> <a href="https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;4b46247686fd0e1ee691bf0f09201cfeeeb1d9f1&#x2F;src&#x2F;game&#x2F;shadow.c#L530" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;4b46247686fd0e1ee691b...</a><p>And more results when searching for &quot;luigi&quot;:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;search?q=luigi&amp;unscoped_q=luigi" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;search?q=luigi&amp;unscoped_q=...</a>
评论 #20809407 未加载
vSanjoover 5 years ago
Always a little humbling to remember the developers are just like you and I.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;master&#x2F;src&#x2F;game&#x2F;camera.h#L379" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;master&#x2F;src&#x2F;game&#x2F;camer...</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;4b46247686fd0e1ee691bf0f09201cfeeeb1d9f1&#x2F;src&#x2F;game&#x2F;level_select_menu.c#L111" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;4b46247686fd0e1ee691b...</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;4b46247686fd0e1ee691bf0f09201cfeeeb1d9f1&#x2F;src&#x2F;game&#x2F;behaviors&#x2F;spiny.inc.c#L59" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;4b46247686fd0e1ee691b...</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;4b46247686fd0e1ee691bf0f09201cfeeeb1d9f1&#x2F;src&#x2F;game&#x2F;debug.c#L181" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;4b46247686fd0e1ee691b...</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;4b46247686fd0e1ee691bf0f09201cfeeeb1d9f1&#x2F;src&#x2F;game&#x2F;mario_misc.c#L33" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;n64decomp&#x2F;sm64&#x2F;blob&#x2F;4b46247686fd0e1ee691b...</a>
评论 #20807641 未加载
bla3over 5 years ago
Nintendo will request a takedown the second they see this, no?
评论 #20803061 未加载
评论 #20803044 未加载
lame88over 5 years ago
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&#x27;d love to dive into like this.
评论 #20805823 未加载
kbumsikover 5 years ago
I don&#x27;t know much about reverse engineering field, but more than 70% code is assembly. Is extracting assembly still considered decompiled?
评论 #20805953 未加载
评论 #20805925 未加载
person_of_colorover 5 years ago
So how do people do this?<p>Manual inspection?
评论 #20805269 未加载
segmondyover 5 years ago
It&#x27;s amazing the level of effort and work that has gone into this and here I&#x27;m trying to finish a 100 line side project. :-]
评论 #20807424 未加载
mrpippyover 5 years ago
Once the inevitable native ports start appearing, I’d love to see an OpenGL 1 graphical backend so it can run natively on IRIX
JohnSmith13345over 5 years ago
pannenkoek2012 would probably find more glitches, assuming this doesn’t get taken down by Nintendo given their aggressive stance on copyright
ryan-allenover 5 years ago
They wrote it in assembly, nuts!
评论 #20805767 未加载
codesushi42over 5 years ago
It would be great if this could be done for games where the source code was lost.<p>Like Panzer Dragoon Saga.
评论 #20803164 未加载
评论 #20805977 未加载
diveanonover 5 years ago
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&#x27;s potential.<p>To this day Mario 64 is one of the best games ever made.
评论 #20808589 未加载
crtlaltdelover 5 years ago
lol i love seeing all the replies to comments on this that start with &quot;No.&quot;