All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
decompile-secondary
command to decompile secondary tilesets (#17) -
-normalize-transparency
option for the decompile commands (37668ac)(b710078) -
-Wtile-index-out-of-range
for use with the decompile commands (#18) -
-Wpalette-index-out-of-range
for use with the decompile commands (#18) -
Options to disable generation of
metatiles.bin
andmetatile_attributes.bin
(#16)-disable-metatile-generation
and-disable-attribute-generation
-
Added support for
-best-branches=smart
pal assignment mode, which prunespopulated + 1
number of branches per vertex (#18)- assign config search matrix now tries smart prune before trying a constant prune
-
Fixed bug from issue Secondary tileset attributes aren't generated #1
-
-Wkey-frame-missing-assignment
now called-Wkey-frame-no-matching-tile
-
Subcommand help menus are much more refined, they now only show info relevant to the given subcommand (#51)
-
Build system overhaul, now using CMake (#62)
0.0.7 - 2024-01-07
-
Palette assignment parameter search matrix: users no longer have to fiddle with a bunch of annoying options to find something that builds. It should work automatically in the background. Some additional options related to this functionality have been added.
-
Added a
default-behavior
option to specify default metatile behavior for missingattributes.csv
entries -
Also added
default-terrain-type
anddefault-encounter-type
options -
Manual palette assignment options now have a
primary-
version for use withcompile-secondary
-
Updated libfmt dependency
-
Changed
prune-branches
option tobest-branches
, flag now works in reverse. I.e.best-branches
tells the palette assignment search algorithm to only save the N best branches at each node.
0.0.6 - 2023-09-23
-
Can now change default transparency color with
-transparency-color
option -
Customizable warning system using GNU-like warning flags
-
Basic decompile mode for primary tilesets (secondary tilesets and animation decompilation still a WIP)
-
Multiple palette assignment backends controllable via command line options (this system is still a WIP)
-
Lots of improved error messages
-
Behavior header is now mandatorily supplied on the command line
0.0.5 - 2023-08-18
-
Support for generating
metatile_attributes.bin
. Input path may contain anattributes.csv
file that defines non-default values for any metatiles that should have non-default attributes. Both Emerald/Ruby and Firered style attributes are supported. Additionally, the input path should contain ametatile_behaviors.h
file (I recommend you simply symlink your actual behavior header here) so that the attribute parser can understand the behavior macro names instead of working with hardcoded behavior values. -
Support for dual-layer tilesets. Supply the
-dual-layer
option, and Porytiles will automatically infer the layer type from your layer PNGs, and put that type into the generate attributes bin file. -
More warnings and errors, better printouts
-
Fieldmap configuration is a little different. Now, you can specify a target base game with the
-target-base-game
option (defaults topokeemerald
if not specified). Then, if your game uses adjusted fieldmap parameters, you can alter those with the fieldmap override options. E.g. to change the number of primary set palettes, use the-pals-primary-override
option. -
Animation generation now makes use of key frames. The key frame is the frame of tiles that you will use to reference an animated tile from within your layer PNGs. The key frame can be anything you want, as long as it is unique (note that each key frame tile must share a final hardware palette with the corresponding tiles in other frames, so you have a limitation there). You specify a key frame by putting
key.png
in your input anims folder. The key frame will not be compiled into the final anims folder, but you will see it present in yourtiles.png
.
0.0.4 - 2023-08-11
-
Support for generating compiled animated tiles. If input path contains an
anim
folder with properly formatted RGBA anim assets, it will generate ananim
folder in the output location with all anim frames correctly indexed. At the moment, the user must still manually enter the C code intileset_anims.{c,h}
to drive the actual animation. -
Colored output, more descriptive error messages
-
-Wall
and-Werror
flags to turn on some helpful compiler warnings
- Inputs are now provided in a given directory instead of as individual files
- Raw compilation mode
0.0.3 - 2023-07-23
- Support for secondary tilesets using the
--secondary
flag. Secondary tilesets must consume the layer PNGs for their paired primary set, but then the compiler can use that information to take advantage of all the typical secondary tilset optimizations (like sharing palettes and tiles)
0.0.2 - 2023-07-19
- Generate
metatiles.bin
in addition totiles.png
and pal files (for primary tilesets only)
- Complete algorithm overhaul from the
0.0.1
release - CLI has been updated significantly, please see the
--help
option for info
0.0.1 - 2023-06-12
Preview release.
- Basic functionality: Porytiles will allocate palettes and create an indexed tilesheet for most input images
- Basic palette priming support: Porytiles allows you to force the palette allocation algorithm to guarantee that specified colors will be in the same palette