How Menus Work ‐ Index - pret/pokeemerald GitHub Wiki
Menus in Pokémon Emerald have to work with both low-level concepts and high-level concepts. The GBA's graphics memory has a very limited budget, and there aren't many automated systems which will manage that budget for you. In practice, you'll have to manually decide how to arrange a menu's graphical resources in VRAM — and even if you just want to make a barebones text-only menu, text also consumes space in VRAM.
This guide to Emerald's menus is divided into three parts:
-
In Part 1, we focus on the basic concepts of tile-based graphics on a GBA, most notably background layers and VRAM.
-
In Part 2, we focus on how to properly manage the VRAM budget, what functions we can use to interact with VRAM, and what tools Game Freak built to simplify common behaviors like drawing text.
-
In Part 3, we explore the Options menu's code, walking through how the menu sets itself up, how it reacts to input, and how it displays its contents.