Hejsil / pokemon-randomizer

A Pokémon Rom randomizer tool written in Zig
The Unlicense
13 stars 0 forks source link
pokemon romhacking zig

pokemon-randomizer

This project is no longer maintained and most of the code has been migrated to the TM35-Metronome project, which aims to be a set of simple tools for hacking Pokémon roms.

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 :heavy_check_mark:
Sapphire :heavy_check_mark:
Emerald :heavy_check_mark:
Fire Red :heavy_check_mark:
Leaf Green :heavy_check_mark:
Diamon :heavy_check_mark:
Pearl :heavy_check_mark:
Platinum :heavy_check_mark:
Heart Gold :heavy_check_mark:
Soul Silver :heavy_check_mark:
Black :heavy_check_mark:
White :heavy_check_mark:
Black 2 :heavy_check_mark:
White 2 :heavy_check_mark:

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:

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