A Pokémon Rom randomizer tool written in Zig
For now, this project exists for me to test out the Zig programming language and its features.
Each Pokémon game exists in multiple different languages. The reason this is important is that different languages have different data layouts. The Japanese version of Pokémon Emerald might not work with the randomizer even though a US version does.
|Version:||International (O)||English/USA (E)|
The randomizer relies on libraries which are included as git submodules. You,
therefore, need to clone with
--recursive, in order to get these libraries on
The repo contains both the Pokémon randomizer, but also a few tools used to make development of the randomizer a little simpler.
Here are the different build commands:
zig build randomizerbuilds the randomizer (default).
zig build toolsbuilds the tools.
zig build testruns all tests.
zig build allbuilds everything and runs all tests.
Useful links with information on the structure of roms, or where data exists in different Pokémon games.
- HGSS File System
- HG/SS Mapping File Specifications
- HG/SS Pokemon File Specifications
- HG/SS Encounter File Specification