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.
What this page will cover
Section titled “What this page will cover”- 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.