Nintendo Gamecube

Nintendo Gamecube (Dolphin) Reverse Engineering

Edit on Github | Updated: 16th October 2026

Welcome to our page dedicated to Gamecube reverse engineering! The Gamecube was a popular gaming console released by Nintendo in 2001, and has since become a beloved classic of the gaming world. If you’re interested in learning more about the technical aspects of this console and how it works, you’ve come to the right place.

On this page, we’ve compiled a list of links to other pages that cover various topics related to Gamecube reverse engineering. Whether you’re interested in understanding the hardware architecture of the console, analyzing game code, or exploring the many mods and hacks that have been created by enthusiasts over the years, you’ll find a wealth of resources and information on the pages we’ve linked to.

So grab your Gamecube controller, and get ready to dive into the exciting world of Gamecube reverse engineering!


Hardware

The Nintendo Gamecube has fairly sophisticated hardware for the time, this was when Nintendo was still trying to compete with raw processing power. The hardware would then be used as a basis of both the Wii and Wii U consoles in the future.

Retail Hardware

Rodrigo Copetti has an excellent in-depth article about the hardware architecture of the Nintendo Gamecube, it is a must read for anyone wanting to reverse engineer Gamecube games as you will need to know all about the low level architecture.

Development Hardware

Unreleased Hardware

In China there were plans to release a version of the Gamecube with DVD playback functionality and additional security. This was to be a sequel to the iQue Player which was a Chinese only Nintendo 64 plug and play device. However half way through development the resources were moved to work on the Nintendo Wii instead.


Gamecube Games

The Nintendo Gamecube has an excellent library of games just begging to be reverse engineered, it is always a good idea to do some research before you start, this is where this section comes in as it deals with specific games.

Games with Debug Symbols

If you are interested in reverse engineering a Gamecube game, the first step is to find out if the game has its debug symbols available, this makes it much easier to reverse as all the functions will have nice friendly human readable names.

Gamecube Exclusives

The most valuable reverse engineering projects tend to be the platform exclusives that have never been re-released as these are the games that can benefit the most from enhancements on modern hardware.

Wikipedia maintains a list of Gamecube exclusives - GameCube-only games - Wikipedia

Prototype Games

Prototype games are ideal targets for reverse engineering as many of them contain developer information inside them and some games never got a retail release, making them even more interesting!


Games with Emulators ON Gamecube

A few Gamecube games have emulator code built into them either as bonus content (Animal Crossing, Fight Night Round 2) or as the main game (Sonic Mega Collection).

Here is a list of known games that have emulators built in:

  • Fight Night Round 2 (uses an emulator called SNESticle to play Super Punch Out, ROM file is called SNS4Q0.471 on the Disc, same filename as seen in Nintendo Lot-Check Leaks)

Fight Night Round 2

The Gamecube game Fight Night Round 2 has a playable version of the SNES game Super Punch Out on the Disc called SNS4Q0.471. This file must have come from Nintendo as it matches the Nintendo Lot-check naming scheme that Nintendo uses internally.

The cool thing about this is that the emulator was written by Icer Addis who was the co-creator of one of the first ever NES emulators known as NESticle. An easter egg of sorts can be found when looking at the strings inside the executable, they called the SNES emulator for gamecube SNESticle!

Not only that but a project was launched to try to get other SNES ROMS to work with the emulator known as the The SNESticle Liberation Project which consisted of a Multi-ROM menu SNES Rom and a Python script to inject ROMS and put everything together (fn22snesticle.py).

The devlog is a very good read and is available here: Devlog - The SNESticle Liberation Project

This drew the attention of Icer who decided to release the full source code for SNESticle (PS2 & Dreamcast): iaddis/SNESticle: SNESticle source code (circa ~2004)


Game Engines for the Nintendo GameCube

Before Unity and the modern Unreal Engine dominated the scene it was common for developers to create their own in-house game engine, or license a third party engine.

Merkury engine by Krome Studios (in-house)

Krome Studios used the Merkury Engine for many of its own titles, particularly on the GameCube and other last-generation systems. A programmer for Krome Studios, Tony Ball managed to get the engine running on the GameCube hardware only took a couple of weeks, with development running simultaneously with the PlayStation 2 version.

Here are the games that used the Merkury Engine for the GameCube:

  • Ty the Tasmanian Tiger (2002) - The first in the franchise and a flagship Merkury title.
  • The Adventures of Jimmy Neutron: Jet Fusion (2003) - Also released on PS2.
  • Ty the Tasmanian Tiger 2: Bush Rescue (2004)
  • King Arthur (2004)
  • Ty the Tasmanian Tiger 3: Night of the Quinkan (2005)
  • The Legend of Spyro: A New Beginning (2006) - Developed by Krome for the GameCube, PS2, Xbox, and GBA.

If you are interested in learning more we have a specific post about the Merkury engine:


Reverse Engineering


Console security

