Back to blog
·4 min read

How I Finally Got to Give Back to a Childhood Favourite

DecompilationReverse EngineeringStar Fox AdventuresAIGameCube

Star Fox Adventures is the game of my childhood. I still replay it at least twice a year, every year — it's one of those games that's wired into me at this point. So this post is a bit different from my usual security writing: it's about how I finally found a way to give something back to the community around a game I love.

Falling down the speedrunning rabbit hole

It started with a video about the history of Star Fox Adventures world records:

The history of the Star Fox Adventures world record

It walks through all the wild glitches and techniques runners use to tear through the game as fast as possible. I was hooked. ESW (Event Storage Warp) in particular completely fascinated me.

The gist is a developer oversight: when you exit to the menu, some of the game's flags don't get properly cleared. One of those leftover flags controls where you respawn when you die. So the trick goes like this:

  1. Load one save and hit a respawn checkpoint.
  2. Exit to the menu — your respawn point sticks around because the flag was never reset.
  3. Load a second, different save and die.
  4. You respawn back at the checkpoint from the first save.

That single piece of "stored" state lets runners stitch together parts of the game in an order the developers never intended — and the fact it all comes down to one flag that simply doesn't get cleared is just endlessly cool to me.

That video led me to the Star Fox speedrunning Discord, and it was genuinely lovely to find a whole group of people who love this game as much as I do.

Wanting to help, but not knowing how

There was one thing missing, though: I really wanted to help. The problem is I'm not a good enough gamer to actually speedrun the game.

I thought about becoming a glitch hunter instead, but that felt like it needed serious reverse-engineering knowledge. My career is in software, but it's a completely different world — I spend my days in Node, Go, AWS and the security weeds, and keeping on top of all of that is already a full plate. So for a while I just lurked on the side of the Discord, cheering other people on.

The stars align

Then something new happened. Someone posted in the Discord that they were using AI to decompile the game.

I use AI every single day for work — it's become an enormous part of how I get things done. And suddenly the stars aligned. Here was a way I could finally contribute to the community for my favourite childhood game, using something I already understood deeply.

And I have. At the time of writing, I've contributed around 3,200 commits to the decomp project.

A whole community I never knew existed

Contributing also opened a door I didn't even know was there: the game decompilation community. There are hundreds of these projects going on for retro games, and I find the whole thing genuinely thrilling.

Once a game has been decompiled, all sorts of doors open:

  • Ports — running the game natively on PC, or even in the browser.
  • Modding — building on top of the original game in ways the cartridge never allowed.

I can imagine a future with a proper competitive scene for Star Fox Adventures. Picture a mod that drops two players into a random section of the game and has them race to clear just that one part — something like Minecraft's MCSR Ranked, but for SFA. That would be incredible.

What I've learned along the way

Beyond the warm fuzzy feelings, the last couple of months have taught me a surprising amount about how games were actually built for the GameCube — how a project like this would have been set up, and how the compiler behaves. A few things that stuck with me:

  • Compiler quirks — toggling behaviours like peephole optimisation and instruction scheduling to get matching output.
  • Old-school algorithms — spotting things like shell sort in the wild.
  • Per-file compiler flags — this was the most surprising one. Individual source files were compiled with their own individual compiler flags. Matching that faithfully is a fascinating puzzle.

I also picked up a lovely bit of trivia along the way: "Dolphin" was the GameCube's secret codename before release — which is exactly why the Dolphin emulator is named after it. I'd always assumed "Dolphin" was just some random name that happened to stick, so learning it was the console's real internal codename, unearthed and adopted by the emulation and reverse-engineering community, was a genuinely delightful little discovery.

Over the moon

All in all, I'm just delighted. I finally get to contribute to the community around my favourite childhood game, I've stumbled into a fascinating corner of programming I never knew existed, and I genuinely can't wait to see what else comes out of this decomp project.

If you love a retro game, there's a decent chance someone out there is decompiling it right now — and they'd probably love the help.