Overworld tileset compiler for use with the pokeemerald
,
pokefirered
, and pokeruby
Pokémon
Generation 3 decompilation projects from pret
. Builds
Porymap-ready tilesets from RGBA (or indexed) tile assets.
Please see the Releases for the latest stable version, or check out
the trunk
branch to get the upcoming changes listed in the
changelog.
For detailed documentation about Porytiles features and internal workings, please see the wiki.
Porytiles makes importing from-scratch tilesets (or editing existing tilesets) easier than ever. Think of it this way:
just like Poryscript takes a .script
file and generates a corresponding .inc
file as part of your build, Porytiles takes an source folder containing RGBA (or indexed) tile assets and generates a
corresponding metatiles.bin
, metatile_attributes.bin
, indexed tiles.png
, indexed anim
folder, and a populated
palettes
folder -- all as part of your build!
For more info, please see this wiki page which explains what Porytiles can do in more detail.
Clang+LLVM 16 is the "official" Porytiles build toolchain -- the Porytiles formatting/coverage/tidy scripts rely on LLVM tools to function. However, most reasonable C++ compilers should be able to build the executable, assuming they have support for the C++20 standard. In addition to Clang+LLVM, the Porytiles CI pipeline runs a build job with GCC 13. I try to maintain compatibility with that compiler, should you prefer it over Clang+LLVM.
First, clone and build Porytiles. (Alternatively, you can skip the build step by downloading a release binary from the Releases tab.)
git clone https://github.com/grunt-lucas/porytiles.git
cd porytiles
CXX=clang++ make check
./release/bin/porytiles --help
Once you've cloned and built Porytiles, try the demo steps located at this wiki page.