Age | Commit message (Collapse) | Author |
|
Transposing non-square images would work over the expected width, rather than the current width (the expected height). This never came up since transposed images are typically square.
|
|
This prevented pokered from building if the file "baserom.gbc" did not exist.
|
|
pokered: pic de/compression.
|
|
Before, converting a .2bpp.lz file required calling decompress and convert_to_png
on the compressed and decompressed files respectively.
gfx.py unlz {}.lz
gfx.py png {}
Putting a .lz file into convert_to_png would raise an exception.
Instead, passing compressed graphics into convert_to_png will decompress them first.
This skips the (now optional) manual decompress step.
|
|
This allows transposed images to be grouped together (e.g. animations).
|
|
https://github.com/magical/pokemon-sprites-rby to python 2.7.
|
|
|
|
Also fix a bug where images smaller than a tile are not converted at all.
|
|
Eliminates repeated tiles and also spits out a tilemap respectively.
One-way for now. Likely to be used in pokered, but useful in its own right.
|
|
|
|
|
|
Image metadata and simpler gfx.py usage
|
|
Straightforward label handling in crystal.py.
|
|
- Use argparse and less redundant commands.
- Make .lz independent of content. Allows tilemaps to not be images.
- Add .[w]x[h] filename argument for transposed images.
- Add .interleave filename argument for 8x16 sprites.
- Refactor some conversion code.
|
|
Some images do not occupy a full tile.
In pokered, gfx/minimize_pic.1bpp is 8x5. This is still rectangular.
Previously, converting this image would cause an error.
|
|
png has some incompatibilities with 2bpp. Among them:
- 2bpp is tiled, and can be arranged arbitrarily
- 2bpp does not have associated palette data
- png must be rectangular
- png must have specific dimensions
The requirements for an image vary, and are unwritten. One conversion method will not work for all images.
To resolve these conflicts metadata can be attached to images and related data.
So as to not create additional files without changing the file content, the filename is used.
Usage: metadata is defined as pseudoextensions.
.w<width>
- force width to <width> px
.h<height>
- force height to <height> px
.t<num>
- pad the image by <num> tiles so the resulting png can be rectangular
- remove said tiles when converting back to 2bpp
Example:
gfx/title/logo.w160.t4.{lz,2bpp,png}
- width 160px
- pad by 4 tiles
|
|
Don't return an address and call it a label.
|
|
|
|
PointerLabelParam.to_asm() returns a label by default.
If no label exists, instead return a bank and address.
This will not compile (maybe it ought to), but it
simplifies debugging.
|
|
Macro handling in read_bss_sections.
|
|
- Pass a constants dict into eval instead of using globals
- Read same-line labels and tokens
|
|
This doesn't read same-line tokens after labels yet.
|
|
crystal: use a 16-bit PokemonParam for event scripting command `cry`
|
|
fixes 2a44f6e4
|
|
Dump and format all types of sound data correctly.
|
|
Merge some older commits that never made it into pull requests
|
|
Conflicts:
pokemontools/map_editor.py
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Drastically improves execution time.
|
|
sound takes a word for frequency, and noise takes a byte
|
|
|
|
|
|
|
|
|
|
preprocessor: rgbasm "EQUS" takes string literals
|
|
|
|
map_editor: allow saving new maps + save file dialog
|
|
|
|
saves to newmap.asm by default
|
|
* event command macro storetext actually took one param
* PointerLabel{Before,After}Bank now take a label instead of the redundant BANK(label), label
* use the from_asm() method for all macros
* no more macro logic in the preprocessor
* read and write RGB macros for palettes instead of binary chunks
* battle animation macros
|