pokepinballrs/tools/gbagfx/oam_helper_scripts
Retnuhytnuob 450aa1c2a6
Some checks are pending
CI / build (push) Waiting to run
Gbagfx OAM chunk handling, with override support (#143)
* Add tooling support for graphics with 2^n chunking

* update to OAM handling, from 2n sizing

* Update assembly to use the hex, rather than music name, for ease of uese in decompme/m2C

* additional tools/examples

* graphics build, not currently compare matching.

* remove sprites.png

* working conversion in make file!

* stage/main folder done

* stage/misc folder done

* stage/ruby complete

* stage/sapphire updated

* base for remaining kinda-graphics; file name casing

* more name casing

* extract catch sprites

* remove special 6x4 handling from oam slicer; switched hed the 2 images to using non-oam 2x2 chunks. (net same, but allows the 6x4 to process normally when things like the whalmer are found)

* Palette info for the catch sprites, thanks to cyphgirl

* obliterate the old hatch-sprite code

* refactor segments to not have the base file name dependancy

* catch mon 1-9, horizontal layout

* rename the f param in the json for graphics

* casing cleanup?

* .

* possible fix for the out of date segment piece

* Replace graphic_cnvt_attrs.txt strategy with individually-generated makefile rules

* Don't specify tileCount

---------

Co-authored-by: Marcus Huderle <huderlem@gmail.com>
2026-02-08 14:17:19 -06:00
..
convert.py Gbagfx OAM chunk handling, with override support (#143) 2026-02-08 14:17:19 -06:00
init_gfx_json.py Gbagfx OAM chunk handling, with override support (#143) 2026-02-08 14:17:19 -06:00
prune.py Gbagfx OAM chunk handling, with override support (#143) 2026-02-08 14:17:19 -06:00
readme.txt Gbagfx OAM chunk handling, with override support (#143) 2026-02-08 14:17:19 -06:00
split_gfx.py Gbagfx OAM chunk handling, with override support (#143) 2026-02-08 14:17:19 -06:00

'init_gfx_json.py'
* For reading a folder and building an initial json file for the .4bpp files in it.
* This prepopulates a tilecount, which can be useful for ballpark sizing the height/width
* Run this in the folder with the graphics to be loaded into the json file
* If a file with a .gbapal with the same name as the .4bpp file exists, it will automatically load that in as that file's palette.


'convert.py'
* For reading a json graphics config file, and calling the conversion process as a loop.
* Called with convert.py {path to gbagfx} {path to json file} --direction {to-png or to-4bpp}
* Conversion uses the json settings for both direction of conversion, needing the mheight/mwidth/oam to handle some of these entries


'prune.py'
* For 'trimming' a number of blank tiles off the end of a .4bpp file, to account for those stray extra 0x20 * x bits at the end.
* This saves an original copy of the .4bpp file, which it uses as the base when re-running this script on the same file.
* Called with prune.py {path to .4bpp file} {tiles to remove}


'split_gfx'
* For splitting .4bpp files that are easier parsed as a series of sub images.
* This creates new files with the name being the {filename}_{suffix}.4bpp
* Called with split_gfx.py {path to file} {suffix} {tiles to skip} {tiles to take}
* Sample from pulling the link_gbasp segment out of sprites.4bpp (tool and byte file in the same folder being run from): 
   split_gfx.py sprites.4bpp link_gbasp 768 18
  *this creates a sprites_link_gbasp.4bpp file.