Scoopfeeds — Intelligent news, curated.
computer-science

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

Hacker News · Jun 28, 2026, 1:21 AM

Key takeaways

  • You write C, the real 2001 compiler grades it live.
  • STEP 2Write the CReconstruct the original source.
  • STEP 3The compiler grades itThe real MWCC GC/2.0 compiles your code and diffs it — match every byte to win.

Decomp Academy MWCC GC/2.0 Git Hub Playground Curriculum Sign instwu r1, -0x20(r1) mflr r0 stw r0, 0x24(r1) stw r31, 0x1c(r1) mr r31, r3 lwz r3, 0x8(r31) lfs f1, 0x40(r3) lfs f0, 0x44(r3) fmuls f1, f1, f1 fmadds f1, f0, f0, f1 frsqrte f0, f1 fmuls f2, f0, f0 fnmsubs f2, f2, f1, f13 fmadds f0, f0, f2, f0 cmplwi r4, 0 beq- .L_0x4c rlwinm r0, r5, 2, 0, 29 lwzx r6, r3, r0 add r6, r6, r0 stwx r6, r3, r0 bl Vec_Normalize li r3, 1 lwz r0, 0x24(r1) mtlr r0 blr stwu r1, -0x20(r1) mflr r0 stw r0, 0x24(r1) stw r31, 0x1c(r1) mr r31, r3 lwz r3, 0x8(r31) lfs f1, 0x40(r3) lfs f0, 0x44(r3) fmuls f1, f1, f1 fmadds f1, f0, f0, f1 frsqrte f0, f1 fmuls f2, f0, f0 fnmsubs f2, f2, f1, f13 fmadds f0, f0, f2, f0 cmplwi r4, 0 beq- .L_0x4c rlwinm r0, r5, 2, 0, 29 lwzx r6, r3, r0 add r6, r6, r0 stwx r6, r3, r0 bl Vec_Normalize li r3, 1 lwz r0, 0x24(r1) mtlr r0 blrstwu r1, -0x20(r1) mflr r0 stw r0, 0x24(r1) stw r31, 0x1c(r1) mr r31, r3 lwz r3, 0x8(r31) lfs f1, 0x40(r3) lfs f0, 0x44(r3) fmuls f1, f1, f1 fmadds f1, f0, f0, f1 frsqrte f0, f1 fmuls f2, f0, f0 fnmsubs f2, f2, f1, f13 fmadds f0, f0, f2, f0 cmplwi r4, 0 beq- .L_0x4c rlwinm r0, r5, 2, 0, 29 lwzx r6, r3, r0 add r6, r6, r0 stwx r6, r3, r0 bl Vec_Normalize li r3, 1 lwz r0, 0x24(r1) mtlr r0 blrLearn to decompile GameCube assembly into byte-matching C.Go from never having read a register to matching real Star Fox Adventures functions — instruction for instruction. You write C, the real 2001 compiler grades it live.

258Lessons0SolvedMastery0% Graded by the realmwcceppc.exe Functions from the live SFA-Decomp projectmatch Vec_Normalize 100% byte-matchTargetYour outputlwz r0, 0x0(r3)lwz r0, 0x0(r3)lfs f1, 0x4(r3)lfs f1, 0x4(r3)fmuls f0, f0, f1fmuls f0, f0, f1fadds f0, f0, f2fadds f0, f0, f2stfs f0, 0x0(r4)stfs f0, 0x0(r4)blrblrSTEP 1Read the assemblyStudy the target PowerPC the retail compiler produced, instruction by instruction.

STEP 2Write the CReconstruct the original source. Hints and a reference solution are a click away.

Article preview — originally published by Hacker News. Full story at the source.
Read full story on Hacker News → More top stories
Aggregated and edited by the Scoop newsroom. We surface news from Hacker News alongside other reporting so you can compare coverage in one place. Editorial policy · Corrections · About Scoop