summaryrefslogtreecommitdiff
path: root/pokemontools
AgeCommit message (Collapse)Author
2014-11-02Left a scalpel in the patient.yenatch
"whoops"
2014-11-01More lenient palette handling.yenatch
Truncate colors in a palette beyond the limit of 4. Make palette sorting more accurate by taking the sum of the hues rather than by luminance. Ultimately, palette order is up to the whim of whoever was drawing in the tile editor at the time, but this is a reasonable estimation.
2014-11-01BSSReader: Fix eval inserting __builtins__ into self.constants.yenatch
Eval should really not be used in the first place, but at least it works again. Fixes 82b78e5c7969aebb797f35a58577dd0afb2c2f38, which replaced the constants_to_dict method with BSSReader.
2014-10-28Refactor the de/compressor.yenatch
Speed, readability, accuracy and compression are all improved. Also fix an off-by-one error in repeat commands in the compressor.
2014-10-28audio: Expose header reads via separate functions.yenatch
2014-10-28Fix the output of PointerLabelParam.to_asm.yenatch
Accidentally forgot to zfill either half of pointer_part, which would return malformed addresses. Fixes de39f7c6ff487f02d1914cc4a3260817287207c5.
2014-10-02map_editor: Fix automatic graphics decompression.yenatch
2014-10-02Merge remote-tracking branch 'origin/master' into fix-map-editoryenatch
2014-10-02Fix the map editor.yenatch
The map editor can now be invoked in ipython: import extras.pokemontools.map_editor as ed app = ed.init() Then <app> can be modified on the fly to make up for lacking functionality. Also see app.map.crop(). Now works with all maps in both Red and Crystal. The version defaults to Crystal. To use with pokered, invoke from the command line: python extras/pokemontools/map_editor.py red Or in ipython: import extras.pokemontools.map_editor as ed app = ed.init(version='red') Also displays connections, but they're unaligned.
2014-10-02BSSReader now reads constants and variables.yenatch
This lets the map editor do cool things.
2014-09-24Add docstrings for IncludeReader methods.yenatch
2014-09-24Rewrite scan_includes.py. Add include paths.yenatch
2014-07-22Event commands "name" and "trainerclassname" take another argument.yenatch
2014-07-22Merge remote-tracking branch 'kanzure/master'yenatch
2014-07-22Event command loadwilddata takes a third argument.yenatch
2014-07-22The checkflag command family uses engine flags.yenatch
2014-06-15gfx: Let .wxh filename arguments exceed 9.yenatch
Nothing needs this yet, but chances are it'll happen.
2014-06-10Update Red music commandsU-Fish-PC\Daniel
2014-06-02Merge remote-tracking branch 'yenatch/master'yenatch
Conflicts: pokemontools/gfx.py
2014-06-02Rewrite the lz compressor.yenatch
2014-05-03gfx.py: Forgot to add rom_offset.yenatch
2014-05-02Refactor gfx.py to use bytearrays. Fix some graphics dumping functions.yenatch
2014-04-19Transpose images by height from 2bpp to png and width from png to 2bpp.yenatch
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.
2014-04-16gfx: Don't try to load baserom.gbc unless it's actually being used.yenatch
This prevented pokered from building if the file "baserom.gbc" did not exist.
2014-04-15gfx: Decompress graphics that can be converted to png.yenatch
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.
2014-04-15gfx: Transpose blocks of images instead of only the first block.yenatch
This allows transposed images to be grouped together (e.g. animations).
2014-04-14Clearer explanation for porting ↵yenatch
https://github.com/magical/pokemon-sprites-rby to python 2.7.
2014-04-06Optimize pic compression to be 50% faster.yenatch
2014-04-05gfx: Don't pad images smaller than a tile.yenatch
Also fix a bug where images smaller than a tile are not converted at all.
2014-04-05Add "norepeat" and "arrange" image attributes.yenatch
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.
2014-04-051:1 conversion for pics.yenatch
2014-04-03pokered: pic de/compression.yenatch
2014-03-28gfx: Redo command-line interface, format handling, filename arguments.yenatch
- 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.
2014-03-23gfx: Prefer heights not divisible by 8, rather than forcing them.yenatch
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.
2014-03-23gfx: Read image metadata from filenames where applicable.yenatch
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
2014-03-23get_label_for: Return a label or None.yenatch
Don't return an address and call it a label.
2014-03-23get_ram_label: Setup wram labels if they haven't been already.yenatch
2014-03-23PointerLabelParam: Return valid (or at least informative) arguments.yenatch
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.
2014-03-07Refactor read_bss_sections into a class.yenatch
- Pass a constants dict into eval instead of using globals - Read same-line labels and tokens
2014-03-05wram: Interpret rgbasm macros and fix token logic.yenatch
This doesn't read same-line tokens after labels yet.
2014-02-06crystal: use a 16-bit PokemonParam for event scripting command `cry`yenatch
fixes 2a44f6e4
2014-02-06Merge pull request #66 from yenatch/noiseBryan Bishop
Dump and format all types of sound data correctly.
2014-02-06Merge branch 'kanzure/master' into merge-old-commitsyenatch
Conflicts: pokemontools/map_editor.py
2014-02-06audio: Import sound names outside of functionsyenatch
2014-02-06audio: Docstrings for functions that didn't have any.yenatch
2014-02-06labels: exported labels are labels tooyenatch
2014-02-06crystal: unknownmusic0xdf -> togglesfxyenatch
2014-02-06audio: Don't use underscores in base labelsyenatch
2014-02-06audio: Add a comment to generate_crystal_sfx_pointers outputyenatch
2014-02-06audio: parse channel branches independently instead of running past the endyenatch