Skip to content

Compilers

A matching decomp needs the original compiler, in the original version, with the original flags. Identifying them is often the first real milestone of a project.

  • Identifying a compiler: strings left in the binary, prologue and epilogue shapes, library versions, and comparing small functions against candidate compilers.
  • The main families:
    • Metrowerks CodeWarrior (GameCube, Wii, DS and others);
    • SGI IDO (Nintendo 64);
    • GCC in many old versions (N64, PS1, PS2, GBA and more);
    • newer compilers on recent consoles.
  • Flags: optimization levels, and flags that change code generation.
  • Running old compilers today: wrappers such as wibo, and rebuilt compilers.
  • Several compilers in one game: libraries built with a different version from the game.