gcc-papermario
decomp.me
gcc-papermario | decomp.me | |
---|---|---|
1 | 6 | |
2 | 336 | |
- | 3.3% | |
0.8 | 9.3 | |
about 1 year ago | 2 days ago | |
C | TypeScript | |
GNU General Public License v3.0 only | MIT License |
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.
gcc-papermario
-
Decompilation of Paper Mario for N64
SM64 uses SGI's IRIS Development Option (IDO) compiler. And yes, it's unoptimised.
Paper Mario, however, /does/ use GCC, and it's optimised. Figuring out the compiler version was fairly easy as there's a limited number of options - we know when the game began development, so we looked for releases around that time. The harder parts were figuring out compiler flags (consider all the -f flags affecting code generation; papermario used -fforce-addr) and coming to the terrifying conclusion that the compiler was modified!
The majority of papermario was built with a modified build of GCC 2.8.1 [1] at -O2. The SDK code (libultra, nusystem) was built with GCC 2.7.2 at -O3. The iQue Player version, i.e. the Chinese release, was built with EGCS.
[1] https://github.com/pmret/gcc-papermario
decomp.me
-
Ask HN: What Underrated Open Source Project Deserves More Recognition?
https://github.com/decompme/decomp.me
I’ve posted this before but I love it so much I gotta do it again.
You plug in a piece of ASM from a video game ROM, and it gives you a first pass decompilation. On the left hand side you can edit this decompilation, and on the right there’s a side-by-side diff of the target ASM and what your source currently compiles to. It’s slightly gamified, looks great, is super easy to fork/share, and can be pretty addicting once you get into it. Super cool community.
-
Decompilation of Paper Mario for N64
Checkout http://decomp.me - it’s a community built tool used by a lot of video game decompilation projects. You put in the original bytecode, it will attempt a decomp, and then you fiddle with the source (using the same toolchain & flags known/best guessed to be used by original devs) until it matches perfectly. It’s super cool.
- Decomp me: Collaboratively decompile code in the browser
- Decomp.me - Collaborative video game decompilation and reverse engineering website
What are some alternatives?
ts-c-compiler - ⚙️ Multipass C Compiler, Assembler and X86 emulator written in TypeScript
CodemerxDecompile - The first standalone .NET decompiler for Mac, Linux and Windows
system-programming-roadmap - A roadmap to teach myself compiler dev, malware reverse engineering, exploitation and kernel dev fundamentals
dewolf - A research decompiler implemented as a Binary Ninja plugin.
js-ziju - Compile javascript to LLVM IR, x86 assembly and self interpreting
compiler-explorer - Run compilers interactively from your web browser and interact with the assembly
AutoIt-Obfuscator-Python - AutoIt Obfuscator (Python module) lets you protect AutoIt script source code against analysis, reverse engineering, and decompilation using advanced obfuscation techniques and polymorphic encryption.