How the Game Works - pret/pokeemerald GitHub Wiki

What follows is a series of articles talking about how parts of the vanilla Pokemon Emerald engine function. This is not meant to be a guide for how to program the Game Boy Advance. Rather, it assumes you have programming knowledge, and tries to provide light on some areas of the Gen 3 game engine. We recommend Tonc for a whirlwind tour of general GBA programming: https://www.coranac.com/tonc/text/toc.htm

Overview:

  • The Game Loop - Introduction to the main game loop, main callbacks, sprite callbacks, and tasks.
  • The Task System - More in depth about tasks and how they're used.
  • The Party Menu - An overview of the menu that shows the player's party.
  • Items and their Effects - A look at items and their gameplay behaviors.
  • Latent Functions - Some game functions can be interrupted by game UI and other events, and have to wait for those to complete.
  • How Menus Work - A three-part deep dive into how the game's menus are coded.
  • The Battle Engine
    • Battle Controllers - The system that the battle engine uses to receive input from players and NPC AIs.
  • (TODO)