perfect-dark
ido
perfect-dark | ido | |
---|---|---|
5 | 1 | |
- | 32 | |
- | - | |
- | 3.3 | |
- | about 1 year ago | |
C | ||
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
perfect-dark
- Perfect Dark has been fully decompiled
-
Overhauling Mario 64's code to reach 30 FPS and render 6x faster on N64 hardware
PD will definitely be the next game to be fully (or near enough) decompiled. The dev behind that one is great.
If you're bored, his write up on the "Challenge 7 Bug" is great read: https://gitlab.com/ryandwyer/perfect-dark/-/blob/master/docs...
-
Some secrets
Hey there. You might be interested in looking at the Perfect Dark decompilation project: https://gitlab.com/ryandwyer/perfect-dark. The goal is to build source code that compiles into the exact same ROM, byte for byte. The project is currently 73% complete and is already incredibly useful for searching for things or seeing how particular logic was implemented.
-
New feature found in Perfect Dark! First documented after 21 years.
This was found by Ryan Dwyer on the Perfect Dark decompilation project - https://gitlab.com/ryandwyer/perfect-dark
ido
-
Overhauling Mario 64's code to reach 30 FPS and render 6x faster on N64 hardware
hahah yes the "0.0f" is different from "0.f" is different from "0.0" is different from "0" is a great IDO meme as well. One of the changes we had to make we started to support the PAL release, which was compiled at -O2, was to go back and change some constants from explicit "1.0f" to "1" to get the code-gen to match.
I think that that is a C thing, though: an unpostfixed 0. is a double. Sometimes IDO can do the conversion at compile time, and sometimes it can't. But, the compiler will treat things "0.0f" and a compile-time "(f32)0.0" as different constants...
We have a kinda outdated document of weird IDO behavior which is worth a read if you want to trigger some PTSD: https://hackmd.io/vPmcgdaFSlq4R2mfkq4bJg#Compiler-behavior
Also, since SGI/MIPS/IDO was from Stanford (I think...?), there is actually a surprising amount of published papers on IDO's compilation model. Which comes in handy if you are trying for the ultimate joke of decompiling the written-in-pascal compiler into C: https://github.com/n64decomp/ido
What are some alternatives?
mgs_reversing - Metal Gear Solid PSX reimpl repo
pybrawlmodule - Python REL Decompiler/Recompiler for Modifiying Super Smash Brothers Brawl