A Pokémon Rom randomizer tool written in Zig
Switch branches/tags
Nothing to show
Clone or download

README.md

pokemon-randomizer

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.

Supported games

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)
Red
Blue
Green
Yellow
Gold
Gold
Silver
Crystal
Ruby ✔️
Sapphire ✔️
Emerald ✔️
Fire Red ✔️
Leaf Green ✔️
Diamon ✔️
Pearl ✔️
Platinum ✔️
Heart Gold ✔️
Soul Silver ✔️
Black ✔️
White ✔️
Black 2 ✔️
White 2 ✔️

Build

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 clone.

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 randomizer builds the randomizer (default).
  • zig build tools builds the tools.
  • zig build test runs all tests.
  • zig build all builds everything and runs all tests.

Resources

Useful links with information on the structure of roms, or where data exists in different Pokémon games.

Roms

Gen 1

Gen 2

Gen 3

Gen 4

Gen 5

All Gens