Modern Vintage Gamer explains how GameCube security was defeated. The video provides context for the platform’s disc formats, homebrew tools and reverse-engineering workflows.

GameCube specific File Formats

We have a specific post that covers all the file formats that can be found in gamecube games (or file formats used to store gamecube games) here:


Recognising PowerPC Compiler Patterns

Ordinary C arithmetic can look elaborate in a PowerPC disassembly. The decomp.wtf PowerPC guide provides recognition clues; use instruction semantics to test each interpretation rather than assigning an original C type from one opcode 1.

These patterns are useful starting points for the GameCube’s integer and scalar floating-point code 2:

Pattern Interpretation to test
clrlwi r3,r3,24 Keep the low eight bits, as in a mask or an unsigned-byte conversion
cmpw versus cmplw Signed versus unsigned comparison at this operation
cntlzw followed by a right shift of five Produce one for a zero input and zero otherwise
fctiwz, followed by a store and integer load Convert floating point to a signed integer with truncation toward zero, then transfer the result
frsp Round a floating-point register value to single precision

For example, this illustrative sequence computes a zero test into r3:

cntlzw r3,r4
srwi   r3,r3,5

A zero 32-bit input has 32 leading zero bits; any nonzero input has at most 31. Shifting that count right by five gives a value equivalent to r4 == 0. This identifies the operation, not whether the programmer wrote !x, a comparison or a conditional expression.


Floating-Point Expressions Need Extra Care

An integer-to-floating-point conversion may construct a double-precision bit pattern in memory and subtract a bias. The constants can look like unrelated game data until the surrounding stores and floating-point load are traced 1.

The fmadds instruction combines multiplication and addition with a single rounding to single precision. It can implement an expression shaped like a * b + c, but separate multiply and add instructions can round differently 3. Preserve operand order and check the compiler’s floating-point settings when matching. Likewise, frsp establishes a rounding operation; it does not alone prove there was a source-level double variable.

Compare these candidates with the matching-decompilation workflow, keeping the project’s compiler and flags fixed while testing expression changes.


Runtime Thunks and Register Inputs

Some runtime helpers use inputs outside the ordinary C argument registers. The decomp.wtf tests include a CodeWarrior member-function-pointer dispatch helper, __ptmf_scall, that reads a descriptor through r12 before assigning that register 4.

Trace the caller’s setup of r12 and the helper’s loads before declaring an ordinary C function prototype. A wrapper that adjusts an object pointer and branches indirectly may implement language runtime machinery rather than game logic. Compare against the project’s runtime library before attempting an independent reconstruction.

For general checks, see function boundaries and unusual calling conventions.


All Posts

Nintendo Gamecube
007 Agent Under Fire for Nintendo Gamecube Reverse Engineering

Introduction Welcome to our page dedicated to the technical details of the Gamecube game 007 Agent Under Fire!

If you’re a fan of this classic first-person shooter game, you might be interested in learning more about the technical aspects that... ...

Nintendo Gamecube
ATI Low Level Wii SDK

Introduction In 2020 and 2021 numerous secret files have been leaked from Nintendo thanks to Zammis Clark.

Included in these files were source code for a variety of Wii internal applications such as a Diagnostic tool known as DIAG4.

This... ...

Nintendo Gamecube
Nintendo Gamecube (Dolphin) Development Kit Hardware

AMC Dolphin Development Hardware (DDH) The earliest Gamecube development hardware available to game developers was known as the Dolphin Development Hardware or simply DDH for short.

This system was sold before the other development kits were finalised, allowing game developers... ...

Nintendo Gamecube
Nintendo Gamecube Games with Debug Symbols

If you are interested in reverse engineering a Gamecube game, the first step is to find out if the game has its debug symbols available, this makes it much easier to reverse as all the functions will have nice friendly... ...

Nintendo Gamecube
Nintendo Gamecube (Dolphin) File Formats

Emulation File Formats The table below lists the relevant entries.

Extension Description rvz Compressed ISO Format (Dolphin) iso Disc Image (Uncompressed) Formats Used on Disc The table below lists the relevant entries.

Extension Description .GSF Sound File .SNI Sound Include... ...

Nintendo Gamecube
The Simpsons Hit & Run Source Code Leak

Introduction On the 21st August 2021 the full source code to the classic GTA clone staring The Simpsons was released online.

This included both the C++ source code plus the editable asset files in Maya format!

This post will cover... ...

Nintendo Gamecube
The Unexpected 2021 Nintendo Leak

On the 20th July 2021 the Nintendo Leaks (aka Gigaleaks) continued after a long hiatus, the content was obtained by Zammis Clark and then leaked online by anonymous individuals.

Files Leaked The files that were leaked on the 20th July... ...

Nintendo Gamecube
Nintendo Wii Diagnostic Disc Source Code

In the Nintendo leak on 20th July 2021 an archive called DIAG4RVL.7z was released to the internet, this archive contains a CVS repository containing 3 different software development kits for the Wii (codename Revolution).

