Skip to content

Prerequisites

You don’t need to be an expert to start. You need to read C comfortably, be willing to read assembly slowly, and know enough git to send a pull request. The rest you learn by matching.

  • C: pointers, structs, arrays, integer types and their sizes, casts, and how the compiler lays out a struct.
  • Assembly: registers, loads and stores, branches, calling conventions. You need to read it, not write it.
  • Your console’s CPU: MIPS, PowerPC or ARM, and its calling convention.
  • Tools: git, Python, a build system (often ninja or make), and a diff tool such as objdiff.
  • A legal copy of the game and a way to extract its files.
  • Patience. Some functions take minutes; some take weeks.