News for hackers. Stuff that matters.

Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

https://decomp-academy.dev

I built Decomp Academy to teach matching decompilation: recovering C source from a compiled binary so faithfully that it recompiles to the exact same machine code, instruction for instruction.

It's the technique behind the projects that decompile old games (Mario 64, the Zelda titles, etc.). It's oddly addictive, but the on-ramp is brutal, you have to read assembly, internalize one specific compiler's quirks, and there's very little structured material. So I made a course.

How it works: each lesson shows you the real PowerPC assembly a GameCube game's compiler produced. You write C in the browser. The interesting part is the grader. It isn't a heuristic or a model, it's the actual Metrowerks CodeWarrior GC/2.0 compiler (mwcceppc.exe, from the GameCube SDK era) running server-side. It compiles your C and diffs the output against the target instruction-by-instruction (via objdiff). You clear a lesson at a 100% byte match; a single extra instruction is a miss.

That constraint is what makes it teach something real. You're not learning "C," you're learning how a particular optimizer thinks: why u8 vs char changes the codegen, when it reaches for rlwinm, how declaration order colors registers. The lessons deliberately never show the answer, they teach the idea on a different example and make you transfer it.

There are 254 lessons, progressive, from "a function that returns a constant" up to full Star Fox Adventures functions (the real functions come from the open-source SFA decomp project). There's also a playground for throwing arbitrary C at the compiler to see what it emits.

Free, no signup to start, open source (AGPL-3.0). Frontend is Next.js; the diffing is objdiff compiled to WASM.

I'd most like feedback on the pedagogy: does the difficulty curve hold up, where do people bounce off, what's missing? And if you've done decomp work, do the lessons match how you actually approach a match?

Source: https://github.com/JackPriceBurns/decomp-academy-fe

( 1 comment | on HN )
Re:Show HN: Decomp Academy – Learn to decompile GameCube gam... by jackpriceburns on Saturday June 27, 2026 @07:58PM (#48702987)
Over the past few months I've been heavily involved in the decompilation community. I've been hands-on decompiling a beloved game from my childhood (Star Fox Adventures). I started this journey with zero prior decomp experience—and to make things worse I had never really touched C nor assembly either.

Learning how to decompile was challenging. It's difficult to find any good learning resources for it and any open-source projects for this are inactive and/or contain little actual learning material.

So I put together Decomp Academy! Decomp Academy is an interactive way to learn how to decompile PowerPC assembly back into C. The site runs a live Metrowerks CodeWarrior GC/2.0 compiler, converts your C into assembly, and then checks how close your assembly matches the target. If even 1 instruction or bit is off, that's a fail. This is the gold standard for video game decompilation and this is much stricter than a normal decompile.

As of writing there are 250+ lessons on the site and the lessons start at the very basics so anyone with a little programming experience should be able to jump straight in, even if you're not a C expert. Some lessons also have real functions taken from live open source decomp projects (Star Fox Adventures, Mario Party 4, Pikmin, Metroid Prime). The idea being you learn everything you need to know to be able to jump in and contribute to a real decompilation project when done.

The site is completely free, open source and you have access to all lessons without having to sign up. All lessons are stored in markdown in the repo (src/curriculum), it's trivial to add or modify lessons. The site is very new and the lessons are rapidly changing every day with a whole C++ section on the way. The site has already been well received by the decomp community and I'm happy to share it with HN. I'm very keen on others to contribute to this project and I hope this becomes the best resource on the internet for learning the art of decompilation. Please let me know what you think!

Source: https://github.com/JackPriceBurns/decomp-academy-fe