The three folders that were contained... ...

Nintendo Gamecube
iQue Gamecube Leak (BB2)

Introduction In 2020 and 2021 numerous secret files have been leaked from Nintendo thanks to Zammis Clark.

Included in these files were documentation and source code for an unreleased console for the Chinese market with the codename BB2 (BroadOn Board... ...


Magazine Interviews

The magazine index collects developer interviews tagged for this system across all indexed magazines.

MagazineIssuePagesDeveloperPlatformsDescription
Retro Gamer133 pp. 10-11 Yoshiaki Hirabayashi GameCube, PC, PlayStation 4 The producer discusses remastering the GameCube Resident Evil.
Retro Gamer139 pp. 84-89 Hiroyuki Kobayashi GameCube The Capcom producer discusses remaking Resident Evil for GameCube.
Retro Gamer143 pp. 18-25 F-Zero-influenced racing developers SNES, GameCube, PC Racing developers discuss the influence of Nintendo’s F-Zero.
Retro Gamer150 p. 31 Mark Pacini and Kensuke Tanabe GameCube The developers discuss design choices behind Metroid Prime.
Retro Gamer150 pp. 100-103 Hiroyuki Kobayashi GameCube The Capcom producer describes the prototypes and design changes behind Resident Evil 4.
Retro Gamer158 pp. 92-97 Gregg Tavares PC, PlayStation, GameCube Tavares discusses his game development career.
Retro Gamer160 pp. 83-89 Phil Tossell GameCube The Rare developer discusses developing for the GameCube.
Retro Gamer164 pp. 92-97 Goichi Suda PlayStation, GameCube, Wii Suda51 discusses his career and Grasshopper Manufacture’s games.
Retro Gamer168 pp. 20-27 Ryan Kaufman and Julian Eggebrecht Nintendo 64, GameCube LucasArts and Factor 5 staff discuss the Rogue Squadron games.
Retro Gamer173 pp. 18-27 Yoshiaki Koizumi GameCube Koizumi recalls developing Super Mario Sunshine.
Retro Gamer177 p. 39 Mike Keith GameCube The Factor 5 programmer discusses making Rogue Leader for GameCube.
Retro Gamer178 pp. 76-81 Paul Hughes PC, PlayStation 2, Nintendo GameCube Hughes recalls founding Warthog Games and developing its varied catalogue.
Retro Gamer198 pp. 78-83 Elisabeth Pellen and Nathalie Moschetti-Nogard PC, PlayStation 2, Xbox, GameCube The writer and art director discuss adapting the comic XIII into a shooter.
Retro Gamer208 pp. 80-85 Denis Dyack GameCube Dyack describes making the psychological horror game Eternal Darkness: Sanity’s Requiem.
Retro Gamer215 pp. 82-85 David Perry PlayStation 2, Xbox, GameCube, PC Perry revisits Shiny Entertainment’s ambitious film tie-in Enter the Matrix.
Retro Gamer218 pp. 88-95 David Doak and Free Radical Design developers PlayStation 2, GameCube, Xbox The team revisits the creation and evolution of the TimeSplitters series.
Retro Gamer220 pp. 86-89 Patrick Lipo and Tom Odell GameCube, PlayStation 2, Xbox Raven designers recall making the action role-playing game X-Men Legends.
Retro Gamer222 pp. 92-97 Charles Martinet Nintendo 64, GameCube Martinet reflects on recording Mario and other voices for Nintendo games.
Retro Gamer223 pp. 90-97 Jason Wiggin, Eric DeMilt, David Maldonado and Jon Hales PlayStation 2, Xbox, GameCube Black Isle and Snowblind veterans discuss developing the Baldur’s Gate: Dark Alliance games.
Retro Gamer225 p. 24 Paul Gardner GameCube, PlayStation 2, PSP Gardner answers questions about developing Super Monkey Ball Adventure.
Retro Gamer228 pp. 86-89 Hudson Piehl, Jason Epps and Scott Evans PlayStation 2, GameCube, Xbox Developers revisit The Lord of the Rings: The Two Towers.
Retro Gamer229 pp. 90-95 Bret Robbins and Arcadia Kim PlayStation 2, GameCube, Xbox, PC EA developers explain how they adapted The Lord of the Rings: The Return of the King.
Retro Gamer232 pp. 86-91 Christopher Mitchell, Nigel Brooke and Steve Bocska GameCube, PlayStation 2, Xbox, PC The Radical Entertainment team revisits The Simpsons: Hit & Run.
Retro Gamer244 pp. 18-27 Alex Moore and Chuck Beaver GameCube, Xbox 360, PlayStation 3 Survival-horror designers discuss the influence of Resident Evil 4 on later games.
Retro Gamer247 pp. 8-9 Koji Nakajima Switch, GameCube The producer discusses remastering the Baten Kaitos games for Switch.

References