summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--Makefile13
-rw-r--r--constants/event_flags.asm131
-rw-r--r--constants/pokemon_data_constants.asm10
-rw-r--r--constants/scgb_constants.asm2
-rw-r--r--constants/text_constants.asm3
-rw-r--r--data/battle/critical_hit_chances.asm14
-rw-r--r--data/events/happiness_probabilities.asm14
-rw-r--r--data/maps/sgb_roof_pal_inds.asm2
-rw-r--r--data/moves/magnitude_power.asm14
-rw-r--r--data/moves/present_power.asm6
-rw-r--r--data/pokemon/evos_attacks.asm1
-rw-r--r--data/pokemon/unown_words.asm2
-rw-r--r--data/predef_pointers.asm2
-rw-r--r--engine/battle/ai/scoring.asm69
-rw-r--r--engine/battle/core.asm2
-rw-r--r--engine/battle/trainer_huds.asm2
-rw-r--r--engine/battle_anims/bg_effects.asm2
-rw-r--r--engine/events/happiness_egg.asm2
-rw-r--r--engine/events/pokerus/pokerus.asm30
-rw-r--r--engine/games/slot_machine.asm42
-rw-r--r--engine/gfx/color.asm10
-rw-r--r--engine/gfx/dma_transfer.asm4
-rw-r--r--engine/gfx/load_font.asm48
-rw-r--r--engine/gfx/mon_icons.asm2
-rw-r--r--engine/gfx/sgb_layouts.asm4
-rw-r--r--engine/items/print_item_description.asm2
-rw-r--r--engine/items/tmhm.asm8
-rw-r--r--engine/link/init_list.asm1
-rw-r--r--engine/link/link.asm4
-rw-r--r--engine/link/link_trade.asm4
-rw-r--r--engine/link/mystery_gift_2.asm2
-rw-r--r--engine/menus/menu_2.asm3
-rw-r--r--engine/menus/savemenu_copytilemapatonce.asm25
-rw-r--r--engine/menus/scrolling_menu.asm4
-rw-r--r--engine/menus/trainer_card.asm11
-rw-r--r--engine/movie/credits.asm4
-rw-r--r--engine/overworld/player_movement.asm13
-rw-r--r--engine/overworld/player_object.asm2
-rw-r--r--engine/phone/phonering_copytilemapatonce.asm15
-rw-r--r--engine/pokedex/pokedex.asm6
-rw-r--r--engine/pokemon/mon_menu.asm2
-rw-r--r--engine/pokemon/party_menu.asm4
-rw-r--r--engine/pokemon/print_move_description.asm4
-rw-r--r--gfx/battle/dude.2bpp.lz.d13fb490bin320 -> 0 bytes
-rw-r--r--gfx/battle_anims/aeroblast.2bpp.lz.2f07c4eabin128 -> 0 bytes
-rw-r--r--gfx/battle_anims/angels.2bpp.lz.b026d81ebin368 -> 0 bytes
-rw-r--r--gfx/battle_anims/beam.2bpp.lz.80b6d613bin144 -> 0 bytes
-rw-r--r--gfx/battle_anims/bubble.2bpp.lz.03b8ac99bin160 -> 0 bytes
-rw-r--r--gfx/battle_anims/charge.2bpp.lz.95d3ea98bin112 -> 0 bytes
-rw-r--r--gfx/battle_anims/cut.2bpp.lz.03d343edbin96 -> 0 bytes
-rw-r--r--gfx/battle_anims/egg.2bpp.lz.41dd1a53bin128 -> 0 bytes
-rw-r--r--gfx/battle_anims/explosion.2bpp.lz.55fc334fbin96 -> 0 bytes
-rw-r--r--gfx/battle_anims/fire.2bpp.lz.d7701cdabin96 -> 0 bytes
-rw-r--r--gfx/battle_anims/flower.2bpp.lz.1bc2e9d2bin96 -> 0 bytes
-rw-r--r--gfx/battle_anims/globe.2bpp.lz.710dbb8ebin240 -> 0 bytes
-rw-r--r--gfx/battle_anims/haze.2bpp.lz.91424607bin144 -> 0 bytes
-rw-r--r--gfx/battle_anims/hit.2bpp.lz.2b3c83f2bin240 -> 0 bytes
-rw-r--r--gfx/battle_anims/horn.2bpp.lz.48908aaebin96 -> 0 bytes
-rw-r--r--gfx/battle_anims/ice.2bpp.lz.664d900fbin64 -> 0 bytes
-rw-r--r--gfx/battle_anims/lightning.2bpp.lz.a88fc131bin320 -> 0 bytes
-rw-r--r--gfx/battle_anims/misc.2bpp.lz.4b20c3d7bin416 -> 0 bytes
-rw-r--r--gfx/battle_anims/noise.2bpp.lz.acb4a76ebin192 -> 0 bytes
-rw-r--r--gfx/battle_anims/objects.2bpp.lz.83f812debin224 -> 0 bytes
-rw-r--r--gfx/battle_anims/plant.2bpp.lz.4a00c417bin224 -> 0 bytes
-rw-r--r--gfx/battle_anims/poison.2bpp.lz.fc7dc9c1bin112 -> 0 bytes
-rw-r--r--gfx/battle_anims/pokeball.2bpp.lz.c58f7e01bin80 -> 0 bytes
-rw-r--r--gfx/battle_anims/powder.2bpp.lz.bfd566bbbin32 -> 0 bytes
-rw-r--r--gfx/battle_anims/psychic.2bpp.lz.d80f285cbin112 -> 0 bytes
-rw-r--r--gfx/battle_anims/reflect.2bpp.lz.9a9c822dbin112 -> 0 bytes
-rw-r--r--gfx/battle_anims/rocks.2bpp.lz.73d0153ebin240 -> 0 bytes
-rw-r--r--gfx/battle_anims/rope.2bpp.lz.209d63ddbin192 -> 0 bytes
-rw-r--r--gfx/battle_anims/sand.2bpp.lz.c87c0eaabin96 -> 0 bytes
-rw-r--r--gfx/battle_anims/shapes.2bpp.lz.262d77f0bin160 -> 0 bytes
-rw-r--r--gfx/battle_anims/shine.2bpp.lz.5fb79056bin224 -> 0 bytes
-rw-r--r--gfx/battle_anims/skyattack.2bpp.lz.31738ab8bin352 -> 0 bytes
-rw-r--r--gfx/battle_anims/smoke.2bpp.lz.aa05905ebin144 -> 0 bytes
-rw-r--r--gfx/battle_anims/speed.2bpp.lz.1732b364bin80 -> 0 bytes
-rw-r--r--gfx/battle_anims/status.2bpp.lz.0c0aa13ebin288 -> 0 bytes
-rw-r--r--gfx/battle_anims/water.2bpp.lz.7b52ed12bin208 -> 0 bytes
-rw-r--r--gfx/battle_anims/wave.2bpp.lz.bee99402bin160 -> 0 bytes
-rw-r--r--gfx/battle_anims/web.2bpp.lz.80e3d480bin128 -> 0 bytes
-rw-r--r--gfx/battle_anims/whip.2bpp.lz.d80d8d6ebin128 -> 0 bytes
-rw-r--r--gfx/battle_anims/wind.2bpp.lz.5a785180bin192 -> 0 bytes
-rw-r--r--gfx/card_flip/card_flip_1.2bpp.lz.86f267e8bin402 -> 0 bytes
-rw-r--r--gfx/card_flip/card_flip_2.2bpp.lz.6a6c671dbin612 -> 0 bytes
-rw-r--r--gfx/card_flip/card_flip_3.2bpp.lz.53679db7bin27 -> 0 bytes
-rw-r--r--gfx/diploma/diploma.2bpp.lz.7b56f7e5bin1094 -> 0 bytes
-rw-r--r--gfx/dummy_game/dummy_game.2bpp.lz.821ba441bin368 -> 0 bytes
-rw-r--r--gfx/intro/background.2bpp.lz.b58b3984bin496 -> 0 bytes
-rw-r--r--gfx/intro/background.attrmap.lz.9f90366abin16 -> 0 bytes
-rw-r--r--gfx/intro/background.tilemap.lz.4c7562eebin96 -> 0 bytes
-rw-r--r--gfx/intro/crystal_unowns.2bpp.lz.e7f8ad51bin256 -> 0 bytes
-rw-r--r--gfx/intro/crystal_unowns.attrmap.lz.1bfc5a89bin48 -> 0 bytes
-rw-r--r--gfx/intro/crystal_unowns.tilemap.lz.e4772015bin64 -> 0 bytes
-rw-r--r--gfx/intro/logo.2bpp.lz.e03ee257bin1088 -> 0 bytes
-rw-r--r--gfx/intro/pichu_wooper.2bpp.lz.4bccf7f4bin848 -> 0 bytes
-rw-r--r--gfx/intro/pulse.2bpp.lz.9fb06bb6bin144 -> 0 bytes
-rw-r--r--gfx/intro/suicune_back.2bpp.lz.c6f529b0bin928 -> 0 bytes
-rw-r--r--gfx/intro/suicune_back.attrmap.lz.18e3115fbin80 -> 0 bytes
-rw-r--r--gfx/intro/suicune_back.tilemap.lz.7b59259dbin208 -> 0 bytes
-rw-r--r--gfx/intro/suicune_close.2bpp.lz.7e362923bin1056 -> 0 bytes
-rw-r--r--gfx/intro/suicune_close.attrmap.lz.bb066632bin96 -> 0 bytes
-rw-r--r--gfx/intro/suicune_close.tilemap.lz.bc182264bin208 -> 0 bytes
-rw-r--r--gfx/intro/suicune_jump.2bpp.lz.1b09fb64bin1216 -> 0 bytes
-rw-r--r--gfx/intro/suicune_jump.attrmap.lz.911a1acebin16 -> 0 bytes
-rw-r--r--gfx/intro/suicune_jump.tilemap.lz.2717d106bin96 -> 0 bytes
-rw-r--r--gfx/intro/suicune_run.2bpp.lz.ef999ad2bin976 -> 0 bytes
-rw-r--r--gfx/intro/unown_a.attrmap.lz.c2341875bin16 -> 0 bytes
-rw-r--r--gfx/intro/unown_a.tilemap.lz.54d5b74bbin64 -> 0 bytes
-rw-r--r--gfx/intro/unown_back.2bpp.lz.740c4d28bin320 -> 0 bytes
-rw-r--r--gfx/intro/unown_hi.attrmap.lz.bed1ff6dbin32 -> 0 bytes
-rw-r--r--gfx/intro/unown_hi.tilemap.lz.c8756972bin80 -> 0 bytes
-rw-r--r--gfx/intro/unowns.2bpp.lz.3a1f185ebin1008 -> 0 bytes
-rw-r--r--gfx/intro/unowns.attrmap.lz.a9cbcbcabin80 -> 0 bytes
-rw-r--r--gfx/intro/unowns.tilemap.lz.f12ed6d9bin192 -> 0 bytes
-rw-r--r--gfx/lz.mk67
-rw-r--r--gfx/mobile/electro_ball.2bpp.lz.3eaf004fbin676 -> 0 bytes
-rw-r--r--gfx/mobile/mobile_trade.2bpp.lz.aad8592bbin576 -> 0 bytes
-rw-r--r--gfx/mobile/mobile_trade.attrmap.lz.ea4f2cbebin80 -> 0 bytes
-rw-r--r--gfx/mobile/mobile_trade.tilemap.lz.12882d37bin192 -> 0 bytes
-rw-r--r--gfx/mobile/mobile_trade_sprites.2bpp.lz.eef1e11dbin128 -> 0 bytes
-rw-r--r--gfx/mobile/pichu_animated.2bpp.lz.5d6d2ad4bin2190 -> 0 bytes
-rw-r--r--gfx/new_game/shrink1.2bpp.lz.d4443930bin144 -> 0 bytes
-rw-r--r--gfx/new_game/shrink2.2bpp.lz.3f58480abin64 -> 0 bytes
-rw-r--r--gfx/pc/pc.2bpp.lz.2201c1aabin132 -> 0 bytes
-rw-r--r--gfx/player/chris_back.2bpp.lz.0312ddcebin400 -> 0 bytes
-rw-r--r--gfx/pokedex/pokedex.2bpp.lz.3726dd3fbin418 -> 0 bytes
-rw-r--r--gfx/pokedex/pokedex_sgb.2bpp.lz.82bc0a7bbin420 -> 0 bytes
-rw-r--r--gfx/pokedex/question_mark.2bpp.lz.6e639380bin144 -> 0 bytes
-rw-r--r--gfx/pokedex/slowpoke.2bpp.lz.49a91b42bin884 -> 0 bytes
-rw-r--r--gfx/pokegear/pokegear.2bpp.lz.42315ab4bin740 -> 0 bytes
-rw-r--r--gfx/pokegear/pokegear_sprites.2bpp.lz.7a3cc91fbin48 -> 0 bytes
-rw-r--r--gfx/pokegear/town_map.2bpp.lz.c0587c86bin772 -> 0 bytes
-rw-r--r--gfx/pokemon/abra/back.2bpp.lz.9ac09a32bin335 -> 0 bytes
-rw-r--r--gfx/pokemon/abra/front.animated.2bpp.lz.12e14d9abin459 -> 0 bytes
-rw-r--r--gfx/pokemon/aerodactyl/back.2bpp.lz.e2da1f61bin334 -> 0 bytes
-rw-r--r--gfx/pokemon/aerodactyl/front.animated.2bpp.lz.3bceb33ebin849 -> 0 bytes
-rw-r--r--gfx/pokemon/aipom/back.2bpp.lz.597d4ddabin333 -> 0 bytes
-rw-r--r--gfx/pokemon/aipom/front.animated.2bpp.lz.fba7c862bin461 -> 0 bytes
-rw-r--r--gfx/pokemon/alakazam/back.2bpp.lz.75e7e1c6bin461 -> 0 bytes
-rw-r--r--gfx/pokemon/alakazam/front.animated.2bpp.lz.b246e050bin985 -> 0 bytes
-rw-r--r--gfx/pokemon/ampharos/back.2bpp.lz.06af98c8bin266 -> 0 bytes
-rw-r--r--gfx/pokemon/ampharos/front.animated.2bpp.lz.4b908a28bin721 -> 0 bytes
-rw-r--r--gfx/pokemon/arbok/back.2bpp.lz.7b18cb93bin279 -> 0 bytes
-rw-r--r--gfx/pokemon/arbok/front.animated.2bpp.lz.1589a977bin1009 -> 0 bytes
-rw-r--r--gfx/pokemon/arcanine/back.2bpp.lz.f5b35ebfbin393 -> 0 bytes
-rw-r--r--gfx/pokemon/arcanine/front.animated.2bpp.lz.5ae8eff3bin1023 -> 0 bytes
-rw-r--r--gfx/pokemon/ariados/back.2bpp.lz.9fb1c3fcbin345 -> 0 bytes
-rw-r--r--gfx/pokemon/ariados/front.animated.2bpp.lz.5ac5c83cbin747 -> 0 bytes
-rw-r--r--gfx/pokemon/articuno/back.2bpp.lz.c263c2aabin256 -> 0 bytes
-rw-r--r--gfx/pokemon/articuno/front.animated.2bpp.lz.650aef29bin1111 -> 0 bytes
-rw-r--r--gfx/pokemon/azumarill/back.2bpp.lz.f7fa0db9bin264 -> 0 bytes
-rw-r--r--gfx/pokemon/azumarill/front.animated.2bpp.lz.cc9fd2edbin765 -> 0 bytes
-rw-r--r--gfx/pokemon/bayleef/back.2bpp.lz.c4783e65bin407 -> 0 bytes
-rw-r--r--gfx/pokemon/bayleef/front.animated.2bpp.lz.147649f2bin703 -> 0 bytes
-rw-r--r--gfx/pokemon/beedrill/back.2bpp.lz.dfd6a87bbin394 -> 0 bytes
-rw-r--r--gfx/pokemon/beedrill/front.animated.2bpp.lz.1b5d3117bin1038 -> 0 bytes
-rw-r--r--gfx/pokemon/bellossom/back.2bpp.lz.10d31691bin350 -> 0 bytes
-rw-r--r--gfx/pokemon/bellossom/front.animated.2bpp.lz.289eaecfbin678 -> 0 bytes
-rw-r--r--gfx/pokemon/bellsprout/back.2bpp.lz.9dacbda8bin287 -> 0 bytes
-rw-r--r--gfx/pokemon/bellsprout/front.animated.2bpp.lz.44df413dbin443 -> 0 bytes
-rw-r--r--gfx/pokemon/blastoise/back.2bpp.lz.b90e8d5abin363 -> 0 bytes
-rw-r--r--gfx/pokemon/blastoise/front.animated.2bpp.lz.3899aed0bin1084 -> 0 bytes
-rw-r--r--gfx/pokemon/blissey/back.2bpp.lz.d2763673bin268 -> 0 bytes
-rw-r--r--gfx/pokemon/blissey/front.animated.2bpp.lz.04f2353abin867 -> 0 bytes
-rw-r--r--gfx/pokemon/bulbasaur/back.2bpp.lz.84f8d1c4bin290 -> 0 bytes
-rw-r--r--gfx/pokemon/bulbasaur/front.animated.2bpp.lz.04627405bin392 -> 0 bytes
-rw-r--r--gfx/pokemon/butterfree/back.2bpp.lz.a8543d86bin463 -> 0 bytes
-rw-r--r--gfx/pokemon/butterfree/front.animated.2bpp.lz.33ba7e24bin909 -> 0 bytes
-rw-r--r--gfx/pokemon/caterpie/back.2bpp.lz.57e32015bin284 -> 0 bytes
-rw-r--r--gfx/pokemon/caterpie/front.animated.2bpp.lz.ec4f7cb8bin313 -> 0 bytes
-rw-r--r--gfx/pokemon/celebi/back.2bpp.lz.17ea5fe6bin420 -> 0 bytes
-rw-r--r--gfx/pokemon/celebi/front.animated.2bpp.lz.16f259a5bin496 -> 0 bytes
-rw-r--r--gfx/pokemon/chansey/back.2bpp.lz.14d90ba1bin304 -> 0 bytes
-rw-r--r--gfx/pokemon/chansey/front.animated.2bpp.lz.158fc381bin634 -> 0 bytes
-rw-r--r--gfx/pokemon/charizard/back.2bpp.lz.f04ac62cbin360 -> 0 bytes
-rw-r--r--gfx/pokemon/charizard/front.animated.2bpp.lz.0068f820bin997 -> 0 bytes
-rw-r--r--gfx/pokemon/charmander/back.2bpp.lz.bcb371c6bin301 -> 0 bytes
-rw-r--r--gfx/pokemon/charmander/front.animated.2bpp.lz.704bfc17bin528 -> 0 bytes
-rw-r--r--gfx/pokemon/charmeleon/back.2bpp.lz.cf73268fbin388 -> 0 bytes
-rw-r--r--gfx/pokemon/charmeleon/front.animated.2bpp.lz.0e629968bin778 -> 0 bytes
-rw-r--r--gfx/pokemon/chikorita/back.2bpp.lz.27a21938bin307 -> 0 bytes
-rw-r--r--gfx/pokemon/chikorita/front.animated.2bpp.lz.18de5fe9bin612 -> 0 bytes
-rw-r--r--gfx/pokemon/chinchou/back.2bpp.lz.ea061e91bin306 -> 0 bytes
-rw-r--r--gfx/pokemon/chinchou/front.animated.2bpp.lz.901aa690bin535 -> 0 bytes
-rw-r--r--gfx/pokemon/clefable/back.2bpp.lz.d57ec142bin428 -> 0 bytes
-rw-r--r--gfx/pokemon/clefable/front.animated.2bpp.lz.59d160adbin666 -> 0 bytes
-rw-r--r--gfx/pokemon/clefairy/back.2bpp.lz.f8aff3ddbin351 -> 0 bytes
-rw-r--r--gfx/pokemon/clefairy/front.animated.2bpp.lz.0918b60dbin454 -> 0 bytes
-rw-r--r--gfx/pokemon/cleffa/back.2bpp.lz.ea9b3d08bin252 -> 0 bytes
-rw-r--r--gfx/pokemon/cleffa/front.animated.2bpp.lz.49630c80bin435 -> 0 bytes
-rw-r--r--gfx/pokemon/cloyster/back.2bpp.lz.5ad194b3bin458 -> 0 bytes
-rw-r--r--gfx/pokemon/cloyster/front.animated.2bpp.lz.fe85709fbin908 -> 0 bytes
-rw-r--r--gfx/pokemon/corsola/back.2bpp.lz.2b6c7860bin307 -> 0 bytes
-rw-r--r--gfx/pokemon/corsola/front.animated.2bpp.lz.2e7905aabin559 -> 0 bytes
-rw-r--r--gfx/pokemon/crobat/back.2bpp.lz.30850b2ebin269 -> 0 bytes
-rw-r--r--gfx/pokemon/crobat/front.animated.2bpp.lz.dc386ff0bin638 -> 0 bytes
-rw-r--r--gfx/pokemon/croconaw/back.2bpp.lz.a605c82fbin399 -> 0 bytes
-rw-r--r--gfx/pokemon/croconaw/front.animated.2bpp.lz.a797986dbin844 -> 0 bytes
-rw-r--r--gfx/pokemon/cubone/back.2bpp.lz.bd849dfbbin394 -> 0 bytes
-rw-r--r--gfx/pokemon/cubone/front.animated.2bpp.lz.0d63a3a4bin527 -> 0 bytes
-rw-r--r--gfx/pokemon/cyndaquil/back.2bpp.lz.68baeeebbin410 -> 0 bytes
-rw-r--r--gfx/pokemon/cyndaquil/front.animated.2bpp.lz.0d5dce8dbin579 -> 0 bytes
-rw-r--r--gfx/pokemon/delibird/back.2bpp.lz.11463d76bin347 -> 0 bytes
-rw-r--r--gfx/pokemon/delibird/front.animated.2bpp.lz.a3126c48bin594 -> 0 bytes
-rw-r--r--gfx/pokemon/dewgong/back.2bpp.lz.4e1fef76bin236 -> 0 bytes
-rw-r--r--gfx/pokemon/dewgong/front.animated.2bpp.lz.cc53359cbin892 -> 0 bytes
-rw-r--r--gfx/pokemon/diglett/back.2bpp.lz.31d8caccbin191 -> 0 bytes
-rw-r--r--gfx/pokemon/diglett/front.animated.2bpp.lz.52b0361ebin349 -> 0 bytes
-rw-r--r--gfx/pokemon/ditto/back.2bpp.lz.b01a9d91bin256 -> 0 bytes
-rw-r--r--gfx/pokemon/ditto/front.animated.2bpp.lz.344c90fdbin352 -> 0 bytes
-rw-r--r--gfx/pokemon/dodrio/back.2bpp.lz.a5480e88bin455 -> 0 bytes
-rw-r--r--gfx/pokemon/dodrio/front.animated.2bpp.lz.2aaff569bin881 -> 0 bytes
-rw-r--r--gfx/pokemon/doduo/back.2bpp.lz.05a57563bin404 -> 0 bytes
-rw-r--r--gfx/pokemon/doduo/front.animated.2bpp.lz.89c4acbdbin428 -> 0 bytes
-rw-r--r--gfx/pokemon/donphan/back.2bpp.lz.5067b370bin233 -> 0 bytes
-rw-r--r--gfx/pokemon/donphan/front.animated.2bpp.lz.9e1b7048bin819 -> 0 bytes
-rw-r--r--gfx/pokemon/dragonair/back.2bpp.lz.9b6fda5bbin307 -> 0 bytes
-rw-r--r--gfx/pokemon/dragonair/front.animated.2bpp.lz.bb9ee373bin646 -> 0 bytes
-rw-r--r--gfx/pokemon/dragonite/back.2bpp.lz.c408806fbin279 -> 0 bytes
-rw-r--r--gfx/pokemon/dragonite/front.animated.2bpp.lz.b914dfd9bin860 -> 0 bytes
-rw-r--r--gfx/pokemon/dratini/back.2bpp.lz.be4d6a2abin249 -> 0 bytes
-rw-r--r--gfx/pokemon/dratini/front.animated.2bpp.lz.838e4248bin427 -> 0 bytes
-rw-r--r--gfx/pokemon/drowzee/back.2bpp.lz.55367f5abin251 -> 0 bytes
-rw-r--r--gfx/pokemon/drowzee/front.animated.2bpp.lz.1f23711abin684 -> 0 bytes
-rw-r--r--gfx/pokemon/dugtrio/back.2bpp.lz.e821a89cbin334 -> 0 bytes
-rw-r--r--gfx/pokemon/dugtrio/front.animated.2bpp.lz.5c9e668cbin651 -> 0 bytes
-rw-r--r--gfx/pokemon/dunsparce/back.2bpp.lz.aee69114bin234 -> 0 bytes
-rw-r--r--gfx/pokemon/dunsparce/front.animated.2bpp.lz.04ea863cbin606 -> 0 bytes
-rw-r--r--gfx/pokemon/eevee/back.2bpp.lz.bc34ce62bin380 -> 0 bytes
-rw-r--r--gfx/pokemon/eevee/front.animated.2bpp.lz.04e72b48bin465 -> 0 bytes
-rw-r--r--gfx/pokemon/egg/front.animated.2bpp.lz.7b468effbin382 -> 0 bytes
-rw-r--r--gfx/pokemon/egg/unused_front.2bpp.lz.a5b6cbfabin146 -> 0 bytes
-rw-r--r--gfx/pokemon/ekans/back.2bpp.lz.671d14d9bin356 -> 0 bytes
-rw-r--r--gfx/pokemon/ekans/front.animated.2bpp.lz.018a1c72bin575 -> 0 bytes
-rw-r--r--gfx/pokemon/electabuzz/back.2bpp.lz.e97330febin386 -> 0 bytes
-rw-r--r--gfx/pokemon/electabuzz/front.animated.2bpp.lz.381e1c6ebin793 -> 0 bytes
-rw-r--r--gfx/pokemon/electrode/back.2bpp.lz.874e1f1cbin246 -> 0 bytes
-rw-r--r--gfx/pokemon/electrode/front.animated.2bpp.lz.d7943ad8bin369 -> 0 bytes
-rw-r--r--gfx/pokemon/elekid/back.2bpp.lz.227a1b23bin421 -> 0 bytes
-rw-r--r--gfx/pokemon/elekid/front.animated.2bpp.lz.3bbb6b61bin702 -> 0 bytes
-rw-r--r--gfx/pokemon/entei/back.2bpp.lz.d1e1986abin340 -> 0 bytes
-rw-r--r--gfx/pokemon/entei/front.animated.2bpp.lz.ebaf8024bin1093 -> 0 bytes
-rw-r--r--gfx/pokemon/espeon/back.2bpp.lz.0e77f26ebin333 -> 0 bytes
-rw-r--r--gfx/pokemon/espeon/front.animated.2bpp.lz.069f57ecbin606 -> 0 bytes
-rw-r--r--gfx/pokemon/exeggcute/back.2bpp.lz.060c38b0bin358 -> 0 bytes
-rw-r--r--gfx/pokemon/exeggcute/front.animated.2bpp.lz.578a4722bin808 -> 0 bytes
-rw-r--r--gfx/pokemon/exeggutor/back.2bpp.lz.e012643ebin472 -> 0 bytes
-rw-r--r--gfx/pokemon/exeggutor/front.animated.2bpp.lz.3915d572bin772 -> 0 bytes
-rw-r--r--gfx/pokemon/farfetch_d/back.2bpp.lz.6f28ebc4bin411 -> 0 bytes
-rw-r--r--gfx/pokemon/farfetch_d/front.animated.2bpp.lz.a4ae9393bin712 -> 0 bytes
-rw-r--r--gfx/pokemon/fearow/back.2bpp.lz.a7a39118bin249 -> 0 bytes
-rw-r--r--gfx/pokemon/fearow/front.animated.2bpp.lz.393b11d6bin998 -> 0 bytes
-rw-r--r--gfx/pokemon/feraligatr/back.2bpp.lz.f95abe99bin427 -> 0 bytes
-rw-r--r--gfx/pokemon/feraligatr/front.animated.2bpp.lz.fade72ccbin1177 -> 0 bytes
-rw-r--r--gfx/pokemon/flaaffy/back.2bpp.lz.461855e4bin369 -> 0 bytes
-rw-r--r--gfx/pokemon/flaaffy/front.animated.2bpp.lz.6a27aac3bin587 -> 0 bytes
-rw-r--r--gfx/pokemon/flareon/back.2bpp.lz.d58af0e5bin393 -> 0 bytes
-rw-r--r--gfx/pokemon/flareon/front.animated.2bpp.lz.7b68c716bin714 -> 0 bytes
-rw-r--r--gfx/pokemon/forretress/back.2bpp.lz.2b8e5f48bin147 -> 0 bytes
-rw-r--r--gfx/pokemon/forretress/front.animated.2bpp.lz.761b9f80bin646 -> 0 bytes
-rw-r--r--gfx/pokemon/furret/back.2bpp.lz.24792550bin358 -> 0 bytes
-rw-r--r--gfx/pokemon/furret/front.animated.2bpp.lz.f72a2758bin581 -> 0 bytes
-rw-r--r--gfx/pokemon/gastly/back.2bpp.lz.4078fa56bin250 -> 0 bytes
-rw-r--r--gfx/pokemon/gastly/front.animated.2bpp.lz.84148c1ebin766 -> 0 bytes
-rw-r--r--gfx/pokemon/gengar/back.2bpp.lz.5237ee63bin330 -> 0 bytes
-rw-r--r--gfx/pokemon/gengar/front.animated.2bpp.lz.65ddc6f5bin657 -> 0 bytes
-rw-r--r--gfx/pokemon/geodude/back.2bpp.lz.d5aa5e9fbin367 -> 0 bytes
-rw-r--r--gfx/pokemon/geodude/front.animated.2bpp.lz.d743f2c9bin361 -> 0 bytes
-rw-r--r--gfx/pokemon/girafarig/back.2bpp.lz.5dd68457bin360 -> 0 bytes
-rw-r--r--gfx/pokemon/girafarig/front.animated.2bpp.lz.76d809c4bin687 -> 0 bytes
-rw-r--r--gfx/pokemon/gligar/back.2bpp.lz.ee922122bin389 -> 0 bytes
-rw-r--r--gfx/pokemon/gligar/front.animated.2bpp.lz.4dcc41b3bin692 -> 0 bytes
-rw-r--r--gfx/pokemon/gloom/back.2bpp.lz.9a321f63bin394 -> 0 bytes
-rw-r--r--gfx/pokemon/gloom/front.animated.2bpp.lz.c6ef04a5bin588 -> 0 bytes
-rw-r--r--gfx/pokemon/golbat/back.2bpp.lz.e277e260bin176 -> 0 bytes
-rw-r--r--gfx/pokemon/golbat/front.animated.2bpp.lz.c35ffe9bbin814 -> 0 bytes
-rw-r--r--gfx/pokemon/goldeen/back.2bpp.lz.d0e5751ebin393 -> 0 bytes
-rw-r--r--gfx/pokemon/goldeen/front.animated.2bpp.lz.c451a8c4bin610 -> 0 bytes
-rw-r--r--gfx/pokemon/golduck/back.2bpp.lz.2d022642bin341 -> 0 bytes
-rw-r--r--gfx/pokemon/golduck/front.animated.2bpp.lz.09e97414bin936 -> 0 bytes
-rw-r--r--gfx/pokemon/golem/back.2bpp.lz.ae903deebin198 -> 0 bytes
-rw-r--r--gfx/pokemon/golem/front.animated.2bpp.lz.a16f21c8bin735 -> 0 bytes
-rw-r--r--gfx/pokemon/granbull/back.2bpp.lz.7f1208edbin312 -> 0 bytes
-rw-r--r--gfx/pokemon/granbull/front.animated.2bpp.lz.4504768bbin628 -> 0 bytes
-rw-r--r--gfx/pokemon/graveler/back.2bpp.lz.c7867de7bin333 -> 0 bytes
-rw-r--r--gfx/pokemon/graveler/front.animated.2bpp.lz.68d07c61bin664 -> 0 bytes
-rw-r--r--gfx/pokemon/grimer/back.2bpp.lz.833bd626bin286 -> 0 bytes
-rw-r--r--gfx/pokemon/grimer/front.animated.2bpp.lz.dfe40e91bin518 -> 0 bytes
-rw-r--r--gfx/pokemon/growlithe/back.2bpp.lz.7f5831f6bin375 -> 0 bytes
-rw-r--r--gfx/pokemon/growlithe/front.animated.2bpp.lz.f7b376fabin453 -> 0 bytes
-rw-r--r--gfx/pokemon/gyarados/back.2bpp.lz.fc577f9ebin435 -> 0 bytes
-rw-r--r--gfx/pokemon/gyarados/front.animated.2bpp.lz.1b498e2bbin974 -> 0 bytes
-rw-r--r--gfx/pokemon/haunter/back.2bpp.lz.8a5dc2c1bin320 -> 0 bytes
-rw-r--r--gfx/pokemon/haunter/front.animated.2bpp.lz.aeed5f7ebin624 -> 0 bytes
-rw-r--r--gfx/pokemon/heracross/back.2bpp.lz.ba09608bbin385 -> 0 bytes
-rw-r--r--gfx/pokemon/heracross/front.animated.2bpp.lz.0742fe2bbin644 -> 0 bytes
-rw-r--r--gfx/pokemon/hitmonchan/back.2bpp.lz.68e28b98bin365 -> 0 bytes
-rw-r--r--gfx/pokemon/hitmonchan/front.animated.2bpp.lz.61836c4cbin579 -> 0 bytes
-rw-r--r--gfx/pokemon/hitmonlee/back.2bpp.lz.374e3caabin278 -> 0 bytes
-rw-r--r--gfx/pokemon/hitmonlee/front.animated.2bpp.lz.d174eba1bin1050 -> 0 bytes
-rw-r--r--gfx/pokemon/hitmontop/back.2bpp.lz.ea3f1576bin458 -> 0 bytes
-rw-r--r--gfx/pokemon/hitmontop/front.animated.2bpp.lz.1b3e96fcbin872 -> 0 bytes
-rw-r--r--gfx/pokemon/ho_oh/back.2bpp.lz.1412f260bin337 -> 0 bytes
-rw-r--r--gfx/pokemon/ho_oh/front.animated.2bpp.lz.db80b5ebbin1303 -> 0 bytes
-rw-r--r--gfx/pokemon/hoothoot/back.2bpp.lz.7ebb0b29bin324 -> 0 bytes
-rw-r--r--gfx/pokemon/hoothoot/front.animated.2bpp.lz.752ab202bin457 -> 0 bytes
-rw-r--r--gfx/pokemon/hoppip/back.2bpp.lz.5684c023bin312 -> 0 bytes
-rw-r--r--gfx/pokemon/hoppip/front.animated.2bpp.lz.a03efe74bin403 -> 0 bytes
-rw-r--r--gfx/pokemon/horsea/back.2bpp.lz.50b6afb9bin261 -> 0 bytes
-rw-r--r--gfx/pokemon/horsea/front.animated.2bpp.lz.8b84f98ebin339 -> 0 bytes
-rw-r--r--gfx/pokemon/houndoom/back.2bpp.lz.5fa55a47bin289 -> 0 bytes
-rw-r--r--gfx/pokemon/houndoom/front.animated.2bpp.lz.2d450e90bin727 -> 0 bytes
-rw-r--r--gfx/pokemon/houndour/back.2bpp.lz.ae5f2dc9bin240 -> 0 bytes
-rw-r--r--gfx/pokemon/houndour/front.animated.2bpp.lz.f847f4f6bin503 -> 0 bytes
-rw-r--r--gfx/pokemon/hypno/back.2bpp.lz.c091ce88bin401 -> 0 bytes
-rw-r--r--gfx/pokemon/hypno/front.animated.2bpp.lz.638333a3bin837 -> 0 bytes
-rw-r--r--gfx/pokemon/igglybuff/back.2bpp.lz.c0c17dcbbin265 -> 0 bytes
-rw-r--r--gfx/pokemon/igglybuff/front.animated.2bpp.lz.1e00afc3bin357 -> 0 bytes
-rw-r--r--gfx/pokemon/ivysaur/back.2bpp.lz.bed1ff58bin343 -> 0 bytes
-rw-r--r--gfx/pokemon/ivysaur/front.animated.2bpp.lz.3abed0fabin586 -> 0 bytes
-rw-r--r--gfx/pokemon/jigglypuff/back.2bpp.lz.87d5730bbin245 -> 0 bytes
-rw-r--r--gfx/pokemon/jigglypuff/front.animated.2bpp.lz.9fd159f4bin487 -> 0 bytes
-rw-r--r--gfx/pokemon/jolteon/back.2bpp.lz.f248aac4bin315 -> 0 bytes
-rw-r--r--gfx/pokemon/jolteon/front.animated.2bpp.lz.b2b07d79bin823 -> 0 bytes
-rw-r--r--gfx/pokemon/jumpluff/back.2bpp.lz.b258a699bin364 -> 0 bytes
-rw-r--r--gfx/pokemon/jumpluff/front.animated.2bpp.lz.6d1d8175bin701 -> 0 bytes
-rw-r--r--gfx/pokemon/jynx/back.2bpp.lz.1eef1c1bbin179 -> 0 bytes
-rw-r--r--gfx/pokemon/jynx/front.animated.2bpp.lz.6aaf67b0bin597 -> 0 bytes
-rw-r--r--gfx/pokemon/kabuto/back.2bpp.lz.0717a29bbin323 -> 0 bytes
-rw-r--r--gfx/pokemon/kabuto/front.animated.2bpp.lz.afe4e2dcbin353 -> 0 bytes
-rw-r--r--gfx/pokemon/kabutops/back.2bpp.lz.98a1dfc4bin394 -> 0 bytes
-rw-r--r--gfx/pokemon/kabutops/front.animated.2bpp.lz.d5e4bfebbin725 -> 0 bytes
-rw-r--r--gfx/pokemon/kadabra/back.2bpp.lz.6b26c1a0bin359 -> 0 bytes
-rw-r--r--gfx/pokemon/kadabra/front.animated.2bpp.lz.bc78f9cfbin773 -> 0 bytes
-rw-r--r--gfx/pokemon/kakuna/back.2bpp.lz.3bffa4c3bin275 -> 0 bytes
-rw-r--r--gfx/pokemon/kakuna/front.animated.2bpp.lz.c7425e72bin334 -> 0 bytes
-rw-r--r--gfx/pokemon/kangaskhan/back.2bpp.lz.0d7cc337bin443 -> 0 bytes
-rw-r--r--gfx/pokemon/kangaskhan/front.animated.2bpp.lz.09c81009bin970 -> 0 bytes
-rw-r--r--gfx/pokemon/kingdra/back.2bpp.lz.e48ecb3fbin352 -> 0 bytes
-rw-r--r--gfx/pokemon/kingdra/front.animated.2bpp.lz.668c0516bin782 -> 0 bytes
-rw-r--r--gfx/pokemon/kingler/back.2bpp.lz.88e96d65bin331 -> 0 bytes
-rw-r--r--gfx/pokemon/kingler/front.animated.2bpp.lz.35305199bin812 -> 0 bytes
-rw-r--r--gfx/pokemon/koffing/back.2bpp.lz.8c0a2526bin378 -> 0 bytes
-rw-r--r--gfx/pokemon/koffing/front.animated.2bpp.lz.00044b3fbin482 -> 0 bytes
-rw-r--r--gfx/pokemon/krabby/back.2bpp.lz.2bc2487bbin419 -> 0 bytes
-rw-r--r--gfx/pokemon/krabby/front.animated.2bpp.lz.39592514bin492 -> 0 bytes
-rw-r--r--gfx/pokemon/lanturn/back.2bpp.lz.8e9c7c1abin286 -> 0 bytes
-rw-r--r--gfx/pokemon/lanturn/front.animated.2bpp.lz.1bfac161bin472 -> 0 bytes
-rw-r--r--gfx/pokemon/lapras/back.2bpp.lz.d09351a1bin308 -> 0 bytes
-rw-r--r--gfx/pokemon/lapras/front.animated.2bpp.lz.8290ef8ebin736 -> 0 bytes
-rw-r--r--gfx/pokemon/larvitar/back.2bpp.lz.4b2ac395bin298 -> 0 bytes
-rw-r--r--gfx/pokemon/larvitar/front.animated.2bpp.lz.83859c57bin413 -> 0 bytes
-rw-r--r--gfx/pokemon/ledian/back.2bpp.lz.48657bbbbin385 -> 0 bytes
-rw-r--r--gfx/pokemon/ledian/front.animated.2bpp.lz.83e819c3bin593 -> 0 bytes
-rw-r--r--gfx/pokemon/ledyba/back.2bpp.lz.d50e8860bin411 -> 0 bytes
-rw-r--r--gfx/pokemon/ledyba/front.animated.2bpp.lz.1700dc27bin658 -> 0 bytes
-rw-r--r--gfx/pokemon/lickitung/back.2bpp.lz.a127e40bbin321 -> 0 bytes
-rw-r--r--gfx/pokemon/lickitung/front.animated.2bpp.lz.328a7c53bin787 -> 0 bytes
-rw-r--r--gfx/pokemon/lugia/back.2bpp.lz.ad953eb5bin282 -> 0 bytes
-rw-r--r--gfx/pokemon/lugia/front.animated.2bpp.lz.7293eddcbin1128 -> 0 bytes
-rw-r--r--gfx/pokemon/machamp/back.2bpp.lz.757f4c29bin482 -> 0 bytes
-rw-r--r--gfx/pokemon/machamp/front.animated.2bpp.lz.2d408542bin1293 -> 0 bytes
-rw-r--r--gfx/pokemon/machoke/back.2bpp.lz.2634245ebin375 -> 0 bytes
-rw-r--r--gfx/pokemon/machoke/front.animated.2bpp.lz.f38b95a7bin863 -> 0 bytes
-rw-r--r--gfx/pokemon/machop/back.2bpp.lz.bc17b50abin335 -> 0 bytes
-rw-r--r--gfx/pokemon/machop/front.animated.2bpp.lz.0fd8735fbin537 -> 0 bytes
-rw-r--r--gfx/pokemon/magby/back.2bpp.lz.e50ccadbbin308 -> 0 bytes
-rw-r--r--gfx/pokemon/magby/front.animated.2bpp.lz.172d0807bin569 -> 0 bytes
-rw-r--r--gfx/pokemon/magcargo/back.2bpp.lz.56b096bcbin394 -> 0 bytes
-rw-r--r--gfx/pokemon/magcargo/front.animated.2bpp.lz.53a425f4bin799 -> 0 bytes
-rw-r--r--gfx/pokemon/magikarp/back.2bpp.lz.7f25810abin345 -> 0 bytes
-rw-r--r--gfx/pokemon/magikarp/front.animated.2bpp.lz.031ee449bin529 -> 0 bytes
-rw-r--r--gfx/pokemon/magmar/back.2bpp.lz.6916c87bbin402 -> 0 bytes
-rw-r--r--gfx/pokemon/magmar/front.animated.2bpp.lz.0048e21cbin703 -> 0 bytes
-rw-r--r--gfx/pokemon/magnemite/back.2bpp.lz.e00bd515bin166 -> 0 bytes
-rw-r--r--gfx/pokemon/magnemite/front.animated.2bpp.lz.e4b07135bin327 -> 0 bytes
-rw-r--r--gfx/pokemon/magneton/back.2bpp.lz.f7a7089bbin425 -> 0 bytes
-rw-r--r--gfx/pokemon/magneton/front.animated.2bpp.lz.cd3b65a6bin648 -> 0 bytes
-rw-r--r--gfx/pokemon/mankey/back.2bpp.lz.42cb1b61bin403 -> 0 bytes
-rw-r--r--gfx/pokemon/mankey/front.animated.2bpp.lz.48eac19abin499 -> 0 bytes
-rw-r--r--gfx/pokemon/mantine/back.2bpp.lz.1320b7f3bin216 -> 0 bytes
-rw-r--r--gfx/pokemon/mantine/front.animated.2bpp.lz.9eb40d04bin789 -> 0 bytes
-rw-r--r--gfx/pokemon/mareep/back.2bpp.lz.b9bdc89cbin353 -> 0 bytes
-rw-r--r--gfx/pokemon/mareep/front.animated.2bpp.lz.f660483dbin467 -> 0 bytes
-rw-r--r--gfx/pokemon/marill/back.2bpp.lz.87e2be16bin249 -> 0 bytes
-rw-r--r--gfx/pokemon/marill/front.animated.2bpp.lz.7f742686bin451 -> 0 bytes
-rw-r--r--gfx/pokemon/marowak/back.2bpp.lz.055ba40ebin368 -> 0 bytes
-rw-r--r--gfx/pokemon/marowak/front.animated.2bpp.lz.ef1553a0bin700 -> 0 bytes
-rw-r--r--gfx/pokemon/meganium/back.2bpp.lz.d25a5edbbin322 -> 0 bytes
-rw-r--r--gfx/pokemon/meganium/front.animated.2bpp.lz.fe0b9df4bin1056 -> 0 bytes
-rw-r--r--gfx/pokemon/meowth/back.2bpp.lz.4196bd91bin322 -> 0 bytes
-rw-r--r--gfx/pokemon/meowth/front.animated.2bpp.lz.144f12f0bin516 -> 0 bytes
-rw-r--r--gfx/pokemon/metapod/back.2bpp.lz.b580afc8bin245 -> 0 bytes
-rw-r--r--gfx/pokemon/metapod/front.animated.2bpp.lz.5025baa2bin317 -> 0 bytes
-rw-r--r--gfx/pokemon/mew/back.2bpp.lz.9947d6ebbin335 -> 0 bytes
-rw-r--r--gfx/pokemon/mew/front.animated.2bpp.lz.b6da9713bin599 -> 0 bytes
-rw-r--r--gfx/pokemon/mewtwo/back.2bpp.lz.a7d2c077bin350 -> 0 bytes
-rw-r--r--gfx/pokemon/mewtwo/front.animated.2bpp.lz.45e8b40dbin1008 -> 0 bytes
-rw-r--r--gfx/pokemon/miltank/back.2bpp.lz.b7787e72bin384 -> 0 bytes
-rw-r--r--gfx/pokemon/miltank/front.animated.2bpp.lz.91da7c3bbin625 -> 0 bytes
-rw-r--r--gfx/pokemon/misdreavus/back.2bpp.lz.8bdebfcebin362 -> 0 bytes
-rw-r--r--gfx/pokemon/misdreavus/front.animated.2bpp.lz.5f73baa2bin503 -> 0 bytes
-rw-r--r--gfx/pokemon/moltres/back.2bpp.lz.356242c8bin416 -> 0 bytes
-rw-r--r--gfx/pokemon/moltres/front.animated.2bpp.lz.281bc0ecbin1020 -> 0 bytes
-rw-r--r--gfx/pokemon/mr__mime/back.2bpp.lz.0fb88006bin285 -> 0 bytes
-rw-r--r--gfx/pokemon/mr__mime/front.animated.2bpp.lz.f948d1b8bin753 -> 0 bytes
-rw-r--r--gfx/pokemon/muk/back.2bpp.lz.a1f2f370bin347 -> 0 bytes
-rw-r--r--gfx/pokemon/muk/front.animated.2bpp.lz.530363b2bin846 -> 0 bytes
-rw-r--r--gfx/pokemon/murkrow/back.2bpp.lz.0c347b5bbin343 -> 0 bytes
-rw-r--r--gfx/pokemon/murkrow/front.animated.2bpp.lz.5d2805e8bin665 -> 0 bytes
-rw-r--r--gfx/pokemon/natu/back.2bpp.lz.c8339fb4bin203 -> 0 bytes
-rw-r--r--gfx/pokemon/natu/front.animated.2bpp.lz.997efaf6bin277 -> 0 bytes
-rw-r--r--gfx/pokemon/nidoking/back.2bpp.lz.93211604bin485 -> 0 bytes
-rw-r--r--gfx/pokemon/nidoking/front.animated.2bpp.lz.bd38fa1ebin1162 -> 0 bytes
-rw-r--r--gfx/pokemon/nidoqueen/back.2bpp.lz.f1eb0f0cbin387 -> 0 bytes
-rw-r--r--gfx/pokemon/nidoqueen/front.animated.2bpp.lz.0bf11b0abin1054 -> 0 bytes
-rw-r--r--gfx/pokemon/nidoran_f/back.2bpp.lz.9b6990f1bin334 -> 0 bytes
-rw-r--r--gfx/pokemon/nidoran_f/front.animated.2bpp.lz.0a4602e7bin506 -> 0 bytes
-rw-r--r--gfx/pokemon/nidoran_m/back.2bpp.lz.c9e54720bin411 -> 0 bytes
-rw-r--r--gfx/pokemon/nidoran_m/front.animated.2bpp.lz.b121beaabin524 -> 0 bytes
-rw-r--r--gfx/pokemon/nidorina/back.2bpp.lz.a00ecf4abin375 -> 0 bytes
-rw-r--r--gfx/pokemon/nidorina/front.animated.2bpp.lz.51532540bin715 -> 0 bytes
-rw-r--r--gfx/pokemon/nidorino/back.2bpp.lz.8504fdd1bin371 -> 0 bytes
-rw-r--r--gfx/pokemon/nidorino/front.animated.2bpp.lz.ba11ef23bin833 -> 0 bytes
-rw-r--r--gfx/pokemon/ninetales/back.2bpp.lz.999b3894bin433 -> 0 bytes
-rw-r--r--gfx/pokemon/ninetales/front.animated.2bpp.lz.eef934ffbin1227 -> 0 bytes
-rw-r--r--gfx/pokemon/noctowl/back.2bpp.lz.9c8ac57fbin323 -> 0 bytes
-rw-r--r--gfx/pokemon/noctowl/front.animated.2bpp.lz.7d6594febin743 -> 0 bytes
-rw-r--r--gfx/pokemon/octillery/back.2bpp.lz.48b6e47dbin263 -> 0 bytes
-rw-r--r--gfx/pokemon/octillery/front.animated.2bpp.lz.de99954bbin598 -> 0 bytes
-rw-r--r--gfx/pokemon/oddish/back.2bpp.lz.4f9ec682bin244 -> 0 bytes
-rw-r--r--gfx/pokemon/oddish/front.animated.2bpp.lz.ea2e0dcdbin404 -> 0 bytes
-rw-r--r--gfx/pokemon/omanyte/back.2bpp.lz.f442a670bin392 -> 0 bytes
-rw-r--r--gfx/pokemon/omanyte/front.animated.2bpp.lz.15b343dcbin446 -> 0 bytes
-rw-r--r--gfx/pokemon/omastar/back.2bpp.lz.c75932dbbin429 -> 0 bytes
-rw-r--r--gfx/pokemon/omastar/front.animated.2bpp.lz.b3f6c3dcbin656 -> 0 bytes
-rw-r--r--gfx/pokemon/onix/back.2bpp.lz.cb580eb9bin378 -> 0 bytes
-rw-r--r--gfx/pokemon/onix/front.animated.2bpp.lz.84b7e9efbin869 -> 0 bytes
-rw-r--r--gfx/pokemon/paras/back.2bpp.lz.b5a4d1e2bin296 -> 0 bytes
-rw-r--r--gfx/pokemon/paras/front.animated.2bpp.lz.37a2c2f8bin486 -> 0 bytes
-rw-r--r--gfx/pokemon/parasect/back.2bpp.lz.ed08ef08bin314 -> 0 bytes
-rw-r--r--gfx/pokemon/parasect/front.animated.2bpp.lz.f78f9f36bin763 -> 0 bytes
-rw-r--r--gfx/pokemon/persian/back.2bpp.lz.0e1c1c9abin383 -> 0 bytes
-rw-r--r--gfx/pokemon/persian/front.animated.2bpp.lz.0e6a2521bin798 -> 0 bytes
-rw-r--r--gfx/pokemon/phanpy/back.2bpp.lz.a5c509b8bin275 -> 0 bytes
-rw-r--r--gfx/pokemon/phanpy/front.animated.2bpp.lz.53b49445bin414 -> 0 bytes
-rw-r--r--gfx/pokemon/pichu/back.2bpp.lz.c5580983bin289 -> 0 bytes
-rw-r--r--gfx/pokemon/pichu/front.animated.2bpp.lz.9c1c3befbin386 -> 0 bytes
-rw-r--r--gfx/pokemon/pidgeot/back.2bpp.lz.7d9e44a5bin339 -> 0 bytes
-rw-r--r--gfx/pokemon/pidgeot/front.animated.2bpp.lz.c161ad71bin920 -> 0 bytes
-rw-r--r--gfx/pokemon/pidgeotto/back.2bpp.lz.8a0dd470bin285 -> 0 bytes
-rw-r--r--gfx/pokemon/pidgeotto/front.animated.2bpp.lz.8ce78b51bin659 -> 0 bytes
-rw-r--r--gfx/pokemon/pidgey/back.2bpp.lz.027129e8bin391 -> 0 bytes
-rw-r--r--gfx/pokemon/pidgey/front.animated.2bpp.lz.9acd46cabin506 -> 0 bytes
-rw-r--r--gfx/pokemon/pikachu/back.2bpp.lz.98998807bin354 -> 0 bytes
-rw-r--r--gfx/pokemon/pikachu/front.animated.2bpp.lz.9c100565bin570 -> 0 bytes
-rw-r--r--gfx/pokemon/piloswine/back.2bpp.lz.6fe7da21bin210 -> 0 bytes
-rw-r--r--gfx/pokemon/piloswine/front.animated.2bpp.lz.f6f37ed2bin653 -> 0 bytes
-rw-r--r--gfx/pokemon/pineco/back.2bpp.lz.70df8ca3bin319 -> 0 bytes
-rw-r--r--gfx/pokemon/pineco/front.animated.2bpp.lz.82d91497bin494 -> 0 bytes
-rw-r--r--gfx/pokemon/pinsir/back.2bpp.lz.09ac7dd4bin429 -> 0 bytes
-rw-r--r--gfx/pokemon/pinsir/front.animated.2bpp.lz.1e3839f2bin815 -> 0 bytes
-rw-r--r--gfx/pokemon/politoed/back.2bpp.lz.7873e52fbin279 -> 0 bytes
-rw-r--r--gfx/pokemon/politoed/front.animated.2bpp.lz.408a9c1abin796 -> 0 bytes
-rw-r--r--gfx/pokemon/poliwag/back.2bpp.lz.35b9ee20bin240 -> 0 bytes
-rw-r--r--gfx/pokemon/poliwag/front.animated.2bpp.lz.c7d26488bin379 -> 0 bytes
-rw-r--r--gfx/pokemon/poliwhirl/back.2bpp.lz.76564593bin336 -> 0 bytes
-rw-r--r--gfx/pokemon/poliwhirl/front.animated.2bpp.lz.9a36033fbin728 -> 0 bytes
-rw-r--r--gfx/pokemon/poliwrath/back.2bpp.lz.240e911ebin374 -> 0 bytes
-rw-r--r--gfx/pokemon/poliwrath/front.animated.2bpp.lz.fb1157ecbin859 -> 0 bytes
-rw-r--r--gfx/pokemon/ponyta/back.2bpp.lz.10ddc7eabin379 -> 0 bytes
-rw-r--r--gfx/pokemon/ponyta/front.animated.2bpp.lz.2c8708d6bin665 -> 0 bytes
-rw-r--r--gfx/pokemon/porygon/back.2bpp.lz.b3d71350bin297 -> 0 bytes
-rw-r--r--gfx/pokemon/porygon/front.animated.2bpp.lz.70fc1333bin522 -> 0 bytes
-rw-r--r--gfx/pokemon/porygon2/back.2bpp.lz.5bba6e40bin320 -> 0 bytes
-rw-r--r--gfx/pokemon/porygon2/front.animated.2bpp.lz.a6410e75bin513 -> 0 bytes
-rw-r--r--gfx/pokemon/primeape/back.2bpp.lz.690e407dbin359 -> 0 bytes
-rw-r--r--gfx/pokemon/primeape/front.animated.2bpp.lz.218352ecbin881 -> 0 bytes
-rw-r--r--gfx/pokemon/psyduck/back.2bpp.lz.d68cddb2bin356 -> 0 bytes
-rw-r--r--gfx/pokemon/psyduck/front.animated.2bpp.lz.e4efd065bin484 -> 0 bytes
-rw-r--r--gfx/pokemon/pupitar/back.2bpp.lz.100020c1bin385 -> 0 bytes
-rw-r--r--gfx/pokemon/pupitar/front.animated.2bpp.lz.418c0962bin446 -> 0 bytes
-rw-r--r--gfx/pokemon/quagsire/back.2bpp.lz.64b2ec05bin316 -> 0 bytes
-rw-r--r--gfx/pokemon/quagsire/front.animated.2bpp.lz.bd292a94bin576 -> 0 bytes
-rw-r--r--gfx/pokemon/quilava/back.2bpp.lz.500906e1bin400 -> 0 bytes
-rw-r--r--gfx/pokemon/quilava/front.animated.2bpp.lz.f42f4c67bin738 -> 0 bytes
-rw-r--r--gfx/pokemon/qwilfish/back.2bpp.lz.b2bb83c6bin390 -> 0 bytes
-rw-r--r--gfx/pokemon/qwilfish/front.animated.2bpp.lz.9e79c033bin424 -> 0 bytes
-rw-r--r--gfx/pokemon/raichu/back.2bpp.lz.fa4c7423bin375 -> 0 bytes
-rw-r--r--gfx/pokemon/raichu/front.animated.2bpp.lz.25f943cbbin891 -> 0 bytes
-rw-r--r--gfx/pokemon/raikou/back.2bpp.lz.657ddfafbin243 -> 0 bytes
-rw-r--r--gfx/pokemon/raikou/front.animated.2bpp.lz.464b6fd7bin1134 -> 0 bytes
-rw-r--r--gfx/pokemon/rapidash/back.2bpp.lz.fdd1946cbin404 -> 0 bytes
-rw-r--r--gfx/pokemon/rapidash/front.animated.2bpp.lz.d5ac5a96bin1068 -> 0 bytes
-rw-r--r--gfx/pokemon/raticate/back.2bpp.lz.b2a77d02bin357 -> 0 bytes
-rw-r--r--gfx/pokemon/raticate/front.animated.2bpp.lz.ef1a4689bin797 -> 0 bytes
-rw-r--r--gfx/pokemon/rattata/back.2bpp.lz.86979cd5bin329 -> 0 bytes
-rw-r--r--gfx/pokemon/rattata/front.animated.2bpp.lz.5bdaea2bbin534 -> 0 bytes
-rw-r--r--gfx/pokemon/remoraid/back.2bpp.lz.8a6e4f29bin353 -> 0 bytes
-rw-r--r--gfx/pokemon/remoraid/front.animated.2bpp.lz.4eaf1230bin379 -> 0 bytes
-rw-r--r--gfx/pokemon/rhydon/back.2bpp.lz.4a3ea4afbin413 -> 0 bytes
-rw-r--r--gfx/pokemon/rhydon/front.animated.2bpp.lz.7257fc4fbin953 -> 0 bytes
-rw-r--r--gfx/pokemon/rhyhorn/back.2bpp.lz.b9a8e755bin300 -> 0 bytes
-rw-r--r--gfx/pokemon/rhyhorn/front.animated.2bpp.lz.bdfdf7dcbin926 -> 0 bytes
-rw-r--r--gfx/pokemon/sandshrew/back.2bpp.lz.7655193fbin397 -> 0 bytes
-rw-r--r--gfx/pokemon/sandshrew/front.animated.2bpp.lz.758def3dbin512 -> 0 bytes
-rw-r--r--gfx/pokemon/sandslash/back.2bpp.lz.2999f4c6bin412 -> 0 bytes
-rw-r--r--gfx/pokemon/sandslash/front.animated.2bpp.lz.d6498722bin825 -> 0 bytes
-rw-r--r--gfx/pokemon/scizor/back.2bpp.lz.85149f27bin361 -> 0 bytes
-rw-r--r--gfx/pokemon/scizor/front.animated.2bpp.lz.afd0131abin1050 -> 0 bytes
-rw-r--r--gfx/pokemon/scyther/back.2bpp.lz.1d7f8a87bin366 -> 0 bytes
-rw-r--r--gfx/pokemon/scyther/front.animated.2bpp.lz.86d1a281bin854 -> 0 bytes
-rw-r--r--gfx/pokemon/seadra/back.2bpp.lz.354a02e4bin412 -> 0 bytes
-rw-r--r--gfx/pokemon/seadra/front.animated.2bpp.lz.efa9c88cbin570 -> 0 bytes
-rw-r--r--gfx/pokemon/seaking/back.2bpp.lz.3e699249bin356 -> 0 bytes
-rw-r--r--gfx/pokemon/seaking/front.animated.2bpp.lz.fb4eb288bin848 -> 0 bytes
-rw-r--r--gfx/pokemon/seel/back.2bpp.lz.518a4d40bin317 -> 0 bytes
-rw-r--r--gfx/pokemon/seel/front.animated.2bpp.lz.2dc48023bin644 -> 0 bytes
-rw-r--r--gfx/pokemon/sentret/back.2bpp.lz.c19b7f3bbin261 -> 0 bytes
-rw-r--r--gfx/pokemon/sentret/front.animated.2bpp.lz.07c594c0bin369 -> 0 bytes
-rw-r--r--gfx/pokemon/shellder/back.2bpp.lz.61e27953bin395 -> 0 bytes
-rw-r--r--gfx/pokemon/shellder/front.animated.2bpp.lz.df57d475bin442 -> 0 bytes
-rw-r--r--gfx/pokemon/shuckle/back.2bpp.lz.8d66899bbin236 -> 0 bytes
-rw-r--r--gfx/pokemon/shuckle/front.animated.2bpp.lz.dee153d4bin379 -> 0 bytes
-rw-r--r--gfx/pokemon/skarmory/back.2bpp.lz.f5e2e2e4bin246 -> 0 bytes
-rw-r--r--gfx/pokemon/skarmory/front.animated.2bpp.lz.7de4675ebin893 -> 0 bytes
-rw-r--r--gfx/pokemon/skiploom/back.2bpp.lz.54e87a0cbin302 -> 0 bytes
-rw-r--r--gfx/pokemon/skiploom/front.animated.2bpp.lz.6436d556bin468 -> 0 bytes
-rw-r--r--gfx/pokemon/slowbro/back.2bpp.lz.3676b1f1bin342 -> 0 bytes
-rw-r--r--gfx/pokemon/slowbro/front.animated.2bpp.lz.257e2e84bin917 -> 0 bytes
-rw-r--r--gfx/pokemon/slowking/back.2bpp.lz.a90de69ebin422 -> 0 bytes
-rw-r--r--gfx/pokemon/slowking/front.animated.2bpp.lz.4c2f7140bin878 -> 0 bytes
-rw-r--r--gfx/pokemon/slowpoke/back.2bpp.lz.f2d1bb5cbin235 -> 0 bytes
-rw-r--r--gfx/pokemon/slowpoke/front.animated.2bpp.lz.42347014bin453 -> 0 bytes
-rw-r--r--gfx/pokemon/slugma/back.2bpp.lz.dc25c77abin323 -> 0 bytes
-rw-r--r--gfx/pokemon/slugma/front.animated.2bpp.lz.c1a44906bin454 -> 0 bytes
-rw-r--r--gfx/pokemon/smeargle/back.2bpp.lz.2de2de8cbin360 -> 0 bytes
-rw-r--r--gfx/pokemon/smeargle/front.animated.2bpp.lz.82ec0f51bin667 -> 0 bytes
-rw-r--r--gfx/pokemon/smoochum/back.2bpp.lz.af01f906bin289 -> 0 bytes
-rw-r--r--gfx/pokemon/smoochum/front.animated.2bpp.lz.5977720bbin453 -> 0 bytes
-rw-r--r--gfx/pokemon/sneasel/back.2bpp.lz.5298828dbin344 -> 0 bytes
-rw-r--r--gfx/pokemon/sneasel/front.animated.2bpp.lz.8f7db3e9bin678 -> 0 bytes
-rw-r--r--gfx/pokemon/snorlax/back.2bpp.lz.90570272bin166 -> 0 bytes
-rw-r--r--gfx/pokemon/snorlax/front.animated.2bpp.lz.8253357bbin677 -> 0 bytes
-rw-r--r--gfx/pokemon/snubbull/back.2bpp.lz.26eaaa5dbin331 -> 0 bytes
-rw-r--r--gfx/pokemon/snubbull/front.animated.2bpp.lz.a1b4eb88bin633 -> 0 bytes
-rw-r--r--gfx/pokemon/spearow/back.2bpp.lz.b8e760aabin310 -> 0 bytes
-rw-r--r--gfx/pokemon/spearow/front.animated.2bpp.lz.59d61986bin529 -> 0 bytes
-rw-r--r--gfx/pokemon/spinarak/back.2bpp.lz.14002836bin243 -> 0 bytes
-rw-r--r--gfx/pokemon/spinarak/front.animated.2bpp.lz.31ab6868bin302 -> 0 bytes
-rw-r--r--gfx/pokemon/squirtle/back.2bpp.lz.76295ae8bin239 -> 0 bytes
-rw-r--r--gfx/pokemon/squirtle/front.animated.2bpp.lz.9b6f9ec9bin483 -> 0 bytes
-rw-r--r--gfx/pokemon/stantler/back.2bpp.lz.16502aacbin360 -> 0 bytes
-rw-r--r--gfx/pokemon/stantler/front.animated.2bpp.lz.46b7dd06bin798 -> 0 bytes
-rw-r--r--gfx/pokemon/starmie/back.2bpp.lz.a8923741bin267 -> 0 bytes
-rw-r--r--gfx/pokemon/starmie/front.animated.2bpp.lz.522b6699bin663 -> 0 bytes
-rw-r--r--gfx/pokemon/staryu/back.2bpp.lz.79ea9d00bin285 -> 0 bytes
-rw-r--r--gfx/pokemon/staryu/front.animated.2bpp.lz.22f1d06bbin517 -> 0 bytes
-rw-r--r--gfx/pokemon/steelix/back.2bpp.lz.f3c03e61bin384 -> 0 bytes
-rw-r--r--gfx/pokemon/steelix/front.animated.2bpp.lz.42f3f8d1bin996 -> 0 bytes
-rw-r--r--gfx/pokemon/sudowoodo/back.2bpp.lz.728036c6bin369 -> 0 bytes
-rw-r--r--gfx/pokemon/sudowoodo/front.animated.2bpp.lz.b0f04991bin574 -> 0 bytes
-rw-r--r--gfx/pokemon/suicune/back.2bpp.lz.5c49d112bin423 -> 0 bytes
-rw-r--r--gfx/pokemon/suicune/front.animated.2bpp.lz.64698c0abin1085 -> 0 bytes
-rw-r--r--gfx/pokemon/sunflora/back.2bpp.lz.9d0684f0bin415 -> 0 bytes
-rw-r--r--gfx/pokemon/sunflora/front.animated.2bpp.lz.258c3e67bin619 -> 0 bytes
-rw-r--r--gfx/pokemon/sunkern/back.2bpp.lz.d28f6303bin309 -> 0 bytes
-rw-r--r--gfx/pokemon/sunkern/front.animated.2bpp.lz.316c5261bin371 -> 0 bytes
-rw-r--r--gfx/pokemon/swinub/back.2bpp.lz.1ebbfabfbin224 -> 0 bytes
-rw-r--r--gfx/pokemon/swinub/front.animated.2bpp.lz.228147a5bin298 -> 0 bytes
-rw-r--r--gfx/pokemon/tangela/back.2bpp.lz.435194a6bin229 -> 0 bytes
-rw-r--r--gfx/pokemon/tangela/front.animated.2bpp.lz.7cb3fed8bin633 -> 0 bytes
-rw-r--r--gfx/pokemon/tauros/back.2bpp.lz.f487c586bin231 -> 0 bytes
-rw-r--r--gfx/pokemon/tauros/front.animated.2bpp.lz.982dd0dbbin1108 -> 0 bytes
-rw-r--r--gfx/pokemon/teddiursa/back.2bpp.lz.53f6e34ebin276 -> 0 bytes
-rw-r--r--gfx/pokemon/teddiursa/front.animated.2bpp.lz.5f9648c7bin395 -> 0 bytes
-rw-r--r--gfx/pokemon/tentacool/back.2bpp.lz.ae7b2102bin295 -> 0 bytes
-rw-r--r--gfx/pokemon/tentacool/front.animated.2bpp.lz.7a86457cbin441 -> 0 bytes
-rw-r--r--gfx/pokemon/tentacruel/back.2bpp.lz.0e344f19bin375 -> 0 bytes
-rw-r--r--gfx/pokemon/tentacruel/front.animated.2bpp.lz.f13e5904bin702 -> 0 bytes
-rw-r--r--gfx/pokemon/togepi/back.2bpp.lz.0e22cc02bin270 -> 0 bytes
-rw-r--r--gfx/pokemon/togepi/front.animated.2bpp.lz.0cf7ba07bin321 -> 0 bytes
-rw-r--r--gfx/pokemon/togetic/back.2bpp.lz.62cbb330bin368 -> 0 bytes
-rw-r--r--gfx/pokemon/togetic/front.animated.2bpp.lz.5797583ebin644 -> 0 bytes
-rw-r--r--gfx/pokemon/totodile/back.2bpp.lz.ab6bc2a1bin332 -> 0 bytes
-rw-r--r--gfx/pokemon/totodile/front.animated.2bpp.lz.afce8cd0bin561 -> 0 bytes
-rw-r--r--gfx/pokemon/typhlosion/back.2bpp.lz.83be0292bin388 -> 0 bytes
-rw-r--r--gfx/pokemon/typhlosion/front.animated.2bpp.lz.65adc1e1bin941 -> 0 bytes
-rw-r--r--gfx/pokemon/tyranitar/back.2bpp.lz.05b022c9bin413 -> 0 bytes
-rw-r--r--gfx/pokemon/tyranitar/front.animated.2bpp.lz.e0e9187ebin1021 -> 0 bytes
-rw-r--r--gfx/pokemon/tyrogue/back.2bpp.lz.5d84cef1bin361 -> 0 bytes
-rw-r--r--gfx/pokemon/tyrogue/front.animated.2bpp.lz.a3790421bin470 -> 0 bytes
-rw-r--r--gfx/pokemon/umbreon/back.2bpp.lz.55e50b8cbin343 -> 0 bytes
-rw-r--r--gfx/pokemon/umbreon/front.animated.2bpp.lz.b484be57bin618 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_a/back.2bpp.lz.b8389572bin123 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_a/front.animated.2bpp.lz.47e16756bin203 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_b/back.2bpp.lz.72a0840fbin131 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_b/front.animated.2bpp.lz.5742d494bin235 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_c/back.2bpp.lz.f92b665abin180 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_c/front.animated.2bpp.lz.5fef639bbin300 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_d/back.2bpp.lz.c8213d32bin150 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_d/front.animated.2bpp.lz.7810a57fbin385 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_e/back.2bpp.lz.777a8ecdbin140 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_e/front.animated.2bpp.lz.83f43ff7bin242 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_f/back.2bpp.lz.3fe1c85abin153 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_f/front.animated.2bpp.lz.ec888954bin207 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_g/back.2bpp.lz.91650439bin164 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_g/front.animated.2bpp.lz.c0b74162bin281 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_h/back.2bpp.lz.78421e5bbin176 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_h/front.animated.2bpp.lz.9a6afeb9bin253 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_i/back.2bpp.lz.7feb4b30bin94 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_i/front.animated.2bpp.lz.f5e7f816bin163 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_j/back.2bpp.lz.b0f3bec2bin131 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_j/front.animated.2bpp.lz.d8bf9223bin229 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_k/back.2bpp.lz.745fda48bin117 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_k/front.animated.2bpp.lz.fb25b385bin241 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_l/back.2bpp.lz.e38e0d57bin108 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_l/front.animated.2bpp.lz.26195a59bin211 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_m/back.2bpp.lz.38d93bc8bin121 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_m/front.animated.2bpp.lz.2659315ebin208 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_n/back.2bpp.lz.c8b7d3a4bin123 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_n/front.animated.2bpp.lz.96ce7c62bin230 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_o/back.2bpp.lz.89ba693cbin130 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_o/front.animated.2bpp.lz.a9151b66bin260 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_p/back.2bpp.lz.09c618c4bin94 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_p/front.animated.2bpp.lz.83a096fcbin185 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_q/back.2bpp.lz.e32430b4bin105 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_q/front.animated.2bpp.lz.44dad60cbin189 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_r/back.2bpp.lz.5df8287cbin90 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_r/front.animated.2bpp.lz.8e67e3fcbin146 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_s/back.2bpp.lz.abd4ad58bin146 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_s/front.animated.2bpp.lz.f3db4e89bin261 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_t/back.2bpp.lz.87d48ca0bin116 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_t/front.animated.2bpp.lz.8bdc40aebin259 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_u/back.2bpp.lz.40b63dfbbin107 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_u/front.animated.2bpp.lz.2690db54bin192 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_v/back.2bpp.lz.5b1a6accbin156 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_v/front.animated.2bpp.lz.d196c60ebin275 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_w/back.2bpp.lz.a55282bfbin126 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_w/front.animated.2bpp.lz.5b45fa3dbin301 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_x/back.2bpp.lz.0001a198bin113 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_x/front.animated.2bpp.lz.3362c680bin230 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_y/back.2bpp.lz.292d9ff2bin102 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_y/front.animated.2bpp.lz.8cd89db4bin173 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_z/back.2bpp.lz.a41240a1bin127 -> 0 bytes
-rw-r--r--gfx/pokemon/unown_z/front.animated.2bpp.lz.2d4170a0bin299 -> 0 bytes
-rw-r--r--gfx/pokemon/ursaring/back.2bpp.lz.0966cee1bin277 -> 0 bytes
-rw-r--r--gfx/pokemon/ursaring/front.animated.2bpp.lz.5bcb8114bin727 -> 0 bytes
-rw-r--r--gfx/pokemon/vaporeon/back.2bpp.lz.aafe2ea4bin296 -> 0 bytes
-rw-r--r--gfx/pokemon/vaporeon/front.animated.2bpp.lz.6e1ee993bin691 -> 0 bytes
-rw-r--r--gfx/pokemon/venomoth/back.2bpp.lz.ba3cccb7bin450 -> 0 bytes
-rw-r--r--gfx/pokemon/venomoth/front.animated.2bpp.lz.6c0096ecbin796 -> 0 bytes
-rw-r--r--gfx/pokemon/venonat/back.2bpp.lz.63b1017abin351 -> 0 bytes
-rw-r--r--gfx/pokemon/venonat/front.animated.2bpp.lz.02a36f08bin481 -> 0 bytes
-rw-r--r--gfx/pokemon/venusaur/back.2bpp.lz.1d5b9ebebin418 -> 0 bytes
-rw-r--r--gfx/pokemon/venusaur/front.animated.2bpp.lz.48d131f4bin1098 -> 0 bytes
-rw-r--r--gfx/pokemon/victreebel/back.2bpp.lz.a80b1dc4bin322 -> 0 bytes
-rw-r--r--gfx/pokemon/victreebel/front.animated.2bpp.lz.d5d535c1bin892 -> 0 bytes
-rw-r--r--gfx/pokemon/vileplume/back.2bpp.lz.9f944092bin366 -> 0 bytes
-rw-r--r--gfx/pokemon/vileplume/front.animated.2bpp.lz.db2287e6bin708 -> 0 bytes
-rw-r--r--gfx/pokemon/voltorb/back.2bpp.lz.f19cefe9bin229 -> 0 bytes
-rw-r--r--gfx/pokemon/voltorb/front.animated.2bpp.lz.64051f97bin282 -> 0 bytes
-rw-r--r--gfx/pokemon/vulpix/back.2bpp.lz.0c7852c8bin357 -> 0 bytes
-rw-r--r--gfx/pokemon/vulpix/front.animated.2bpp.lz.df94d884bin695 -> 0 bytes
-rw-r--r--gfx/pokemon/wartortle/back.2bpp.lz.f2338cb4bin358 -> 0 bytes
-rw-r--r--gfx/pokemon/wartortle/front.animated.2bpp.lz.f50d25f5bin741 -> 0 bytes
-rw-r--r--gfx/pokemon/weedle/back.2bpp.lz.f26ac339bin256 -> 0 bytes
-rw-r--r--gfx/pokemon/weedle/front.animated.2bpp.lz.9e1dedbdbin333 -> 0 bytes
-rw-r--r--gfx/pokemon/weepinbell/back.2bpp.lz.f84a5fe6bin334 -> 0 bytes
-rw-r--r--gfx/pokemon/weepinbell/front.animated.2bpp.lz.7b06c092bin567 -> 0 bytes
-rw-r--r--gfx/pokemon/weezing/back.2bpp.lz.5ac5b672bin340 -> 0 bytes
-rw-r--r--gfx/pokemon/weezing/front.animated.2bpp.lz.75928bd0bin909 -> 0 bytes
-rw-r--r--gfx/pokemon/wigglytuff/back.2bpp.lz.fee674acbin258 -> 0 bytes
-rw-r--r--gfx/pokemon/wigglytuff/front.animated.2bpp.lz.49311d0bbin670 -> 0 bytes
-rw-r--r--gfx/pokemon/wobbuffet/back.2bpp.lz.a862192abin270 -> 0 bytes
-rw-r--r--gfx/pokemon/wobbuffet/front.animated.2bpp.lz.f1f4687dbin595 -> 0 bytes
-rw-r--r--gfx/pokemon/wooper/back.2bpp.lz.4f4b7917bin233 -> 0 bytes
-rw-r--r--gfx/pokemon/wooper/front.animated.2bpp.lz.4e440469bin352 -> 0 bytes
-rw-r--r--gfx/pokemon/xatu/back.2bpp.lz.4de765ffbin320 -> 0 bytes
-rw-r--r--gfx/pokemon/xatu/front.animated.2bpp.lz.4f452e43bin599 -> 0 bytes
-rw-r--r--gfx/pokemon/yanma/back.2bpp.lz.2ca27ab3bin433 -> 0 bytes
-rw-r--r--gfx/pokemon/yanma/front.animated.2bpp.lz.25f91adfbin668 -> 0 bytes
-rw-r--r--gfx/pokemon/zapdos/back.2bpp.lz.a44c7524bin307 -> 0 bytes
-rw-r--r--gfx/pokemon/zapdos/front.animated.2bpp.lz.05cb214abin1012 -> 0 bytes
-rw-r--r--gfx/pokemon/zubat/back.2bpp.lz.aa77eb62bin395 -> 0 bytes
-rw-r--r--gfx/pokemon/zubat/front.animated.2bpp.lz.f12e6581bin463 -> 0 bytes
-rw-r--r--gfx/sgb/gbc_only.2bpp.lz.4a5bba0ebin1350 -> 0 bytes
-rw-r--r--gfx/sgb/pal_packets.asm28
-rw-r--r--gfx/slots/slots_1.2bpp.lz.b22ddc13bin384 -> 0 bytes
-rw-r--r--gfx/slots/slots_2.2bpp.lz.b28f76e3bin608 -> 0 bytes
-rw-r--r--gfx/slots/slots_3.2bpp.lz.70c2984cbin528 -> 0 bytes
-rw-r--r--gfx/tilesets/aerodactyl_word_room.2bpp.lz.8b42470bbin3080 -> 0 bytes
-rw-r--r--gfx/tilesets/battle_tower_inside.2bpp.lz.467b6a2dbin832 -> 0 bytes
-rw-r--r--gfx/tilesets/battle_tower_outside.2bpp.lz.391603fbbin3080 -> 0 bytes
-rw-r--r--gfx/tilesets/beta_word_room.2bpp.lz.8b42470bbin3080 -> 0 bytes
-rw-r--r--gfx/tilesets/cave.2bpp.lz.3437812abin912 -> 0 bytes
-rw-r--r--gfx/tilesets/champions_room.2bpp.lz.93800351bin2176 -> 0 bytes
-rw-r--r--gfx/tilesets/dark_cave.2bpp.lz.25b9c4b6bin832 -> 0 bytes
-rw-r--r--gfx/tilesets/elite_four_room.2bpp.lz.c1f2ed8fbin1248 -> 0 bytes
-rw-r--r--gfx/tilesets/facility.2bpp.lz.454cfd8bbin1056 -> 0 bytes
-rw-r--r--gfx/tilesets/forest.2bpp.lz.6b0ac896bin976 -> 0 bytes
-rw-r--r--gfx/tilesets/game_corner.2bpp.lz.71d29a2fbin1472 -> 0 bytes
-rw-r--r--gfx/tilesets/gate.2bpp.lz.f5a55006bin1024 -> 0 bytes
-rw-r--r--gfx/tilesets/ho_oh_word_room.2bpp.lz.8b42470bbin3080 -> 0 bytes
-rw-r--r--gfx/tilesets/house.2bpp.lz.c848ef13bin1200 -> 0 bytes
-rw-r--r--gfx/tilesets/ice_path.2bpp.lz.e23bc89fbin2352 -> 0 bytes
-rw-r--r--gfx/tilesets/johto.2bpp.lz.0c7e555abin3080 -> 0 bytes
-rw-r--r--gfx/tilesets/johto_modern.2bpp.lz.391603fbbin3080 -> 0 bytes
-rw-r--r--gfx/tilesets/kabuto_word_room.2bpp.lz.8b42470bbin3080 -> 0 bytes
-rw-r--r--gfx/tilesets/kanto.2bpp.lz.a29f5d51bin1542 -> 0 bytes
-rw-r--r--gfx/tilesets/lab.2bpp.lz.b8d0f547bin2048 -> 0 bytes
-rw-r--r--gfx/tilesets/lighthouse.2bpp.lz.0c1544c1bin1136 -> 0 bytes
-rw-r--r--gfx/tilesets/mansion.2bpp.lz.63b414d4bin1888 -> 0 bytes
-rw-r--r--gfx/tilesets/mart.2bpp.lz.e2e94f92bin1872 -> 0 bytes
-rw-r--r--gfx/tilesets/omanyte_word_room.2bpp.lz.8b42470bbin3080 -> 0 bytes
-rw-r--r--gfx/tilesets/park.2bpp.lz.7fcb81d6bin1184 -> 0 bytes
-rw-r--r--gfx/tilesets/players_house.2bpp.lz.252cbd8fbin992 -> 0 bytes
-rw-r--r--gfx/tilesets/players_room.2bpp.lz.35e51007bin1216 -> 0 bytes
-rw-r--r--gfx/tilesets/pokecenter.2bpp.lz.e1c4014cbin1072 -> 0 bytes
-rw-r--r--gfx/tilesets/pokecom_center.2bpp.lz.febbc4ecbin2208 -> 0 bytes
-rw-r--r--gfx/tilesets/port.2bpp.lz.56b1a405bin1040 -> 0 bytes
-rw-r--r--gfx/tilesets/radio_tower.2bpp.lz.27cdd9adbin1376 -> 0 bytes
-rw-r--r--gfx/tilesets/ruins_of_alph.2bpp.lz.8b42470bbin3080 -> 0 bytes
-rw-r--r--gfx/tilesets/tower.2bpp.lz.bc56789cbin1376 -> 0 bytes
-rw-r--r--gfx/tilesets/traditional_house.2bpp.lz.dd51d079bin1216 -> 0 bytes
-rw-r--r--gfx/tilesets/train_station.2bpp.lz.1600ca86bin928 -> 0 bytes
-rw-r--r--gfx/tilesets/underground.2bpp.lz.cace291cbin976 -> 0 bytes
-rw-r--r--gfx/title/crystal.2bpp.lz.cd5aabddbin496 -> 0 bytes
-rw-r--r--gfx/title/logo.2bpp.lz.f22013e3bin2504 -> 0 bytes
-rw-r--r--gfx/title/suicune.2bpp.lz.30e490d0bin992 -> 0 bytes
-rw-r--r--gfx/trade/game_boy.2bpp.lz.71a5f644bin320 -> 0 bytes
-rw-r--r--gfx/trainers/beauty.2bpp.lz.c1c13787bin396 -> 0 bytes
-rw-r--r--gfx/trainers/biker.2bpp.lz.cb40f7cdbin525 -> 0 bytes
-rw-r--r--gfx/trainers/bird_keeper.2bpp.lz.1e56954cbin378 -> 0 bytes
-rw-r--r--gfx/trainers/blackbelt_t.2bpp.lz.4ef2481cbin526 -> 0 bytes
-rw-r--r--gfx/trainers/blaine.2bpp.lz.00a3b6f5bin299 -> 0 bytes
-rw-r--r--gfx/trainers/blue.2bpp.lz.9fdbab8fbin312 -> 0 bytes
-rw-r--r--gfx/trainers/boarder.2bpp.lz.5d6881a8bin484 -> 0 bytes
-rw-r--r--gfx/trainers/brock.2bpp.lz.5bdeb7bfbin281 -> 0 bytes
-rw-r--r--gfx/trainers/bruno.2bpp.lz.22f3c222bin521 -> 0 bytes
-rw-r--r--gfx/trainers/bug_catcher.2bpp.lz.43144f97bin419 -> 0 bytes
-rw-r--r--gfx/trainers/bugsy.2bpp.lz.c070450dbin368 -> 0 bytes
-rw-r--r--gfx/trainers/burglar.2bpp.lz.e063f42ebin356 -> 0 bytes
-rw-r--r--gfx/trainers/cal.2bpp.lz.aac54a14bin349 -> 0 bytes
-rw-r--r--gfx/trainers/camper.2bpp.lz.cc2357eabin352 -> 0 bytes
-rw-r--r--gfx/trainers/champion.2bpp.lz.0175f5eabin532 -> 0 bytes
-rw-r--r--gfx/trainers/chuck.2bpp.lz.cab13eddbin465 -> 0 bytes
-rw-r--r--gfx/trainers/clair.2bpp.lz.a1771075bin449 -> 0 bytes
-rw-r--r--gfx/trainers/cooltrainer_f.2bpp.lz.6fb1e652bin370 -> 0 bytes
-rw-r--r--gfx/trainers/cooltrainer_m.2bpp.lz.0aa81882bin363 -> 0 bytes
-rw-r--r--gfx/trainers/erika.2bpp.lz.58985f01bin325 -> 0 bytes
-rw-r--r--gfx/trainers/executive_f.2bpp.lz.c8b5dc9cbin292 -> 0 bytes
-rw-r--r--gfx/trainers/executive_m.2bpp.lz.211746a6bin310 -> 0 bytes
-rw-r--r--gfx/trainers/falkner.2bpp.lz.6ec6bbafbin376 -> 0 bytes
-rw-r--r--gfx/trainers/firebreather.2bpp.lz.a790feb1bin552 -> 0 bytes
-rw-r--r--gfx/trainers/fisher.2bpp.lz.95bfbfd6bin489 -> 0 bytes
-rw-r--r--gfx/trainers/gentleman.2bpp.lz.d3d78e00bin310 -> 0 bytes
-rw-r--r--gfx/trainers/grunt_f.2bpp.lz.522aecd7bin339 -> 0 bytes
-rw-r--r--gfx/trainers/grunt_m.2bpp.lz.916e09d2bin394 -> 0 bytes
-rw-r--r--gfx/trainers/guitarist.2bpp.lz.be5a9b71bin451 -> 0 bytes
-rw-r--r--gfx/trainers/hiker.2bpp.lz.07a4e386bin516 -> 0 bytes
-rw-r--r--gfx/trainers/janine.2bpp.lz.5350f3cebin324 -> 0 bytes
-rw-r--r--gfx/trainers/jasmine.2bpp.lz.dcd58308bin319 -> 0 bytes
-rw-r--r--gfx/trainers/juggler.2bpp.lz.2d7625babin452 -> 0 bytes
-rw-r--r--gfx/trainers/karen.2bpp.lz.7fc3d941bin376 -> 0 bytes
-rw-r--r--gfx/trainers/kimono_girl.2bpp.lz.e8833d48bin462 -> 0 bytes
-rw-r--r--gfx/trainers/koga.2bpp.lz.7a066020bin375 -> 0 bytes
-rw-r--r--gfx/trainers/lass.2bpp.lz.e3726508bin428 -> 0 bytes
-rw-r--r--gfx/trainers/lt_surge.2bpp.lz.4ac586d0bin382 -> 0 bytes
-rw-r--r--gfx/trainers/medium.2bpp.lz.db642b9ebin495 -> 0 bytes
-rw-r--r--gfx/trainers/misty.2bpp.lz.2ded1a10bin300 -> 0 bytes
-rw-r--r--gfx/trainers/morty.2bpp.lz.aec5773bbin323 -> 0 bytes
-rw-r--r--gfx/trainers/mysticalman.2bpp.lz.35d01215bin370 -> 0 bytes
-rw-r--r--gfx/trainers/oak.2bpp.lz.91a27df3bin350 -> 0 bytes
-rw-r--r--gfx/trainers/officer.2bpp.lz.630b057abin348 -> 0 bytes
-rw-r--r--gfx/trainers/picnicker.2bpp.lz.6842b86abin322 -> 0 bytes
-rw-r--r--gfx/trainers/pokefan_f.2bpp.lz.9cbd3f20bin450 -> 0 bytes
-rw-r--r--gfx/trainers/pokefan_m.2bpp.lz.5bc5a3e1bin485 -> 0 bytes
-rw-r--r--gfx/trainers/pokemaniac.2bpp.lz.786c5fcebin448 -> 0 bytes
-rw-r--r--gfx/trainers/pryce.2bpp.lz.1a98cae8bin282 -> 0 bytes
-rw-r--r--gfx/trainers/psychic_t.2bpp.lz.ecd603f4bin342 -> 0 bytes
-rw-r--r--gfx/trainers/red.2bpp.lz.51104ac6bin320 -> 0 bytes
-rw-r--r--gfx/trainers/rival1.2bpp.lz.e43b32efbin350 -> 0 bytes
-rw-r--r--gfx/trainers/rival2.2bpp.lz.562de263bin302 -> 0 bytes
-rw-r--r--gfx/trainers/sabrina.2bpp.lz.d09a2b46bin346 -> 0 bytes
-rw-r--r--gfx/trainers/sage.2bpp.lz.2038324bbin276 -> 0 bytes
-rw-r--r--gfx/trainers/sailor.2bpp.lz.0f7f3386bin396 -> 0 bytes
-rw-r--r--gfx/trainers/schoolboy.2bpp.lz.6d26b31bbin327 -> 0 bytes
-rw-r--r--gfx/trainers/scientist.2bpp.lz.2ef10474bin391 -> 0 bytes
-rw-r--r--gfx/trainers/skier.2bpp.lz.399d4240bin446 -> 0 bytes
-rw-r--r--gfx/trainers/super_nerd.2bpp.lz.c5362664bin321 -> 0 bytes
-rw-r--r--gfx/trainers/swimmer_f.2bpp.lz.c60d0ad6bin349 -> 0 bytes
-rw-r--r--gfx/trainers/swimmer_m.2bpp.lz.2c1a716ebin373 -> 0 bytes
-rw-r--r--gfx/trainers/teacher.2bpp.lz.1d131210bin382 -> 0 bytes
-rw-r--r--gfx/trainers/twins.2bpp.lz.462fd733bin412 -> 0 bytes
-rw-r--r--gfx/trainers/whitney.2bpp.lz.dcb46ea6bin316 -> 0 bytes
-rw-r--r--gfx/trainers/will.2bpp.lz.842af358bin328 -> 0 bytes
-rw-r--r--gfx/trainers/youngster.2bpp.lz.4bef139dbin328 -> 0 bytes
-rw-r--r--gfx/unown_puzzle/aerodactyl.2bpp.lz.f546fb5ebin432 -> 0 bytes
-rw-r--r--gfx/unown_puzzle/hooh.2bpp.lz.e440a572bin336 -> 0 bytes
-rw-r--r--gfx/unown_puzzle/kabuto.2bpp.lz.0ed9882dbin240 -> 0 bytes
-rw-r--r--gfx/unown_puzzle/omanyte.2bpp.lz.27bfcbdebin448 -> 0 bytes
-rw-r--r--gfx/unown_puzzle/start_cancel.2bpp.lz.e07fe7bdbin166 -> 0 bytes
-rw-r--r--home/gfx.asm10
-rw-r--r--home/map_objects.asm4
-rw-r--r--home/math.asm4
-rw-r--r--home/menu.asm2
-rw-r--r--home/text.asm5
-rw-r--r--home/tilemap.asm20
-rw-r--r--home/time.asm2
-rw-r--r--home/trainers.asm2
-rw-r--r--home/video.asm6
-rw-r--r--macros/data.asm23
-rw-r--r--main.asm1
-rw-r--r--maps/PlayersHouse2F.asm2
-rw-r--r--mobile/mobile_40.asm10
-rw-r--r--mobile/mobile_42.asm2
-rw-r--r--mobile/mobile_46.asm4
-rw-r--r--mobile/news/news.asm2
-rw-r--r--tools/Makefile9
-rw-r--r--tools/lz/global.c35
-rw-r--r--tools/lz/main.c54
-rw-r--r--tools/lz/merging.c102
-rw-r--r--tools/lz/mpcomp.c112
-rw-r--r--tools/lz/nullcomp.c20
-rw-r--r--tools/lz/options.c141
-rw-r--r--tools/lz/output.c138
-rw-r--r--tools/lz/packing.c56
-rw-r--r--tools/lz/proto.h107
-rw-r--r--tools/lz/repcomp.c63
-rw-r--r--tools/lz/spcomp.c141
-rw-r--r--tools/lz/uncomp.c92
-rw-r--r--tools/lz/util.c54
-rw-r--r--tools/lzcomp.c512
-rw-r--r--tools/mapreader.py11
-rw-r--r--tools/md5.c128
-rw-r--r--tools/used_space.py3
-rw-r--r--wram.asm17
840 files changed, 1574 insertions, 963 deletions
diff --git a/.gitignore b/.gitignore
index c9036fa4b..8f7b9a932 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,6 +29,9 @@
baserom.txt
pokecrystal.txt
+# used_space.py
+used_space.png
+
# for vim configuration
# url: http://www.vim.org/scripts/script.php?script_id=441
.lvimrc
diff --git a/Makefile b/Makefile
index 51dcd8957..0c6b1e426 100644
--- a/Makefile
+++ b/Makefile
@@ -108,16 +108,13 @@ pokecrystal-au.gbc: $(crystal_au_obj) layout.link
$(RGBFIX) -Cjv -t PM_CRYSTAL -i BYTU -k 01 -l 0x33 -m 0x10 -r 3 -p 0 $@
-# For files that the compressor can't match, there will be a .lz file suffixed with the md5 hash of the correct uncompressed file.
-# If the hash of the uncompressed file matches, use this .lz instead.
-# This allows pngs to be used for compressed graphics and still match.
+### LZ compression rules
+
+# Delete this line if you don't care about matching and just want optimal compression.
+include gfx/lz.mk
-%.lz: hash = $(shell tools/md5 $(*D)/$(*F) | sed "s/\(.\{8\}\).*/\1/")
%.lz: %
- $(eval filename := $@.$(hash))
- $(if $(wildcard $(filename)),\
- cp $(filename) $@,\
- tools/lzcomp -- $< $@)
+ tools/lzcomp $(LZFLAGS) -- $< $@
### Pokemon pic animation rules
diff --git a/constants/event_flags.asm b/constants/event_flags.asm
index 1fb88e524..ee520c8e1 100644
--- a/constants/event_flags.asm
+++ b/constants/event_flags.asm
@@ -1,7 +1,7 @@
; wEventFlags bit flags
const_def
; The first eight flags are reset upon reloading the map
- const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 ; 000
+ const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1
const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2
const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3
const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_4
@@ -25,7 +25,7 @@
const EVENT_GOT_HM04_STRENGTH
const EVENT_GOT_HM05_FLASH
const EVENT_GOT_HM06_WHIRLPOOL
- const EVENT_016
+ const EVENT_016 ; unused
; Rods
const EVENT_GOT_OLD_ROD
const EVENT_GOT_GOOD_ROD
@@ -64,12 +64,12 @@
const EVENT_LAKE_OF_RAGE_EXPLAINED_WEIRD_MAGIKARP
const EVENT_LAKE_OF_RAGE_ASKED_FOR_MAGIKARP
const EVENT_LAKE_OF_RAGE_ELIXIR_ON_STANDBY
- const EVENT_03B
- const EVENT_03C
+ const EVENT_03B ; unused
+ const EVENT_03C ; unused
const EVENT_HEALED_MOOMOO
const EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM
const EVENT_TALKED_TO_FARMER_ABOUT_MOOMOO
- const EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST ; 040
+ const EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
const EVENT_DUDE_TALKED_TO_YOU
const EVENT_LEARNED_TO_CATCH_POKEMON
const EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
@@ -85,7 +85,7 @@
const EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE
const EVENT_GOT_TM05_ROAR
const EVENT_GOT_EEVEE
- const EVENT_GOT_KENYA ; 050
+ const EVENT_GOT_KENYA
const EVENT_GAVE_KENYA
const EVENT_GOT_HP_UP_FROM_RANDY
const EVENT_GOT_TM50_NIGHTMARE
@@ -101,7 +101,7 @@
const EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32
const EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN
const EVENT_GOT_TM02_HEADBUTT
- const EVENT_DECIDED_TO_HELP_LANCE ; 060
+ const EVENT_DECIDED_TO_HELP_LANCE
const EVENT_GOT_TYROGUE_FROM_KIYO
const EVENT_MET_FRIEDA_OF_FRIDAY
const EVENT_GOT_POISON_BARB_FROM_FRIEDA
@@ -116,7 +116,7 @@
const EVENT_MET_SANTOS_OF_SATURDAY
const EVENT_GOT_SPELL_TAG_FROM_SANTOS
const EVENT_MET_MONICA_OF_MONDAY
- const EVENT_GOT_SHARP_BEAK_FROM_MONICA ; 070
+ const EVENT_GOT_SHARP_BEAK_FROM_MONICA
const EVENT_GOT_SOFT_SAND_FROM_KATE
const EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
const EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
@@ -134,10 +134,10 @@
const EVENT_TIN_TOWER_4F_HIDDEN_MAX_POTION
const EVENT_TIN_TOWER_5F_HIDDEN_FULL_RESTORE
const EVENT_TIN_TOWER_5F_HIDDEN_CARBOS
- const EVENT_BURNED_TOWER_1F_HIDDEN_ETHER ; 080
- const EVENT_081
- const EVENT_082
- const EVENT_083
+ const EVENT_BURNED_TOWER_1F_HIDDEN_ETHER
+ const EVENT_081 ; unused
+ const EVENT_082 ; unused
+ const EVENT_083 ; unused
const EVENT_NATIONAL_PARK_HIDDEN_FULL_HEAL
const EVENT_OLIVINE_LIGHTHOUSE_5F_HIDDEN_HYPER_POTION
const EVENT_TEAM_ROCKET_BASE_B1F_HIDDEN_REVIVE
@@ -201,6 +201,7 @@
const EVENT_GAVE_GS_BALL_TO_KURT
const EVENT_FOREST_IS_RESTLESS
const EVENT_ANSWERED_DRAGON_MASTER_QUIZ_WRONG
+; Unused
const EVENT_0C2
const EVENT_0C3
const EVENT_0C4
@@ -270,7 +271,7 @@
const EVENT_DANA_GAVE_THUNDERSTONE
const EVENT_TULLY_GAVE_WATER_STONE
const EVENT_TIFFANY_GAVE_PINK_BOW
-; ???
+; Unused
const EVENT_105
const EVENT_106
const EVENT_107
@@ -632,60 +633,60 @@
const EVENT_GOT_CALCIUM_FROM_ERIN
const EVENT_KENJI_ON_BREAK
const EVENT_GAVEN_ASKED_FOR_PHONE_NUMBER
- const EVENT_26C
+ const EVENT_26C ; unused
const EVENT_BETH_ASKED_FOR_PHONE_NUMBER
- const EVENT_26E
+ const EVENT_26E ; unused
const EVENT_JOSE_ASKED_FOR_PHONE_NUMBER
- const EVENT_270
+ const EVENT_270 ; unused
const EVENT_REENA_ASKED_FOR_PHONE_NUMBER
- const EVENT_272
+ const EVENT_272 ; unused
const EVENT_JOEY_ASKED_FOR_PHONE_NUMBER
- const EVENT_274
+ const EVENT_274 ; unused
const EVENT_WADE_ASKED_FOR_PHONE_NUMBER
- const EVENT_276
+ const EVENT_276 ; unused
const EVENT_RALPH_ASKED_FOR_PHONE_NUMBER
- const EVENT_278
+ const EVENT_278 ; unused
const EVENT_LIZ_ASKED_FOR_PHONE_NUMBER
- const EVENT_27A
+ const EVENT_27A ; unused
const EVENT_ANTHONY_ASKED_FOR_PHONE_NUMBER
- const EVENT_27C
+ const EVENT_27C ; unused
const EVENT_TODD_ASKED_FOR_PHONE_NUMBER
- const EVENT_27E
+ const EVENT_27E ; unused
const EVENT_GINA_ASKED_FOR_PHONE_NUMBER
- const EVENT_280 ; 280
+ const EVENT_280 ; 280 ; unused
const EVENT_IRWIN_ASKED_FOR_PHONE_NUMBER
- const EVENT_282
+ const EVENT_282 ; unused
const EVENT_ARNIE_ASKED_FOR_PHONE_NUMBER
- const EVENT_284
+ const EVENT_284 ; unused
const EVENT_ALAN_ASKED_FOR_PHONE_NUMBER
- const EVENT_286
- const EVENT_287
- const EVENT_288
+ const EVENT_286 ; unused
+ const EVENT_287 ; unused
+ const EVENT_288 ; unused
const EVENT_DANA_ASKED_FOR_PHONE_NUMBER
- const EVENT_28A
+ const EVENT_28A ; unused
const EVENT_CHAD_ASKED_FOR_PHONE_NUMBER
- const EVENT_28C
+ const EVENT_28C ; unused
const EVENT_DEREK_ASKED_FOR_PHONE_NUMBER
- const EVENT_28E
+ const EVENT_28E ; unused
const EVENT_TULLY_ASKED_FOR_PHONE_NUMBER
- const EVENT_290 ; 290
+ const EVENT_290 ; 290 ; unused
const EVENT_BRENT_ASKED_FOR_PHONE_NUMBER
- const EVENT_292
+ const EVENT_292 ; unused
const EVENT_TIFFANY_ASKED_FOR_PHONE_NUMBER
- const EVENT_294
+ const EVENT_294 ; unused
const EVENT_VANCE_ASKED_FOR_PHONE_NUMBER
- const EVENT_296
+ const EVENT_296 ; unused
const EVENT_WILTON_ASKED_FOR_PHONE_NUMBER
- const EVENT_298
+ const EVENT_298 ; unused
const EVENT_KENJI_ASKED_FOR_PHONE_NUMBER
- const EVENT_29A
+ const EVENT_29A ; unused
const EVENT_PARRY_ASKED_FOR_PHONE_NUMBER
- const EVENT_29C
+ const EVENT_29C ; unused
const EVENT_ERIN_ASKED_FOR_PHONE_NUMBER
const EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
- const EVENT_29F
+ const EVENT_29F ; unused
; Ruins of Alph puzzles
- const EVENT_SOLVED_HO_OH_PUZZLE ; 2a0
+ const EVENT_SOLVED_HO_OH_PUZZLE
const EVENT_SOLVED_KABUTO_PUZZLE
const EVENT_SOLVED_OMANYTE_PUZZLE
const EVENT_SOLVED_AERODACTYL_PUZZLE
@@ -702,7 +703,7 @@
const EVENT_DECO_PLANT_2
const EVENT_DECO_PLANT_3
const EVENT_DECO_POSTER_1
- const EVENT_DECO_POSTER_2 ; 2b0
+ const EVENT_DECO_POSTER_2
const EVENT_DECO_POSTER_3
const EVENT_DECO_POSTER_4
const EVENT_DECO_FAMICOM
@@ -718,7 +719,7 @@
const EVENT_DECO_SQUIRTLE_DOLL
const EVENT_DECO_POLIWAG_DOLL
const EVENT_DECO_DIGLETT_DOLL
- const EVENT_DECO_STARMIE_DOLL ; 2c0
+ const EVENT_DECO_STARMIE_DOLL
const EVENT_DECO_MAGIKARP_DOLL
const EVENT_DECO_ODDISH_DOLL
const EVENT_DECO_GENGAR_DOLL
@@ -734,7 +735,7 @@
const EVENT_DECO_GOLD_TROPHY
const EVENT_DECO_SILVER_TROPHY
const EVENT_DECO_BIG_SNORLAX_DOLL
- const EVENT_DECO_BIG_ONIX_DOLL ; 2d0
+ const EVENT_DECO_BIG_ONIX_DOLL
const EVENT_DECO_BIG_LAPRAS_DOLL
; More Johto story events
const EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE
@@ -751,7 +752,7 @@
const EVENT_SWITCH_10
const EVENT_SWITCH_11
const EVENT_SWITCH_12
- const EVENT_SWITCH_13 ; 2e0
+ const EVENT_SWITCH_13
const EVENT_SWITCH_14
const EVENT_UNCOVERED_STAIRCASE_IN_MAHOGANY_MART
const EVENT_TURNED_OFF_SECURITY_CAMERAS
@@ -767,7 +768,7 @@
const EVENT_EXPLODING_TRAP_5
const EVENT_EXPLODING_TRAP_6
const EVENT_EXPLODING_TRAP_7
- const EVENT_EXPLODING_TRAP_8 ; 2f0
+ const EVENT_EXPLODING_TRAP_8
const EVENT_EXPLODING_TRAP_9
const EVENT_EXPLODING_TRAP_10
const EVENT_EXPLODING_TRAP_11
@@ -783,7 +784,7 @@
const EVENT_EXPLODING_TRAP_21
const EVENT_EXPLODING_TRAP_22
const EVENT_LEARNED_HAIL_GIOVANNI
- const EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER ; 300
+ const EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER
const EVENT_LEARNED_SLOWPOKETAIL
const EVENT_LEARNED_RATICATE_TAIL
const EVENT_OPENED_DOOR_TO_GIOVANNIS_OFFICE
@@ -799,7 +800,7 @@
const EVENT_BRUNOS_ROOM_ENTRANCE_CLOSED
const EVENT_BRUNOS_ROOM_EXIT_OPEN
const EVENT_KARENS_ROOM_ENTRANCE_CLOSED
- const EVENT_KARENS_ROOM_EXIT_OPEN ; 310
+ const EVENT_KARENS_ROOM_EXIT_OPEN
const EVENT_LANCES_ROOM_ENTRANCE_CLOSED
const EVENT_LANCES_ROOM_EXIT_OPEN
const EVENT_CONTEST_OFFICER_HAS_SUN_STONE
@@ -815,7 +816,7 @@
const EVENT_SHOWED_STARYU_TO_BILLS_GRANDPA
const EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA
const EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA
- const EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA ; 320
+ const EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA
const EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA
const EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
const EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
@@ -847,9 +848,9 @@
const EVENT_BUENA_OFFERED_HER_PHONE_NUMBER
const EVENT_MET_BUENA
const EVENT_GOT_ODD_EGG
- const EVENT_33F
+ const EVENT_33F ; unused
const EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
-; ???
+; Unused
const EVENT_341
const EVENT_342
const EVENT_343
@@ -1096,8 +1097,7 @@
const EVENT_BEAT_BURGLAR_DUNCAN
const EVENT_BEAT_BURGLAR_EDDIE
const EVENT_BEAT_BURGLAR_COREY
-; Unknown
- const EVENT_430
+ const EVENT_430 ; unused
; Biker
const EVENT_BEAT_BIKER_BENNY
const EVENT_BEAT_BIKER_KAZU
@@ -1288,9 +1288,8 @@
const EVENT_BEAT_POKEFANF_BEVERLY2
const EVENT_BEAT_POKEFANF_BEVERLY3
const EVENT_BEAT_POKEFANF_GEORGIA
-; Unknown
- const EVENT_4DE
; Kimono Girl
+ const EVENT_4DE ; unused
const EVENT_BEAT_KIMONO_GIRL_NAOKO
const EVENT_BEAT_KIMONO_GIRL_SAYO
const EVENT_BEAT_KIMONO_GIRL_ZUKI
@@ -1548,7 +1547,7 @@
const EVENT_BEAT_SAGE_GAKU
const EVENT_BEAT_SAGE_MASA
const EVENT_BEAT_SAGE_KOJI
-; ???
+; Unused
const EVENT_5CC
const EVENT_5CD
const EVENT_5CE
@@ -1849,7 +1848,7 @@
const EVENT_COPYCAT_2
const EVENT_GOLDENROD_SALE_OFF
const EVENT_GOLDENROD_SALE_ON
- const EVENT_6F2
+ const EVENT_6F2 ; unused
const EVENT_ILEX_FOREST_APPRENTICE
const EVENT_ILEX_FOREST_CHARCOAL_MASTER
const EVENT_CHARCOAL_KILN_FARFETCH_D
@@ -1927,7 +1926,7 @@
const EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA
const EVENT_KURTS_HOUSE_KURT_1
const EVENT_KURTS_HOUSE_KURT_2
- const EVENT_SLOWPOKE_WELL_KURT ; 740
+ const EVENT_SLOWPOKE_WELL_KURT
const EVENT_PLAYERS_HOUSE_2F_CONSOLE
const EVENT_PLAYERS_HOUSE_2F_DOLL_1
const EVENT_PLAYERS_HOUSE_2F_DOLL_2
@@ -1943,7 +1942,7 @@
const EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN
const EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
const EVENT_OPENED_MT_SILVER
- const EVENT_FOUGHT_SNORLAX ; 750
+ const EVENT_FOUGHT_SNORLAX
const EVENT_LAKE_OF_RAGE_RED_GYARADOS
const EVENT_GOLDENROD_UNDERGROUND_GRANNY
const EVENT_GOLDENROD_UNDERGROUND_GRAMPS
@@ -1959,7 +1958,7 @@
const EVENT_BLACKTHORN_CITY_SANTOS_OF_SATURDAY
const EVENT_ROUTE_40_MONICA_OF_MONDAY
const EVENT_LANCES_ROOM_OAK_AND_MARY
- const EVENT_UNION_CAVE_B2F_LAPRAS ; 760
+ const EVENT_UNION_CAVE_B2F_LAPRAS
const EVENT_TEAM_ROCKET_DISBANDED
const EVENT_RED_IN_MT_SILVER
const EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY
@@ -1976,7 +1975,7 @@
const EVENT_CERULEAN_GYM_ROCKET
const EVENT_ROUTE_25_MISTY_BOYFRIEND
const EVENT_TRAINERS_IN_CERULEAN_GYM
- const EVENT_VERMILION_CITY_SNORLAX ; 770
+ const EVENT_VERMILION_CITY_SNORLAX
const EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
const EVENT_SAFFRON_TRAIN_STATION_POPULATION
const EVENT_COPYCATS_HOUSE_2F_DOLL
@@ -1993,7 +1992,7 @@
const EVENT_PICKED_UP_FOCUS_BAND
const EVENT_ROCK_TUNNEL_1F_ELIXER
const EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING
- const EVENT_ROCK_TUNNEL_B1F_IRON ; 780
+ const EVENT_ROCK_TUNNEL_B1F_IRON
const EVENT_ROCK_TUNNEL_B1F_PP_UP
const EVENT_ROCK_TUNNEL_B1F_REVIVE
const EVENT_ROUTE_2_DIRE_HIT
@@ -2010,7 +2009,7 @@
const EVENT_KURTS_HOUSE_GRANDDAUGHTER_2
const EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER
const EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
- const EVENT_DRAGON_SHRINE_CLAIR ; 790
+ const EVENT_DRAGON_SHRINE_CLAIR
const EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER
const EVENT_PLAYERS_HOUSE_1F_NEIGHBOR
const EVENT_PLAYERS_NEIGHBORS_HOUSE_NEIGHBOR
@@ -2026,7 +2025,7 @@
const EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM
const EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM
const EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM
- const EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM ; 7a0
+ const EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM
const EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM
const EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM
const EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM
@@ -2042,7 +2041,7 @@
const EVENT_CIANWOOD_CITY_EUSINE
const EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
const EVENT_SAW_SUICUNE_ON_ROUTE_42
- const EVENT_SAW_SUICUNE_ON_ROUTE_36 ; 7b0
+ const EVENT_SAW_SUICUNE_ON_ROUTE_36
const EVENT_ECRUTEAK_TIN_TOWER_ENTRANCE_WANDERING_SAGE
const EVENT_TIN_TOWER_1F_SUICUNE
const EVENT_TIN_TOWER_1F_ENTEI
@@ -2058,7 +2057,7 @@
const EVENT_ROUTE_44_MAX_REPEL
const EVENT_ICE_PATH_1F_PROTEIN
const EVENT_DRAGONS_DEN_B1F_CALCIUM
- const EVENT_DRAGONS_DEN_B1F_MAX_ELIXER ; 7c0
+ const EVENT_DRAGONS_DEN_B1F_MAX_ELIXER
const EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL
const EVENT_SILVER_CAVE_ROOM_2_CALCIUM
const EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL
diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm
index c789f40fb..b315ed1c8 100644
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -27,11 +27,11 @@ BASE_TMHM EQUS "(wBaseTMHM - wCurBaseData)"
BASE_DATA_SIZE EQUS "(wCurBaseDataEnd - wCurBaseData)"
; gender ratio constants
-GENDER_F0 EQU 0 percent
-GENDER_F12_5 EQU 12 percent + 1
-GENDER_F25 EQU 25 percent
-GENDER_F50 EQU 50 percent
-GENDER_F75 EQU 75 percent
+GENDER_F0 EQU 0 percent
+GENDER_F12_5 EQU 12 percent + 1
+GENDER_F25 EQU 25 percent
+GENDER_F50 EQU 50 percent
+GENDER_F75 EQU 75 percent
GENDER_F100 EQU 100 percent - 1
GENDER_UNKNOWN EQU -1
diff --git a/constants/scgb_constants.asm b/constants/scgb_constants.asm
index 4c2faa438..4508afaa5 100644
--- a/constants/scgb_constants.asm
+++ b/constants/scgb_constants.asm
@@ -38,7 +38,7 @@ SCGB_RAM EQU -1
; PredefPals indexes (see gfx/sgb/predef.pal)
; GetPredefPal arguments (see engine/gfx/color.asm)
const_def
- const PREDEFPAL_00
+ const PREDEFPAL_ROUTES
const PREDEFPAL_PALLET
const PREDEFPAL_VIRIDIAN
const PREDEFPAL_PEWTER
diff --git a/constants/text_constants.asm b/constants/text_constants.asm
index f1c3a0bf7..dbe06a36b 100644
--- a/constants/text_constants.asm
+++ b/constants/text_constants.asm
@@ -44,3 +44,6 @@ PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
; character sets (see charmap.asm)
FIRST_REGULAR_TEXT_CHAR EQU $60
FIRST_HIRAGANA_DAKUTEN_CHAR EQU $20
+
+; gfx/font/unown_font.png
+FIRST_UNOWN_CHAR EQU $40
diff --git a/data/battle/critical_hit_chances.asm b/data/battle/critical_hit_chances.asm
index 0128f1a1e..bb1ce9ab4 100644
--- a/data/battle/critical_hit_chances.asm
+++ b/data/battle/critical_hit_chances.asm
@@ -1,8 +1,8 @@
CriticalHitChances:
- db 7 percent ; 0
- db 12 percent + 2 ; +1
- db 25 percent + 1 ; +2
- db 33 percent + 1 ; +3
- db 50 percent + 1 ; +4
- db 50 percent + 1 ; +5
- db 50 percent + 1 ; +6
+ db 1 out_of 15 ; 0
+ db 1 out_of 8 ; +1
+ db 1 out_of 4 ; +2
+ db 1 out_of 3 ; +3
+ db 1 out_of 2 ; +4
+ db 1 out_of 2 ; +5
+ db 1 out_of 2 ; +6
diff --git a/data/events/happiness_probabilities.asm b/data/events/happiness_probabilities.asm
index 7a80f989e..f67db07f3 100644
--- a/data/events/happiness_probabilities.asm
+++ b/data/events/happiness_probabilities.asm
@@ -1,12 +1,12 @@
HappinessData_OlderHaircutBrother:
- db $4c, 2, HAPPINESS_OLDERCUT1 ; 30% chance
- db $80, 3, HAPPINESS_OLDERCUT2 ; 20% chance
- db $ff, 4, HAPPINESS_OLDERCUT3 ; 50% chance
+ db 30 percent, 2, HAPPINESS_OLDERCUT1 ; 30% chance
+ db 50 percent + 1, 3, HAPPINESS_OLDERCUT2 ; 50% chance
+ db 100 percent, 4, HAPPINESS_OLDERCUT3 ; 20% chance
HappinessData_YoungerHaircutBrother:
- db $9a, 2, HAPPINESS_YOUNGCUT1 ; 60% chance
- db $4c, 3, HAPPINESS_YOUNGCUT2 ; 10% chance
- db $ff, 4, HAPPINESS_YOUNGCUT3 ; 30% chance
+ db 60 percent + 1, 2, HAPPINESS_YOUNGCUT1 ; 60% chance
+ db 30 percent, 3, HAPPINESS_YOUNGCUT2 ; 30% chance
+ db 100 percent, 4, HAPPINESS_YOUNGCUT3 ; 10% chance
HappinessData_DaisysGrooming:
- db $ff, 2, HAPPINESS_GROOMING ; 99.6% chance
+ db 100 percent, 2, HAPPINESS_GROOMING ; 99.6% chance
diff --git a/data/maps/sgb_roof_pal_inds.asm b/data/maps/sgb_roof_pal_inds.asm
index 4b117fe67..a2620e194 100644
--- a/data/maps/sgb_roof_pal_inds.asm
+++ b/data/maps/sgb_roof_pal_inds.asm
@@ -2,7 +2,7 @@
MapGroupRoofSGBPalInds:
; entries correspond to map groups
- db PREDEFPAL_00
+ db PREDEFPAL_ROUTES
db PREDEFPAL_OLIVINE
db PREDEFPAL_MAHOGANY
db PREDEFPAL_DUNGEONS
diff --git a/data/moves/magnitude_power.asm b/data/moves/magnitude_power.asm
index 7359bdb10..632a0c030 100644
--- a/data/moves/magnitude_power.asm
+++ b/data/moves/magnitude_power.asm
@@ -1,9 +1,9 @@
MagnitudePower:
; chance, power, magnitude #
- db 13, 10, 4
- db 38, 30, 5
- db 89, 50, 6
- db 166, 70, 7
- db 217, 90, 8
- db 242, 110, 9
- db 255, 150, 10
+ db 5 percent + 1, 10, 4 ; 5%
+ db 15 percent, 30, 5 ; 10%
+ db 35 percent, 50, 6 ; 20%
+ db 65 percent + 1, 70, 7 ; 30%
+ db 85 percent + 1, 90, 8 ; 20%
+ db 95 percent, 110, 9 ; 10%
+ db 100 percent, 150, 10 ; 5%
diff --git a/data/moves/present_power.asm b/data/moves/present_power.asm
index 885e9c692..9f85b8a6b 100644
--- a/data/moves/present_power.asm
+++ b/data/moves/present_power.asm
@@ -1,6 +1,6 @@
PresentPower:
; chance, power
- db 40 percent, 40 ; 40%
- db 70 percent + 1, 80 ; 30%
- db 80 percent, 120 ; 10%
+ db 40 percent, 40 ; 40% chance
+ db 70 percent + 1, 80 ; 30% chance
+ db 80 percent, 120 ; 10% chance
db -1 ; 20% chance to heal instead
diff --git a/data/pokemon/evos_attacks.asm b/data/pokemon/evos_attacks.asm
index 86df03733..eb6cb8a22 100644
--- a/data/pokemon/evos_attacks.asm
+++ b/data/pokemon/evos_attacks.asm
@@ -1198,6 +1198,7 @@ GrimerEvosAttacks:
MukEvosAttacks:
db 0 ; no more evolutions
+ ; moves are not sorted by level
db 1, POISON_GAS
db 1, POUND
db 1, HARDEN
diff --git a/data/pokemon/unown_words.asm b/data/pokemon/unown_words.asm
index 5b54b84ed..6ddd0f466 100644
--- a/data/pokemon/unown_words.asm
+++ b/data/pokemon/unown_words.asm
@@ -1,7 +1,7 @@
unownword: MACRO
x = 1
rept STRLEN(\1)
- db STRSUB(\1, x, 1) - $40
+ db STRSUB(\1, x, 1) - "A" + FIRST_UNOWN_CHAR
x = x + 1
endr
db -1
diff --git a/data/predef_pointers.asm b/data/predef_pointers.asm
index 1693f22aa..a35a380b8 100644
--- a/data/predef_pointers.asm
+++ b/data/predef_pointers.asm
@@ -24,7 +24,7 @@ PredefPointers::
add_predef CanLearnTMHMMove
add_predef GetTMHMMove
add_predef LinkTextboxAtHL ; $ 10
- add_predef PrintMoveDesc
+ add_predef PrintMoveDescription
add_predef UpdatePlayerHUD
add_predef PlaceGraphic
add_predef CheckPlayerPartyForFitMon
diff --git a/engine/battle/ai/scoring.asm b/engine/battle/ai/scoring.asm
index 75efcf920..10ad045ff 100644
--- a/engine/battle/ai/scoring.asm
+++ b/engine/battle/ai/scoring.asm
@@ -1,5 +1,6 @@
AIScoring: ; used only for BANK(AIScoring)
+
AI_Basic:
; Don't do anything redundant:
; -Using status-only moves if the player can't be statused
@@ -458,15 +459,15 @@ AI_Smart_LockOn:
.asm_38834
ld a, [wPlayerEvaLevel]
- cp $a
+ cp BASE_STAT_LEVEL + 3
jr nc, .asm_3887a
- cp $8
+ cp BASE_STAT_LEVEL + 1
jr nc, .asm_38875
ld a, [wEnemyAccLevel]
- cp $5
+ cp BASE_STAT_LEVEL - 2
jr c, .asm_3887a
- cp $7
+ cp BASE_STAT_LEVEL
jr c, .asm_38875
ld hl, wEnemyMonMoves
@@ -572,7 +573,7 @@ AI_Smart_Selfdestruct:
; If enemy's HP is between 25% and 50%,
; over 90% chance to greatly discourage this move.
call Random
- cp 9 percent - 2
+ cp 8 percent
ret c
.asm_388c6
@@ -596,7 +597,7 @@ AI_Smart_DreamEater:
AI_Smart_EvasionUp:
; Dismiss this move if enemy's evasion can't raise anymore.
ld a, [wEnemyEvaLevel]
- cp $d
+ cp MAX_STAT_LEVEL
jp nc, AIDiscourageMove
; If enemy's HP is full...
@@ -707,12 +708,12 @@ AI_Smart_AlwaysHit:
; ...enemy's accuracy level has been lowered three or more stages
ld a, [wEnemyAccLevel]
- cp $5
+ cp BASE_STAT_LEVEL - 2
jr c, .asm_38954
; ...or player's evasion level has been raised three or more stages.
ld a, [wPlayerEvaLevel]
- cp $a
+ cp BASE_STAT_LEVEL + 3
ret c
.asm_38954
@@ -872,12 +873,12 @@ AI_Smart_ResetStats:
; 85% chance to encourage this move if any of enemy's stat levels is lower than -2.
push hl
ld hl, wEnemyAtkLevel
- ld c, $8
+ ld c, NUM_LEVEL_STATS
.asm_389fb
dec c
jr z, .asm_38a05
ld a, [hli]
- cp $5
+ cp BASE_STAT_LEVEL - 2
jr c, .asm_38a12
jr .asm_389fb
@@ -889,7 +890,7 @@ AI_Smart_ResetStats:
dec c
jr z, .asm_38a1b
ld a, [hli]
- cp $a
+ cp BASE_STAT_LEVEL + 3
jr c, .asm_38a0a
.asm_38a12
@@ -1045,7 +1046,7 @@ AI_Smart_Unused2B:
.asm_38aaa
push hl
ld hl, wPlayerUsedMoves
- ld c, 4
+ ld c, NUM_MOVES
.asm_38ab0
ld a, [hli]
@@ -1108,12 +1109,12 @@ AI_Smart_SpDefenseUp2:
; Discourage this move if enemy's special defense level is higher than +3.
ld a, [wEnemySDefLevel]
- cp $b
+ cp BASE_STAT_LEVEL + 4
jr nc, .asm_38b10
; 80% chance to greatly encourage this move if
; enemy's Special Defense level is lower than +2, and the player is of a special type.
- cp $9
+ cp BASE_STAT_LEVEL + 2
ret nc
ld a, [wBattleMonType1]
@@ -1252,11 +1253,11 @@ AI_Smart_Rage:
; Encourage this move based on Rage's counter.
.asm_38b8c
ld a, [wEnemyRageCounter]
- cp $2
+ cp 2
ret c
dec [hl]
ld a, [wEnemyRageCounter]
- cp $3
+ cp 3
ret c
dec [hl]
ret
@@ -1328,7 +1329,7 @@ AI_Smart_Mimic:
AI_Smart_Counter:
push hl
ld hl, wPlayerUsedMoves
- ld c, 4
+ ld c, NUM_MOVES
ld b, 0
.asm_38bf9
@@ -1467,8 +1468,8 @@ AI_Smart_SleepTalk:
; Greatly discourage this move otherwise.
ld a, [wEnemyMonStatus]
- and $7
- cp $1
+ and SLP
+ cp 1
jr z, .asm_38cc7
dec [hl]
@@ -1510,7 +1511,7 @@ AI_Smart_Spite:
.asm_38ce7
push hl
ld b, a
- ld c, 4
+ ld c, NUM_MOVES
ld hl, wBattleMonMoves
ld de, wBattleMonPP
@@ -1529,9 +1530,9 @@ AI_Smart_Spite:
.asm_38cfb
pop hl
ld a, [de]
- cp $6
+ cp 6
jr c, .asm_38d0d
- cp $f
+ cp 15
jr nc, .asm_38d0b
call Random
@@ -1828,9 +1829,9 @@ AI_Smart_Curse:
jr nc, .asm_38e93
ld a, [wEnemyAtkLevel]
- cp $b
+ cp BASE_STAT_LEVEL + 4
jr nc, .asm_38e93
- cp $9
+ cp BASE_STAT_LEVEL + 2
ret nc
ld a, [wBattleMonType1]
@@ -1954,10 +1955,10 @@ AI_Smart_Protect:
AI_Smart_Foresight:
ld a, [wEnemyAccLevel]
- cp $5
+ cp BASE_STAT_LEVEL - 2
jr c, .asm_38f41
ld a, [wPlayerEvaLevel]
- cp $a
+ cp BASE_STAT_LEVEL + 3
jr nc, .asm_38f41
ld a, [wBattleMonType1]
@@ -2146,10 +2147,10 @@ AI_Smart_Rollout:
jr nc, .asm_39020
ld a, [wEnemyAccLevel]
- cp 7
+ cp BASE_STAT_LEVEL
jr c, .asm_39020
ld a, [wPlayerEvaLevel]
- cp 8
+ cp BASE_STAT_LEVEL + 1
jr nc, .asm_39020
; Otherwise, 80% chance to greatly encourage this move.
@@ -2417,7 +2418,7 @@ AI_Smart_BellyDrum:
; Else, discourage this move if enemy's HP is not full.
ld a, [wEnemyAtkLevel]
- cp $a
+ cp BASE_STAT_LEVEL + 3
jr nc, .asm_3914d
call AICheckEnemyMaxHP
@@ -2472,12 +2473,12 @@ AI_Smart_PsychUp:
; Else, 80% chance to encourage this move unless player's accuracy level is lower than -1...
ld a, [wPlayerAccLevel]
- cp $6
+ cp BASE_STAT_LEVEL - 1
ret c
; ...or enemy's evasion level is higher than +0.
ld a, [wEnemyEvaLevel]
- cp $8
+ cp BASE_STAT_LEVEL + 1
ret nc
call AI_80_20
@@ -2494,8 +2495,8 @@ AI_Smart_PsychUp:
AI_Smart_MirrorCoat:
push hl
ld hl, wPlayerUsedMoves
- ld c, $4
- ld b, $0
+ ld c, NUM_MOVES
+ ld b, 0
.asm_39193
ld a, [hli]
@@ -2828,7 +2829,7 @@ AIHasMoveInArray:
.next
ld a, [hli]
- cp $ff
+ cp -1
jr z, .done
ld b, a
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index 4d561c7ae..d51e4cdd5 100644
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -6200,7 +6200,7 @@ LoadEnemyMon:
jr z, .Happiness
; 40% chance of not flooring
call Random
- cp 40 percent - 2
+ cp 39 percent + 1
jr c, .Happiness
; Try again if length < 1024 mm (i.e. if HIGH(length) < 3 feet)
ld a, [wMagikarpLength]
diff --git a/engine/battle/trainer_huds.asm b/engine/battle/trainer_huds.asm
index bc55c7423..f701a4dfc 100644
--- a/engine/battle/trainer_huds.asm
+++ b/engine/battle/trainer_huds.asm
@@ -225,7 +225,7 @@ LoadBallIconGFX:
ld de, .gfx
ld hl, vTiles0 tile $31
lb bc, BANK(LoadBallIconGFX), 4
- call Get2bpp_2
+ call Get2bppViaHDMA
ret
.gfx
diff --git a/engine/battle_anims/bg_effects.asm b/engine/battle_anims/bg_effects.asm
index 41d87275a..6116056b9 100644
--- a/engine/battle_anims/bg_effects.asm
+++ b/engine/battle_anims/bg_effects.asm
@@ -2606,7 +2606,7 @@ BattleBGEffect_GetNextDMGPal:
BattleBGEffects_ClearLYOverrides:
xor a
BattleBGEffects_SetLYOverrides:
- ld hl, wLYOverrides ; wListPointer
+ ld hl, wLYOverrides
ld e, $99
.loop1
ld [hli], a
diff --git a/engine/events/happiness_egg.asm b/engine/events/happiness_egg.asm
index 1d33edb74..bb2e949cb 100644
--- a/engine/events/happiness_egg.asm
+++ b/engine/events/happiness_egg.asm
@@ -198,7 +198,7 @@ DayCareStep::
callfar CheckBreedmonCompatibility
ld a, [wBreedingCompatibility]
cp 230
- ld b, 32 percent - 1
+ ld b, 31 percent + 1
jr nc, .okay
ld a, [wBreedingCompatibility]
cp 170
diff --git a/engine/events/pokerus/pokerus.asm b/engine/events/pokerus/pokerus.asm
index 63eb7fe10..99a5652cd 100644
--- a/engine/events/pokerus/pokerus.asm
+++ b/engine/events/pokerus/pokerus.asm
@@ -26,8 +26,8 @@ GivePokerusAndConvertBerries:
and a
ret nz
ldh a, [hRandomSub]
- cp $3
- ret nc ; 3/65536 chance (00 00, 00 01 or 00 02)
+ cp 3
+ ret nc ; 3/65536 chance (00 00, 00 01 or 00 02)
ld a, [wPartyCount]
ld b, a
.randomMonSelectLoop
@@ -36,11 +36,11 @@ GivePokerusAndConvertBerries:
cp b
jr nc, .randomMonSelectLoop
ld hl, wPartyMon1PokerusStatus
- call GetPartyLocation ; get pokerus byte of random mon
+ call GetPartyLocation ; get pokerus byte of random mon
ld a, [hl]
and $f0
- ret nz ; if it already has pokerus, do nothing
-.randomPokerusLoop ; Simultaneously sample the strain and duration
+ ret nz ; if it already has pokerus, do nothing
+.randomPokerusLoop ; Simultaneously sample the strain and duration
call Random
and a
jr z, .randomPokerusLoop
@@ -62,20 +62,20 @@ GivePokerusAndConvertBerries:
.TrySpreadPokerus:
call Random
cp 33 percent + 1
- ret nc ; 1/3 chance
+ ret nc ; 1/3 chance
ld a, [wPartyCount]
cp 1
- ret z ; only one mon, nothing to do
+ ret z ; only one mon, nothing to do
ld c, [hl]
ld a, b
cp 2
- jr c, .checkPreviousMonsLoop ; no more mons after this one, go backwards
+ jr c, .checkPreviousMonsLoop ; no more mons after this one, go backwards
call Random
cp 50 percent + 1
- jr c, .checkPreviousMonsLoop ; 1/2 chance, go backwards
+ jr c, .checkPreviousMonsLoop ; 1/2 chance, go backwards
.checkFollowingMonsLoop
add hl, de
ld a, [hl]
@@ -83,8 +83,8 @@ GivePokerusAndConvertBerries:
jr z, .infectMon
ld c, a
and $3
- ret z ; if mon has cured pokerus, stop searching
- dec b ; go on to next mon
+ ret z ; if mon has cured pokerus, stop searching
+ dec b ; go on to next mon
ld a, b
cp 1
jr nz, .checkFollowingMonsLoop ; no more mons left
@@ -93,7 +93,7 @@ GivePokerusAndConvertBerries:
.checkPreviousMonsLoop
ld a, [wPartyCount]
cp b
- ret z ; no more mons
+ ret z ; no more mons
ld a, l
sub e
ld l, a
@@ -105,8 +105,8 @@ GivePokerusAndConvertBerries:
jr z, .infectMon
ld c, a
and $3
- ret z ; if mon has cured pokerus, stop searching
- inc b ; go on to next mon
+ ret z ; if mon has cured pokerus, stop searching
+ inc b ; go on to next mon
jr .checkPreviousMonsLoop
.infectMon
@@ -128,7 +128,7 @@ ConvertBerriesToBerryJuice:
bit STATUSFLAGS2_REACHED_GOLDENROD_F, [hl]
ret z
call Random
- cp 6 percent + 1 ; 1/16 chance
+ cp 1 out_of 16 ; 6.25% chance
ret nc
ld hl, wPartyMons
ld a, [wPartyCount]
diff --git a/engine/games/slot_machine.asm b/engine/games/slot_machine.asm
index eaf7999bd..30f6c45af 100644
--- a/engine/games/slot_machine.asm
+++ b/engine/games/slot_machine.asm
@@ -586,7 +586,7 @@ Slots_StopReel2:
call .CheckReel1ForASeven
jr nz, .dont_jump
call Random
- cp $50 ; 32%
+ cp 31 percent + 1
jr nc, .dont_jump
ld a, REEL_ACTION_SET_UP_REEL2_SKIP_TO_7
ret
@@ -632,20 +632,20 @@ Slots_StopReel3:
and a
jr nz, .biased
call Random
- cp 180
+ cp 71 percent - 1
jr nc, .stop
- cp 120
+ cp 47 percent + 1
jr nc, .slow_advance
- cp 60
+ cp 24 percent - 1
jr nc, .golem
ld a, REEL_ACTION_INIT_CHANSEY
ret
.biased
call Random
- cp 160
+ cp 63 percent
jr nc, .stop
- cp 80
+ cp 31 percent + 1
jr nc, .slow_advance
.golem
ld a, REEL_ACTION_INIT_GOLEM
@@ -1608,7 +1608,7 @@ Slots_GetNumberOfGolems:
.not_biased_to_seven
call Random
and $7
- cp $4 ; ((50 percent) & 7) + 1
+ cp $8 / 2 ; 50%
jr c, .not_biased_to_seven
ld e, a
.loop2
@@ -1649,22 +1649,22 @@ Slots_InitBias:
ret
.Normal:
- db $01, SLOTS_SEVEN ; 1/256
- db $03, SLOTS_POKEBALL ; 1/128
- db $0a, SLOTS_STARYU ; 7/256
- db $14, SLOTS_SQUIRTLE ; 5/128
- db $28, SLOTS_PIKACHU ; 5/64
- db $30, SLOTS_CHERRY ; 1/32
- db $ff, SLOTS_NO_BIAS ; everything else
+ db 1 percent - 1, SLOTS_SEVEN
+ db 1 percent + 1, SLOTS_POKEBALL
+ db 4 percent, SLOTS_STARYU
+ db 8 percent, SLOTS_SQUIRTLE
+ db 16 percent, SLOTS_PIKACHU
+ db 19 percent, SLOTS_CHERRY
+ db 100 percent, SLOTS_NO_BIAS
.Lucky:
- db $02, SLOTS_SEVEN ; 1/128
- db $03, SLOTS_POKEBALL ; 1/256
- db $08, SLOTS_STARYU ; 5/256
- db $10, SLOTS_SQUIRTLE ; 1/32
- db $1e, SLOTS_PIKACHU ; 7/128
- db $50, SLOTS_CHERRY ; 25/128
- db $ff, SLOTS_NO_BIAS ; everything else
+ db 1 percent, SLOTS_SEVEN
+ db 1 percent + 1, SLOTS_POKEBALL
+ db 3 percent + 1, SLOTS_STARYU
+ db 6 percent + 1, SLOTS_SQUIRTLE
+ db 12 percent, SLOTS_PIKACHU
+ db 31 percent + 1, SLOTS_CHERRY
+ db 100 percent, SLOTS_NO_BIAS
Slots_IlluminateBetLights:
ld b, $14 ; turned on
diff --git a/engine/gfx/color.asm b/engine/gfx/color.asm
index 35ad66f7f..0064edfc3 100644
--- a/engine/gfx/color.asm
+++ b/engine/gfx/color.asm
@@ -277,13 +277,13 @@ Unreferenced_Function8bec:
ldh a, [hCGB]
and a
jr nz, .cgb
- ld hl, wPlayerLightScreenCount
+ ld hl, wBetaPokerSGBPals
jp PushSGBPals
.cgb
- ld a, [wEnemyLightScreenCount] ; col
+ ld a, [wBetaPokerSGBCol]
ld c, a
- ld a, [wEnemyReflectCount] ; row
+ ld a, [wBetaPokerSGBRow]
hlcoord 0, 0, wAttrmap
ld de, SCREEN_WIDTH
.loop
@@ -294,10 +294,10 @@ Unreferenced_Function8bec:
jr .loop
.done
- ld b, $0
+ ld b, 0
add hl, bc
lb bc, 6, 4
- ld a, [wEnemySafeguardCount] ; value
+ ld a, [wBetaPokerSGBAttr]
and $3
call FillBoxCGB
call CopyTilemapAtOnce
diff --git a/engine/gfx/dma_transfer.asm b/engine/gfx/dma_transfer.asm
index a3cdb6dd3..f30c5eb45 100644
--- a/engine/gfx/dma_transfer.asm
+++ b/engine/gfx/dma_transfer.asm
@@ -450,7 +450,7 @@ PadMapForHDMATransfer:
ldh [hMapObjectIndexBuffer], a
ret
-_Get2bpp::
+HDMATransfer2bpp::
; 2bpp when [rLCDC] & $80
; switch to WRAM bank 6
ldh a, [rSVBK]
@@ -494,7 +494,7 @@ _Get2bpp::
ldh [rSVBK], a
ret
-_Get1bpp::
+HDMATransfer1bpp::
; 1bpp when [rLCDC] & $80
.loop
ld a, c
diff --git a/engine/gfx/load_font.asm b/engine/gfx/load_font.asm
index db24dced1..bd5e29d52 100644
--- a/engine/gfx/load_font.asm
+++ b/engine/gfx/load_font.asm
@@ -8,13 +8,13 @@ Unreferenced_fb434:
Unreferenced_Functionfb435:
ld a, [Unreferenced_fb434]
and a
- jp nz, Get1bpp_2
+ jp nz, Get1bppViaHDMA
jp Get1bpp
Unreferenced_Functionfb43f:
ld a, [Unreferenced_fb434]
and a
- jp nz, Get2bpp_2
+ jp nz, Get2bppViaHDMA
jp Get2bpp
; End unreferenced block
@@ -29,34 +29,34 @@ _LoadStandardFont::
ld de, Font
ld hl, vTiles1
lb bc, BANK(Font), 32 ; "A" to "]"
- call Get1bpp_2
+ call Get1bppViaHDMA
ld de, Font + 32 * LEN_1BPP_TILE
ld hl, vTiles1 tile $20
lb bc, BANK(Font), 32 ; "a" to $bf
- call Get1bpp_2
+ call Get1bppViaHDMA
ld de, Font + 64 * LEN_1BPP_TILE
ld hl, vTiles1 tile $40
lb bc, BANK(Font), 32 ; "Ä" to "←"
- call Get1bpp_2
+ call Get1bppViaHDMA
ld de, Font + 96 * LEN_1BPP_TILE
ld hl, vTiles1 tile $60
lb bc, BANK(Font), 32 ; "'" to "9"
- call Get1bpp_2
+ call Get1bppViaHDMA
ret
_LoadFontsExtra1::
ld de, FontsExtra_SolidBlackGFX
ld hl, vTiles2 tile "■" ; $60
lb bc, BANK(FontsExtra_SolidBlackGFX), 1
- call Get1bpp_2
+ call Get1bppViaHDMA
ld de, PokegearPhoneIconGFX
ld hl, vTiles2 tile "☎" ; $62
lb bc, BANK(PokegearPhoneIconGFX), 1
- call Get2bpp_2
+ call Get2bppViaHDMA
ld de, FontExtra + 3 tiles ; "<BOLD_D>"
ld hl, vTiles2 tile "<BOLD_D>"
lb bc, BANK(FontExtra), 22 ; "<BOLD_D>" to "ぉ"
- call Get2bpp_2
+ call Get2bppViaHDMA
jr LoadFrame
_LoadFontsExtra2::
@@ -64,14 +64,14 @@ _LoadFontsExtra2::
ld hl, vTiles2 tile "▲" ; $61
ld b, BANK(FontsExtra2_UpArrowGFX)
ld c, 1
- call Get2bpp_2
+ call Get2bppViaHDMA
ret
_LoadFontsBattleExtra::
ld de, FontBattleExtra
ld hl, vTiles2 tile $60
lb bc, BANK(FontBattleExtra), 25
- call Get2bpp_2
+ call Get2bppViaHDMA
jr LoadFrame
LoadFrame:
@@ -84,41 +84,41 @@ LoadFrame:
ld e, l
ld hl, vTiles2 tile "┌" ; $79
lb bc, BANK(Frames), 6 ; "┌" to "┘"
- call Get1bpp_2
+ call Get1bppViaHDMA
ld hl, vTiles2 tile " " ; $7f
ld de, TextboxSpaceGFX
lb bc, BANK(TextboxSpaceGFX), 1
- call Get1bpp_2
+ call Get1bppViaHDMA
ret
LoadBattleFontsHPBar:
ld de, FontBattleExtra
ld hl, vTiles2 tile $60
lb bc, BANK(FontBattleExtra), 12
- call Get2bpp_2
+ call Get2bppViaHDMA
ld hl, vTiles2 tile $70
ld de, FontBattleExtra + 16 tiles ; "<DO>"
lb bc, BANK(FontBattleExtra), 3 ; "<DO>" to "『"
- call Get2bpp_2
+ call Get2bppViaHDMA
call LoadFrame
LoadHPBar:
ld de, EnemyHPBarBorderGFX
ld hl, vTiles2 tile $6c
lb bc, BANK(EnemyHPBarBorderGFX), 4
- call Get1bpp_2
+ call Get1bppViaHDMA
ld de, HPExpBarBorderGFX
ld hl, vTiles2 tile $73
lb bc, BANK(HPExpBarBorderGFX), 6
- call Get1bpp_2
+ call Get1bppViaHDMA
ld de, ExpBarGFX
ld hl, vTiles2 tile $55
lb bc, BANK(ExpBarGFX), 9
- call Get2bpp_2
+ call Get2bppViaHDMA
ld de, MobilePhoneTilesGFX + 7 tiles ; mobile phone icon
ld hl, vTiles2 tile $5e
lb bc, BANK(MobilePhoneTilesGFX), 2
- call Get2bpp_2
+ call Get2bppViaHDMA
ret
StatsScreen_LoadFont:
@@ -126,22 +126,22 @@ StatsScreen_LoadFont:
ld de, EnemyHPBarBorderGFX
ld hl, vTiles2 tile $6c
lb bc, BANK(EnemyHPBarBorderGFX), 4
- call Get1bpp_2
+ call Get1bppViaHDMA
ld de, HPExpBarBorderGFX
ld hl, vTiles2 tile $78
lb bc, BANK(HPExpBarBorderGFX), 1
- call Get1bpp_2
+ call Get1bppViaHDMA
ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE
ld hl, vTiles2 tile $76
lb bc, BANK(HPExpBarBorderGFX), 2
- call Get1bpp_2
+ call Get1bppViaHDMA
ld de, ExpBarGFX
ld hl, vTiles2 tile $55
lb bc, BANK(ExpBarGFX), 8
- call Get2bpp_2
+ call Get2bppViaHDMA
LoadStatsScreenPageTilesGFX:
ld de, StatsScreenPageTilesGFX
ld hl, vTiles2 tile $31
lb bc, BANK(StatsScreenPageTilesGFX), 17
- call Get2bpp_2
+ call Get2bppViaHDMA
ret
diff --git a/engine/gfx/mon_icons.asm b/engine/gfx/mon_icons.asm
index ac25712d1..68e9b1b84 100644
--- a/engine/gfx/mon_icons.asm
+++ b/engine/gfx/mon_icons.asm
@@ -347,7 +347,7 @@ GetGFXUnlessMobile:
ld a, [wLinkMode]
cp LINK_MOBILE
jp nz, Request2bpp
- jp Get2bpp_2
+ jp Get2bppViaHDMA
FreezeMonIcons:
ld hl, wSpriteAnimationStructs
diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm
index a0727c939..f4a523df8 100644
--- a/engine/gfx/sgb_layouts.asm
+++ b/engine/gfx/sgb_layouts.asm
@@ -333,7 +333,7 @@ endr
.SGB_BetaPoker:
ld hl, BlkPacket_9a86
- ld de, wPlayerLightScreenCount ; ???
+ ld de, wBetaPokerSGBPals
ld bc, PALPACKET_LENGTH
call CopyBytes
ld hl, PalPacket_BetaPoker
@@ -547,7 +547,7 @@ endr
ret
.route
- ld a, PREDEFPAL_00
+ ld a, PREDEFPAL_ROUTES
ret
.cave
diff --git a/engine/items/print_item_description.asm b/engine/items/print_item_description.asm
index 5d944e206..999c2075a 100644
--- a/engine/items/print_item_description.asm
+++ b/engine/items/print_item_description.asm
@@ -11,7 +11,7 @@ PrintItemDescription:
pop hl
ld a, [wTempTMHM]
ld [wCurSpecies], a
- predef PrintMoveDesc
+ predef PrintMoveDescription
ret
.not_a_tm
diff --git a/engine/items/tmhm.asm b/engine/items/tmhm.asm
index 736f00cdb..ecc2d45cb 100644
--- a/engine/items/tmhm.asm
+++ b/engine/items/tmhm.asm
@@ -252,7 +252,7 @@ TMHM_ShowTMMoveDescription:
ld a, [wTempTMHM]
ld [wCurSpecies], a
hlcoord 1, 14
- call PrintMoveDesc
+ call PrintMoveDescription
jp TMHM_JoypadLoop
TMHM_ChooseTMorHM:
@@ -417,7 +417,7 @@ TMHM_DisplayPocketItems:
inc hl
inc hl
push de
- ld de, TMHM_String_Cancel
+ ld de, TMHM_CancelString
call PlaceString
pop de
.done
@@ -449,7 +449,7 @@ Unreferenced_Function2ca95:
pop hl
ret
-TMHM_String_Cancel:
+TMHM_CancelString:
db "CANCEL@"
TMHM_GetCurrentPocketPosition:
@@ -472,7 +472,7 @@ TMHM_GetCurrentPocketPosition:
Tutorial_TMHMPocket:
hlcoord 9, 3
push de
- ld de, TMHM_String_Cancel
+ ld de, TMHM_CancelString
call PlaceString
pop de
ret
diff --git a/engine/link/init_list.asm b/engine/link/init_list.asm
index 8557b2e9f..470280c4b 100644
--- a/engine/link/init_list.asm
+++ b/engine/link/init_list.asm
@@ -1,4 +1,5 @@
InitList:
+; This entire function is useless.
ld a, [wInitListType]
cp INIT_ENEMYOT_LIST
diff --git a/engine/link/link.asm b/engine/link/link.asm
index 31c189112..521cfdd8b 100644
--- a/engine/link/link.asm
+++ b/engine/link/link.asm
@@ -1571,10 +1571,10 @@ Unreferenced_Function28b42:
ld bc, SCREEN_WIDTH - 2
call ByteFill
hlcoord 2, 16
- ld de, .Cancel
+ ld de, .CancelString
jp PlaceString
-.Cancel:
+.CancelString:
db "CANCEL@"
Function28b68:
diff --git a/engine/link/link_trade.asm b/engine/link/link_trade.asm
index 4119e48a7..14386ae23 100644
--- a/engine/link/link_trade.asm
+++ b/engine/link/link_trade.asm
@@ -115,11 +115,11 @@ InitTradeSpeciesList:
farcall InitMG_Mobile_LinkTradePalMap
farcall PlaceTradePartnerNamesAndParty
hlcoord 10, 17
- ld de, .CANCEL
+ ld de, .CancelString
call PlaceString
ret
-.CANCEL:
+.CancelString:
db "CANCEL@"
_LoadTradeScreenBorder:
diff --git a/engine/link/mystery_gift_2.asm b/engine/link/mystery_gift_2.asm
index b9c7eccb4..9712c665d 100644
--- a/engine/link/mystery_gift_2.asm
+++ b/engine/link/mystery_gift_2.asm
@@ -80,7 +80,7 @@ PrepMysteryGiftDataToSend:
.tenpercent
call Random
- cp 20 percent - 1
+ cp 20 percent - 1 ; 50
jr c, .twopercent
call Random
and %011
diff --git a/engine/menus/menu_2.asm b/engine/menus/menu_2.asm
index 67a93c74f..3c68c2c49 100644
--- a/engine/menus/menu_2.asm
+++ b/engine/menus/menu_2.asm
@@ -110,8 +110,7 @@ CoinString:
ShowMoney_TerminatorString:
db "@"
-Unreferenced_Function24b8f:
-; related to safari?
+Unreferenced_StartMenu_PrintSafariGameStatus:
ld hl, wOptions
ld a, [hl]
push af
diff --git a/engine/menus/savemenu_copytilemapatonce.asm b/engine/menus/savemenu_copytilemapatonce.asm
index 51b7ea8fe..2f30b7c7e 100644
--- a/engine/menus/savemenu_copytilemapatonce.asm
+++ b/engine/menus/savemenu_copytilemapatonce.asm
@@ -3,33 +3,37 @@ SaveMenu_CopyTilemapAtOnce:
and a
jp z, WaitBGMap
-; The following is a modified version of CopyTilemapAtOnce.
+; The following is a modified version of _CopyTilemapAtOnce
+; that waits for [rLY] to be $60 instead of $80 - 1.
ldh a, [hBGMapMode]
push af
xor a
ldh [hBGMapMode], a
+
ldh a, [hMapAnims]
push af
xor a
ldh [hMapAnims], a
-.WaitLY:
+
+.wait
ldh a, [rLY]
cp $60
- jr c, .WaitLY
+ jr c, .wait
di
ld a, BANK(vBGMap2)
ldh [rVBK], a
hlcoord 0, 0, wAttrmap
- call .CopyTilemapAtOnce
+ call .CopyBGMapViaStack
ld a, BANK(vBGMap0)
ldh [rVBK], a
hlcoord 0, 0
- call .CopyTilemapAtOnce
-.WaitLY2:
+ call .CopyBGMapViaStack
+
+.wait2
ldh a, [rLY]
cp $60
- jr c, .WaitLY2
+ jr c, .wait2
ei
pop af
@@ -38,7 +42,8 @@ SaveMenu_CopyTilemapAtOnce:
ldh [hBGMapMode], a
ret
-.CopyTilemapAtOnce:
+.CopyBGMapViaStack:
+; Copy all tiles to vBGMap
ld [hSPBuffer], sp
ld sp, hl
ldh a, [hBGMapAddress + 1]
@@ -46,16 +51,18 @@ SaveMenu_CopyTilemapAtOnce:
ld l, 0
ld a, SCREEN_HEIGHT
ldh [hTilesPerCycle], a
- ld b, 1 << 1
+ ld b, 1 << 1 ; not in v/hblank
ld c, LOW(rSTAT)
.loop
rept SCREEN_WIDTH / 2
pop de
+; if in v/hblank, wait until not in v/hblank
.loop\@
ldh a, [c]
and b
jr nz, .loop\@
+; load vBGMap
ld [hl], e
inc l
ld [hl], d
diff --git a/engine/menus/scrolling_menu.asm b/engine/menus/scrolling_menu.asm
index 6b0572a6d..0574bc730 100644
--- a/engine/menus/scrolling_menu.asm
+++ b/engine/menus/scrolling_menu.asm
@@ -401,11 +401,11 @@ ScrollingMenu_UpdateDisplay:
ld a, [wMenuDataFlags]
bit 0, a ; call function on cancel
jr nz, .call_function
- ld de, .string_2485f
+ ld de, .CancelString
call PlaceString
ret
-.string_2485f
+.CancelString
db "CANCEL@"
.call_function
diff --git a/engine/menus/trainer_card.asm b/engine/menus/trainer_card.asm
index 712032cbe..726148e20 100644
--- a/engine/menus/trainer_card.asm
+++ b/engine/menus/trainer_card.asm
@@ -356,7 +356,8 @@ TrainerCard_InitBorder:
ld a, $23
ld [hli], a
- ld e, SCREEN_HEIGHT - 1
+
+ ld e, SCREEN_WIDTH - 3
ld a, " "
.loop2
ld [hli], a
@@ -367,11 +368,12 @@ TrainerCard_InitBorder:
ld [hli], a
ld a, $23
ld [hli], a
+
.loop3
ld a, $23
ld [hli], a
- ld e, SCREEN_HEIGHT
+ ld e, SCREEN_WIDTH - 2
ld a, " "
.loop4
ld [hli], a
@@ -380,6 +382,7 @@ TrainerCard_InitBorder:
ld a, $23
ld [hli], a
+
dec d
jr nz, .loop3
@@ -388,14 +391,16 @@ TrainerCard_InitBorder:
ld a, $24
ld [hli], a
- ld e, SCREEN_HEIGHT - 1
+ ld e, SCREEN_WIDTH - 3
ld a, " "
.loop5
ld [hli], a
dec e
jr nz, .loop5
+
ld a, $23
ld [hli], a
+
ld e, SCREEN_WIDTH
.loop6
ld a, $23
diff --git a/engine/movie/credits.asm b/engine/movie/credits.asm
index a494d3681..650e056b7 100644
--- a/engine/movie/credits.asm
+++ b/engine/movie/credits.asm
@@ -245,7 +245,7 @@ ParseCredits:
xor a
ldh [hBGMapMode], a
hlcoord 0, 5
- ld bc, 20 * 12
+ ld bc, SCREEN_WIDTH * 12
ld a, " "
call ByteFill
@@ -306,7 +306,7 @@ ParseCredits:
.print
; Print strings spaced every two lines.
call .get
- ld bc, 20 * 2
+ ld bc, SCREEN_WIDTH * 2
call AddNTimes
call PlaceString
jr .loop
diff --git a/engine/overworld/player_movement.asm b/engine/overworld/player_movement.asm
index 3beec6ccb..74ca50d70 100644
--- a/engine/overworld/player_movement.asm
+++ b/engine/overworld/player_movement.asm
@@ -577,11 +577,14 @@ DoPlayerMovement::
; Standing
jr .update
-.d_down add hl, de
-.d_up add hl, de
-.d_left add hl, de
-.d_right add hl, de
-
+.d_down
+ add hl, de
+.d_up
+ add hl, de
+.d_left
+ add hl, de
+.d_right
+ add hl, de
.update
ld a, [hli]
ld [wWalkingDirection], a
diff --git a/engine/overworld/player_object.asm b/engine/overworld/player_object.asm
index 6905c83f0..3446a00c6 100644
--- a/engine/overworld/player_object.asm
+++ b/engine/overworld/player_object.asm
@@ -124,7 +124,7 @@ RefreshPlayerCoords:
ld e, a
; the next three lines are useless
ld a, [wObjectFollow_Leader]
- cp $0
+ cp PLAYER
ret nz
ret
diff --git a/engine/phone/phonering_copytilemapatonce.asm b/engine/phone/phonering_copytilemapatonce.asm
index 0ddb3c852..029c2958c 100644
--- a/engine/phone/phonering_copytilemapatonce.asm
+++ b/engine/phone/phonering_copytilemapatonce.asm
@@ -6,15 +6,18 @@ PhoneRing_CopyTilemapAtOnce:
cp $0
jp z, WaitBGMap
-; What follows is a modified version of CopyTilemapAtOnce.
+; The following is a modified version of _CopyTilemapAtOnce
+; that waits for [rLY] to be LY_VBLANK - 1 instead of $80 - 1.
ldh a, [hBGMapMode]
push af
xor a
ldh [hBGMapMode], a
+
ldh a, [hMapAnims]
push af
xor a
ldh [hMapAnims], a
+
.wait
ldh a, [rLY]
cp LY_VBLANK - 1
@@ -24,11 +27,12 @@ PhoneRing_CopyTilemapAtOnce:
ld a, BANK(vBGMap2)
ldh [rVBK], a
hlcoord 0, 0, wAttrmap
- call .CopyTilemapAtOnce
+ call .CopyBGMapViaStack
ld a, BANK(vBGMap0)
ldh [rVBK], a
hlcoord 0, 0
- call .CopyTilemapAtOnce
+ call .CopyBGMapViaStack
+
.wait2
ldh a, [rLY]
cp LY_VBLANK - 1
@@ -41,7 +45,8 @@ PhoneRing_CopyTilemapAtOnce:
ldh [hBGMapMode], a
ret
-.CopyTilemapAtOnce:
+.CopyBGMapViaStack:
+; Copy all tiles to vBGMap
ld [hSPBuffer], sp
ld sp, hl
ldh a, [hBGMapAddress + 1]
@@ -55,10 +60,12 @@ PhoneRing_CopyTilemapAtOnce:
.loop
rept SCREEN_WIDTH / 2
pop de
+; if in v/hblank, wait until not in v/hblank
.loop\@
ldh a, [c]
and b
jr nz, .loop\@
+; load vBGMap
ld [hl], e
inc l
ld [hl], d
diff --git a/engine/pokedex/pokedex.asm b/engine/pokedex/pokedex.asm
index 6f500bc37..e60ba1450 100644
--- a/engine/pokedex/pokedex.asm
+++ b/engine/pokedex/pokedex.asm
@@ -887,7 +887,7 @@ Pokedex_UnownModeEraseCursor:
Pokedex_UnownModePlaceCursor:
ld a, [wDexCurUnownIndex]
- ld c, $5a ; diamond cursor
+ ld c, FIRST_UNOWN_CHAR + NUM_UNOWN ; diamond cursor
Pokedex_UnownModeUpdateCursorGfx:
ld e, a
@@ -1333,7 +1333,7 @@ endr
ld h, [hl]
ld l, a
pop af
- add $40 - 1 ; Unown A
+ add FIRST_UNOWN_CHAR - 1 ; Unown A
ld [hl], a
inc de
inc b
@@ -2489,7 +2489,7 @@ Pokedex_LoadUnownFont:
ld bc, (NUM_UNOWN + 1) tiles
call Pokedex_InvertTiles
ld de, sScratch + $188
- ld hl, vTiles2 tile $40
+ ld hl, vTiles2 tile FIRST_UNOWN_CHAR
lb bc, BANK(Pokedex_LoadUnownFont), NUM_UNOWN + 1
call Request2bpp
call CloseSRAM
diff --git a/engine/pokemon/mon_menu.asm b/engine/pokemon/mon_menu.asm
index d25d6cc2b..8ffba32bf 100644
--- a/engine/pokemon/mon_menu.asm
+++ b/engine/pokemon/mon_menu.asm
@@ -1214,7 +1214,7 @@ PlaceMoveData:
.description
hlcoord 1, 14
- predef PrintMoveDesc
+ predef PrintMoveDescription
ld a, $1
ldh [hBGMapMode], a
ret
diff --git a/engine/pokemon/party_menu.asm b/engine/pokemon/party_menu.asm
index 12036497d..cf82c38ee 100644
--- a/engine/pokemon/party_menu.asm
+++ b/engine/pokemon/party_menu.asm
@@ -105,11 +105,11 @@ PlacePartyNicknames:
.end
dec hl
dec hl
- ld de, .CANCEL
+ ld de, .CancelString
call PlaceString
ret
-.CANCEL:
+.CancelString:
db "CANCEL@"
PlacePartyHPBar:
diff --git a/engine/pokemon/print_move_description.asm b/engine/pokemon/print_move_description.asm
index c461f2f3d..3647e1c54 100644
--- a/engine/pokemon/print_move_description.asm
+++ b/engine/pokemon/print_move_description.asm
@@ -1,4 +1,4 @@
-PrintMoveDesc:
+PrintMoveDescription:
push hl
ld hl, MoveDescriptions
ld a, [wCurSpecies]
@@ -12,3 +12,5 @@ PrintMoveDesc:
ld d, [hl]
pop hl
jp PlaceString
+
+INCLUDE "data/moves/descriptions.asm"
diff --git a/gfx/battle/dude.2bpp.lz.d13fb490 b/gfx/battle/dude.2bpp.lz.d13fb490
deleted file mode 100644
index b8e96a09f..000000000
--- a/gfx/battle/dude.2bpp.lz.d13fb490
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/aeroblast.2bpp.lz.2f07c4ea b/gfx/battle_anims/aeroblast.2bpp.lz.2f07c4ea
deleted file mode 100644
index 5e203cb63..000000000
--- a/gfx/battle_anims/aeroblast.2bpp.lz.2f07c4ea
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/angels.2bpp.lz.b026d81e b/gfx/battle_anims/angels.2bpp.lz.b026d81e
deleted file mode 100644
index 61d89d224..000000000
--- a/gfx/battle_anims/angels.2bpp.lz.b026d81e
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/beam.2bpp.lz.80b6d613 b/gfx/battle_anims/beam.2bpp.lz.80b6d613
deleted file mode 100644
index 1ce9ab82c..000000000
--- a/gfx/battle_anims/beam.2bpp.lz.80b6d613
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/bubble.2bpp.lz.03b8ac99 b/gfx/battle_anims/bubble.2bpp.lz.03b8ac99
deleted file mode 100644
index 3d546191a..000000000
--- a/gfx/battle_anims/bubble.2bpp.lz.03b8ac99
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/charge.2bpp.lz.95d3ea98 b/gfx/battle_anims/charge.2bpp.lz.95d3ea98
deleted file mode 100644
index 32c82243c..000000000
--- a/gfx/battle_anims/charge.2bpp.lz.95d3ea98
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/cut.2bpp.lz.03d343ed b/gfx/battle_anims/cut.2bpp.lz.03d343ed
deleted file mode 100644
index 740a48799..000000000
--- a/gfx/battle_anims/cut.2bpp.lz.03d343ed
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/egg.2bpp.lz.41dd1a53 b/gfx/battle_anims/egg.2bpp.lz.41dd1a53
deleted file mode 100644
index fb55f2edc..000000000
--- a/gfx/battle_anims/egg.2bpp.lz.41dd1a53
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/explosion.2bpp.lz.55fc334f b/gfx/battle_anims/explosion.2bpp.lz.55fc334f
deleted file mode 100644
index 4303302a1..000000000
--- a/gfx/battle_anims/explosion.2bpp.lz.55fc334f
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/fire.2bpp.lz.d7701cda b/gfx/battle_anims/fire.2bpp.lz.d7701cda
deleted file mode 100644
index e15e9f9bb..000000000
--- a/gfx/battle_anims/fire.2bpp.lz.d7701cda
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/flower.2bpp.lz.1bc2e9d2 b/gfx/battle_anims/flower.2bpp.lz.1bc2e9d2
deleted file mode 100644
index ef628afb4..000000000
--- a/gfx/battle_anims/flower.2bpp.lz.1bc2e9d2
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/globe.2bpp.lz.710dbb8e b/gfx/battle_anims/globe.2bpp.lz.710dbb8e
deleted file mode 100644
index 99fa15c6f..000000000
--- a/gfx/battle_anims/globe.2bpp.lz.710dbb8e
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/haze.2bpp.lz.91424607 b/gfx/battle_anims/haze.2bpp.lz.91424607
deleted file mode 100644
index e0cdc644c..000000000
--- a/gfx/battle_anims/haze.2bpp.lz.91424607
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/hit.2bpp.lz.2b3c83f2 b/gfx/battle_anims/hit.2bpp.lz.2b3c83f2
deleted file mode 100644
index 5d9ffbe5d..000000000
--- a/gfx/battle_anims/hit.2bpp.lz.2b3c83f2
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/horn.2bpp.lz.48908aae b/gfx/battle_anims/horn.2bpp.lz.48908aae
deleted file mode 100644
index a92f74796..000000000
--- a/gfx/battle_anims/horn.2bpp.lz.48908aae
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/ice.2bpp.lz.664d900f b/gfx/battle_anims/ice.2bpp.lz.664d900f
deleted file mode 100644
index 3d059700b..000000000
--- a/gfx/battle_anims/ice.2bpp.lz.664d900f
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/lightning.2bpp.lz.a88fc131 b/gfx/battle_anims/lightning.2bpp.lz.a88fc131
deleted file mode 100644
index 81de5850f..000000000
--- a/gfx/battle_anims/lightning.2bpp.lz.a88fc131
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/misc.2bpp.lz.4b20c3d7 b/gfx/battle_anims/misc.2bpp.lz.4b20c3d7
deleted file mode 100644
index d0c5f0dfc..000000000
--- a/gfx/battle_anims/misc.2bpp.lz.4b20c3d7
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/noise.2bpp.lz.acb4a76e b/gfx/battle_anims/noise.2bpp.lz.acb4a76e
deleted file mode 100644
index e195da453..000000000
--- a/gfx/battle_anims/noise.2bpp.lz.acb4a76e
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/objects.2bpp.lz.83f812de b/gfx/battle_anims/objects.2bpp.lz.83f812de
deleted file mode 100644
index 1a52d6350..000000000
--- a/gfx/battle_anims/objects.2bpp.lz.83f812de
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/plant.2bpp.lz.4a00c417 b/gfx/battle_anims/plant.2bpp.lz.4a00c417
deleted file mode 100644
index 589fc48b6..000000000
--- a/gfx/battle_anims/plant.2bpp.lz.4a00c417
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/poison.2bpp.lz.fc7dc9c1 b/gfx/battle_anims/poison.2bpp.lz.fc7dc9c1
deleted file mode 100644
index df2cbe604..000000000
--- a/gfx/battle_anims/poison.2bpp.lz.fc7dc9c1
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/pokeball.2bpp.lz.c58f7e01 b/gfx/battle_anims/pokeball.2bpp.lz.c58f7e01
deleted file mode 100644
index e09b082db..000000000
--- a/gfx/battle_anims/pokeball.2bpp.lz.c58f7e01
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/powder.2bpp.lz.bfd566bb b/gfx/battle_anims/powder.2bpp.lz.bfd566bb
deleted file mode 100644
index 375d0bf9c..000000000
--- a/gfx/battle_anims/powder.2bpp.lz.bfd566bb
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/psychic.2bpp.lz.d80f285c b/gfx/battle_anims/psychic.2bpp.lz.d80f285c
deleted file mode 100644
index d6402dd3d..000000000
--- a/gfx/battle_anims/psychic.2bpp.lz.d80f285c
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/reflect.2bpp.lz.9a9c822d b/gfx/battle_anims/reflect.2bpp.lz.9a9c822d
deleted file mode 100644
index a563de1a8..000000000
--- a/gfx/battle_anims/reflect.2bpp.lz.9a9c822d
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/rocks.2bpp.lz.73d0153e b/gfx/battle_anims/rocks.2bpp.lz.73d0153e
deleted file mode 100644
index d5481ea6e..000000000
--- a/gfx/battle_anims/rocks.2bpp.lz.73d0153e
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/rope.2bpp.lz.209d63dd b/gfx/battle_anims/rope.2bpp.lz.209d63dd
deleted file mode 100644
index f7d6a480f..000000000
--- a/gfx/battle_anims/rope.2bpp.lz.209d63dd
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/sand.2bpp.lz.c87c0eaa b/gfx/battle_anims/sand.2bpp.lz.c87c0eaa
deleted file mode 100644
index 3508a1f58..000000000
--- a/gfx/battle_anims/sand.2bpp.lz.c87c0eaa
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/shapes.2bpp.lz.262d77f0 b/gfx/battle_anims/shapes.2bpp.lz.262d77f0
deleted file mode 100644
index d7d48020f..000000000
--- a/gfx/battle_anims/shapes.2bpp.lz.262d77f0
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/shine.2bpp.lz.5fb79056 b/gfx/battle_anims/shine.2bpp.lz.5fb79056
deleted file mode 100644
index 3e47170b1..000000000
--- a/gfx/battle_anims/shine.2bpp.lz.5fb79056
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/skyattack.2bpp.lz.31738ab8 b/gfx/battle_anims/skyattack.2bpp.lz.31738ab8
deleted file mode 100644
index e0412dd81..000000000
--- a/gfx/battle_anims/skyattack.2bpp.lz.31738ab8
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/smoke.2bpp.lz.aa05905e b/gfx/battle_anims/smoke.2bpp.lz.aa05905e
deleted file mode 100644
index bf26fed2b..000000000
--- a/gfx/battle_anims/smoke.2bpp.lz.aa05905e
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/speed.2bpp.lz.1732b364 b/gfx/battle_anims/speed.2bpp.lz.1732b364
deleted file mode 100644
index 5d09f9a6a..000000000
--- a/gfx/battle_anims/speed.2bpp.lz.1732b364
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/status.2bpp.lz.0c0aa13e b/gfx/battle_anims/status.2bpp.lz.0c0aa13e
deleted file mode 100644
index e5ce7df8a..000000000
--- a/gfx/battle_anims/status.2bpp.lz.0c0aa13e
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/water.2bpp.lz.7b52ed12 b/gfx/battle_anims/water.2bpp.lz.7b52ed12
deleted file mode 100644
index 6a81bbb65..000000000
--- a/gfx/battle_anims/water.2bpp.lz.7b52ed12
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/wave.2bpp.lz.bee99402 b/gfx/battle_anims/wave.2bpp.lz.bee99402
deleted file mode 100644
index d94a5cb35..000000000
--- a/gfx/battle_anims/wave.2bpp.lz.bee99402
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/web.2bpp.lz.80e3d480 b/gfx/battle_anims/web.2bpp.lz.80e3d480
deleted file mode 100644
index 84b4018e5..000000000
--- a/gfx/battle_anims/web.2bpp.lz.80e3d480
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/whip.2bpp.lz.d80d8d6e b/gfx/battle_anims/whip.2bpp.lz.d80d8d6e
deleted file mode 100644
index da62ba918..000000000
--- a/gfx/battle_anims/whip.2bpp.lz.d80d8d6e
+++ /dev/null
Binary files differ
diff --git a/gfx/battle_anims/wind.2bpp.lz.5a785180 b/gfx/battle_anims/wind.2bpp.lz.5a785180
deleted file mode 100644
index 9c2769b83..000000000
--- a/gfx/battle_anims/wind.2bpp.lz.5a785180
+++ /dev/null
Binary files differ
diff --git a/gfx/card_flip/card_flip_1.2bpp.lz.86f267e8 b/gfx/card_flip/card_flip_1.2bpp.lz.86f267e8
deleted file mode 100644
index 8a60b966b..000000000
--- a/gfx/card_flip/card_flip_1.2bpp.lz.86f267e8
+++ /dev/null
Binary files differ
diff --git a/gfx/card_flip/card_flip_2.2bpp.lz.6a6c671d b/gfx/card_flip/card_flip_2.2bpp.lz.6a6c671d
deleted file mode 100644
index f238c797c..000000000
--- a/gfx/card_flip/card_flip_2.2bpp.lz.6a6c671d
+++ /dev/null
Binary files differ
diff --git a/gfx/card_flip/card_flip_3.2bpp.lz.53679db7 b/gfx/card_flip/card_flip_3.2bpp.lz.53679db7
deleted file mode 100644
index 12baf9a8f..000000000
--- a/gfx/card_flip/card_flip_3.2bpp.lz.53679db7
+++ /dev/null
Binary files differ
diff --git a/gfx/diploma/diploma.2bpp.lz.7b56f7e5 b/gfx/diploma/diploma.2bpp.lz.7b56f7e5
deleted file mode 100644
index 5c35bb6e1..000000000
--- a/gfx/diploma/diploma.2bpp.lz.7b56f7e5
+++ /dev/null
Binary files differ
diff --git a/gfx/dummy_game/dummy_game.2bpp.lz.821ba441 b/gfx/dummy_game/dummy_game.2bpp.lz.821ba441
deleted file mode 100644
index b01fe34df..000000000
--- a/gfx/dummy_game/dummy_game.2bpp.lz.821ba441
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/background.2bpp.lz.b58b3984 b/gfx/intro/background.2bpp.lz.b58b3984
deleted file mode 100644
index 1ef2f1203..000000000
--- a/gfx/intro/background.2bpp.lz.b58b3984
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/background.attrmap.lz.9f90366a b/gfx/intro/background.attrmap.lz.9f90366a
deleted file mode 100644
index 182ffb130..000000000
--- a/gfx/intro/background.attrmap.lz.9f90366a
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/background.tilemap.lz.4c7562ee b/gfx/intro/background.tilemap.lz.4c7562ee
deleted file mode 100644
index 5897d176b..000000000
--- a/gfx/intro/background.tilemap.lz.4c7562ee
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/crystal_unowns.2bpp.lz.e7f8ad51 b/gfx/intro/crystal_unowns.2bpp.lz.e7f8ad51
deleted file mode 100644
index 2585d9c52..000000000
--- a/gfx/intro/crystal_unowns.2bpp.lz.e7f8ad51
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/crystal_unowns.attrmap.lz.1bfc5a89 b/gfx/intro/crystal_unowns.attrmap.lz.1bfc5a89
deleted file mode 100644
index 22a4cc926..000000000
--- a/gfx/intro/crystal_unowns.attrmap.lz.1bfc5a89
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/crystal_unowns.tilemap.lz.e4772015 b/gfx/intro/crystal_unowns.tilemap.lz.e4772015
deleted file mode 100644
index 90ce59e58..000000000
--- a/gfx/intro/crystal_unowns.tilemap.lz.e4772015
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/logo.2bpp.lz.e03ee257 b/gfx/intro/logo.2bpp.lz.e03ee257
deleted file mode 100644
index 5beb0e6ef..000000000
--- a/gfx/intro/logo.2bpp.lz.e03ee257
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/pichu_wooper.2bpp.lz.4bccf7f4 b/gfx/intro/pichu_wooper.2bpp.lz.4bccf7f4
deleted file mode 100644
index 90174a098..000000000
--- a/gfx/intro/pichu_wooper.2bpp.lz.4bccf7f4
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/pulse.2bpp.lz.9fb06bb6 b/gfx/intro/pulse.2bpp.lz.9fb06bb6
deleted file mode 100644
index 5a7fec1a9..000000000
--- a/gfx/intro/pulse.2bpp.lz.9fb06bb6
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/suicune_back.2bpp.lz.c6f529b0 b/gfx/intro/suicune_back.2bpp.lz.c6f529b0
deleted file mode 100644
index 470d78b5b..000000000
--- a/gfx/intro/suicune_back.2bpp.lz.c6f529b0
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/suicune_back.attrmap.lz.18e3115f b/gfx/intro/suicune_back.attrmap.lz.18e3115f
deleted file mode 100644
index 91635527c..000000000
--- a/gfx/intro/suicune_back.attrmap.lz.18e3115f
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/suicune_back.tilemap.lz.7b59259d b/gfx/intro/suicune_back.tilemap.lz.7b59259d
deleted file mode 100644
index a892ab1b4..000000000
--- a/gfx/intro/suicune_back.tilemap.lz.7b59259d
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/suicune_close.2bpp.lz.7e362923 b/gfx/intro/suicune_close.2bpp.lz.7e362923
deleted file mode 100644
index 19b806269..000000000
--- a/gfx/intro/suicune_close.2bpp.lz.7e362923
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/suicune_close.attrmap.lz.bb066632 b/gfx/intro/suicune_close.attrmap.lz.bb066632
deleted file mode 100644
index 68ceb19f8..000000000
--- a/gfx/intro/suicune_close.attrmap.lz.bb066632
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/suicune_close.tilemap.lz.bc182264 b/gfx/intro/suicune_close.tilemap.lz.bc182264
deleted file mode 100644
index 0d6af294c..000000000
--- a/gfx/intro/suicune_close.tilemap.lz.bc182264
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/suicune_jump.2bpp.lz.1b09fb64 b/gfx/intro/suicune_jump.2bpp.lz.1b09fb64
deleted file mode 100644
index b34a0c765..000000000
--- a/gfx/intro/suicune_jump.2bpp.lz.1b09fb64
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/suicune_jump.attrmap.lz.911a1ace b/gfx/intro/suicune_jump.attrmap.lz.911a1ace
deleted file mode 100644
index 238d6a60e..000000000
--- a/gfx/intro/suicune_jump.attrmap.lz.911a1ace
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/suicune_jump.tilemap.lz.2717d106 b/gfx/intro/suicune_jump.tilemap.lz.2717d106
deleted file mode 100644
index 6e45c45f7..000000000
--- a/gfx/intro/suicune_jump.tilemap.lz.2717d106
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/suicune_run.2bpp.lz.ef999ad2 b/gfx/intro/suicune_run.2bpp.lz.ef999ad2
deleted file mode 100644
index f48162258..000000000
--- a/gfx/intro/suicune_run.2bpp.lz.ef999ad2
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/unown_a.attrmap.lz.c2341875 b/gfx/intro/unown_a.attrmap.lz.c2341875
deleted file mode 100644
index 926fb6e8e..000000000
--- a/gfx/intro/unown_a.attrmap.lz.c2341875
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/unown_a.tilemap.lz.54d5b74b b/gfx/intro/unown_a.tilemap.lz.54d5b74b
deleted file mode 100644
index c63f215f2..000000000
--- a/gfx/intro/unown_a.tilemap.lz.54d5b74b
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/unown_back.2bpp.lz.740c4d28 b/gfx/intro/unown_back.2bpp.lz.740c4d28
deleted file mode 100644
index 21cae2927..000000000
--- a/gfx/intro/unown_back.2bpp.lz.740c4d28
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/unown_hi.attrmap.lz.bed1ff6d b/gfx/intro/unown_hi.attrmap.lz.bed1ff6d
deleted file mode 100644
index 0ae96b7f7..000000000
--- a/gfx/intro/unown_hi.attrmap.lz.bed1ff6d
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/unown_hi.tilemap.lz.c8756972 b/gfx/intro/unown_hi.tilemap.lz.c8756972
deleted file mode 100644
index 46436b607..000000000
--- a/gfx/intro/unown_hi.tilemap.lz.c8756972
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/unowns.2bpp.lz.3a1f185e b/gfx/intro/unowns.2bpp.lz.3a1f185e
deleted file mode 100644
index 67e90b0b6..000000000
--- a/gfx/intro/unowns.2bpp.lz.3a1f185e
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/unowns.attrmap.lz.a9cbcbca b/gfx/intro/unowns.attrmap.lz.a9cbcbca
deleted file mode 100644
index d1694ed3e..000000000
--- a/gfx/intro/unowns.attrmap.lz.a9cbcbca
+++ /dev/null
Binary files differ
diff --git a/gfx/intro/unowns.tilemap.lz.f12ed6d9 b/gfx/intro/unowns.tilemap.lz.f12ed6d9
deleted file mode 100644
index 356c6d5e8..000000000
--- a/gfx/intro/unowns.tilemap.lz.f12ed6d9
+++ /dev/null
Binary files differ
diff --git a/gfx/lz.mk b/gfx/lz.mk
new file mode 100644
index 000000000..4b900c661
--- /dev/null
+++ b/gfx/lz.mk
@@ -0,0 +1,67 @@
+# Delete these rules if you don't care about matching.
+
+%.lz: LZFLAGS = --compressor multipass
+
+gfx/battle_anims/%.lz: LZFLAGS += --method 2 --align 4
+
+gfx/battle/dude.2bpp.lz: LZFLAGS += --align 4
+
+gfx/diploma/diploma.2bpp.lz: LZFLAGS += --method 8 --align 1
+
+gfx/dummy_game/dummy_game.2bpp.lz: LZFLAGS += --method 2 --align 4
+
+gfx/intro/%.lz: LZFLAGS += --align 4
+gfx/intro/logo.2bpp.lz: LZFLAGS += --method 2 --align 4
+gfx/intro/suicune_close.2bpp.lz: LZFLAGS += --method 2 --align 4
+gfx/intro/unown_back.2bpp.lz: LZFLAGS += --method 2 --align 4
+
+gfx/mobile/mobile_trade.%.lz: LZFLAGS += --align 4
+gfx/mobile/mobile_trade_sprites.2bpp.lz: LZFLAGS += --align 4
+
+gfx/new_game/shrink1.2bpp.lz: LZFLAGS += --align 4
+gfx/new_game/shrink2.2bpp.lz: LZFLAGS += --align 4
+
+gfx/pc/pc.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+
+gfx/player/chris_back.2bpp.lz: LZFLAGS += --align 4
+
+gfx/pokedex/pokedex.2bpp.lz: LZFLAGS += --method 8 --align 1
+gfx/pokedex/pokedex_sgb.2bpp.lz: LZFLAGS += --method 8 --align 1
+gfx/pokedex/question_mark.2bpp.lz: LZFLAGS += --align 4
+gfx/pokedex/slowpoke.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+
+gfx/pokegear/pokegear.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/pokegear/pokegear_sprites.2bpp.lz: LZFLAGS += --align 4
+gfx/pokegear/town_map.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+
+gfx/pokemon/hitmontop/back.2bpp.lz: LZFLAGS += --method 4
+gfx/pokemon/voltorb/front.animated.2bpp.lz: LZFLAGS += --method 4
+
+gfx/sgb/gbc_only.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+
+gfx/slots/slots_1.2bpp.lz: LZFLAGS += --method 2 --align 4
+gfx/slots/slots_2.2bpp.lz: LZFLAGS += --align 4
+gfx/slots/slots_3.2bpp.lz: LZFLAGS += --align 4
+
+gfx/tilesets/%.lz: LZFLAGS += --align 4
+gfx/tilesets/aerodactyl_word_room.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/tilesets/battle_tower_outside.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/tilesets/beta_word_room.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/tilesets/ho_oh_word_room.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/tilesets/house.2bpp.lz: LZFLAGS += --method 2 --align 4
+gfx/tilesets/johto.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/tilesets/johto_modern.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/tilesets/kabuto_word_room.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/tilesets/kanto.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/tilesets/mansion.2bpp.lz: LZFLAGS += --method 2 --align 4
+gfx/tilesets/mart.2bpp.lz: LZFLAGS += --method 2 --align 4
+gfx/tilesets/omanyte_word_room.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/tilesets/ruins_of_alph.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/tilesets/tower.2bpp.lz: LZFLAGS += --method 2 --align 4
+
+gfx/title/crystal.2bpp.lz: LZFLAGS += --align 4
+gfx/title/logo.2bpp.lz: LZFLAGS = --compressor null --method 1 --align 1
+gfx/title/suicune.2bpp.lz: LZFLAGS += --align 4
+
+gfx/unown_puzzle/%.lz: LZFLAGS += --align 4
+gfx/unown_puzzle/start_cancel.2bpp.lz: LZFLAGS += --method 8 --align 1
diff --git a/gfx/mobile/electro_ball.2bpp.lz.3eaf004f b/gfx/mobile/electro_ball.2bpp.lz.3eaf004f
deleted file mode 100644
index b4fabff15..000000000
--- a/gfx/mobile/electro_ball.2bpp.lz.3eaf004f
+++ /dev/null
Binary files differ
diff --git a/gfx/mobile/mobile_trade.2bpp.lz.aad8592b b/gfx/mobile/mobile_trade.2bpp.lz.aad8592b
deleted file mode 100644
index 4d860f055..000000000
--- a/gfx/mobile/mobile_trade.2bpp.lz.aad8592b
+++ /dev/null
Binary files differ
diff --git a/gfx/mobile/mobile_trade.attrmap.lz.ea4f2cbe b/gfx/mobile/mobile_trade.attrmap.lz.ea4f2cbe
deleted file mode 100644
index 933762c80..000000000
--- a/gfx/mobile/mobile_trade.attrmap.lz.ea4f2cbe
+++ /dev/null
Binary files differ
diff --git a/gfx/mobile/mobile_trade.tilemap.lz.12882d37 b/gfx/mobile/mobile_trade.tilemap.lz.12882d37
deleted file mode 100644
index 94069f2fa..000000000
--- a/gfx/mobile/mobile_trade.tilemap.lz.12882d37
+++ /dev/null
Binary files differ
diff --git a/gfx/mobile/mobile_trade_sprites.2bpp.lz.eef1e11d b/gfx/mobile/mobile_trade_sprites.2bpp.lz.eef1e11d
deleted file mode 100644
index b499f4abf..000000000
--- a/gfx/mobile/mobile_trade_sprites.2bpp.lz.eef1e11d
+++ /dev/null
Binary files differ
diff --git a/gfx/mobile/pichu_animated.2bpp.lz.5d6d2ad4 b/gfx/mobile/pichu_animated.2bpp.lz.5d6d2ad4
deleted file mode 100644
index 4d50c6bcf..000000000
--- a/gfx/mobile/pichu_animated.2bpp.lz.5d6d2ad4
+++ /dev/null
Binary files differ
diff --git a/gfx/new_game/shrink1.2bpp.lz.d4443930 b/gfx/new_game/shrink1.2bpp.lz.d4443930
deleted file mode 100644
index 284bee8c2..000000000
--- a/gfx/new_game/shrink1.2bpp.lz.d4443930
+++ /dev/null
Binary files differ
diff --git a/gfx/new_game/shrink2.2bpp.lz.3f58480a b/gfx/new_game/shrink2.2bpp.lz.3f58480a
deleted file mode 100644
index df14d5ed4..000000000
--- a/gfx/new_game/shrink2.2bpp.lz.3f58480a
+++ /dev/null
Binary files differ
diff --git a/gfx/pc/pc.2bpp.lz.2201c1aa b/gfx/pc/pc.2bpp.lz.2201c1aa
deleted file mode 100644
index 996cfadc9..000000000
--- a/gfx/pc/pc.2bpp.lz.2201c1aa
+++ /dev/null
Binary files differ
diff --git a/gfx/player/chris_back.2bpp.lz.0312ddce b/gfx/player/chris_back.2bpp.lz.0312ddce
deleted file mode 100644
index aec84bbab..000000000
--- a/gfx/player/chris_back.2bpp.lz.0312ddce
+++ /dev/null
Binary files differ
diff --git a/gfx/pokedex/pokedex.2bpp.lz.3726dd3f b/gfx/pokedex/pokedex.2bpp.lz.3726dd3f
deleted file mode 100644
index 8f7e3aafb..000000000
--- a/gfx/pokedex/pokedex.2bpp.lz.3726dd3f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokedex/pokedex_sgb.2bpp.lz.82bc0a7b b/gfx/pokedex/pokedex_sgb.2bpp.lz.82bc0a7b
deleted file mode 100644
index 6ec9c46b2..000000000
--- a/gfx/pokedex/pokedex_sgb.2bpp.lz.82bc0a7b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokedex/question_mark.2bpp.lz.6e639380 b/gfx/pokedex/question_mark.2bpp.lz.6e639380
deleted file mode 100644
index cd2f7f22e..000000000
--- a/gfx/pokedex/question_mark.2bpp.lz.6e639380
+++ /dev/null
Binary files differ
diff --git a/gfx/pokedex/slowpoke.2bpp.lz.49a91b42 b/gfx/pokedex/slowpoke.2bpp.lz.49a91b42
deleted file mode 100644
index b8d0e4902..000000000
--- a/gfx/pokedex/slowpoke.2bpp.lz.49a91b42
+++ /dev/null
Binary files differ
diff --git a/gfx/pokegear/pokegear.2bpp.lz.42315ab4 b/gfx/pokegear/pokegear.2bpp.lz.42315ab4
deleted file mode 100644
index df312a51b..000000000
--- a/gfx/pokegear/pokegear.2bpp.lz.42315ab4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokegear/pokegear_sprites.2bpp.lz.7a3cc91f b/gfx/pokegear/pokegear_sprites.2bpp.lz.7a3cc91f
deleted file mode 100644
index b5af62d28..000000000
--- a/gfx/pokegear/pokegear_sprites.2bpp.lz.7a3cc91f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokegear/town_map.2bpp.lz.c0587c86 b/gfx/pokegear/town_map.2bpp.lz.c0587c86
deleted file mode 100644
index c807a372f..000000000
--- a/gfx/pokegear/town_map.2bpp.lz.c0587c86
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/abra/back.2bpp.lz.9ac09a32 b/gfx/pokemon/abra/back.2bpp.lz.9ac09a32
deleted file mode 100644
index 2df351881..000000000
--- a/gfx/pokemon/abra/back.2bpp.lz.9ac09a32
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/abra/front.animated.2bpp.lz.12e14d9a b/gfx/pokemon/abra/front.animated.2bpp.lz.12e14d9a
deleted file mode 100644
index 2b41c4263..000000000
--- a/gfx/pokemon/abra/front.animated.2bpp.lz.12e14d9a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/aerodactyl/back.2bpp.lz.e2da1f61 b/gfx/pokemon/aerodactyl/back.2bpp.lz.e2da1f61
deleted file mode 100644
index 05536351b..000000000
--- a/gfx/pokemon/aerodactyl/back.2bpp.lz.e2da1f61
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/aerodactyl/front.animated.2bpp.lz.3bceb33e b/gfx/pokemon/aerodactyl/front.animated.2bpp.lz.3bceb33e
deleted file mode 100644
index ae8d9f8ab..000000000
--- a/gfx/pokemon/aerodactyl/front.animated.2bpp.lz.3bceb33e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/aipom/back.2bpp.lz.597d4dda b/gfx/pokemon/aipom/back.2bpp.lz.597d4dda
deleted file mode 100644
index d6d9fdbc1..000000000
--- a/gfx/pokemon/aipom/back.2bpp.lz.597d4dda
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/aipom/front.animated.2bpp.lz.fba7c862 b/gfx/pokemon/aipom/front.animated.2bpp.lz.fba7c862
deleted file mode 100644
index 58800e5e4..000000000
--- a/gfx/pokemon/aipom/front.animated.2bpp.lz.fba7c862
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/alakazam/back.2bpp.lz.75e7e1c6 b/gfx/pokemon/alakazam/back.2bpp.lz.75e7e1c6
deleted file mode 100644
index 65f1a2729..000000000
--- a/gfx/pokemon/alakazam/back.2bpp.lz.75e7e1c6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/alakazam/front.animated.2bpp.lz.b246e050 b/gfx/pokemon/alakazam/front.animated.2bpp.lz.b246e050
deleted file mode 100644
index 6272553a7..000000000
--- a/gfx/pokemon/alakazam/front.animated.2bpp.lz.b246e050
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ampharos/back.2bpp.lz.06af98c8 b/gfx/pokemon/ampharos/back.2bpp.lz.06af98c8
deleted file mode 100644
index 8d3b42d9b..000000000
--- a/gfx/pokemon/ampharos/back.2bpp.lz.06af98c8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ampharos/front.animated.2bpp.lz.4b908a28 b/gfx/pokemon/ampharos/front.animated.2bpp.lz.4b908a28
deleted file mode 100644
index 84f43c105..000000000
--- a/gfx/pokemon/ampharos/front.animated.2bpp.lz.4b908a28
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/arbok/back.2bpp.lz.7b18cb93 b/gfx/pokemon/arbok/back.2bpp.lz.7b18cb93
deleted file mode 100644
index 175abb499..000000000
--- a/gfx/pokemon/arbok/back.2bpp.lz.7b18cb93
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/arbok/front.animated.2bpp.lz.1589a977 b/gfx/pokemon/arbok/front.animated.2bpp.lz.1589a977
deleted file mode 100644
index 8b5918dbd..000000000
--- a/gfx/pokemon/arbok/front.animated.2bpp.lz.1589a977
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/arcanine/back.2bpp.lz.f5b35ebf b/gfx/pokemon/arcanine/back.2bpp.lz.f5b35ebf
deleted file mode 100644
index a76d64986..000000000
--- a/gfx/pokemon/arcanine/back.2bpp.lz.f5b35ebf
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/arcanine/front.animated.2bpp.lz.5ae8eff3 b/gfx/pokemon/arcanine/front.animated.2bpp.lz.5ae8eff3
deleted file mode 100644
index da1784800..000000000
--- a/gfx/pokemon/arcanine/front.animated.2bpp.lz.5ae8eff3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ariados/back.2bpp.lz.9fb1c3fc b/gfx/pokemon/ariados/back.2bpp.lz.9fb1c3fc
deleted file mode 100644
index ff3aec7fb..000000000
--- a/gfx/pokemon/ariados/back.2bpp.lz.9fb1c3fc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ariados/front.animated.2bpp.lz.5ac5c83c b/gfx/pokemon/ariados/front.animated.2bpp.lz.5ac5c83c
deleted file mode 100644
index 51039aeb5..000000000
--- a/gfx/pokemon/ariados/front.animated.2bpp.lz.5ac5c83c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/articuno/back.2bpp.lz.c263c2aa b/gfx/pokemon/articuno/back.2bpp.lz.c263c2aa
deleted file mode 100644
index 87b61ac9d..000000000
--- a/gfx/pokemon/articuno/back.2bpp.lz.c263c2aa
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/articuno/front.animated.2bpp.lz.650aef29 b/gfx/pokemon/articuno/front.animated.2bpp.lz.650aef29
deleted file mode 100644
index a60367098..000000000
--- a/gfx/pokemon/articuno/front.animated.2bpp.lz.650aef29
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/azumarill/back.2bpp.lz.f7fa0db9 b/gfx/pokemon/azumarill/back.2bpp.lz.f7fa0db9
deleted file mode 100644
index b66df2a71..000000000
--- a/gfx/pokemon/azumarill/back.2bpp.lz.f7fa0db9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/azumarill/front.animated.2bpp.lz.cc9fd2ed b/gfx/pokemon/azumarill/front.animated.2bpp.lz.cc9fd2ed
deleted file mode 100644
index d6f031164..000000000
--- a/gfx/pokemon/azumarill/front.animated.2bpp.lz.cc9fd2ed
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/bayleef/back.2bpp.lz.c4783e65 b/gfx/pokemon/bayleef/back.2bpp.lz.c4783e65
deleted file mode 100644
index 809e5d199..000000000
--- a/gfx/pokemon/bayleef/back.2bpp.lz.c4783e65
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/bayleef/front.animated.2bpp.lz.147649f2 b/gfx/pokemon/bayleef/front.animated.2bpp.lz.147649f2
deleted file mode 100644
index 3134f6e16..000000000
--- a/gfx/pokemon/bayleef/front.animated.2bpp.lz.147649f2
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/beedrill/back.2bpp.lz.dfd6a87b b/gfx/pokemon/beedrill/back.2bpp.lz.dfd6a87b
deleted file mode 100644
index 492eb64e2..000000000
--- a/gfx/pokemon/beedrill/back.2bpp.lz.dfd6a87b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/beedrill/front.animated.2bpp.lz.1b5d3117 b/gfx/pokemon/beedrill/front.animated.2bpp.lz.1b5d3117
deleted file mode 100644
index 55f560521..000000000
--- a/gfx/pokemon/beedrill/front.animated.2bpp.lz.1b5d3117
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/bellossom/back.2bpp.lz.10d31691 b/gfx/pokemon/bellossom/back.2bpp.lz.10d31691
deleted file mode 100644
index d1a59b617..000000000
--- a/gfx/pokemon/bellossom/back.2bpp.lz.10d31691
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/bellossom/front.animated.2bpp.lz.289eaecf b/gfx/pokemon/bellossom/front.animated.2bpp.lz.289eaecf
deleted file mode 100644
index 9cba9a1c3..000000000
--- a/gfx/pokemon/bellossom/front.animated.2bpp.lz.289eaecf
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/bellsprout/back.2bpp.lz.9dacbda8 b/gfx/pokemon/bellsprout/back.2bpp.lz.9dacbda8
deleted file mode 100644
index ab600f064..000000000
--- a/gfx/pokemon/bellsprout/back.2bpp.lz.9dacbda8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/bellsprout/front.animated.2bpp.lz.44df413d b/gfx/pokemon/bellsprout/front.animated.2bpp.lz.44df413d
deleted file mode 100644
index 2593fb112..000000000
--- a/gfx/pokemon/bellsprout/front.animated.2bpp.lz.44df413d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/blastoise/back.2bpp.lz.b90e8d5a b/gfx/pokemon/blastoise/back.2bpp.lz.b90e8d5a
deleted file mode 100644
index 5e27c9989..000000000
--- a/gfx/pokemon/blastoise/back.2bpp.lz.b90e8d5a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/blastoise/front.animated.2bpp.lz.3899aed0 b/gfx/pokemon/blastoise/front.animated.2bpp.lz.3899aed0
deleted file mode 100644
index 33148b076..000000000
--- a/gfx/pokemon/blastoise/front.animated.2bpp.lz.3899aed0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/blissey/back.2bpp.lz.d2763673 b/gfx/pokemon/blissey/back.2bpp.lz.d2763673
deleted file mode 100644
index 00749ddee..000000000
--- a/gfx/pokemon/blissey/back.2bpp.lz.d2763673
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/blissey/front.animated.2bpp.lz.04f2353a b/gfx/pokemon/blissey/front.animated.2bpp.lz.04f2353a
deleted file mode 100644
index 76f492c43..000000000
--- a/gfx/pokemon/blissey/front.animated.2bpp.lz.04f2353a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/bulbasaur/back.2bpp.lz.84f8d1c4 b/gfx/pokemon/bulbasaur/back.2bpp.lz.84f8d1c4
deleted file mode 100644
index 44f8fa450..000000000
--- a/gfx/pokemon/bulbasaur/back.2bpp.lz.84f8d1c4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/bulbasaur/front.animated.2bpp.lz.04627405 b/gfx/pokemon/bulbasaur/front.animated.2bpp.lz.04627405
deleted file mode 100644
index fc4550001..000000000
--- a/gfx/pokemon/bulbasaur/front.animated.2bpp.lz.04627405
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/butterfree/back.2bpp.lz.a8543d86 b/gfx/pokemon/butterfree/back.2bpp.lz.a8543d86
deleted file mode 100644
index 6d741f493..000000000
--- a/gfx/pokemon/butterfree/back.2bpp.lz.a8543d86
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/butterfree/front.animated.2bpp.lz.33ba7e24 b/gfx/pokemon/butterfree/front.animated.2bpp.lz.33ba7e24
deleted file mode 100644
index bf8b7a690..000000000
--- a/gfx/pokemon/butterfree/front.animated.2bpp.lz.33ba7e24
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/caterpie/back.2bpp.lz.57e32015 b/gfx/pokemon/caterpie/back.2bpp.lz.57e32015
deleted file mode 100644
index a3788d1e4..000000000
--- a/gfx/pokemon/caterpie/back.2bpp.lz.57e32015
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/caterpie/front.animated.2bpp.lz.ec4f7cb8 b/gfx/pokemon/caterpie/front.animated.2bpp.lz.ec4f7cb8
deleted file mode 100644
index d3036d9ff..000000000
--- a/gfx/pokemon/caterpie/front.animated.2bpp.lz.ec4f7cb8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/celebi/back.2bpp.lz.17ea5fe6 b/gfx/pokemon/celebi/back.2bpp.lz.17ea5fe6
deleted file mode 100644
index e8153224c..000000000
--- a/gfx/pokemon/celebi/back.2bpp.lz.17ea5fe6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/celebi/front.animated.2bpp.lz.16f259a5 b/gfx/pokemon/celebi/front.animated.2bpp.lz.16f259a5
deleted file mode 100644
index afc41bee7..000000000
--- a/gfx/pokemon/celebi/front.animated.2bpp.lz.16f259a5
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/chansey/back.2bpp.lz.14d90ba1 b/gfx/pokemon/chansey/back.2bpp.lz.14d90ba1
deleted file mode 100644
index 239df2d63..000000000
--- a/gfx/pokemon/chansey/back.2bpp.lz.14d90ba1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/chansey/front.animated.2bpp.lz.158fc381 b/gfx/pokemon/chansey/front.animated.2bpp.lz.158fc381
deleted file mode 100644
index 1fc457f19..000000000
--- a/gfx/pokemon/chansey/front.animated.2bpp.lz.158fc381
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/charizard/back.2bpp.lz.f04ac62c b/gfx/pokemon/charizard/back.2bpp.lz.f04ac62c
deleted file mode 100644
index db1d9c9ea..000000000
--- a/gfx/pokemon/charizard/back.2bpp.lz.f04ac62c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/charizard/front.animated.2bpp.lz.0068f820 b/gfx/pokemon/charizard/front.animated.2bpp.lz.0068f820
deleted file mode 100644
index aab0fda99..000000000
--- a/gfx/pokemon/charizard/front.animated.2bpp.lz.0068f820
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/charmander/back.2bpp.lz.bcb371c6 b/gfx/pokemon/charmander/back.2bpp.lz.bcb371c6
deleted file mode 100644
index e8eb5eb4e..000000000
--- a/gfx/pokemon/charmander/back.2bpp.lz.bcb371c6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/charmander/front.animated.2bpp.lz.704bfc17 b/gfx/pokemon/charmander/front.animated.2bpp.lz.704bfc17
deleted file mode 100644
index 7cc31694b..000000000
--- a/gfx/pokemon/charmander/front.animated.2bpp.lz.704bfc17
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/charmeleon/back.2bpp.lz.cf73268f b/gfx/pokemon/charmeleon/back.2bpp.lz.cf73268f
deleted file mode 100644
index aec0cd7b2..000000000
--- a/gfx/pokemon/charmeleon/back.2bpp.lz.cf73268f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/charmeleon/front.animated.2bpp.lz.0e629968 b/gfx/pokemon/charmeleon/front.animated.2bpp.lz.0e629968
deleted file mode 100644
index efe789dad..000000000
--- a/gfx/pokemon/charmeleon/front.animated.2bpp.lz.0e629968
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/chikorita/back.2bpp.lz.27a21938 b/gfx/pokemon/chikorita/back.2bpp.lz.27a21938
deleted file mode 100644
index e98365a2b..000000000
--- a/gfx/pokemon/chikorita/back.2bpp.lz.27a21938
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/chikorita/front.animated.2bpp.lz.18de5fe9 b/gfx/pokemon/chikorita/front.animated.2bpp.lz.18de5fe9
deleted file mode 100644
index 008c4ec2d..000000000
--- a/gfx/pokemon/chikorita/front.animated.2bpp.lz.18de5fe9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/chinchou/back.2bpp.lz.ea061e91 b/gfx/pokemon/chinchou/back.2bpp.lz.ea061e91
deleted file mode 100644
index 744af1ad4..000000000
--- a/gfx/pokemon/chinchou/back.2bpp.lz.ea061e91
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/chinchou/front.animated.2bpp.lz.901aa690 b/gfx/pokemon/chinchou/front.animated.2bpp.lz.901aa690
deleted file mode 100644
index b5db65701..000000000
--- a/gfx/pokemon/chinchou/front.animated.2bpp.lz.901aa690
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/clefable/back.2bpp.lz.d57ec142 b/gfx/pokemon/clefable/back.2bpp.lz.d57ec142
deleted file mode 100644
index 1bcb8cbcd..000000000
--- a/gfx/pokemon/clefable/back.2bpp.lz.d57ec142
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/clefable/front.animated.2bpp.lz.59d160ad b/gfx/pokemon/clefable/front.animated.2bpp.lz.59d160ad
deleted file mode 100644
index 4fb424305..000000000
--- a/gfx/pokemon/clefable/front.animated.2bpp.lz.59d160ad
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/clefairy/back.2bpp.lz.f8aff3dd b/gfx/pokemon/clefairy/back.2bpp.lz.f8aff3dd
deleted file mode 100644
index a6a5ecb82..000000000
--- a/gfx/pokemon/clefairy/back.2bpp.lz.f8aff3dd
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/clefairy/front.animated.2bpp.lz.0918b60d b/gfx/pokemon/clefairy/front.animated.2bpp.lz.0918b60d
deleted file mode 100644
index d8adc2e2e..000000000
--- a/gfx/pokemon/clefairy/front.animated.2bpp.lz.0918b60d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/cleffa/back.2bpp.lz.ea9b3d08 b/gfx/pokemon/cleffa/back.2bpp.lz.ea9b3d08
deleted file mode 100644
index 35ec3369b..000000000
--- a/gfx/pokemon/cleffa/back.2bpp.lz.ea9b3d08
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/cleffa/front.animated.2bpp.lz.49630c80 b/gfx/pokemon/cleffa/front.animated.2bpp.lz.49630c80
deleted file mode 100644
index e8c624069..000000000
--- a/gfx/pokemon/cleffa/front.animated.2bpp.lz.49630c80
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/cloyster/back.2bpp.lz.5ad194b3 b/gfx/pokemon/cloyster/back.2bpp.lz.5ad194b3
deleted file mode 100644
index 655890df8..000000000
--- a/gfx/pokemon/cloyster/back.2bpp.lz.5ad194b3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/cloyster/front.animated.2bpp.lz.fe85709f b/gfx/pokemon/cloyster/front.animated.2bpp.lz.fe85709f
deleted file mode 100644
index 83991eed6..000000000
--- a/gfx/pokemon/cloyster/front.animated.2bpp.lz.fe85709f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/corsola/back.2bpp.lz.2b6c7860 b/gfx/pokemon/corsola/back.2bpp.lz.2b6c7860
deleted file mode 100644
index 6707a3538..000000000
--- a/gfx/pokemon/corsola/back.2bpp.lz.2b6c7860
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/corsola/front.animated.2bpp.lz.2e7905aa b/gfx/pokemon/corsola/front.animated.2bpp.lz.2e7905aa
deleted file mode 100644
index afa208922..000000000
--- a/gfx/pokemon/corsola/front.animated.2bpp.lz.2e7905aa
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/crobat/back.2bpp.lz.30850b2e b/gfx/pokemon/crobat/back.2bpp.lz.30850b2e
deleted file mode 100644
index a572d93c5..000000000
--- a/gfx/pokemon/crobat/back.2bpp.lz.30850b2e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/crobat/front.animated.2bpp.lz.dc386ff0 b/gfx/pokemon/crobat/front.animated.2bpp.lz.dc386ff0
deleted file mode 100644
index 1e12aeed2..000000000
--- a/gfx/pokemon/crobat/front.animated.2bpp.lz.dc386ff0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/croconaw/back.2bpp.lz.a605c82f b/gfx/pokemon/croconaw/back.2bpp.lz.a605c82f
deleted file mode 100644
index 7e573e6a0..000000000
--- a/gfx/pokemon/croconaw/back.2bpp.lz.a605c82f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/croconaw/front.animated.2bpp.lz.a797986d b/gfx/pokemon/croconaw/front.animated.2bpp.lz.a797986d
deleted file mode 100644
index 9c7f511ba..000000000
--- a/gfx/pokemon/croconaw/front.animated.2bpp.lz.a797986d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/cubone/back.2bpp.lz.bd849dfb b/gfx/pokemon/cubone/back.2bpp.lz.bd849dfb
deleted file mode 100644
index fc9931417..000000000
--- a/gfx/pokemon/cubone/back.2bpp.lz.bd849dfb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/cubone/front.animated.2bpp.lz.0d63a3a4 b/gfx/pokemon/cubone/front.animated.2bpp.lz.0d63a3a4
deleted file mode 100644
index 9de9f7732..000000000
--- a/gfx/pokemon/cubone/front.animated.2bpp.lz.0d63a3a4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/cyndaquil/back.2bpp.lz.68baeeeb b/gfx/pokemon/cyndaquil/back.2bpp.lz.68baeeeb
deleted file mode 100644
index 226c41e49..000000000
--- a/gfx/pokemon/cyndaquil/back.2bpp.lz.68baeeeb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/cyndaquil/front.animated.2bpp.lz.0d5dce8d b/gfx/pokemon/cyndaquil/front.animated.2bpp.lz.0d5dce8d
deleted file mode 100644
index 3e2886783..000000000
--- a/gfx/pokemon/cyndaquil/front.animated.2bpp.lz.0d5dce8d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/delibird/back.2bpp.lz.11463d76 b/gfx/pokemon/delibird/back.2bpp.lz.11463d76
deleted file mode 100644
index 22f41237c..000000000
--- a/gfx/pokemon/delibird/back.2bpp.lz.11463d76
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/delibird/front.animated.2bpp.lz.a3126c48 b/gfx/pokemon/delibird/front.animated.2bpp.lz.a3126c48
deleted file mode 100644
index 819e46af0..000000000
--- a/gfx/pokemon/delibird/front.animated.2bpp.lz.a3126c48
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dewgong/back.2bpp.lz.4e1fef76 b/gfx/pokemon/dewgong/back.2bpp.lz.4e1fef76
deleted file mode 100644
index bc6842e86..000000000
--- a/gfx/pokemon/dewgong/back.2bpp.lz.4e1fef76
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dewgong/front.animated.2bpp.lz.cc53359c b/gfx/pokemon/dewgong/front.animated.2bpp.lz.cc53359c
deleted file mode 100644
index cbb0ace94..000000000
--- a/gfx/pokemon/dewgong/front.animated.2bpp.lz.cc53359c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/diglett/back.2bpp.lz.31d8cacc b/gfx/pokemon/diglett/back.2bpp.lz.31d8cacc
deleted file mode 100644
index 05625954c..000000000
--- a/gfx/pokemon/diglett/back.2bpp.lz.31d8cacc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/diglett/front.animated.2bpp.lz.52b0361e b/gfx/pokemon/diglett/front.animated.2bpp.lz.52b0361e
deleted file mode 100644
index 5ed5e87ff..000000000
--- a/gfx/pokemon/diglett/front.animated.2bpp.lz.52b0361e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ditto/back.2bpp.lz.b01a9d91 b/gfx/pokemon/ditto/back.2bpp.lz.b01a9d91
deleted file mode 100644
index ee2a621bf..000000000
--- a/gfx/pokemon/ditto/back.2bpp.lz.b01a9d91
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ditto/front.animated.2bpp.lz.344c90fd b/gfx/pokemon/ditto/front.animated.2bpp.lz.344c90fd
deleted file mode 100644
index ef64bd777..000000000
--- a/gfx/pokemon/ditto/front.animated.2bpp.lz.344c90fd
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dodrio/back.2bpp.lz.a5480e88 b/gfx/pokemon/dodrio/back.2bpp.lz.a5480e88
deleted file mode 100644
index 3b1d80db5..000000000
--- a/gfx/pokemon/dodrio/back.2bpp.lz.a5480e88
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dodrio/front.animated.2bpp.lz.2aaff569 b/gfx/pokemon/dodrio/front.animated.2bpp.lz.2aaff569
deleted file mode 100644
index 8de65b2de..000000000
--- a/gfx/pokemon/dodrio/front.animated.2bpp.lz.2aaff569
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/doduo/back.2bpp.lz.05a57563 b/gfx/pokemon/doduo/back.2bpp.lz.05a57563
deleted file mode 100644
index 8f204150b..000000000
--- a/gfx/pokemon/doduo/back.2bpp.lz.05a57563
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/doduo/front.animated.2bpp.lz.89c4acbd b/gfx/pokemon/doduo/front.animated.2bpp.lz.89c4acbd
deleted file mode 100644
index 11d525427..000000000
--- a/gfx/pokemon/doduo/front.animated.2bpp.lz.89c4acbd
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/donphan/back.2bpp.lz.5067b370 b/gfx/pokemon/donphan/back.2bpp.lz.5067b370
deleted file mode 100644
index 4914f03aa..000000000
--- a/gfx/pokemon/donphan/back.2bpp.lz.5067b370
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/donphan/front.animated.2bpp.lz.9e1b7048 b/gfx/pokemon/donphan/front.animated.2bpp.lz.9e1b7048
deleted file mode 100644
index b46d083fc..000000000
--- a/gfx/pokemon/donphan/front.animated.2bpp.lz.9e1b7048
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dragonair/back.2bpp.lz.9b6fda5b b/gfx/pokemon/dragonair/back.2bpp.lz.9b6fda5b
deleted file mode 100644
index 52094c394..000000000
--- a/gfx/pokemon/dragonair/back.2bpp.lz.9b6fda5b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dragonair/front.animated.2bpp.lz.bb9ee373 b/gfx/pokemon/dragonair/front.animated.2bpp.lz.bb9ee373
deleted file mode 100644
index aad34536f..000000000
--- a/gfx/pokemon/dragonair/front.animated.2bpp.lz.bb9ee373
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dragonite/back.2bpp.lz.c408806f b/gfx/pokemon/dragonite/back.2bpp.lz.c408806f
deleted file mode 100644
index 09a828dd0..000000000
--- a/gfx/pokemon/dragonite/back.2bpp.lz.c408806f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dragonite/front.animated.2bpp.lz.b914dfd9 b/gfx/pokemon/dragonite/front.animated.2bpp.lz.b914dfd9
deleted file mode 100644
index 730c16739..000000000
--- a/gfx/pokemon/dragonite/front.animated.2bpp.lz.b914dfd9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dratini/back.2bpp.lz.be4d6a2a b/gfx/pokemon/dratini/back.2bpp.lz.be4d6a2a
deleted file mode 100644
index b40ffcaaf..000000000
--- a/gfx/pokemon/dratini/back.2bpp.lz.be4d6a2a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dratini/front.animated.2bpp.lz.838e4248 b/gfx/pokemon/dratini/front.animated.2bpp.lz.838e4248
deleted file mode 100644
index b933491b7..000000000
--- a/gfx/pokemon/dratini/front.animated.2bpp.lz.838e4248
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/drowzee/back.2bpp.lz.55367f5a b/gfx/pokemon/drowzee/back.2bpp.lz.55367f5a
deleted file mode 100644
index a4218ade7..000000000
--- a/gfx/pokemon/drowzee/back.2bpp.lz.55367f5a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/drowzee/front.animated.2bpp.lz.1f23711a b/gfx/pokemon/drowzee/front.animated.2bpp.lz.1f23711a
deleted file mode 100644
index cf3f87571..000000000
--- a/gfx/pokemon/drowzee/front.animated.2bpp.lz.1f23711a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dugtrio/back.2bpp.lz.e821a89c b/gfx/pokemon/dugtrio/back.2bpp.lz.e821a89c
deleted file mode 100644
index 05ad7b1ad..000000000
--- a/gfx/pokemon/dugtrio/back.2bpp.lz.e821a89c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dugtrio/front.animated.2bpp.lz.5c9e668c b/gfx/pokemon/dugtrio/front.animated.2bpp.lz.5c9e668c
deleted file mode 100644
index 7ef2606cd..000000000
--- a/gfx/pokemon/dugtrio/front.animated.2bpp.lz.5c9e668c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dunsparce/back.2bpp.lz.aee69114 b/gfx/pokemon/dunsparce/back.2bpp.lz.aee69114
deleted file mode 100644
index 1042b07f8..000000000
--- a/gfx/pokemon/dunsparce/back.2bpp.lz.aee69114
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/dunsparce/front.animated.2bpp.lz.04ea863c b/gfx/pokemon/dunsparce/front.animated.2bpp.lz.04ea863c
deleted file mode 100644
index 31e9aa319..000000000
--- a/gfx/pokemon/dunsparce/front.animated.2bpp.lz.04ea863c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/eevee/back.2bpp.lz.bc34ce62 b/gfx/pokemon/eevee/back.2bpp.lz.bc34ce62
deleted file mode 100644
index ddd051f3a..000000000
--- a/gfx/pokemon/eevee/back.2bpp.lz.bc34ce62
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/eevee/front.animated.2bpp.lz.04e72b48 b/gfx/pokemon/eevee/front.animated.2bpp.lz.04e72b48
deleted file mode 100644
index aea8d545e..000000000
--- a/gfx/pokemon/eevee/front.animated.2bpp.lz.04e72b48
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/egg/front.animated.2bpp.lz.7b468eff b/gfx/pokemon/egg/front.animated.2bpp.lz.7b468eff
deleted file mode 100644
index 47d8b997e..000000000
--- a/gfx/pokemon/egg/front.animated.2bpp.lz.7b468eff
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/egg/unused_front.2bpp.lz.a5b6cbfa b/gfx/pokemon/egg/unused_front.2bpp.lz.a5b6cbfa
deleted file mode 100644
index d8de54c79..000000000
--- a/gfx/pokemon/egg/unused_front.2bpp.lz.a5b6cbfa
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ekans/back.2bpp.lz.671d14d9 b/gfx/pokemon/ekans/back.2bpp.lz.671d14d9
deleted file mode 100644
index 07785737f..000000000
--- a/gfx/pokemon/ekans/back.2bpp.lz.671d14d9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ekans/front.animated.2bpp.lz.018a1c72 b/gfx/pokemon/ekans/front.animated.2bpp.lz.018a1c72
deleted file mode 100644
index efa075fab..000000000
--- a/gfx/pokemon/ekans/front.animated.2bpp.lz.018a1c72
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/electabuzz/back.2bpp.lz.e97330fe b/gfx/pokemon/electabuzz/back.2bpp.lz.e97330fe
deleted file mode 100644
index b64bc1ca1..000000000
--- a/gfx/pokemon/electabuzz/back.2bpp.lz.e97330fe
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/electabuzz/front.animated.2bpp.lz.381e1c6e b/gfx/pokemon/electabuzz/front.animated.2bpp.lz.381e1c6e
deleted file mode 100644
index 645db8d4d..000000000
--- a/gfx/pokemon/electabuzz/front.animated.2bpp.lz.381e1c6e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/electrode/back.2bpp.lz.874e1f1c b/gfx/pokemon/electrode/back.2bpp.lz.874e1f1c
deleted file mode 100644
index 9161c8884..000000000
--- a/gfx/pokemon/electrode/back.2bpp.lz.874e1f1c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/electrode/front.animated.2bpp.lz.d7943ad8 b/gfx/pokemon/electrode/front.animated.2bpp.lz.d7943ad8
deleted file mode 100644
index 2d86aa4ac..000000000
--- a/gfx/pokemon/electrode/front.animated.2bpp.lz.d7943ad8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/elekid/back.2bpp.lz.227a1b23 b/gfx/pokemon/elekid/back.2bpp.lz.227a1b23
deleted file mode 100644
index fd8dd04df..000000000
--- a/gfx/pokemon/elekid/back.2bpp.lz.227a1b23
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/elekid/front.animated.2bpp.lz.3bbb6b61 b/gfx/pokemon/elekid/front.animated.2bpp.lz.3bbb6b61
deleted file mode 100644
index dde6b0e0b..000000000
--- a/gfx/pokemon/elekid/front.animated.2bpp.lz.3bbb6b61
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/entei/back.2bpp.lz.d1e1986a b/gfx/pokemon/entei/back.2bpp.lz.d1e1986a
deleted file mode 100644
index 7f2440f51..000000000
--- a/gfx/pokemon/entei/back.2bpp.lz.d1e1986a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/entei/front.animated.2bpp.lz.ebaf8024 b/gfx/pokemon/entei/front.animated.2bpp.lz.ebaf8024
deleted file mode 100644
index bc969fe65..000000000
--- a/gfx/pokemon/entei/front.animated.2bpp.lz.ebaf8024
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/espeon/back.2bpp.lz.0e77f26e b/gfx/pokemon/espeon/back.2bpp.lz.0e77f26e
deleted file mode 100644
index 59a69eae1..000000000
--- a/gfx/pokemon/espeon/back.2bpp.lz.0e77f26e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/espeon/front.animated.2bpp.lz.069f57ec b/gfx/pokemon/espeon/front.animated.2bpp.lz.069f57ec
deleted file mode 100644
index b7d983e9f..000000000
--- a/gfx/pokemon/espeon/front.animated.2bpp.lz.069f57ec
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/exeggcute/back.2bpp.lz.060c38b0 b/gfx/pokemon/exeggcute/back.2bpp.lz.060c38b0
deleted file mode 100644
index 1877fcea1..000000000
--- a/gfx/pokemon/exeggcute/back.2bpp.lz.060c38b0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/exeggcute/front.animated.2bpp.lz.578a4722 b/gfx/pokemon/exeggcute/front.animated.2bpp.lz.578a4722
deleted file mode 100644
index 9d018e7c4..000000000
--- a/gfx/pokemon/exeggcute/front.animated.2bpp.lz.578a4722
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/exeggutor/back.2bpp.lz.e012643e b/gfx/pokemon/exeggutor/back.2bpp.lz.e012643e
deleted file mode 100644
index abf6c97dd..000000000
--- a/gfx/pokemon/exeggutor/back.2bpp.lz.e012643e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/exeggutor/front.animated.2bpp.lz.3915d572 b/gfx/pokemon/exeggutor/front.animated.2bpp.lz.3915d572
deleted file mode 100644
index b4056b175..000000000
--- a/gfx/pokemon/exeggutor/front.animated.2bpp.lz.3915d572
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/farfetch_d/back.2bpp.lz.6f28ebc4 b/gfx/pokemon/farfetch_d/back.2bpp.lz.6f28ebc4
deleted file mode 100644
index 77dd25ae9..000000000
--- a/gfx/pokemon/farfetch_d/back.2bpp.lz.6f28ebc4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/farfetch_d/front.animated.2bpp.lz.a4ae9393 b/gfx/pokemon/farfetch_d/front.animated.2bpp.lz.a4ae9393
deleted file mode 100644
index d9eeb7489..000000000
--- a/gfx/pokemon/farfetch_d/front.animated.2bpp.lz.a4ae9393
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/fearow/back.2bpp.lz.a7a39118 b/gfx/pokemon/fearow/back.2bpp.lz.a7a39118
deleted file mode 100644
index 641086eaa..000000000
--- a/gfx/pokemon/fearow/back.2bpp.lz.a7a39118
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/fearow/front.animated.2bpp.lz.393b11d6 b/gfx/pokemon/fearow/front.animated.2bpp.lz.393b11d6
deleted file mode 100644
index 4fbf2d47f..000000000
--- a/gfx/pokemon/fearow/front.animated.2bpp.lz.393b11d6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/feraligatr/back.2bpp.lz.f95abe99 b/gfx/pokemon/feraligatr/back.2bpp.lz.f95abe99
deleted file mode 100644
index 4e180d0f5..000000000
--- a/gfx/pokemon/feraligatr/back.2bpp.lz.f95abe99
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/feraligatr/front.animated.2bpp.lz.fade72cc b/gfx/pokemon/feraligatr/front.animated.2bpp.lz.fade72cc
deleted file mode 100644
index cc055e629..000000000
--- a/gfx/pokemon/feraligatr/front.animated.2bpp.lz.fade72cc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/flaaffy/back.2bpp.lz.461855e4 b/gfx/pokemon/flaaffy/back.2bpp.lz.461855e4
deleted file mode 100644
index 5eec3df7a..000000000
--- a/gfx/pokemon/flaaffy/back.2bpp.lz.461855e4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/flaaffy/front.animated.2bpp.lz.6a27aac3 b/gfx/pokemon/flaaffy/front.animated.2bpp.lz.6a27aac3
deleted file mode 100644
index 673155a7e..000000000
--- a/gfx/pokemon/flaaffy/front.animated.2bpp.lz.6a27aac3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/flareon/back.2bpp.lz.d58af0e5 b/gfx/pokemon/flareon/back.2bpp.lz.d58af0e5
deleted file mode 100644
index bafc64cd2..000000000
--- a/gfx/pokemon/flareon/back.2bpp.lz.d58af0e5
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/flareon/front.animated.2bpp.lz.7b68c716 b/gfx/pokemon/flareon/front.animated.2bpp.lz.7b68c716
deleted file mode 100644
index d3210b7e3..000000000
--- a/gfx/pokemon/flareon/front.animated.2bpp.lz.7b68c716
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/forretress/back.2bpp.lz.2b8e5f48 b/gfx/pokemon/forretress/back.2bpp.lz.2b8e5f48
deleted file mode 100644
index 1c4b5d69a..000000000
--- a/gfx/pokemon/forretress/back.2bpp.lz.2b8e5f48
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/forretress/front.animated.2bpp.lz.761b9f80 b/gfx/pokemon/forretress/front.animated.2bpp.lz.761b9f80
deleted file mode 100644
index 239e20532..000000000
--- a/gfx/pokemon/forretress/front.animated.2bpp.lz.761b9f80
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/furret/back.2bpp.lz.24792550 b/gfx/pokemon/furret/back.2bpp.lz.24792550
deleted file mode 100644
index 0cbe66f49..000000000
--- a/gfx/pokemon/furret/back.2bpp.lz.24792550
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/furret/front.animated.2bpp.lz.f72a2758 b/gfx/pokemon/furret/front.animated.2bpp.lz.f72a2758
deleted file mode 100644
index afba64f59..000000000
--- a/gfx/pokemon/furret/front.animated.2bpp.lz.f72a2758
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/gastly/back.2bpp.lz.4078fa56 b/gfx/pokemon/gastly/back.2bpp.lz.4078fa56
deleted file mode 100644
index ecb4af90d..000000000
--- a/gfx/pokemon/gastly/back.2bpp.lz.4078fa56
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/gastly/front.animated.2bpp.lz.84148c1e b/gfx/pokemon/gastly/front.animated.2bpp.lz.84148c1e
deleted file mode 100644
index f3d99339b..000000000
--- a/gfx/pokemon/gastly/front.animated.2bpp.lz.84148c1e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/gengar/back.2bpp.lz.5237ee63 b/gfx/pokemon/gengar/back.2bpp.lz.5237ee63
deleted file mode 100644
index d1ecca65e..000000000
--- a/gfx/pokemon/gengar/back.2bpp.lz.5237ee63
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/gengar/front.animated.2bpp.lz.65ddc6f5 b/gfx/pokemon/gengar/front.animated.2bpp.lz.65ddc6f5
deleted file mode 100644
index a11754646..000000000
--- a/gfx/pokemon/gengar/front.animated.2bpp.lz.65ddc6f5
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/geodude/back.2bpp.lz.d5aa5e9f b/gfx/pokemon/geodude/back.2bpp.lz.d5aa5e9f
deleted file mode 100644
index 443fd327d..000000000
--- a/gfx/pokemon/geodude/back.2bpp.lz.d5aa5e9f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/geodude/front.animated.2bpp.lz.d743f2c9 b/gfx/pokemon/geodude/front.animated.2bpp.lz.d743f2c9
deleted file mode 100644
index 96bd9f794..000000000
--- a/gfx/pokemon/geodude/front.animated.2bpp.lz.d743f2c9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/girafarig/back.2bpp.lz.5dd68457 b/gfx/pokemon/girafarig/back.2bpp.lz.5dd68457
deleted file mode 100644
index aca23f976..000000000
--- a/gfx/pokemon/girafarig/back.2bpp.lz.5dd68457
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/girafarig/front.animated.2bpp.lz.76d809c4 b/gfx/pokemon/girafarig/front.animated.2bpp.lz.76d809c4
deleted file mode 100644
index 48c9fc94a..000000000
--- a/gfx/pokemon/girafarig/front.animated.2bpp.lz.76d809c4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/gligar/back.2bpp.lz.ee922122 b/gfx/pokemon/gligar/back.2bpp.lz.ee922122
deleted file mode 100644
index 45b7d9b76..000000000
--- a/gfx/pokemon/gligar/back.2bpp.lz.ee922122
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/gligar/front.animated.2bpp.lz.4dcc41b3 b/gfx/pokemon/gligar/front.animated.2bpp.lz.4dcc41b3
deleted file mode 100644
index 4ef9e5398..000000000
--- a/gfx/pokemon/gligar/front.animated.2bpp.lz.4dcc41b3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/gloom/back.2bpp.lz.9a321f63 b/gfx/pokemon/gloom/back.2bpp.lz.9a321f63
deleted file mode 100644
index 7d35e2d82..000000000
--- a/gfx/pokemon/gloom/back.2bpp.lz.9a321f63
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/gloom/front.animated.2bpp.lz.c6ef04a5 b/gfx/pokemon/gloom/front.animated.2bpp.lz.c6ef04a5
deleted file mode 100644
index a69e4b76c..000000000
--- a/gfx/pokemon/gloom/front.animated.2bpp.lz.c6ef04a5
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/golbat/back.2bpp.lz.e277e260 b/gfx/pokemon/golbat/back.2bpp.lz.e277e260
deleted file mode 100644
index e2bd0c367..000000000
--- a/gfx/pokemon/golbat/back.2bpp.lz.e277e260
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/golbat/front.animated.2bpp.lz.c35ffe9b b/gfx/pokemon/golbat/front.animated.2bpp.lz.c35ffe9b
deleted file mode 100644
index 94f7d8216..000000000
--- a/gfx/pokemon/golbat/front.animated.2bpp.lz.c35ffe9b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/goldeen/back.2bpp.lz.d0e5751e b/gfx/pokemon/goldeen/back.2bpp.lz.d0e5751e
deleted file mode 100644
index 5d00534ec..000000000
--- a/gfx/pokemon/goldeen/back.2bpp.lz.d0e5751e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/goldeen/front.animated.2bpp.lz.c451a8c4 b/gfx/pokemon/goldeen/front.animated.2bpp.lz.c451a8c4
deleted file mode 100644
index f0090e94e..000000000
--- a/gfx/pokemon/goldeen/front.animated.2bpp.lz.c451a8c4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/golduck/back.2bpp.lz.2d022642 b/gfx/pokemon/golduck/back.2bpp.lz.2d022642
deleted file mode 100644
index 13807b9e9..000000000
--- a/gfx/pokemon/golduck/back.2bpp.lz.2d022642
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/golduck/front.animated.2bpp.lz.09e97414 b/gfx/pokemon/golduck/front.animated.2bpp.lz.09e97414
deleted file mode 100644
index ff3fa6792..000000000
--- a/gfx/pokemon/golduck/front.animated.2bpp.lz.09e97414
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/golem/back.2bpp.lz.ae903dee b/gfx/pokemon/golem/back.2bpp.lz.ae903dee
deleted file mode 100644
index fd1ee3dcb..000000000
--- a/gfx/pokemon/golem/back.2bpp.lz.ae903dee
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/golem/front.animated.2bpp.lz.a16f21c8 b/gfx/pokemon/golem/front.animated.2bpp.lz.a16f21c8
deleted file mode 100644
index 0a7bf3369..000000000
--- a/gfx/pokemon/golem/front.animated.2bpp.lz.a16f21c8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/granbull/back.2bpp.lz.7f1208ed b/gfx/pokemon/granbull/back.2bpp.lz.7f1208ed
deleted file mode 100644
index f09d4e7dc..000000000
--- a/gfx/pokemon/granbull/back.2bpp.lz.7f1208ed
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/granbull/front.animated.2bpp.lz.4504768b b/gfx/pokemon/granbull/front.animated.2bpp.lz.4504768b
deleted file mode 100644
index 94062ce3f..000000000
--- a/gfx/pokemon/granbull/front.animated.2bpp.lz.4504768b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/graveler/back.2bpp.lz.c7867de7 b/gfx/pokemon/graveler/back.2bpp.lz.c7867de7
deleted file mode 100644
index ba2fba8e6..000000000
--- a/gfx/pokemon/graveler/back.2bpp.lz.c7867de7
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/graveler/front.animated.2bpp.lz.68d07c61 b/gfx/pokemon/graveler/front.animated.2bpp.lz.68d07c61
deleted file mode 100644
index 5dcee6436..000000000
--- a/gfx/pokemon/graveler/front.animated.2bpp.lz.68d07c61
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/grimer/back.2bpp.lz.833bd626 b/gfx/pokemon/grimer/back.2bpp.lz.833bd626
deleted file mode 100644
index d4494a003..000000000
--- a/gfx/pokemon/grimer/back.2bpp.lz.833bd626
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/grimer/front.animated.2bpp.lz.dfe40e91 b/gfx/pokemon/grimer/front.animated.2bpp.lz.dfe40e91
deleted file mode 100644
index 176f2da1c..000000000
--- a/gfx/pokemon/grimer/front.animated.2bpp.lz.dfe40e91
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/growlithe/back.2bpp.lz.7f5831f6 b/gfx/pokemon/growlithe/back.2bpp.lz.7f5831f6
deleted file mode 100644
index 222250f79..000000000
--- a/gfx/pokemon/growlithe/back.2bpp.lz.7f5831f6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/growlithe/front.animated.2bpp.lz.f7b376fa b/gfx/pokemon/growlithe/front.animated.2bpp.lz.f7b376fa
deleted file mode 100644
index a01b4f1fc..000000000
--- a/gfx/pokemon/growlithe/front.animated.2bpp.lz.f7b376fa
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/gyarados/back.2bpp.lz.fc577f9e b/gfx/pokemon/gyarados/back.2bpp.lz.fc577f9e
deleted file mode 100644
index d061ec9b2..000000000
--- a/gfx/pokemon/gyarados/back.2bpp.lz.fc577f9e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/gyarados/front.animated.2bpp.lz.1b498e2b b/gfx/pokemon/gyarados/front.animated.2bpp.lz.1b498e2b
deleted file mode 100644
index 4d66d5814..000000000
--- a/gfx/pokemon/gyarados/front.animated.2bpp.lz.1b498e2b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/haunter/back.2bpp.lz.8a5dc2c1 b/gfx/pokemon/haunter/back.2bpp.lz.8a5dc2c1
deleted file mode 100644
index 660c0408b..000000000
--- a/gfx/pokemon/haunter/back.2bpp.lz.8a5dc2c1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/haunter/front.animated.2bpp.lz.aeed5f7e b/gfx/pokemon/haunter/front.animated.2bpp.lz.aeed5f7e
deleted file mode 100644
index 6bb6ab582..000000000
--- a/gfx/pokemon/haunter/front.animated.2bpp.lz.aeed5f7e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/heracross/back.2bpp.lz.ba09608b b/gfx/pokemon/heracross/back.2bpp.lz.ba09608b
deleted file mode 100644
index da4d40981..000000000
--- a/gfx/pokemon/heracross/back.2bpp.lz.ba09608b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/heracross/front.animated.2bpp.lz.0742fe2b b/gfx/pokemon/heracross/front.animated.2bpp.lz.0742fe2b
deleted file mode 100644
index ad23e01d1..000000000
--- a/gfx/pokemon/heracross/front.animated.2bpp.lz.0742fe2b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hitmonchan/back.2bpp.lz.68e28b98 b/gfx/pokemon/hitmonchan/back.2bpp.lz.68e28b98
deleted file mode 100644
index f785248c1..000000000
--- a/gfx/pokemon/hitmonchan/back.2bpp.lz.68e28b98
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hitmonchan/front.animated.2bpp.lz.61836c4c b/gfx/pokemon/hitmonchan/front.animated.2bpp.lz.61836c4c
deleted file mode 100644
index e9a77e987..000000000
--- a/gfx/pokemon/hitmonchan/front.animated.2bpp.lz.61836c4c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hitmonlee/back.2bpp.lz.374e3caa b/gfx/pokemon/hitmonlee/back.2bpp.lz.374e3caa
deleted file mode 100644
index 4847a1496..000000000
--- a/gfx/pokemon/hitmonlee/back.2bpp.lz.374e3caa
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hitmonlee/front.animated.2bpp.lz.d174eba1 b/gfx/pokemon/hitmonlee/front.animated.2bpp.lz.d174eba1
deleted file mode 100644
index c85ec5817..000000000
--- a/gfx/pokemon/hitmonlee/front.animated.2bpp.lz.d174eba1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hitmontop/back.2bpp.lz.ea3f1576 b/gfx/pokemon/hitmontop/back.2bpp.lz.ea3f1576
deleted file mode 100644
index 185f08aff..000000000
--- a/gfx/pokemon/hitmontop/back.2bpp.lz.ea3f1576
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hitmontop/front.animated.2bpp.lz.1b3e96fc b/gfx/pokemon/hitmontop/front.animated.2bpp.lz.1b3e96fc
deleted file mode 100644
index d28913fcf..000000000
--- a/gfx/pokemon/hitmontop/front.animated.2bpp.lz.1b3e96fc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ho_oh/back.2bpp.lz.1412f260 b/gfx/pokemon/ho_oh/back.2bpp.lz.1412f260
deleted file mode 100644
index 1d58cf8ac..000000000
--- a/gfx/pokemon/ho_oh/back.2bpp.lz.1412f260
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ho_oh/front.animated.2bpp.lz.db80b5eb b/gfx/pokemon/ho_oh/front.animated.2bpp.lz.db80b5eb
deleted file mode 100644
index 40c91739e..000000000
--- a/gfx/pokemon/ho_oh/front.animated.2bpp.lz.db80b5eb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hoothoot/back.2bpp.lz.7ebb0b29 b/gfx/pokemon/hoothoot/back.2bpp.lz.7ebb0b29
deleted file mode 100644
index e4ca2f37f..000000000
--- a/gfx/pokemon/hoothoot/back.2bpp.lz.7ebb0b29
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hoothoot/front.animated.2bpp.lz.752ab202 b/gfx/pokemon/hoothoot/front.animated.2bpp.lz.752ab202
deleted file mode 100644
index 6abcd37fc..000000000
--- a/gfx/pokemon/hoothoot/front.animated.2bpp.lz.752ab202
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hoppip/back.2bpp.lz.5684c023 b/gfx/pokemon/hoppip/back.2bpp.lz.5684c023
deleted file mode 100644
index c5439118e..000000000
--- a/gfx/pokemon/hoppip/back.2bpp.lz.5684c023
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hoppip/front.animated.2bpp.lz.a03efe74 b/gfx/pokemon/hoppip/front.animated.2bpp.lz.a03efe74
deleted file mode 100644
index 4387e2886..000000000
--- a/gfx/pokemon/hoppip/front.animated.2bpp.lz.a03efe74
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/horsea/back.2bpp.lz.50b6afb9 b/gfx/pokemon/horsea/back.2bpp.lz.50b6afb9
deleted file mode 100644
index ae6a2ecab..000000000
--- a/gfx/pokemon/horsea/back.2bpp.lz.50b6afb9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/horsea/front.animated.2bpp.lz.8b84f98e b/gfx/pokemon/horsea/front.animated.2bpp.lz.8b84f98e
deleted file mode 100644
index 7db08094b..000000000
--- a/gfx/pokemon/horsea/front.animated.2bpp.lz.8b84f98e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/houndoom/back.2bpp.lz.5fa55a47 b/gfx/pokemon/houndoom/back.2bpp.lz.5fa55a47
deleted file mode 100644
index 5b7b72ffc..000000000
--- a/gfx/pokemon/houndoom/back.2bpp.lz.5fa55a47
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/houndoom/front.animated.2bpp.lz.2d450e90 b/gfx/pokemon/houndoom/front.animated.2bpp.lz.2d450e90
deleted file mode 100644
index c2ce34ee3..000000000
--- a/gfx/pokemon/houndoom/front.animated.2bpp.lz.2d450e90
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/houndour/back.2bpp.lz.ae5f2dc9 b/gfx/pokemon/houndour/back.2bpp.lz.ae5f2dc9
deleted file mode 100644
index fe3584bd1..000000000
--- a/gfx/pokemon/houndour/back.2bpp.lz.ae5f2dc9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/houndour/front.animated.2bpp.lz.f847f4f6 b/gfx/pokemon/houndour/front.animated.2bpp.lz.f847f4f6
deleted file mode 100644
index 786c0f9a4..000000000
--- a/gfx/pokemon/houndour/front.animated.2bpp.lz.f847f4f6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hypno/back.2bpp.lz.c091ce88 b/gfx/pokemon/hypno/back.2bpp.lz.c091ce88
deleted file mode 100644
index b69fcadf7..000000000
--- a/gfx/pokemon/hypno/back.2bpp.lz.c091ce88
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/hypno/front.animated.2bpp.lz.638333a3 b/gfx/pokemon/hypno/front.animated.2bpp.lz.638333a3
deleted file mode 100644
index ca6ec0608..000000000
--- a/gfx/pokemon/hypno/front.animated.2bpp.lz.638333a3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/igglybuff/back.2bpp.lz.c0c17dcb b/gfx/pokemon/igglybuff/back.2bpp.lz.c0c17dcb
deleted file mode 100644
index b416af3f0..000000000
--- a/gfx/pokemon/igglybuff/back.2bpp.lz.c0c17dcb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/igglybuff/front.animated.2bpp.lz.1e00afc3 b/gfx/pokemon/igglybuff/front.animated.2bpp.lz.1e00afc3
deleted file mode 100644
index 1c4bbefa0..000000000
--- a/gfx/pokemon/igglybuff/front.animated.2bpp.lz.1e00afc3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ivysaur/back.2bpp.lz.bed1ff58 b/gfx/pokemon/ivysaur/back.2bpp.lz.bed1ff58
deleted file mode 100644
index 34557d9dd..000000000
--- a/gfx/pokemon/ivysaur/back.2bpp.lz.bed1ff58
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ivysaur/front.animated.2bpp.lz.3abed0fa b/gfx/pokemon/ivysaur/front.animated.2bpp.lz.3abed0fa
deleted file mode 100644
index 7b9c8f9d9..000000000
--- a/gfx/pokemon/ivysaur/front.animated.2bpp.lz.3abed0fa
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/jigglypuff/back.2bpp.lz.87d5730b b/gfx/pokemon/jigglypuff/back.2bpp.lz.87d5730b
deleted file mode 100644
index e551afaf6..000000000
--- a/gfx/pokemon/jigglypuff/back.2bpp.lz.87d5730b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/jigglypuff/front.animated.2bpp.lz.9fd159f4 b/gfx/pokemon/jigglypuff/front.animated.2bpp.lz.9fd159f4
deleted file mode 100644
index 4367e41d8..000000000
--- a/gfx/pokemon/jigglypuff/front.animated.2bpp.lz.9fd159f4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/jolteon/back.2bpp.lz.f248aac4 b/gfx/pokemon/jolteon/back.2bpp.lz.f248aac4
deleted file mode 100644
index e95f893ce..000000000
--- a/gfx/pokemon/jolteon/back.2bpp.lz.f248aac4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/jolteon/front.animated.2bpp.lz.b2b07d79 b/gfx/pokemon/jolteon/front.animated.2bpp.lz.b2b07d79
deleted file mode 100644
index 32d271390..000000000
--- a/gfx/pokemon/jolteon/front.animated.2bpp.lz.b2b07d79
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/jumpluff/back.2bpp.lz.b258a699 b/gfx/pokemon/jumpluff/back.2bpp.lz.b258a699
deleted file mode 100644
index 57ae8b890..000000000
--- a/gfx/pokemon/jumpluff/back.2bpp.lz.b258a699
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/jumpluff/front.animated.2bpp.lz.6d1d8175 b/gfx/pokemon/jumpluff/front.animated.2bpp.lz.6d1d8175
deleted file mode 100644
index c3570ed09..000000000
--- a/gfx/pokemon/jumpluff/front.animated.2bpp.lz.6d1d8175
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/jynx/back.2bpp.lz.1eef1c1b b/gfx/pokemon/jynx/back.2bpp.lz.1eef1c1b
deleted file mode 100644
index 4642ecda7..000000000
--- a/gfx/pokemon/jynx/back.2bpp.lz.1eef1c1b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/jynx/front.animated.2bpp.lz.6aaf67b0 b/gfx/pokemon/jynx/front.animated.2bpp.lz.6aaf67b0
deleted file mode 100644
index 78a436494..000000000
--- a/gfx/pokemon/jynx/front.animated.2bpp.lz.6aaf67b0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kabuto/back.2bpp.lz.0717a29b b/gfx/pokemon/kabuto/back.2bpp.lz.0717a29b
deleted file mode 100644
index 61390a32e..000000000
--- a/gfx/pokemon/kabuto/back.2bpp.lz.0717a29b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kabuto/front.animated.2bpp.lz.afe4e2dc b/gfx/pokemon/kabuto/front.animated.2bpp.lz.afe4e2dc
deleted file mode 100644
index 24a9376c8..000000000
--- a/gfx/pokemon/kabuto/front.animated.2bpp.lz.afe4e2dc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kabutops/back.2bpp.lz.98a1dfc4 b/gfx/pokemon/kabutops/back.2bpp.lz.98a1dfc4
deleted file mode 100644
index 507c10e2f..000000000
--- a/gfx/pokemon/kabutops/back.2bpp.lz.98a1dfc4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kabutops/front.animated.2bpp.lz.d5e4bfeb b/gfx/pokemon/kabutops/front.animated.2bpp.lz.d5e4bfeb
deleted file mode 100644
index 38d21fa16..000000000
--- a/gfx/pokemon/kabutops/front.animated.2bpp.lz.d5e4bfeb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kadabra/back.2bpp.lz.6b26c1a0 b/gfx/pokemon/kadabra/back.2bpp.lz.6b26c1a0
deleted file mode 100644
index 0092147d7..000000000
--- a/gfx/pokemon/kadabra/back.2bpp.lz.6b26c1a0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kadabra/front.animated.2bpp.lz.bc78f9cf b/gfx/pokemon/kadabra/front.animated.2bpp.lz.bc78f9cf
deleted file mode 100644
index 54f47795d..000000000
--- a/gfx/pokemon/kadabra/front.animated.2bpp.lz.bc78f9cf
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kakuna/back.2bpp.lz.3bffa4c3 b/gfx/pokemon/kakuna/back.2bpp.lz.3bffa4c3
deleted file mode 100644
index b369857d5..000000000
--- a/gfx/pokemon/kakuna/back.2bpp.lz.3bffa4c3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kakuna/front.animated.2bpp.lz.c7425e72 b/gfx/pokemon/kakuna/front.animated.2bpp.lz.c7425e72
deleted file mode 100644
index 2f2431edf..000000000
--- a/gfx/pokemon/kakuna/front.animated.2bpp.lz.c7425e72
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kangaskhan/back.2bpp.lz.0d7cc337 b/gfx/pokemon/kangaskhan/back.2bpp.lz.0d7cc337
deleted file mode 100644
index c7ff00272..000000000
--- a/gfx/pokemon/kangaskhan/back.2bpp.lz.0d7cc337
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kangaskhan/front.animated.2bpp.lz.09c81009 b/gfx/pokemon/kangaskhan/front.animated.2bpp.lz.09c81009
deleted file mode 100644
index 1ec58169d..000000000
--- a/gfx/pokemon/kangaskhan/front.animated.2bpp.lz.09c81009
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kingdra/back.2bpp.lz.e48ecb3f b/gfx/pokemon/kingdra/back.2bpp.lz.e48ecb3f
deleted file mode 100644
index 9f2c38b6c..000000000
--- a/gfx/pokemon/kingdra/back.2bpp.lz.e48ecb3f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kingdra/front.animated.2bpp.lz.668c0516 b/gfx/pokemon/kingdra/front.animated.2bpp.lz.668c0516
deleted file mode 100644
index d28a4dc78..000000000
--- a/gfx/pokemon/kingdra/front.animated.2bpp.lz.668c0516
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kingler/back.2bpp.lz.88e96d65 b/gfx/pokemon/kingler/back.2bpp.lz.88e96d65
deleted file mode 100644
index aceed0679..000000000
--- a/gfx/pokemon/kingler/back.2bpp.lz.88e96d65
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/kingler/front.animated.2bpp.lz.35305199 b/gfx/pokemon/kingler/front.animated.2bpp.lz.35305199
deleted file mode 100644
index 590bd05ee..000000000
--- a/gfx/pokemon/kingler/front.animated.2bpp.lz.35305199
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/koffing/back.2bpp.lz.8c0a2526 b/gfx/pokemon/koffing/back.2bpp.lz.8c0a2526
deleted file mode 100644
index 2e8762565..000000000
--- a/gfx/pokemon/koffing/back.2bpp.lz.8c0a2526
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/koffing/front.animated.2bpp.lz.00044b3f b/gfx/pokemon/koffing/front.animated.2bpp.lz.00044b3f
deleted file mode 100644
index 78de37eeb..000000000
--- a/gfx/pokemon/koffing/front.animated.2bpp.lz.00044b3f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/krabby/back.2bpp.lz.2bc2487b b/gfx/pokemon/krabby/back.2bpp.lz.2bc2487b
deleted file mode 100644
index 5954b413d..000000000
--- a/gfx/pokemon/krabby/back.2bpp.lz.2bc2487b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/krabby/front.animated.2bpp.lz.39592514 b/gfx/pokemon/krabby/front.animated.2bpp.lz.39592514
deleted file mode 100644
index c0f968fa5..000000000
--- a/gfx/pokemon/krabby/front.animated.2bpp.lz.39592514
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/lanturn/back.2bpp.lz.8e9c7c1a b/gfx/pokemon/lanturn/back.2bpp.lz.8e9c7c1a
deleted file mode 100644
index ea916b7ea..000000000
--- a/gfx/pokemon/lanturn/back.2bpp.lz.8e9c7c1a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/lanturn/front.animated.2bpp.lz.1bfac161 b/gfx/pokemon/lanturn/front.animated.2bpp.lz.1bfac161
deleted file mode 100644
index ba57a1569..000000000
--- a/gfx/pokemon/lanturn/front.animated.2bpp.lz.1bfac161
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/lapras/back.2bpp.lz.d09351a1 b/gfx/pokemon/lapras/back.2bpp.lz.d09351a1
deleted file mode 100644
index 00f6b4329..000000000
--- a/gfx/pokemon/lapras/back.2bpp.lz.d09351a1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/lapras/front.animated.2bpp.lz.8290ef8e b/gfx/pokemon/lapras/front.animated.2bpp.lz.8290ef8e
deleted file mode 100644
index 0c20fc0be..000000000
--- a/gfx/pokemon/lapras/front.animated.2bpp.lz.8290ef8e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/larvitar/back.2bpp.lz.4b2ac395 b/gfx/pokemon/larvitar/back.2bpp.lz.4b2ac395
deleted file mode 100644
index b4122419b..000000000
--- a/gfx/pokemon/larvitar/back.2bpp.lz.4b2ac395
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/larvitar/front.animated.2bpp.lz.83859c57 b/gfx/pokemon/larvitar/front.animated.2bpp.lz.83859c57
deleted file mode 100644
index deba5d5a2..000000000
--- a/gfx/pokemon/larvitar/front.animated.2bpp.lz.83859c57
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ledian/back.2bpp.lz.48657bbb b/gfx/pokemon/ledian/back.2bpp.lz.48657bbb
deleted file mode 100644
index eb996b4e3..000000000
--- a/gfx/pokemon/ledian/back.2bpp.lz.48657bbb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ledian/front.animated.2bpp.lz.83e819c3 b/gfx/pokemon/ledian/front.animated.2bpp.lz.83e819c3
deleted file mode 100644
index 117d19c14..000000000
--- a/gfx/pokemon/ledian/front.animated.2bpp.lz.83e819c3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ledyba/back.2bpp.lz.d50e8860 b/gfx/pokemon/ledyba/back.2bpp.lz.d50e8860
deleted file mode 100644
index 728f4dedb..000000000
--- a/gfx/pokemon/ledyba/back.2bpp.lz.d50e8860
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ledyba/front.animated.2bpp.lz.1700dc27 b/gfx/pokemon/ledyba/front.animated.2bpp.lz.1700dc27
deleted file mode 100644
index fc15ab1ba..000000000
--- a/gfx/pokemon/ledyba/front.animated.2bpp.lz.1700dc27
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/lickitung/back.2bpp.lz.a127e40b b/gfx/pokemon/lickitung/back.2bpp.lz.a127e40b
deleted file mode 100644
index 85764655a..000000000
--- a/gfx/pokemon/lickitung/back.2bpp.lz.a127e40b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/lickitung/front.animated.2bpp.lz.328a7c53 b/gfx/pokemon/lickitung/front.animated.2bpp.lz.328a7c53
deleted file mode 100644
index f7e2f4f43..000000000
--- a/gfx/pokemon/lickitung/front.animated.2bpp.lz.328a7c53
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/lugia/back.2bpp.lz.ad953eb5 b/gfx/pokemon/lugia/back.2bpp.lz.ad953eb5
deleted file mode 100644
index 8f7134e13..000000000
--- a/gfx/pokemon/lugia/back.2bpp.lz.ad953eb5
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/lugia/front.animated.2bpp.lz.7293eddc b/gfx/pokemon/lugia/front.animated.2bpp.lz.7293eddc
deleted file mode 100644
index b1b300304..000000000
--- a/gfx/pokemon/lugia/front.animated.2bpp.lz.7293eddc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/machamp/back.2bpp.lz.757f4c29 b/gfx/pokemon/machamp/back.2bpp.lz.757f4c29
deleted file mode 100644
index b82d09cce..000000000
--- a/gfx/pokemon/machamp/back.2bpp.lz.757f4c29
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/machamp/front.animated.2bpp.lz.2d408542 b/gfx/pokemon/machamp/front.animated.2bpp.lz.2d408542
deleted file mode 100644
index aa1b12edb..000000000
--- a/gfx/pokemon/machamp/front.animated.2bpp.lz.2d408542
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/machoke/back.2bpp.lz.2634245e b/gfx/pokemon/machoke/back.2bpp.lz.2634245e
deleted file mode 100644
index e6a0015ed..000000000
--- a/gfx/pokemon/machoke/back.2bpp.lz.2634245e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/machoke/front.animated.2bpp.lz.f38b95a7 b/gfx/pokemon/machoke/front.animated.2bpp.lz.f38b95a7
deleted file mode 100644
index 984f1601f..000000000
--- a/gfx/pokemon/machoke/front.animated.2bpp.lz.f38b95a7
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/machop/back.2bpp.lz.bc17b50a b/gfx/pokemon/machop/back.2bpp.lz.bc17b50a
deleted file mode 100644
index 96e6d00c6..000000000
--- a/gfx/pokemon/machop/back.2bpp.lz.bc17b50a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/machop/front.animated.2bpp.lz.0fd8735f b/gfx/pokemon/machop/front.animated.2bpp.lz.0fd8735f
deleted file mode 100644
index 3b5404276..000000000
--- a/gfx/pokemon/machop/front.animated.2bpp.lz.0fd8735f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magby/back.2bpp.lz.e50ccadb b/gfx/pokemon/magby/back.2bpp.lz.e50ccadb
deleted file mode 100644
index 8746c640e..000000000
--- a/gfx/pokemon/magby/back.2bpp.lz.e50ccadb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magby/front.animated.2bpp.lz.172d0807 b/gfx/pokemon/magby/front.animated.2bpp.lz.172d0807
deleted file mode 100644
index b4eac5040..000000000
--- a/gfx/pokemon/magby/front.animated.2bpp.lz.172d0807
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magcargo/back.2bpp.lz.56b096bc b/gfx/pokemon/magcargo/back.2bpp.lz.56b096bc
deleted file mode 100644
index 5cafe687a..000000000
--- a/gfx/pokemon/magcargo/back.2bpp.lz.56b096bc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magcargo/front.animated.2bpp.lz.53a425f4 b/gfx/pokemon/magcargo/front.animated.2bpp.lz.53a425f4
deleted file mode 100644
index 8b2cda00e..000000000
--- a/gfx/pokemon/magcargo/front.animated.2bpp.lz.53a425f4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magikarp/back.2bpp.lz.7f25810a b/gfx/pokemon/magikarp/back.2bpp.lz.7f25810a
deleted file mode 100644
index 17100a9c5..000000000
--- a/gfx/pokemon/magikarp/back.2bpp.lz.7f25810a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magikarp/front.animated.2bpp.lz.031ee449 b/gfx/pokemon/magikarp/front.animated.2bpp.lz.031ee449
deleted file mode 100644
index 3ec963c7f..000000000
--- a/gfx/pokemon/magikarp/front.animated.2bpp.lz.031ee449
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magmar/back.2bpp.lz.6916c87b b/gfx/pokemon/magmar/back.2bpp.lz.6916c87b
deleted file mode 100644
index 9b44bab34..000000000
--- a/gfx/pokemon/magmar/back.2bpp.lz.6916c87b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magmar/front.animated.2bpp.lz.0048e21c b/gfx/pokemon/magmar/front.animated.2bpp.lz.0048e21c
deleted file mode 100644
index 178afc45f..000000000
--- a/gfx/pokemon/magmar/front.animated.2bpp.lz.0048e21c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magnemite/back.2bpp.lz.e00bd515 b/gfx/pokemon/magnemite/back.2bpp.lz.e00bd515
deleted file mode 100644
index f5cb4f801..000000000
--- a/gfx/pokemon/magnemite/back.2bpp.lz.e00bd515
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magnemite/front.animated.2bpp.lz.e4b07135 b/gfx/pokemon/magnemite/front.animated.2bpp.lz.e4b07135
deleted file mode 100644
index fb221be89..000000000
--- a/gfx/pokemon/magnemite/front.animated.2bpp.lz.e4b07135
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magneton/back.2bpp.lz.f7a7089b b/gfx/pokemon/magneton/back.2bpp.lz.f7a7089b
deleted file mode 100644
index c029f8cef..000000000
--- a/gfx/pokemon/magneton/back.2bpp.lz.f7a7089b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/magneton/front.animated.2bpp.lz.cd3b65a6 b/gfx/pokemon/magneton/front.animated.2bpp.lz.cd3b65a6
deleted file mode 100644
index f7b7a0be0..000000000
--- a/gfx/pokemon/magneton/front.animated.2bpp.lz.cd3b65a6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mankey/back.2bpp.lz.42cb1b61 b/gfx/pokemon/mankey/back.2bpp.lz.42cb1b61
deleted file mode 100644
index 62989a377..000000000
--- a/gfx/pokemon/mankey/back.2bpp.lz.42cb1b61
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mankey/front.animated.2bpp.lz.48eac19a b/gfx/pokemon/mankey/front.animated.2bpp.lz.48eac19a
deleted file mode 100644
index 03d014d87..000000000
--- a/gfx/pokemon/mankey/front.animated.2bpp.lz.48eac19a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mantine/back.2bpp.lz.1320b7f3 b/gfx/pokemon/mantine/back.2bpp.lz.1320b7f3
deleted file mode 100644
index 3378e2df5..000000000
--- a/gfx/pokemon/mantine/back.2bpp.lz.1320b7f3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mantine/front.animated.2bpp.lz.9eb40d04 b/gfx/pokemon/mantine/front.animated.2bpp.lz.9eb40d04
deleted file mode 100644
index 6ebc14050..000000000
--- a/gfx/pokemon/mantine/front.animated.2bpp.lz.9eb40d04
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mareep/back.2bpp.lz.b9bdc89c b/gfx/pokemon/mareep/back.2bpp.lz.b9bdc89c
deleted file mode 100644
index e703d450f..000000000
--- a/gfx/pokemon/mareep/back.2bpp.lz.b9bdc89c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mareep/front.animated.2bpp.lz.f660483d b/gfx/pokemon/mareep/front.animated.2bpp.lz.f660483d
deleted file mode 100644
index 0245a96cd..000000000
--- a/gfx/pokemon/mareep/front.animated.2bpp.lz.f660483d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/marill/back.2bpp.lz.87e2be16 b/gfx/pokemon/marill/back.2bpp.lz.87e2be16
deleted file mode 100644
index 699fdaf6c..000000000
--- a/gfx/pokemon/marill/back.2bpp.lz.87e2be16
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/marill/front.animated.2bpp.lz.7f742686 b/gfx/pokemon/marill/front.animated.2bpp.lz.7f742686
deleted file mode 100644
index abe4c982a..000000000
--- a/gfx/pokemon/marill/front.animated.2bpp.lz.7f742686
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/marowak/back.2bpp.lz.055ba40e b/gfx/pokemon/marowak/back.2bpp.lz.055ba40e
deleted file mode 100644
index 90a297b3d..000000000
--- a/gfx/pokemon/marowak/back.2bpp.lz.055ba40e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/marowak/front.animated.2bpp.lz.ef1553a0 b/gfx/pokemon/marowak/front.animated.2bpp.lz.ef1553a0
deleted file mode 100644
index 59f984bcd..000000000
--- a/gfx/pokemon/marowak/front.animated.2bpp.lz.ef1553a0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/meganium/back.2bpp.lz.d25a5edb b/gfx/pokemon/meganium/back.2bpp.lz.d25a5edb
deleted file mode 100644
index 718f66f87..000000000
--- a/gfx/pokemon/meganium/back.2bpp.lz.d25a5edb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/meganium/front.animated.2bpp.lz.fe0b9df4 b/gfx/pokemon/meganium/front.animated.2bpp.lz.fe0b9df4
deleted file mode 100644
index 84f600d60..000000000
--- a/gfx/pokemon/meganium/front.animated.2bpp.lz.fe0b9df4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/meowth/back.2bpp.lz.4196bd91 b/gfx/pokemon/meowth/back.2bpp.lz.4196bd91
deleted file mode 100644
index 205b106e9..000000000
--- a/gfx/pokemon/meowth/back.2bpp.lz.4196bd91
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/meowth/front.animated.2bpp.lz.144f12f0 b/gfx/pokemon/meowth/front.animated.2bpp.lz.144f12f0
deleted file mode 100644
index 87ff35366..000000000
--- a/gfx/pokemon/meowth/front.animated.2bpp.lz.144f12f0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/metapod/back.2bpp.lz.b580afc8 b/gfx/pokemon/metapod/back.2bpp.lz.b580afc8
deleted file mode 100644
index a2a446960..000000000
--- a/gfx/pokemon/metapod/back.2bpp.lz.b580afc8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/metapod/front.animated.2bpp.lz.5025baa2 b/gfx/pokemon/metapod/front.animated.2bpp.lz.5025baa2
deleted file mode 100644
index 1dcd7a501..000000000
--- a/gfx/pokemon/metapod/front.animated.2bpp.lz.5025baa2
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mew/back.2bpp.lz.9947d6eb b/gfx/pokemon/mew/back.2bpp.lz.9947d6eb
deleted file mode 100644
index 388a8de9e..000000000
--- a/gfx/pokemon/mew/back.2bpp.lz.9947d6eb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mew/front.animated.2bpp.lz.b6da9713 b/gfx/pokemon/mew/front.animated.2bpp.lz.b6da9713
deleted file mode 100644
index 240965783..000000000
--- a/gfx/pokemon/mew/front.animated.2bpp.lz.b6da9713
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mewtwo/back.2bpp.lz.a7d2c077 b/gfx/pokemon/mewtwo/back.2bpp.lz.a7d2c077
deleted file mode 100644
index 3be56c470..000000000
--- a/gfx/pokemon/mewtwo/back.2bpp.lz.a7d2c077
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mewtwo/front.animated.2bpp.lz.45e8b40d b/gfx/pokemon/mewtwo/front.animated.2bpp.lz.45e8b40d
deleted file mode 100644
index 35cc2c378..000000000
--- a/gfx/pokemon/mewtwo/front.animated.2bpp.lz.45e8b40d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/miltank/back.2bpp.lz.b7787e72 b/gfx/pokemon/miltank/back.2bpp.lz.b7787e72
deleted file mode 100644
index 150f65c54..000000000
--- a/gfx/pokemon/miltank/back.2bpp.lz.b7787e72
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/miltank/front.animated.2bpp.lz.91da7c3b b/gfx/pokemon/miltank/front.animated.2bpp.lz.91da7c3b
deleted file mode 100644
index 969d04fcd..000000000
--- a/gfx/pokemon/miltank/front.animated.2bpp.lz.91da7c3b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/misdreavus/back.2bpp.lz.8bdebfce b/gfx/pokemon/misdreavus/back.2bpp.lz.8bdebfce
deleted file mode 100644
index 5cf96e821..000000000
--- a/gfx/pokemon/misdreavus/back.2bpp.lz.8bdebfce
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/misdreavus/front.animated.2bpp.lz.5f73baa2 b/gfx/pokemon/misdreavus/front.animated.2bpp.lz.5f73baa2
deleted file mode 100644
index 76f5c6919..000000000
--- a/gfx/pokemon/misdreavus/front.animated.2bpp.lz.5f73baa2
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/moltres/back.2bpp.lz.356242c8 b/gfx/pokemon/moltres/back.2bpp.lz.356242c8
deleted file mode 100644
index 542a73138..000000000
--- a/gfx/pokemon/moltres/back.2bpp.lz.356242c8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/moltres/front.animated.2bpp.lz.281bc0ec b/gfx/pokemon/moltres/front.animated.2bpp.lz.281bc0ec
deleted file mode 100644
index ec03e4653..000000000
--- a/gfx/pokemon/moltres/front.animated.2bpp.lz.281bc0ec
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mr__mime/back.2bpp.lz.0fb88006 b/gfx/pokemon/mr__mime/back.2bpp.lz.0fb88006
deleted file mode 100644
index eb1647580..000000000
--- a/gfx/pokemon/mr__mime/back.2bpp.lz.0fb88006
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/mr__mime/front.animated.2bpp.lz.f948d1b8 b/gfx/pokemon/mr__mime/front.animated.2bpp.lz.f948d1b8
deleted file mode 100644
index 48555cbe0..000000000
--- a/gfx/pokemon/mr__mime/front.animated.2bpp.lz.f948d1b8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/muk/back.2bpp.lz.a1f2f370 b/gfx/pokemon/muk/back.2bpp.lz.a1f2f370
deleted file mode 100644
index 63a6aa8de..000000000
--- a/gfx/pokemon/muk/back.2bpp.lz.a1f2f370
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/muk/front.animated.2bpp.lz.530363b2 b/gfx/pokemon/muk/front.animated.2bpp.lz.530363b2
deleted file mode 100644
index 3a4280270..000000000
--- a/gfx/pokemon/muk/front.animated.2bpp.lz.530363b2
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/murkrow/back.2bpp.lz.0c347b5b b/gfx/pokemon/murkrow/back.2bpp.lz.0c347b5b
deleted file mode 100644
index b99287081..000000000
--- a/gfx/pokemon/murkrow/back.2bpp.lz.0c347b5b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/murkrow/front.animated.2bpp.lz.5d2805e8 b/gfx/pokemon/murkrow/front.animated.2bpp.lz.5d2805e8
deleted file mode 100644
index e7ae99387..000000000
--- a/gfx/pokemon/murkrow/front.animated.2bpp.lz.5d2805e8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/natu/back.2bpp.lz.c8339fb4 b/gfx/pokemon/natu/back.2bpp.lz.c8339fb4
deleted file mode 100644
index b4ba45c14..000000000
--- a/gfx/pokemon/natu/back.2bpp.lz.c8339fb4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/natu/front.animated.2bpp.lz.997efaf6 b/gfx/pokemon/natu/front.animated.2bpp.lz.997efaf6
deleted file mode 100644
index adebc8879..000000000
--- a/gfx/pokemon/natu/front.animated.2bpp.lz.997efaf6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidoking/back.2bpp.lz.93211604 b/gfx/pokemon/nidoking/back.2bpp.lz.93211604
deleted file mode 100644
index b3f35b5a1..000000000
--- a/gfx/pokemon/nidoking/back.2bpp.lz.93211604
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidoking/front.animated.2bpp.lz.bd38fa1e b/gfx/pokemon/nidoking/front.animated.2bpp.lz.bd38fa1e
deleted file mode 100644
index aad75774c..000000000
--- a/gfx/pokemon/nidoking/front.animated.2bpp.lz.bd38fa1e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidoqueen/back.2bpp.lz.f1eb0f0c b/gfx/pokemon/nidoqueen/back.2bpp.lz.f1eb0f0c
deleted file mode 100644
index b363f089e..000000000
--- a/gfx/pokemon/nidoqueen/back.2bpp.lz.f1eb0f0c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidoqueen/front.animated.2bpp.lz.0bf11b0a b/gfx/pokemon/nidoqueen/front.animated.2bpp.lz.0bf11b0a
deleted file mode 100644
index d02a553d5..000000000
--- a/gfx/pokemon/nidoqueen/front.animated.2bpp.lz.0bf11b0a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidoran_f/back.2bpp.lz.9b6990f1 b/gfx/pokemon/nidoran_f/back.2bpp.lz.9b6990f1
deleted file mode 100644
index df43f06a1..000000000
--- a/gfx/pokemon/nidoran_f/back.2bpp.lz.9b6990f1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidoran_f/front.animated.2bpp.lz.0a4602e7 b/gfx/pokemon/nidoran_f/front.animated.2bpp.lz.0a4602e7
deleted file mode 100644
index 477857691..000000000
--- a/gfx/pokemon/nidoran_f/front.animated.2bpp.lz.0a4602e7
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidoran_m/back.2bpp.lz.c9e54720 b/gfx/pokemon/nidoran_m/back.2bpp.lz.c9e54720
deleted file mode 100644
index 4b3be9a60..000000000
--- a/gfx/pokemon/nidoran_m/back.2bpp.lz.c9e54720
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidoran_m/front.animated.2bpp.lz.b121beaa b/gfx/pokemon/nidoran_m/front.animated.2bpp.lz.b121beaa
deleted file mode 100644
index 661dadada..000000000
--- a/gfx/pokemon/nidoran_m/front.animated.2bpp.lz.b121beaa
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidorina/back.2bpp.lz.a00ecf4a b/gfx/pokemon/nidorina/back.2bpp.lz.a00ecf4a
deleted file mode 100644
index 141d61f81..000000000
--- a/gfx/pokemon/nidorina/back.2bpp.lz.a00ecf4a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidorina/front.animated.2bpp.lz.51532540 b/gfx/pokemon/nidorina/front.animated.2bpp.lz.51532540
deleted file mode 100644
index 04523a52b..000000000
--- a/gfx/pokemon/nidorina/front.animated.2bpp.lz.51532540
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidorino/back.2bpp.lz.8504fdd1 b/gfx/pokemon/nidorino/back.2bpp.lz.8504fdd1
deleted file mode 100644
index 6e6a841e9..000000000
--- a/gfx/pokemon/nidorino/back.2bpp.lz.8504fdd1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/nidorino/front.animated.2bpp.lz.ba11ef23 b/gfx/pokemon/nidorino/front.animated.2bpp.lz.ba11ef23
deleted file mode 100644
index 228c93b52..000000000
--- a/gfx/pokemon/nidorino/front.animated.2bpp.lz.ba11ef23
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ninetales/back.2bpp.lz.999b3894 b/gfx/pokemon/ninetales/back.2bpp.lz.999b3894
deleted file mode 100644
index e6b264033..000000000
--- a/gfx/pokemon/ninetales/back.2bpp.lz.999b3894
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ninetales/front.animated.2bpp.lz.eef934ff b/gfx/pokemon/ninetales/front.animated.2bpp.lz.eef934ff
deleted file mode 100644
index 4865c6d82..000000000
--- a/gfx/pokemon/ninetales/front.animated.2bpp.lz.eef934ff
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/noctowl/back.2bpp.lz.9c8ac57f b/gfx/pokemon/noctowl/back.2bpp.lz.9c8ac57f
deleted file mode 100644
index 9ef83c86e..000000000
--- a/gfx/pokemon/noctowl/back.2bpp.lz.9c8ac57f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/noctowl/front.animated.2bpp.lz.7d6594fe b/gfx/pokemon/noctowl/front.animated.2bpp.lz.7d6594fe
deleted file mode 100644
index cd0d1313b..000000000
--- a/gfx/pokemon/noctowl/front.animated.2bpp.lz.7d6594fe
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/octillery/back.2bpp.lz.48b6e47d b/gfx/pokemon/octillery/back.2bpp.lz.48b6e47d
deleted file mode 100644
index 2d12597ca..000000000
--- a/gfx/pokemon/octillery/back.2bpp.lz.48b6e47d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/octillery/front.animated.2bpp.lz.de99954b b/gfx/pokemon/octillery/front.animated.2bpp.lz.de99954b
deleted file mode 100644
index 9ffec9b38..000000000
--- a/gfx/pokemon/octillery/front.animated.2bpp.lz.de99954b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/oddish/back.2bpp.lz.4f9ec682 b/gfx/pokemon/oddish/back.2bpp.lz.4f9ec682
deleted file mode 100644
index 81ba4e5f3..000000000
--- a/gfx/pokemon/oddish/back.2bpp.lz.4f9ec682
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/oddish/front.animated.2bpp.lz.ea2e0dcd b/gfx/pokemon/oddish/front.animated.2bpp.lz.ea2e0dcd
deleted file mode 100644
index 3864c0b7a..000000000
--- a/gfx/pokemon/oddish/front.animated.2bpp.lz.ea2e0dcd
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/omanyte/back.2bpp.lz.f442a670 b/gfx/pokemon/omanyte/back.2bpp.lz.f442a670
deleted file mode 100644
index 0ee462eaf..000000000
--- a/gfx/pokemon/omanyte/back.2bpp.lz.f442a670
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/omanyte/front.animated.2bpp.lz.15b343dc b/gfx/pokemon/omanyte/front.animated.2bpp.lz.15b343dc
deleted file mode 100644
index 7673b2390..000000000
--- a/gfx/pokemon/omanyte/front.animated.2bpp.lz.15b343dc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/omastar/back.2bpp.lz.c75932db b/gfx/pokemon/omastar/back.2bpp.lz.c75932db
deleted file mode 100644
index b41a828c5..000000000
--- a/gfx/pokemon/omastar/back.2bpp.lz.c75932db
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/omastar/front.animated.2bpp.lz.b3f6c3dc b/gfx/pokemon/omastar/front.animated.2bpp.lz.b3f6c3dc
deleted file mode 100644
index 544e2d87b..000000000
--- a/gfx/pokemon/omastar/front.animated.2bpp.lz.b3f6c3dc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/onix/back.2bpp.lz.cb580eb9 b/gfx/pokemon/onix/back.2bpp.lz.cb580eb9
deleted file mode 100644
index 05df1a96b..000000000
--- a/gfx/pokemon/onix/back.2bpp.lz.cb580eb9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/onix/front.animated.2bpp.lz.84b7e9ef b/gfx/pokemon/onix/front.animated.2bpp.lz.84b7e9ef
deleted file mode 100644
index dc3bfca6e..000000000
--- a/gfx/pokemon/onix/front.animated.2bpp.lz.84b7e9ef
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/paras/back.2bpp.lz.b5a4d1e2 b/gfx/pokemon/paras/back.2bpp.lz.b5a4d1e2
deleted file mode 100644
index d6c3d4a62..000000000
--- a/gfx/pokemon/paras/back.2bpp.lz.b5a4d1e2
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/paras/front.animated.2bpp.lz.37a2c2f8 b/gfx/pokemon/paras/front.animated.2bpp.lz.37a2c2f8
deleted file mode 100644
index 927c831d0..000000000
--- a/gfx/pokemon/paras/front.animated.2bpp.lz.37a2c2f8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/parasect/back.2bpp.lz.ed08ef08 b/gfx/pokemon/parasect/back.2bpp.lz.ed08ef08
deleted file mode 100644
index a63677ff7..000000000
--- a/gfx/pokemon/parasect/back.2bpp.lz.ed08ef08
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/parasect/front.animated.2bpp.lz.f78f9f36 b/gfx/pokemon/parasect/front.animated.2bpp.lz.f78f9f36
deleted file mode 100644
index f1743d07e..000000000
--- a/gfx/pokemon/parasect/front.animated.2bpp.lz.f78f9f36
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/persian/back.2bpp.lz.0e1c1c9a b/gfx/pokemon/persian/back.2bpp.lz.0e1c1c9a
deleted file mode 100644
index e615d47fb..000000000
--- a/gfx/pokemon/persian/back.2bpp.lz.0e1c1c9a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/persian/front.animated.2bpp.lz.0e6a2521 b/gfx/pokemon/persian/front.animated.2bpp.lz.0e6a2521
deleted file mode 100644
index 1f13a0cca..000000000
--- a/gfx/pokemon/persian/front.animated.2bpp.lz.0e6a2521
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/phanpy/back.2bpp.lz.a5c509b8 b/gfx/pokemon/phanpy/back.2bpp.lz.a5c509b8
deleted file mode 100644
index cef1bf442..000000000
--- a/gfx/pokemon/phanpy/back.2bpp.lz.a5c509b8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/phanpy/front.animated.2bpp.lz.53b49445 b/gfx/pokemon/phanpy/front.animated.2bpp.lz.53b49445
deleted file mode 100644
index d919487b8..000000000
--- a/gfx/pokemon/phanpy/front.animated.2bpp.lz.53b49445
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pichu/back.2bpp.lz.c5580983 b/gfx/pokemon/pichu/back.2bpp.lz.c5580983
deleted file mode 100644
index 61ab083b3..000000000
--- a/gfx/pokemon/pichu/back.2bpp.lz.c5580983
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pichu/front.animated.2bpp.lz.9c1c3bef b/gfx/pokemon/pichu/front.animated.2bpp.lz.9c1c3bef
deleted file mode 100644
index 06712d244..000000000
--- a/gfx/pokemon/pichu/front.animated.2bpp.lz.9c1c3bef
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pidgeot/back.2bpp.lz.7d9e44a5 b/gfx/pokemon/pidgeot/back.2bpp.lz.7d9e44a5
deleted file mode 100644
index a464dd7d1..000000000
--- a/gfx/pokemon/pidgeot/back.2bpp.lz.7d9e44a5
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pidgeot/front.animated.2bpp.lz.c161ad71 b/gfx/pokemon/pidgeot/front.animated.2bpp.lz.c161ad71
deleted file mode 100644
index f5cbb3f56..000000000
--- a/gfx/pokemon/pidgeot/front.animated.2bpp.lz.c161ad71
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pidgeotto/back.2bpp.lz.8a0dd470 b/gfx/pokemon/pidgeotto/back.2bpp.lz.8a0dd470
deleted file mode 100644
index d766747ef..000000000
--- a/gfx/pokemon/pidgeotto/back.2bpp.lz.8a0dd470
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pidgeotto/front.animated.2bpp.lz.8ce78b51 b/gfx/pokemon/pidgeotto/front.animated.2bpp.lz.8ce78b51
deleted file mode 100644
index 0fc3a94fd..000000000
--- a/gfx/pokemon/pidgeotto/front.animated.2bpp.lz.8ce78b51
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pidgey/back.2bpp.lz.027129e8 b/gfx/pokemon/pidgey/back.2bpp.lz.027129e8
deleted file mode 100644
index 48669456e..000000000
--- a/gfx/pokemon/pidgey/back.2bpp.lz.027129e8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pidgey/front.animated.2bpp.lz.9acd46ca b/gfx/pokemon/pidgey/front.animated.2bpp.lz.9acd46ca
deleted file mode 100644
index 03c579dbf..000000000
--- a/gfx/pokemon/pidgey/front.animated.2bpp.lz.9acd46ca
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pikachu/back.2bpp.lz.98998807 b/gfx/pokemon/pikachu/back.2bpp.lz.98998807
deleted file mode 100644
index 3f74382ae..000000000
--- a/gfx/pokemon/pikachu/back.2bpp.lz.98998807
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pikachu/front.animated.2bpp.lz.9c100565 b/gfx/pokemon/pikachu/front.animated.2bpp.lz.9c100565
deleted file mode 100644
index 1dbea0496..000000000
--- a/gfx/pokemon/pikachu/front.animated.2bpp.lz.9c100565
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/piloswine/back.2bpp.lz.6fe7da21 b/gfx/pokemon/piloswine/back.2bpp.lz.6fe7da21
deleted file mode 100644
index 2bdbd05b7..000000000
--- a/gfx/pokemon/piloswine/back.2bpp.lz.6fe7da21
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/piloswine/front.animated.2bpp.lz.f6f37ed2 b/gfx/pokemon/piloswine/front.animated.2bpp.lz.f6f37ed2
deleted file mode 100644
index 45b87144e..000000000
--- a/gfx/pokemon/piloswine/front.animated.2bpp.lz.f6f37ed2
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pineco/back.2bpp.lz.70df8ca3 b/gfx/pokemon/pineco/back.2bpp.lz.70df8ca3
deleted file mode 100644
index f4baaadb9..000000000
--- a/gfx/pokemon/pineco/back.2bpp.lz.70df8ca3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pineco/front.animated.2bpp.lz.82d91497 b/gfx/pokemon/pineco/front.animated.2bpp.lz.82d91497
deleted file mode 100644
index c36a27807..000000000
--- a/gfx/pokemon/pineco/front.animated.2bpp.lz.82d91497
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pinsir/back.2bpp.lz.09ac7dd4 b/gfx/pokemon/pinsir/back.2bpp.lz.09ac7dd4
deleted file mode 100644
index 8803c8a0a..000000000
--- a/gfx/pokemon/pinsir/back.2bpp.lz.09ac7dd4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pinsir/front.animated.2bpp.lz.1e3839f2 b/gfx/pokemon/pinsir/front.animated.2bpp.lz.1e3839f2
deleted file mode 100644
index d2ec9ecd9..000000000
--- a/gfx/pokemon/pinsir/front.animated.2bpp.lz.1e3839f2
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/politoed/back.2bpp.lz.7873e52f b/gfx/pokemon/politoed/back.2bpp.lz.7873e52f
deleted file mode 100644
index 2c492fcaf..000000000
--- a/gfx/pokemon/politoed/back.2bpp.lz.7873e52f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/politoed/front.animated.2bpp.lz.408a9c1a b/gfx/pokemon/politoed/front.animated.2bpp.lz.408a9c1a
deleted file mode 100644
index 8890a7ed4..000000000
--- a/gfx/pokemon/politoed/front.animated.2bpp.lz.408a9c1a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/poliwag/back.2bpp.lz.35b9ee20 b/gfx/pokemon/poliwag/back.2bpp.lz.35b9ee20
deleted file mode 100644
index 58d039d16..000000000
--- a/gfx/pokemon/poliwag/back.2bpp.lz.35b9ee20
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/poliwag/front.animated.2bpp.lz.c7d26488 b/gfx/pokemon/poliwag/front.animated.2bpp.lz.c7d26488
deleted file mode 100644
index df9741516..000000000
--- a/gfx/pokemon/poliwag/front.animated.2bpp.lz.c7d26488
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/poliwhirl/back.2bpp.lz.76564593 b/gfx/pokemon/poliwhirl/back.2bpp.lz.76564593
deleted file mode 100644
index a78a2cfff..000000000
--- a/gfx/pokemon/poliwhirl/back.2bpp.lz.76564593
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/poliwhirl/front.animated.2bpp.lz.9a36033f b/gfx/pokemon/poliwhirl/front.animated.2bpp.lz.9a36033f
deleted file mode 100644
index b06f41441..000000000
--- a/gfx/pokemon/poliwhirl/front.animated.2bpp.lz.9a36033f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/poliwrath/back.2bpp.lz.240e911e b/gfx/pokemon/poliwrath/back.2bpp.lz.240e911e
deleted file mode 100644
index eab9164aa..000000000
--- a/gfx/pokemon/poliwrath/back.2bpp.lz.240e911e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/poliwrath/front.animated.2bpp.lz.fb1157ec b/gfx/pokemon/poliwrath/front.animated.2bpp.lz.fb1157ec
deleted file mode 100644
index 601937221..000000000
--- a/gfx/pokemon/poliwrath/front.animated.2bpp.lz.fb1157ec
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ponyta/back.2bpp.lz.10ddc7ea b/gfx/pokemon/ponyta/back.2bpp.lz.10ddc7ea
deleted file mode 100644
index 5d7ecaa93..000000000
--- a/gfx/pokemon/ponyta/back.2bpp.lz.10ddc7ea
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ponyta/front.animated.2bpp.lz.2c8708d6 b/gfx/pokemon/ponyta/front.animated.2bpp.lz.2c8708d6
deleted file mode 100644
index 5d3aa48db..000000000
--- a/gfx/pokemon/ponyta/front.animated.2bpp.lz.2c8708d6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/porygon/back.2bpp.lz.b3d71350 b/gfx/pokemon/porygon/back.2bpp.lz.b3d71350
deleted file mode 100644
index 5f0a47032..000000000
--- a/gfx/pokemon/porygon/back.2bpp.lz.b3d71350
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/porygon/front.animated.2bpp.lz.70fc1333 b/gfx/pokemon/porygon/front.animated.2bpp.lz.70fc1333
deleted file mode 100644
index 734305a14..000000000
--- a/gfx/pokemon/porygon/front.animated.2bpp.lz.70fc1333
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/porygon2/back.2bpp.lz.5bba6e40 b/gfx/pokemon/porygon2/back.2bpp.lz.5bba6e40
deleted file mode 100644
index 5be528963..000000000
--- a/gfx/pokemon/porygon2/back.2bpp.lz.5bba6e40
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/porygon2/front.animated.2bpp.lz.a6410e75 b/gfx/pokemon/porygon2/front.animated.2bpp.lz.a6410e75
deleted file mode 100644
index 5e66bb54d..000000000
--- a/gfx/pokemon/porygon2/front.animated.2bpp.lz.a6410e75
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/primeape/back.2bpp.lz.690e407d b/gfx/pokemon/primeape/back.2bpp.lz.690e407d
deleted file mode 100644
index c0937a9ae..000000000
--- a/gfx/pokemon/primeape/back.2bpp.lz.690e407d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/primeape/front.animated.2bpp.lz.218352ec b/gfx/pokemon/primeape/front.animated.2bpp.lz.218352ec
deleted file mode 100644
index 8f513878f..000000000
--- a/gfx/pokemon/primeape/front.animated.2bpp.lz.218352ec
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/psyduck/back.2bpp.lz.d68cddb2 b/gfx/pokemon/psyduck/back.2bpp.lz.d68cddb2
deleted file mode 100644
index d627a146c..000000000
--- a/gfx/pokemon/psyduck/back.2bpp.lz.d68cddb2
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/psyduck/front.animated.2bpp.lz.e4efd065 b/gfx/pokemon/psyduck/front.animated.2bpp.lz.e4efd065
deleted file mode 100644
index 7988f1b0c..000000000
--- a/gfx/pokemon/psyduck/front.animated.2bpp.lz.e4efd065
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pupitar/back.2bpp.lz.100020c1 b/gfx/pokemon/pupitar/back.2bpp.lz.100020c1
deleted file mode 100644
index 46cf0e240..000000000
--- a/gfx/pokemon/pupitar/back.2bpp.lz.100020c1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/pupitar/front.animated.2bpp.lz.418c0962 b/gfx/pokemon/pupitar/front.animated.2bpp.lz.418c0962
deleted file mode 100644
index c39582db6..000000000
--- a/gfx/pokemon/pupitar/front.animated.2bpp.lz.418c0962
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/quagsire/back.2bpp.lz.64b2ec05 b/gfx/pokemon/quagsire/back.2bpp.lz.64b2ec05
deleted file mode 100644
index 543ce394f..000000000
--- a/gfx/pokemon/quagsire/back.2bpp.lz.64b2ec05
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/quagsire/front.animated.2bpp.lz.bd292a94 b/gfx/pokemon/quagsire/front.animated.2bpp.lz.bd292a94
deleted file mode 100644
index d1f42f064..000000000
--- a/gfx/pokemon/quagsire/front.animated.2bpp.lz.bd292a94
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/quilava/back.2bpp.lz.500906e1 b/gfx/pokemon/quilava/back.2bpp.lz.500906e1
deleted file mode 100644
index 8514a77c7..000000000
--- a/gfx/pokemon/quilava/back.2bpp.lz.500906e1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/quilava/front.animated.2bpp.lz.f42f4c67 b/gfx/pokemon/quilava/front.animated.2bpp.lz.f42f4c67
deleted file mode 100644
index 33aebb81c..000000000
--- a/gfx/pokemon/quilava/front.animated.2bpp.lz.f42f4c67
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/qwilfish/back.2bpp.lz.b2bb83c6 b/gfx/pokemon/qwilfish/back.2bpp.lz.b2bb83c6
deleted file mode 100644
index 09f793f47..000000000
--- a/gfx/pokemon/qwilfish/back.2bpp.lz.b2bb83c6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/qwilfish/front.animated.2bpp.lz.9e79c033 b/gfx/pokemon/qwilfish/front.animated.2bpp.lz.9e79c033
deleted file mode 100644
index 02370c7ba..000000000
--- a/gfx/pokemon/qwilfish/front.animated.2bpp.lz.9e79c033
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/raichu/back.2bpp.lz.fa4c7423 b/gfx/pokemon/raichu/back.2bpp.lz.fa4c7423
deleted file mode 100644
index 912c378e8..000000000
--- a/gfx/pokemon/raichu/back.2bpp.lz.fa4c7423
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/raichu/front.animated.2bpp.lz.25f943cb b/gfx/pokemon/raichu/front.animated.2bpp.lz.25f943cb
deleted file mode 100644
index 84115fb00..000000000
--- a/gfx/pokemon/raichu/front.animated.2bpp.lz.25f943cb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/raikou/back.2bpp.lz.657ddfaf b/gfx/pokemon/raikou/back.2bpp.lz.657ddfaf
deleted file mode 100644
index 23fd5c471..000000000
--- a/gfx/pokemon/raikou/back.2bpp.lz.657ddfaf
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/raikou/front.animated.2bpp.lz.464b6fd7 b/gfx/pokemon/raikou/front.animated.2bpp.lz.464b6fd7
deleted file mode 100644
index dba4517aa..000000000
--- a/gfx/pokemon/raikou/front.animated.2bpp.lz.464b6fd7
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/rapidash/back.2bpp.lz.fdd1946c b/gfx/pokemon/rapidash/back.2bpp.lz.fdd1946c
deleted file mode 100644
index 3854c29e5..000000000
--- a/gfx/pokemon/rapidash/back.2bpp.lz.fdd1946c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/rapidash/front.animated.2bpp.lz.d5ac5a96 b/gfx/pokemon/rapidash/front.animated.2bpp.lz.d5ac5a96
deleted file mode 100644
index 231e312fb..000000000
--- a/gfx/pokemon/rapidash/front.animated.2bpp.lz.d5ac5a96
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/raticate/back.2bpp.lz.b2a77d02 b/gfx/pokemon/raticate/back.2bpp.lz.b2a77d02
deleted file mode 100644
index 4e69587dd..000000000
--- a/gfx/pokemon/raticate/back.2bpp.lz.b2a77d02
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/raticate/front.animated.2bpp.lz.ef1a4689 b/gfx/pokemon/raticate/front.animated.2bpp.lz.ef1a4689
deleted file mode 100644
index 5b426cbdd..000000000
--- a/gfx/pokemon/raticate/front.animated.2bpp.lz.ef1a4689
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/rattata/back.2bpp.lz.86979cd5 b/gfx/pokemon/rattata/back.2bpp.lz.86979cd5
deleted file mode 100644
index a06c5f1f8..000000000
--- a/gfx/pokemon/rattata/back.2bpp.lz.86979cd5
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/rattata/front.animated.2bpp.lz.5bdaea2b b/gfx/pokemon/rattata/front.animated.2bpp.lz.5bdaea2b
deleted file mode 100644
index 7bb18d542..000000000
--- a/gfx/pokemon/rattata/front.animated.2bpp.lz.5bdaea2b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/remoraid/back.2bpp.lz.8a6e4f29 b/gfx/pokemon/remoraid/back.2bpp.lz.8a6e4f29
deleted file mode 100644
index 414d65a14..000000000
--- a/gfx/pokemon/remoraid/back.2bpp.lz.8a6e4f29
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/remoraid/front.animated.2bpp.lz.4eaf1230 b/gfx/pokemon/remoraid/front.animated.2bpp.lz.4eaf1230
deleted file mode 100644
index 6d702b4a1..000000000
--- a/gfx/pokemon/remoraid/front.animated.2bpp.lz.4eaf1230
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/rhydon/back.2bpp.lz.4a3ea4af b/gfx/pokemon/rhydon/back.2bpp.lz.4a3ea4af
deleted file mode 100644
index b626f4ce6..000000000
--- a/gfx/pokemon/rhydon/back.2bpp.lz.4a3ea4af
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/rhydon/front.animated.2bpp.lz.7257fc4f b/gfx/pokemon/rhydon/front.animated.2bpp.lz.7257fc4f
deleted file mode 100644
index 0ad1c221b..000000000
--- a/gfx/pokemon/rhydon/front.animated.2bpp.lz.7257fc4f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/rhyhorn/back.2bpp.lz.b9a8e755 b/gfx/pokemon/rhyhorn/back.2bpp.lz.b9a8e755
deleted file mode 100644
index bfcafdcb4..000000000
--- a/gfx/pokemon/rhyhorn/back.2bpp.lz.b9a8e755
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/rhyhorn/front.animated.2bpp.lz.bdfdf7dc b/gfx/pokemon/rhyhorn/front.animated.2bpp.lz.bdfdf7dc
deleted file mode 100644
index 62a2e8919..000000000
--- a/gfx/pokemon/rhyhorn/front.animated.2bpp.lz.bdfdf7dc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sandshrew/back.2bpp.lz.7655193f b/gfx/pokemon/sandshrew/back.2bpp.lz.7655193f
deleted file mode 100644
index 63ddb82a1..000000000
--- a/gfx/pokemon/sandshrew/back.2bpp.lz.7655193f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sandshrew/front.animated.2bpp.lz.758def3d b/gfx/pokemon/sandshrew/front.animated.2bpp.lz.758def3d
deleted file mode 100644
index 3d1da3087..000000000
--- a/gfx/pokemon/sandshrew/front.animated.2bpp.lz.758def3d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sandslash/back.2bpp.lz.2999f4c6 b/gfx/pokemon/sandslash/back.2bpp.lz.2999f4c6
deleted file mode 100644
index 52bb7ce7d..000000000
--- a/gfx/pokemon/sandslash/back.2bpp.lz.2999f4c6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sandslash/front.animated.2bpp.lz.d6498722 b/gfx/pokemon/sandslash/front.animated.2bpp.lz.d6498722
deleted file mode 100644
index cdffe9baf..000000000
--- a/gfx/pokemon/sandslash/front.animated.2bpp.lz.d6498722
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/scizor/back.2bpp.lz.85149f27 b/gfx/pokemon/scizor/back.2bpp.lz.85149f27
deleted file mode 100644
index 5a02e7000..000000000
--- a/gfx/pokemon/scizor/back.2bpp.lz.85149f27
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/scizor/front.animated.2bpp.lz.afd0131a b/gfx/pokemon/scizor/front.animated.2bpp.lz.afd0131a
deleted file mode 100644
index e7d506f48..000000000
--- a/gfx/pokemon/scizor/front.animated.2bpp.lz.afd0131a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/scyther/back.2bpp.lz.1d7f8a87 b/gfx/pokemon/scyther/back.2bpp.lz.1d7f8a87
deleted file mode 100644
index 421fc4ed0..000000000
--- a/gfx/pokemon/scyther/back.2bpp.lz.1d7f8a87
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/scyther/front.animated.2bpp.lz.86d1a281 b/gfx/pokemon/scyther/front.animated.2bpp.lz.86d1a281
deleted file mode 100644
index 02773fc11..000000000
--- a/gfx/pokemon/scyther/front.animated.2bpp.lz.86d1a281
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/seadra/back.2bpp.lz.354a02e4 b/gfx/pokemon/seadra/back.2bpp.lz.354a02e4
deleted file mode 100644
index ba9025832..000000000
--- a/gfx/pokemon/seadra/back.2bpp.lz.354a02e4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/seadra/front.animated.2bpp.lz.efa9c88c b/gfx/pokemon/seadra/front.animated.2bpp.lz.efa9c88c
deleted file mode 100644
index 6d63f3645..000000000
--- a/gfx/pokemon/seadra/front.animated.2bpp.lz.efa9c88c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/seaking/back.2bpp.lz.3e699249 b/gfx/pokemon/seaking/back.2bpp.lz.3e699249
deleted file mode 100644
index 328a1fb55..000000000
--- a/gfx/pokemon/seaking/back.2bpp.lz.3e699249
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/seaking/front.animated.2bpp.lz.fb4eb288 b/gfx/pokemon/seaking/front.animated.2bpp.lz.fb4eb288
deleted file mode 100644
index e204f1025..000000000
--- a/gfx/pokemon/seaking/front.animated.2bpp.lz.fb4eb288
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/seel/back.2bpp.lz.518a4d40 b/gfx/pokemon/seel/back.2bpp.lz.518a4d40
deleted file mode 100644
index 0d5b89dae..000000000
--- a/gfx/pokemon/seel/back.2bpp.lz.518a4d40
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/seel/front.animated.2bpp.lz.2dc48023 b/gfx/pokemon/seel/front.animated.2bpp.lz.2dc48023
deleted file mode 100644
index c8f1343d6..000000000
--- a/gfx/pokemon/seel/front.animated.2bpp.lz.2dc48023
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sentret/back.2bpp.lz.c19b7f3b b/gfx/pokemon/sentret/back.2bpp.lz.c19b7f3b
deleted file mode 100644
index 511ba5465..000000000
--- a/gfx/pokemon/sentret/back.2bpp.lz.c19b7f3b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sentret/front.animated.2bpp.lz.07c594c0 b/gfx/pokemon/sentret/front.animated.2bpp.lz.07c594c0
deleted file mode 100644
index 229aa430c..000000000
--- a/gfx/pokemon/sentret/front.animated.2bpp.lz.07c594c0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/shellder/back.2bpp.lz.61e27953 b/gfx/pokemon/shellder/back.2bpp.lz.61e27953
deleted file mode 100644
index f0d93b8a8..000000000
--- a/gfx/pokemon/shellder/back.2bpp.lz.61e27953
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/shellder/front.animated.2bpp.lz.df57d475 b/gfx/pokemon/shellder/front.animated.2bpp.lz.df57d475
deleted file mode 100644
index 5a444cfa6..000000000
--- a/gfx/pokemon/shellder/front.animated.2bpp.lz.df57d475
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/shuckle/back.2bpp.lz.8d66899b b/gfx/pokemon/shuckle/back.2bpp.lz.8d66899b
deleted file mode 100644
index 1cc4efcea..000000000
--- a/gfx/pokemon/shuckle/back.2bpp.lz.8d66899b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/shuckle/front.animated.2bpp.lz.dee153d4 b/gfx/pokemon/shuckle/front.animated.2bpp.lz.dee153d4
deleted file mode 100644
index 95e78302a..000000000
--- a/gfx/pokemon/shuckle/front.animated.2bpp.lz.dee153d4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/skarmory/back.2bpp.lz.f5e2e2e4 b/gfx/pokemon/skarmory/back.2bpp.lz.f5e2e2e4
deleted file mode 100644
index fca13d16a..000000000
--- a/gfx/pokemon/skarmory/back.2bpp.lz.f5e2e2e4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/skarmory/front.animated.2bpp.lz.7de4675e b/gfx/pokemon/skarmory/front.animated.2bpp.lz.7de4675e
deleted file mode 100644
index e53f5a9ef..000000000
--- a/gfx/pokemon/skarmory/front.animated.2bpp.lz.7de4675e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/skiploom/back.2bpp.lz.54e87a0c b/gfx/pokemon/skiploom/back.2bpp.lz.54e87a0c
deleted file mode 100644
index 8b197406c..000000000
--- a/gfx/pokemon/skiploom/back.2bpp.lz.54e87a0c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/skiploom/front.animated.2bpp.lz.6436d556 b/gfx/pokemon/skiploom/front.animated.2bpp.lz.6436d556
deleted file mode 100644
index f48561c76..000000000
--- a/gfx/pokemon/skiploom/front.animated.2bpp.lz.6436d556
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/slowbro/back.2bpp.lz.3676b1f1 b/gfx/pokemon/slowbro/back.2bpp.lz.3676b1f1
deleted file mode 100644
index af1d60999..000000000
--- a/gfx/pokemon/slowbro/back.2bpp.lz.3676b1f1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/slowbro/front.animated.2bpp.lz.257e2e84 b/gfx/pokemon/slowbro/front.animated.2bpp.lz.257e2e84
deleted file mode 100644
index 0a6d1ac2c..000000000
--- a/gfx/pokemon/slowbro/front.animated.2bpp.lz.257e2e84
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/slowking/back.2bpp.lz.a90de69e b/gfx/pokemon/slowking/back.2bpp.lz.a90de69e
deleted file mode 100644
index e6342e434..000000000
--- a/gfx/pokemon/slowking/back.2bpp.lz.a90de69e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/slowking/front.animated.2bpp.lz.4c2f7140 b/gfx/pokemon/slowking/front.animated.2bpp.lz.4c2f7140
deleted file mode 100644
index 2f9bd1654..000000000
--- a/gfx/pokemon/slowking/front.animated.2bpp.lz.4c2f7140
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/slowpoke/back.2bpp.lz.f2d1bb5c b/gfx/pokemon/slowpoke/back.2bpp.lz.f2d1bb5c
deleted file mode 100644
index cdaa2178d..000000000
--- a/gfx/pokemon/slowpoke/back.2bpp.lz.f2d1bb5c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/slowpoke/front.animated.2bpp.lz.42347014 b/gfx/pokemon/slowpoke/front.animated.2bpp.lz.42347014
deleted file mode 100644
index 23d8e22f2..000000000
--- a/gfx/pokemon/slowpoke/front.animated.2bpp.lz.42347014
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/slugma/back.2bpp.lz.dc25c77a b/gfx/pokemon/slugma/back.2bpp.lz.dc25c77a
deleted file mode 100644
index 949fbc218..000000000
--- a/gfx/pokemon/slugma/back.2bpp.lz.dc25c77a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/slugma/front.animated.2bpp.lz.c1a44906 b/gfx/pokemon/slugma/front.animated.2bpp.lz.c1a44906
deleted file mode 100644
index 4c9a0078e..000000000
--- a/gfx/pokemon/slugma/front.animated.2bpp.lz.c1a44906
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/smeargle/back.2bpp.lz.2de2de8c b/gfx/pokemon/smeargle/back.2bpp.lz.2de2de8c
deleted file mode 100644
index eb96bfd07..000000000
--- a/gfx/pokemon/smeargle/back.2bpp.lz.2de2de8c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/smeargle/front.animated.2bpp.lz.82ec0f51 b/gfx/pokemon/smeargle/front.animated.2bpp.lz.82ec0f51
deleted file mode 100644
index 81be921d5..000000000
--- a/gfx/pokemon/smeargle/front.animated.2bpp.lz.82ec0f51
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/smoochum/back.2bpp.lz.af01f906 b/gfx/pokemon/smoochum/back.2bpp.lz.af01f906
deleted file mode 100644
index 52c256c16..000000000
--- a/gfx/pokemon/smoochum/back.2bpp.lz.af01f906
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/smoochum/front.animated.2bpp.lz.5977720b b/gfx/pokemon/smoochum/front.animated.2bpp.lz.5977720b
deleted file mode 100644
index cd4b75761..000000000
--- a/gfx/pokemon/smoochum/front.animated.2bpp.lz.5977720b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sneasel/back.2bpp.lz.5298828d b/gfx/pokemon/sneasel/back.2bpp.lz.5298828d
deleted file mode 100644
index be5ad2304..000000000
--- a/gfx/pokemon/sneasel/back.2bpp.lz.5298828d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sneasel/front.animated.2bpp.lz.8f7db3e9 b/gfx/pokemon/sneasel/front.animated.2bpp.lz.8f7db3e9
deleted file mode 100644
index 4add5f2e0..000000000
--- a/gfx/pokemon/sneasel/front.animated.2bpp.lz.8f7db3e9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/snorlax/back.2bpp.lz.90570272 b/gfx/pokemon/snorlax/back.2bpp.lz.90570272
deleted file mode 100644
index dfbfcbb50..000000000
--- a/gfx/pokemon/snorlax/back.2bpp.lz.90570272
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/snorlax/front.animated.2bpp.lz.8253357b b/gfx/pokemon/snorlax/front.animated.2bpp.lz.8253357b
deleted file mode 100644
index 7c610f46c..000000000
--- a/gfx/pokemon/snorlax/front.animated.2bpp.lz.8253357b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/snubbull/back.2bpp.lz.26eaaa5d b/gfx/pokemon/snubbull/back.2bpp.lz.26eaaa5d
deleted file mode 100644
index 5b020db5e..000000000
--- a/gfx/pokemon/snubbull/back.2bpp.lz.26eaaa5d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/snubbull/front.animated.2bpp.lz.a1b4eb88 b/gfx/pokemon/snubbull/front.animated.2bpp.lz.a1b4eb88
deleted file mode 100644
index 69a534e2c..000000000
--- a/gfx/pokemon/snubbull/front.animated.2bpp.lz.a1b4eb88
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/spearow/back.2bpp.lz.b8e760aa b/gfx/pokemon/spearow/back.2bpp.lz.b8e760aa
deleted file mode 100644
index 9411f32bd..000000000
--- a/gfx/pokemon/spearow/back.2bpp.lz.b8e760aa
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/spearow/front.animated.2bpp.lz.59d61986 b/gfx/pokemon/spearow/front.animated.2bpp.lz.59d61986
deleted file mode 100644
index 8def69a01..000000000
--- a/gfx/pokemon/spearow/front.animated.2bpp.lz.59d61986
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/spinarak/back.2bpp.lz.14002836 b/gfx/pokemon/spinarak/back.2bpp.lz.14002836
deleted file mode 100644
index 3fa2e3b12..000000000
--- a/gfx/pokemon/spinarak/back.2bpp.lz.14002836
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/spinarak/front.animated.2bpp.lz.31ab6868 b/gfx/pokemon/spinarak/front.animated.2bpp.lz.31ab6868
deleted file mode 100644
index edbe6e1ce..000000000
--- a/gfx/pokemon/spinarak/front.animated.2bpp.lz.31ab6868
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/squirtle/back.2bpp.lz.76295ae8 b/gfx/pokemon/squirtle/back.2bpp.lz.76295ae8
deleted file mode 100644
index a8fa8d3fd..000000000
--- a/gfx/pokemon/squirtle/back.2bpp.lz.76295ae8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/squirtle/front.animated.2bpp.lz.9b6f9ec9 b/gfx/pokemon/squirtle/front.animated.2bpp.lz.9b6f9ec9
deleted file mode 100644
index 175cc5e0d..000000000
--- a/gfx/pokemon/squirtle/front.animated.2bpp.lz.9b6f9ec9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/stantler/back.2bpp.lz.16502aac b/gfx/pokemon/stantler/back.2bpp.lz.16502aac
deleted file mode 100644
index a0ab53039..000000000
--- a/gfx/pokemon/stantler/back.2bpp.lz.16502aac
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/stantler/front.animated.2bpp.lz.46b7dd06 b/gfx/pokemon/stantler/front.animated.2bpp.lz.46b7dd06
deleted file mode 100644
index 87a56e667..000000000
--- a/gfx/pokemon/stantler/front.animated.2bpp.lz.46b7dd06
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/starmie/back.2bpp.lz.a8923741 b/gfx/pokemon/starmie/back.2bpp.lz.a8923741
deleted file mode 100644
index 8085f0f44..000000000
--- a/gfx/pokemon/starmie/back.2bpp.lz.a8923741
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/starmie/front.animated.2bpp.lz.522b6699 b/gfx/pokemon/starmie/front.animated.2bpp.lz.522b6699
deleted file mode 100644
index b9019f6c6..000000000
--- a/gfx/pokemon/starmie/front.animated.2bpp.lz.522b6699
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/staryu/back.2bpp.lz.79ea9d00 b/gfx/pokemon/staryu/back.2bpp.lz.79ea9d00
deleted file mode 100644
index 65366eb7c..000000000
--- a/gfx/pokemon/staryu/back.2bpp.lz.79ea9d00
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/staryu/front.animated.2bpp.lz.22f1d06b b/gfx/pokemon/staryu/front.animated.2bpp.lz.22f1d06b
deleted file mode 100644
index 8d0bdacb9..000000000
--- a/gfx/pokemon/staryu/front.animated.2bpp.lz.22f1d06b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/steelix/back.2bpp.lz.f3c03e61 b/gfx/pokemon/steelix/back.2bpp.lz.f3c03e61
deleted file mode 100644
index e4cb2d6dc..000000000
--- a/gfx/pokemon/steelix/back.2bpp.lz.f3c03e61
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/steelix/front.animated.2bpp.lz.42f3f8d1 b/gfx/pokemon/steelix/front.animated.2bpp.lz.42f3f8d1
deleted file mode 100644
index 2da642f04..000000000
--- a/gfx/pokemon/steelix/front.animated.2bpp.lz.42f3f8d1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sudowoodo/back.2bpp.lz.728036c6 b/gfx/pokemon/sudowoodo/back.2bpp.lz.728036c6
deleted file mode 100644
index c10731ea9..000000000
--- a/gfx/pokemon/sudowoodo/back.2bpp.lz.728036c6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sudowoodo/front.animated.2bpp.lz.b0f04991 b/gfx/pokemon/sudowoodo/front.animated.2bpp.lz.b0f04991
deleted file mode 100644
index 160f800cf..000000000
--- a/gfx/pokemon/sudowoodo/front.animated.2bpp.lz.b0f04991
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/suicune/back.2bpp.lz.5c49d112 b/gfx/pokemon/suicune/back.2bpp.lz.5c49d112
deleted file mode 100644
index a8106fbb4..000000000
--- a/gfx/pokemon/suicune/back.2bpp.lz.5c49d112
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/suicune/front.animated.2bpp.lz.64698c0a b/gfx/pokemon/suicune/front.animated.2bpp.lz.64698c0a
deleted file mode 100644
index cbc9dfdbf..000000000
--- a/gfx/pokemon/suicune/front.animated.2bpp.lz.64698c0a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sunflora/back.2bpp.lz.9d0684f0 b/gfx/pokemon/sunflora/back.2bpp.lz.9d0684f0
deleted file mode 100644
index 3fb3432ba..000000000
--- a/gfx/pokemon/sunflora/back.2bpp.lz.9d0684f0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sunflora/front.animated.2bpp.lz.258c3e67 b/gfx/pokemon/sunflora/front.animated.2bpp.lz.258c3e67
deleted file mode 100644
index 1026c3719..000000000
--- a/gfx/pokemon/sunflora/front.animated.2bpp.lz.258c3e67
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sunkern/back.2bpp.lz.d28f6303 b/gfx/pokemon/sunkern/back.2bpp.lz.d28f6303
deleted file mode 100644
index a9ba0f738..000000000
--- a/gfx/pokemon/sunkern/back.2bpp.lz.d28f6303
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/sunkern/front.animated.2bpp.lz.316c5261 b/gfx/pokemon/sunkern/front.animated.2bpp.lz.316c5261
deleted file mode 100644
index 77a21af73..000000000
--- a/gfx/pokemon/sunkern/front.animated.2bpp.lz.316c5261
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/swinub/back.2bpp.lz.1ebbfabf b/gfx/pokemon/swinub/back.2bpp.lz.1ebbfabf
deleted file mode 100644
index 51b90aae2..000000000
--- a/gfx/pokemon/swinub/back.2bpp.lz.1ebbfabf
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/swinub/front.animated.2bpp.lz.228147a5 b/gfx/pokemon/swinub/front.animated.2bpp.lz.228147a5
deleted file mode 100644
index 00171e0f3..000000000
--- a/gfx/pokemon/swinub/front.animated.2bpp.lz.228147a5
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tangela/back.2bpp.lz.435194a6 b/gfx/pokemon/tangela/back.2bpp.lz.435194a6
deleted file mode 100644
index 9ad73a0b6..000000000
--- a/gfx/pokemon/tangela/back.2bpp.lz.435194a6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tangela/front.animated.2bpp.lz.7cb3fed8 b/gfx/pokemon/tangela/front.animated.2bpp.lz.7cb3fed8
deleted file mode 100644
index 345732b84..000000000
--- a/gfx/pokemon/tangela/front.animated.2bpp.lz.7cb3fed8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tauros/back.2bpp.lz.f487c586 b/gfx/pokemon/tauros/back.2bpp.lz.f487c586
deleted file mode 100644
index 219aee479..000000000
--- a/gfx/pokemon/tauros/back.2bpp.lz.f487c586
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tauros/front.animated.2bpp.lz.982dd0db b/gfx/pokemon/tauros/front.animated.2bpp.lz.982dd0db
deleted file mode 100644
index d395b145b..000000000
--- a/gfx/pokemon/tauros/front.animated.2bpp.lz.982dd0db
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/teddiursa/back.2bpp.lz.53f6e34e b/gfx/pokemon/teddiursa/back.2bpp.lz.53f6e34e
deleted file mode 100644
index a6d267ef8..000000000
--- a/gfx/pokemon/teddiursa/back.2bpp.lz.53f6e34e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/teddiursa/front.animated.2bpp.lz.5f9648c7 b/gfx/pokemon/teddiursa/front.animated.2bpp.lz.5f9648c7
deleted file mode 100644
index 40c22315e..000000000
--- a/gfx/pokemon/teddiursa/front.animated.2bpp.lz.5f9648c7
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tentacool/back.2bpp.lz.ae7b2102 b/gfx/pokemon/tentacool/back.2bpp.lz.ae7b2102
deleted file mode 100644
index c0b615905..000000000
--- a/gfx/pokemon/tentacool/back.2bpp.lz.ae7b2102
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tentacool/front.animated.2bpp.lz.7a86457c b/gfx/pokemon/tentacool/front.animated.2bpp.lz.7a86457c
deleted file mode 100644
index 57916e4e9..000000000
--- a/gfx/pokemon/tentacool/front.animated.2bpp.lz.7a86457c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tentacruel/back.2bpp.lz.0e344f19 b/gfx/pokemon/tentacruel/back.2bpp.lz.0e344f19
deleted file mode 100644
index 89d7a492d..000000000
--- a/gfx/pokemon/tentacruel/back.2bpp.lz.0e344f19
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tentacruel/front.animated.2bpp.lz.f13e5904 b/gfx/pokemon/tentacruel/front.animated.2bpp.lz.f13e5904
deleted file mode 100644
index ec6f4c2c8..000000000
--- a/gfx/pokemon/tentacruel/front.animated.2bpp.lz.f13e5904
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/togepi/back.2bpp.lz.0e22cc02 b/gfx/pokemon/togepi/back.2bpp.lz.0e22cc02
deleted file mode 100644
index ed6fab2ec..000000000
--- a/gfx/pokemon/togepi/back.2bpp.lz.0e22cc02
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/togepi/front.animated.2bpp.lz.0cf7ba07 b/gfx/pokemon/togepi/front.animated.2bpp.lz.0cf7ba07
deleted file mode 100644
index 8ceaf38bf..000000000
--- a/gfx/pokemon/togepi/front.animated.2bpp.lz.0cf7ba07
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/togetic/back.2bpp.lz.62cbb330 b/gfx/pokemon/togetic/back.2bpp.lz.62cbb330
deleted file mode 100644
index 134d5718a..000000000
--- a/gfx/pokemon/togetic/back.2bpp.lz.62cbb330
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/togetic/front.animated.2bpp.lz.5797583e b/gfx/pokemon/togetic/front.animated.2bpp.lz.5797583e
deleted file mode 100644
index 13e98ae1d..000000000
--- a/gfx/pokemon/togetic/front.animated.2bpp.lz.5797583e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/totodile/back.2bpp.lz.ab6bc2a1 b/gfx/pokemon/totodile/back.2bpp.lz.ab6bc2a1
deleted file mode 100644
index 6d73c934f..000000000
--- a/gfx/pokemon/totodile/back.2bpp.lz.ab6bc2a1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/totodile/front.animated.2bpp.lz.afce8cd0 b/gfx/pokemon/totodile/front.animated.2bpp.lz.afce8cd0
deleted file mode 100644
index 8e1ebd2f5..000000000
--- a/gfx/pokemon/totodile/front.animated.2bpp.lz.afce8cd0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/typhlosion/back.2bpp.lz.83be0292 b/gfx/pokemon/typhlosion/back.2bpp.lz.83be0292
deleted file mode 100644
index 592306fa6..000000000
--- a/gfx/pokemon/typhlosion/back.2bpp.lz.83be0292
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/typhlosion/front.animated.2bpp.lz.65adc1e1 b/gfx/pokemon/typhlosion/front.animated.2bpp.lz.65adc1e1
deleted file mode 100644
index 9dba415ad..000000000
--- a/gfx/pokemon/typhlosion/front.animated.2bpp.lz.65adc1e1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tyranitar/back.2bpp.lz.05b022c9 b/gfx/pokemon/tyranitar/back.2bpp.lz.05b022c9
deleted file mode 100644
index 572e56d69..000000000
--- a/gfx/pokemon/tyranitar/back.2bpp.lz.05b022c9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tyranitar/front.animated.2bpp.lz.e0e9187e b/gfx/pokemon/tyranitar/front.animated.2bpp.lz.e0e9187e
deleted file mode 100644
index 07d48a5fe..000000000
--- a/gfx/pokemon/tyranitar/front.animated.2bpp.lz.e0e9187e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tyrogue/back.2bpp.lz.5d84cef1 b/gfx/pokemon/tyrogue/back.2bpp.lz.5d84cef1
deleted file mode 100644
index 9c9a0babc..000000000
--- a/gfx/pokemon/tyrogue/back.2bpp.lz.5d84cef1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/tyrogue/front.animated.2bpp.lz.a3790421 b/gfx/pokemon/tyrogue/front.animated.2bpp.lz.a3790421
deleted file mode 100644
index 8245825fb..000000000
--- a/gfx/pokemon/tyrogue/front.animated.2bpp.lz.a3790421
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/umbreon/back.2bpp.lz.55e50b8c b/gfx/pokemon/umbreon/back.2bpp.lz.55e50b8c
deleted file mode 100644
index cf39af2c6..000000000
--- a/gfx/pokemon/umbreon/back.2bpp.lz.55e50b8c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/umbreon/front.animated.2bpp.lz.b484be57 b/gfx/pokemon/umbreon/front.animated.2bpp.lz.b484be57
deleted file mode 100644
index 64a338138..000000000
--- a/gfx/pokemon/umbreon/front.animated.2bpp.lz.b484be57
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_a/back.2bpp.lz.b8389572 b/gfx/pokemon/unown_a/back.2bpp.lz.b8389572
deleted file mode 100644
index 08833e3e2..000000000
--- a/gfx/pokemon/unown_a/back.2bpp.lz.b8389572
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_a/front.animated.2bpp.lz.47e16756 b/gfx/pokemon/unown_a/front.animated.2bpp.lz.47e16756
deleted file mode 100644
index 6f0639575..000000000
--- a/gfx/pokemon/unown_a/front.animated.2bpp.lz.47e16756
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_b/back.2bpp.lz.72a0840f b/gfx/pokemon/unown_b/back.2bpp.lz.72a0840f
deleted file mode 100644
index 46375f630..000000000
--- a/gfx/pokemon/unown_b/back.2bpp.lz.72a0840f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_b/front.animated.2bpp.lz.5742d494 b/gfx/pokemon/unown_b/front.animated.2bpp.lz.5742d494
deleted file mode 100644
index 661c64a9e..000000000
--- a/gfx/pokemon/unown_b/front.animated.2bpp.lz.5742d494
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_c/back.2bpp.lz.f92b665a b/gfx/pokemon/unown_c/back.2bpp.lz.f92b665a
deleted file mode 100644
index 796ba6d6a..000000000
--- a/gfx/pokemon/unown_c/back.2bpp.lz.f92b665a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_c/front.animated.2bpp.lz.5fef639b b/gfx/pokemon/unown_c/front.animated.2bpp.lz.5fef639b
deleted file mode 100644
index 18fb3b48b..000000000
--- a/gfx/pokemon/unown_c/front.animated.2bpp.lz.5fef639b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_d/back.2bpp.lz.c8213d32 b/gfx/pokemon/unown_d/back.2bpp.lz.c8213d32
deleted file mode 100644
index 8a967332f..000000000
--- a/gfx/pokemon/unown_d/back.2bpp.lz.c8213d32
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_d/front.animated.2bpp.lz.7810a57f b/gfx/pokemon/unown_d/front.animated.2bpp.lz.7810a57f
deleted file mode 100644
index d8004662d..000000000
--- a/gfx/pokemon/unown_d/front.animated.2bpp.lz.7810a57f
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_e/back.2bpp.lz.777a8ecd b/gfx/pokemon/unown_e/back.2bpp.lz.777a8ecd
deleted file mode 100644
index dfc768a1e..000000000
--- a/gfx/pokemon/unown_e/back.2bpp.lz.777a8ecd
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_e/front.animated.2bpp.lz.83f43ff7 b/gfx/pokemon/unown_e/front.animated.2bpp.lz.83f43ff7
deleted file mode 100644
index 5358f5ff9..000000000
--- a/gfx/pokemon/unown_e/front.animated.2bpp.lz.83f43ff7
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_f/back.2bpp.lz.3fe1c85a b/gfx/pokemon/unown_f/back.2bpp.lz.3fe1c85a
deleted file mode 100644
index 47e54ab66..000000000
--- a/gfx/pokemon/unown_f/back.2bpp.lz.3fe1c85a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_f/front.animated.2bpp.lz.ec888954 b/gfx/pokemon/unown_f/front.animated.2bpp.lz.ec888954
deleted file mode 100644
index 4e0339419..000000000
--- a/gfx/pokemon/unown_f/front.animated.2bpp.lz.ec888954
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_g/back.2bpp.lz.91650439 b/gfx/pokemon/unown_g/back.2bpp.lz.91650439
deleted file mode 100644
index 1f380f3ba..000000000
--- a/gfx/pokemon/unown_g/back.2bpp.lz.91650439
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_g/front.animated.2bpp.lz.c0b74162 b/gfx/pokemon/unown_g/front.animated.2bpp.lz.c0b74162
deleted file mode 100644
index 0e6e343f9..000000000
--- a/gfx/pokemon/unown_g/front.animated.2bpp.lz.c0b74162
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_h/back.2bpp.lz.78421e5b b/gfx/pokemon/unown_h/back.2bpp.lz.78421e5b
deleted file mode 100644
index 926bf5757..000000000
--- a/gfx/pokemon/unown_h/back.2bpp.lz.78421e5b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_h/front.animated.2bpp.lz.9a6afeb9 b/gfx/pokemon/unown_h/front.animated.2bpp.lz.9a6afeb9
deleted file mode 100644
index be2d0293c..000000000
--- a/gfx/pokemon/unown_h/front.animated.2bpp.lz.9a6afeb9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_i/back.2bpp.lz.7feb4b30 b/gfx/pokemon/unown_i/back.2bpp.lz.7feb4b30
deleted file mode 100644
index 7dcea181f..000000000
--- a/gfx/pokemon/unown_i/back.2bpp.lz.7feb4b30
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_i/front.animated.2bpp.lz.f5e7f816 b/gfx/pokemon/unown_i/front.animated.2bpp.lz.f5e7f816
deleted file mode 100644
index dfd89c266..000000000
--- a/gfx/pokemon/unown_i/front.animated.2bpp.lz.f5e7f816
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_j/back.2bpp.lz.b0f3bec2 b/gfx/pokemon/unown_j/back.2bpp.lz.b0f3bec2
deleted file mode 100644
index c0eabf3ba..000000000
--- a/gfx/pokemon/unown_j/back.2bpp.lz.b0f3bec2
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_j/front.animated.2bpp.lz.d8bf9223 b/gfx/pokemon/unown_j/front.animated.2bpp.lz.d8bf9223
deleted file mode 100644
index ec8e536d3..000000000
--- a/gfx/pokemon/unown_j/front.animated.2bpp.lz.d8bf9223
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_k/back.2bpp.lz.745fda48 b/gfx/pokemon/unown_k/back.2bpp.lz.745fda48
deleted file mode 100644
index 0f4e8fda7..000000000
--- a/gfx/pokemon/unown_k/back.2bpp.lz.745fda48
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_k/front.animated.2bpp.lz.fb25b385 b/gfx/pokemon/unown_k/front.animated.2bpp.lz.fb25b385
deleted file mode 100644
index b617e898c..000000000
--- a/gfx/pokemon/unown_k/front.animated.2bpp.lz.fb25b385
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_l/back.2bpp.lz.e38e0d57 b/gfx/pokemon/unown_l/back.2bpp.lz.e38e0d57
deleted file mode 100644
index 4f48955df..000000000
--- a/gfx/pokemon/unown_l/back.2bpp.lz.e38e0d57
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_l/front.animated.2bpp.lz.26195a59 b/gfx/pokemon/unown_l/front.animated.2bpp.lz.26195a59
deleted file mode 100644
index d0eee7516..000000000
--- a/gfx/pokemon/unown_l/front.animated.2bpp.lz.26195a59
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_m/back.2bpp.lz.38d93bc8 b/gfx/pokemon/unown_m/back.2bpp.lz.38d93bc8
deleted file mode 100644
index 3ab40cb03..000000000
--- a/gfx/pokemon/unown_m/back.2bpp.lz.38d93bc8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_m/front.animated.2bpp.lz.2659315e b/gfx/pokemon/unown_m/front.animated.2bpp.lz.2659315e
deleted file mode 100644
index 04e1592ce..000000000
--- a/gfx/pokemon/unown_m/front.animated.2bpp.lz.2659315e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_n/back.2bpp.lz.c8b7d3a4 b/gfx/pokemon/unown_n/back.2bpp.lz.c8b7d3a4
deleted file mode 100644
index c39417aa8..000000000
--- a/gfx/pokemon/unown_n/back.2bpp.lz.c8b7d3a4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_n/front.animated.2bpp.lz.96ce7c62 b/gfx/pokemon/unown_n/front.animated.2bpp.lz.96ce7c62
deleted file mode 100644
index ec17bff9f..000000000
--- a/gfx/pokemon/unown_n/front.animated.2bpp.lz.96ce7c62
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_o/back.2bpp.lz.89ba693c b/gfx/pokemon/unown_o/back.2bpp.lz.89ba693c
deleted file mode 100644
index 4d4b4fd4f..000000000
--- a/gfx/pokemon/unown_o/back.2bpp.lz.89ba693c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_o/front.animated.2bpp.lz.a9151b66 b/gfx/pokemon/unown_o/front.animated.2bpp.lz.a9151b66
deleted file mode 100644
index 66b6b8141..000000000
--- a/gfx/pokemon/unown_o/front.animated.2bpp.lz.a9151b66
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_p/back.2bpp.lz.09c618c4 b/gfx/pokemon/unown_p/back.2bpp.lz.09c618c4
deleted file mode 100644
index 19fd45591..000000000
--- a/gfx/pokemon/unown_p/back.2bpp.lz.09c618c4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_p/front.animated.2bpp.lz.83a096fc b/gfx/pokemon/unown_p/front.animated.2bpp.lz.83a096fc
deleted file mode 100644
index 53d4bfbcd..000000000
--- a/gfx/pokemon/unown_p/front.animated.2bpp.lz.83a096fc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_q/back.2bpp.lz.e32430b4 b/gfx/pokemon/unown_q/back.2bpp.lz.e32430b4
deleted file mode 100644
index 5199cdc6c..000000000
--- a/gfx/pokemon/unown_q/back.2bpp.lz.e32430b4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_q/front.animated.2bpp.lz.44dad60c b/gfx/pokemon/unown_q/front.animated.2bpp.lz.44dad60c
deleted file mode 100644
index 65536e23f..000000000
--- a/gfx/pokemon/unown_q/front.animated.2bpp.lz.44dad60c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_r/back.2bpp.lz.5df8287c b/gfx/pokemon/unown_r/back.2bpp.lz.5df8287c
deleted file mode 100644
index a8a243e0b..000000000
--- a/gfx/pokemon/unown_r/back.2bpp.lz.5df8287c
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_r/front.animated.2bpp.lz.8e67e3fc b/gfx/pokemon/unown_r/front.animated.2bpp.lz.8e67e3fc
deleted file mode 100644
index 9e76761d1..000000000
--- a/gfx/pokemon/unown_r/front.animated.2bpp.lz.8e67e3fc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_s/back.2bpp.lz.abd4ad58 b/gfx/pokemon/unown_s/back.2bpp.lz.abd4ad58
deleted file mode 100644
index 8441f2519..000000000
--- a/gfx/pokemon/unown_s/back.2bpp.lz.abd4ad58
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_s/front.animated.2bpp.lz.f3db4e89 b/gfx/pokemon/unown_s/front.animated.2bpp.lz.f3db4e89
deleted file mode 100644
index d16dea5e9..000000000
--- a/gfx/pokemon/unown_s/front.animated.2bpp.lz.f3db4e89
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_t/back.2bpp.lz.87d48ca0 b/gfx/pokemon/unown_t/back.2bpp.lz.87d48ca0
deleted file mode 100644
index 8d415b53d..000000000
--- a/gfx/pokemon/unown_t/back.2bpp.lz.87d48ca0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_t/front.animated.2bpp.lz.8bdc40ae b/gfx/pokemon/unown_t/front.animated.2bpp.lz.8bdc40ae
deleted file mode 100644
index 83100fbdb..000000000
--- a/gfx/pokemon/unown_t/front.animated.2bpp.lz.8bdc40ae
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_u/back.2bpp.lz.40b63dfb b/gfx/pokemon/unown_u/back.2bpp.lz.40b63dfb
deleted file mode 100644
index ad395b7ec..000000000
--- a/gfx/pokemon/unown_u/back.2bpp.lz.40b63dfb
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_u/front.animated.2bpp.lz.2690db54 b/gfx/pokemon/unown_u/front.animated.2bpp.lz.2690db54
deleted file mode 100644
index 622825cbe..000000000
--- a/gfx/pokemon/unown_u/front.animated.2bpp.lz.2690db54
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_v/back.2bpp.lz.5b1a6acc b/gfx/pokemon/unown_v/back.2bpp.lz.5b1a6acc
deleted file mode 100644
index 21c3191f2..000000000
--- a/gfx/pokemon/unown_v/back.2bpp.lz.5b1a6acc
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_v/front.animated.2bpp.lz.d196c60e b/gfx/pokemon/unown_v/front.animated.2bpp.lz.d196c60e
deleted file mode 100644
index aee5ce362..000000000
--- a/gfx/pokemon/unown_v/front.animated.2bpp.lz.d196c60e
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_w/back.2bpp.lz.a55282bf b/gfx/pokemon/unown_w/back.2bpp.lz.a55282bf
deleted file mode 100644
index 882648c4d..000000000
--- a/gfx/pokemon/unown_w/back.2bpp.lz.a55282bf
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_w/front.animated.2bpp.lz.5b45fa3d b/gfx/pokemon/unown_w/front.animated.2bpp.lz.5b45fa3d
deleted file mode 100644
index 78a7fefac..000000000
--- a/gfx/pokemon/unown_w/front.animated.2bpp.lz.5b45fa3d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_x/back.2bpp.lz.0001a198 b/gfx/pokemon/unown_x/back.2bpp.lz.0001a198
deleted file mode 100644
index 591af9668..000000000
--- a/gfx/pokemon/unown_x/back.2bpp.lz.0001a198
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_x/front.animated.2bpp.lz.3362c680 b/gfx/pokemon/unown_x/front.animated.2bpp.lz.3362c680
deleted file mode 100644
index 11adc7c6f..000000000
--- a/gfx/pokemon/unown_x/front.animated.2bpp.lz.3362c680
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_y/back.2bpp.lz.292d9ff2 b/gfx/pokemon/unown_y/back.2bpp.lz.292d9ff2
deleted file mode 100644
index ab7563e0d..000000000
--- a/gfx/pokemon/unown_y/back.2bpp.lz.292d9ff2
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_y/front.animated.2bpp.lz.8cd89db4 b/gfx/pokemon/unown_y/front.animated.2bpp.lz.8cd89db4
deleted file mode 100644
index 1604f7e7b..000000000
--- a/gfx/pokemon/unown_y/front.animated.2bpp.lz.8cd89db4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_z/back.2bpp.lz.a41240a1 b/gfx/pokemon/unown_z/back.2bpp.lz.a41240a1
deleted file mode 100644
index 31bcb7baa..000000000
--- a/gfx/pokemon/unown_z/back.2bpp.lz.a41240a1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/unown_z/front.animated.2bpp.lz.2d4170a0 b/gfx/pokemon/unown_z/front.animated.2bpp.lz.2d4170a0
deleted file mode 100644
index 0d9b8b4f8..000000000
--- a/gfx/pokemon/unown_z/front.animated.2bpp.lz.2d4170a0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ursaring/back.2bpp.lz.0966cee1 b/gfx/pokemon/ursaring/back.2bpp.lz.0966cee1
deleted file mode 100644
index 263eac805..000000000
--- a/gfx/pokemon/ursaring/back.2bpp.lz.0966cee1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/ursaring/front.animated.2bpp.lz.5bcb8114 b/gfx/pokemon/ursaring/front.animated.2bpp.lz.5bcb8114
deleted file mode 100644
index f98dd0cb0..000000000
--- a/gfx/pokemon/ursaring/front.animated.2bpp.lz.5bcb8114
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/vaporeon/back.2bpp.lz.aafe2ea4 b/gfx/pokemon/vaporeon/back.2bpp.lz.aafe2ea4
deleted file mode 100644
index 9ea248261..000000000
--- a/gfx/pokemon/vaporeon/back.2bpp.lz.aafe2ea4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/vaporeon/front.animated.2bpp.lz.6e1ee993 b/gfx/pokemon/vaporeon/front.animated.2bpp.lz.6e1ee993
deleted file mode 100644
index 67793c7ec..000000000
--- a/gfx/pokemon/vaporeon/front.animated.2bpp.lz.6e1ee993
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/venomoth/back.2bpp.lz.ba3cccb7 b/gfx/pokemon/venomoth/back.2bpp.lz.ba3cccb7
deleted file mode 100644
index 721527c2a..000000000
--- a/gfx/pokemon/venomoth/back.2bpp.lz.ba3cccb7
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/venomoth/front.animated.2bpp.lz.6c0096ec b/gfx/pokemon/venomoth/front.animated.2bpp.lz.6c0096ec
deleted file mode 100644
index 5f32ad682..000000000
--- a/gfx/pokemon/venomoth/front.animated.2bpp.lz.6c0096ec
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/venonat/back.2bpp.lz.63b1017a b/gfx/pokemon/venonat/back.2bpp.lz.63b1017a
deleted file mode 100644
index b28c7523d..000000000
--- a/gfx/pokemon/venonat/back.2bpp.lz.63b1017a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/venonat/front.animated.2bpp.lz.02a36f08 b/gfx/pokemon/venonat/front.animated.2bpp.lz.02a36f08
deleted file mode 100644
index f6b057e8f..000000000
--- a/gfx/pokemon/venonat/front.animated.2bpp.lz.02a36f08
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/venusaur/back.2bpp.lz.1d5b9ebe b/gfx/pokemon/venusaur/back.2bpp.lz.1d5b9ebe
deleted file mode 100644
index 27ca82e8a..000000000
--- a/gfx/pokemon/venusaur/back.2bpp.lz.1d5b9ebe
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/venusaur/front.animated.2bpp.lz.48d131f4 b/gfx/pokemon/venusaur/front.animated.2bpp.lz.48d131f4
deleted file mode 100644
index d436da0bd..000000000
--- a/gfx/pokemon/venusaur/front.animated.2bpp.lz.48d131f4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/victreebel/back.2bpp.lz.a80b1dc4 b/gfx/pokemon/victreebel/back.2bpp.lz.a80b1dc4
deleted file mode 100644
index d4b014f67..000000000
--- a/gfx/pokemon/victreebel/back.2bpp.lz.a80b1dc4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/victreebel/front.animated.2bpp.lz.d5d535c1 b/gfx/pokemon/victreebel/front.animated.2bpp.lz.d5d535c1
deleted file mode 100644
index c53114990..000000000
--- a/gfx/pokemon/victreebel/front.animated.2bpp.lz.d5d535c1
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/vileplume/back.2bpp.lz.9f944092 b/gfx/pokemon/vileplume/back.2bpp.lz.9f944092
deleted file mode 100644
index 823f0e112..000000000
--- a/gfx/pokemon/vileplume/back.2bpp.lz.9f944092
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/vileplume/front.animated.2bpp.lz.db2287e6 b/gfx/pokemon/vileplume/front.animated.2bpp.lz.db2287e6
deleted file mode 100644
index 05ca10ba5..000000000
--- a/gfx/pokemon/vileplume/front.animated.2bpp.lz.db2287e6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/voltorb/back.2bpp.lz.f19cefe9 b/gfx/pokemon/voltorb/back.2bpp.lz.f19cefe9
deleted file mode 100644
index fe102da9a..000000000
--- a/gfx/pokemon/voltorb/back.2bpp.lz.f19cefe9
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/voltorb/front.animated.2bpp.lz.64051f97 b/gfx/pokemon/voltorb/front.animated.2bpp.lz.64051f97
deleted file mode 100644
index 94f35f9aa..000000000
--- a/gfx/pokemon/voltorb/front.animated.2bpp.lz.64051f97
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/vulpix/back.2bpp.lz.0c7852c8 b/gfx/pokemon/vulpix/back.2bpp.lz.0c7852c8
deleted file mode 100644
index ce2535141..000000000
--- a/gfx/pokemon/vulpix/back.2bpp.lz.0c7852c8
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/vulpix/front.animated.2bpp.lz.df94d884 b/gfx/pokemon/vulpix/front.animated.2bpp.lz.df94d884
deleted file mode 100644
index 9248ce808..000000000
--- a/gfx/pokemon/vulpix/front.animated.2bpp.lz.df94d884
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/wartortle/back.2bpp.lz.f2338cb4 b/gfx/pokemon/wartortle/back.2bpp.lz.f2338cb4
deleted file mode 100644
index 5734c20cb..000000000
--- a/gfx/pokemon/wartortle/back.2bpp.lz.f2338cb4
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/wartortle/front.animated.2bpp.lz.f50d25f5 b/gfx/pokemon/wartortle/front.animated.2bpp.lz.f50d25f5
deleted file mode 100644
index 29642807d..000000000
--- a/gfx/pokemon/wartortle/front.animated.2bpp.lz.f50d25f5
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/weedle/back.2bpp.lz.f26ac339 b/gfx/pokemon/weedle/back.2bpp.lz.f26ac339
deleted file mode 100644
index 64decb914..000000000
--- a/gfx/pokemon/weedle/back.2bpp.lz.f26ac339
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/weedle/front.animated.2bpp.lz.9e1dedbd b/gfx/pokemon/weedle/front.animated.2bpp.lz.9e1dedbd
deleted file mode 100644
index 091df588a..000000000
--- a/gfx/pokemon/weedle/front.animated.2bpp.lz.9e1dedbd
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/weepinbell/back.2bpp.lz.f84a5fe6 b/gfx/pokemon/weepinbell/back.2bpp.lz.f84a5fe6
deleted file mode 100644
index 26e44257c..000000000
--- a/gfx/pokemon/weepinbell/back.2bpp.lz.f84a5fe6
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/weepinbell/front.animated.2bpp.lz.7b06c092 b/gfx/pokemon/weepinbell/front.animated.2bpp.lz.7b06c092
deleted file mode 100644
index a7e7d60b5..000000000
--- a/gfx/pokemon/weepinbell/front.animated.2bpp.lz.7b06c092
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/weezing/back.2bpp.lz.5ac5b672 b/gfx/pokemon/weezing/back.2bpp.lz.5ac5b672
deleted file mode 100644
index a85124f3a..000000000
--- a/gfx/pokemon/weezing/back.2bpp.lz.5ac5b672
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/weezing/front.animated.2bpp.lz.75928bd0 b/gfx/pokemon/weezing/front.animated.2bpp.lz.75928bd0
deleted file mode 100644
index 3c6f24a41..000000000
--- a/gfx/pokemon/weezing/front.animated.2bpp.lz.75928bd0
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/wigglytuff/back.2bpp.lz.fee674ac b/gfx/pokemon/wigglytuff/back.2bpp.lz.fee674ac
deleted file mode 100644
index 3b3732986..000000000
--- a/gfx/pokemon/wigglytuff/back.2bpp.lz.fee674ac
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/wigglytuff/front.animated.2bpp.lz.49311d0b b/gfx/pokemon/wigglytuff/front.animated.2bpp.lz.49311d0b
deleted file mode 100644
index c633d2a0a..000000000
--- a/gfx/pokemon/wigglytuff/front.animated.2bpp.lz.49311d0b
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/wobbuffet/back.2bpp.lz.a862192a b/gfx/pokemon/wobbuffet/back.2bpp.lz.a862192a
deleted file mode 100644
index 87dba2049..000000000
--- a/gfx/pokemon/wobbuffet/back.2bpp.lz.a862192a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/wobbuffet/front.animated.2bpp.lz.f1f4687d b/gfx/pokemon/wobbuffet/front.animated.2bpp.lz.f1f4687d
deleted file mode 100644
index ce7aa46c8..000000000
--- a/gfx/pokemon/wobbuffet/front.animated.2bpp.lz.f1f4687d
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/wooper/back.2bpp.lz.4f4b7917 b/gfx/pokemon/wooper/back.2bpp.lz.4f4b7917
deleted file mode 100644
index 973037f02..000000000
--- a/gfx/pokemon/wooper/back.2bpp.lz.4f4b7917
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/wooper/front.animated.2bpp.lz.4e440469 b/gfx/pokemon/wooper/front.animated.2bpp.lz.4e440469
deleted file mode 100644
index 3d5d53c1b..000000000
--- a/gfx/pokemon/wooper/front.animated.2bpp.lz.4e440469
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/xatu/back.2bpp.lz.4de765ff b/gfx/pokemon/xatu/back.2bpp.lz.4de765ff
deleted file mode 100644
index 8b6889ffb..000000000
--- a/gfx/pokemon/xatu/back.2bpp.lz.4de765ff
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/xatu/front.animated.2bpp.lz.4f452e43 b/gfx/pokemon/xatu/front.animated.2bpp.lz.4f452e43
deleted file mode 100644
index 4b5918b3a..000000000
--- a/gfx/pokemon/xatu/front.animated.2bpp.lz.4f452e43
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/yanma/back.2bpp.lz.2ca27ab3 b/gfx/pokemon/yanma/back.2bpp.lz.2ca27ab3
deleted file mode 100644
index 47105f12f..000000000
--- a/gfx/pokemon/yanma/back.2bpp.lz.2ca27ab3
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/yanma/front.animated.2bpp.lz.25f91adf b/gfx/pokemon/yanma/front.animated.2bpp.lz.25f91adf
deleted file mode 100644
index 1987afdc9..000000000
--- a/gfx/pokemon/yanma/front.animated.2bpp.lz.25f91adf
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/zapdos/back.2bpp.lz.a44c7524 b/gfx/pokemon/zapdos/back.2bpp.lz.a44c7524
deleted file mode 100644
index 2f2167941..000000000
--- a/gfx/pokemon/zapdos/back.2bpp.lz.a44c7524
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/zapdos/front.animated.2bpp.lz.05cb214a b/gfx/pokemon/zapdos/front.animated.2bpp.lz.05cb214a
deleted file mode 100644
index 0f048171c..000000000
--- a/gfx/pokemon/zapdos/front.animated.2bpp.lz.05cb214a
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/zubat/back.2bpp.lz.aa77eb62 b/gfx/pokemon/zubat/back.2bpp.lz.aa77eb62
deleted file mode 100644
index d50e00e90..000000000
--- a/gfx/pokemon/zubat/back.2bpp.lz.aa77eb62
+++ /dev/null
Binary files differ
diff --git a/gfx/pokemon/zubat/front.animated.2bpp.lz.f12e6581 b/gfx/pokemon/zubat/front.animated.2bpp.lz.f12e6581
deleted file mode 100644
index b22e1d971..000000000
--- a/gfx/pokemon/zubat/front.animated.2bpp.lz.f12e6581
+++ /dev/null
Binary files differ
diff --git a/gfx/sgb/gbc_only.2bpp.lz.4a5bba0e b/gfx/sgb/gbc_only.2bpp.lz.4a5bba0e
deleted file mode 100644
index 9533fbe6d..000000000
--- a/gfx/sgb/gbc_only.2bpp.lz.4a5bba0e
+++ /dev/null
Binary files differ
diff --git a/gfx/sgb/pal_packets.asm b/gfx/sgb/pal_packets.asm
index b88bea526..a596d1dc6 100644
--- a/gfx/sgb/pal_packets.asm
+++ b/gfx/sgb/pal_packets.asm
@@ -20,7 +20,7 @@ PalPacket_GSTitleScreen:
sgb_pal_set GS_TITLE_SCREEN_0, GS_TITLE_SCREEN_1, GS_TITLE_SCREEN_2, GS_TITLE_SCREEN_3
PalPacket_MagnetTrain:
- sgb_pal_set BETA_SHINY_GREENMON, CGB_BADGE, RB_BROWNMON, 00
+ sgb_pal_set BETA_SHINY_GREENMON, CGB_BADGE, RB_BROWNMON, ROUTES
PalPacket_BetaPoker:
sgb_pal_set BETA_POKER_0, BETA_POKER_1, BETA_POKER_2, BETA_POKER_3
@@ -29,28 +29,28 @@ PalPacket_UnownPuzzle:
sgb_pal_set UNOWN_PUZZLE, UNOWN_PUZZLE, UNOWN_PUZZLE, UNOWN_PUZZLE
PalPacket_9bd6:
- sgb_pal_set 00, 00, 00, 00
+ sgb_pal_set ROUTES, ROUTES, ROUTES, ROUTES
PalPacket_GSIntroShellderLapras:
- sgb_pal_set GS_INTRO_SHELLDER_LAPRAS, 00, 00, 00
+ sgb_pal_set GS_INTRO_SHELLDER_LAPRAS, ROUTES, ROUTES, ROUTES
UnreferencedPalPacket_BetaIntroLapras:
- sgb_pal_set BETA_INTRO_LAPRAS, 00, 00, 00
+ sgb_pal_set BETA_INTRO_LAPRAS, ROUTES, ROUTES, ROUTES
PalPacket_GSIntroJigglypuffPikachu:
- sgb_pal_set GS_INTRO_JIGGLYPUFF_PIKACHU_BG, GS_INTRO_JIGGLYPUFF_PIKACHU_OB, 00, 00
+ sgb_pal_set GS_INTRO_JIGGLYPUFF_PIKACHU_BG, GS_INTRO_JIGGLYPUFF_PIKACHU_OB, ROUTES, ROUTES
PalPacket_GSIntroStartersTransition:
- sgb_pal_set GS_INTRO_STARTERS_TRANSITION, 00, 00, 00
+ sgb_pal_set GS_INTRO_STARTERS_TRANSITION, ROUTES, ROUTES, ROUTES
PalPacket_BetaIntroVenusaur:
- sgb_pal_set BETA_INTRO_VENUSAUR, 00, 00, 00
+ sgb_pal_set BETA_INTRO_VENUSAUR, ROUTES, ROUTES, ROUTES
PalPacket_Pack:
- sgb_pal_set PACK, 00, 00, 00
+ sgb_pal_set PACK, ROUTES, ROUTES, ROUTES
PalPacket_BetaPikachuMinigame:
- sgb_pal_set GS_INTRO_JIGGLYPUFF_PIKACHU_OB, 00, 00, 00
+ sgb_pal_set GS_INTRO_JIGGLYPUFF_PIKACHU_OB, ROUTES, ROUTES, ROUTES
PalPacket_PartyMenu:
sgb_pal_set PARTY_ICON, HP_GREEN, HP_YELLOW, HP_RED
@@ -59,10 +59,10 @@ PalPacket_BattleGrayscale:
sgb_pal_set BLACKOUT, BLACKOUT, BLACKOUT, BLACKOUT
PalPacket_Pokegear:
- sgb_pal_set POKEGEAR, 00, 00, 00
+ sgb_pal_set POKEGEAR, ROUTES, ROUTES, ROUTES
UnreferencedPalPacket_9c86:
- sgb_pal_set PACK, 00, 00, 00
+ sgb_pal_set PACK, ROUTES, ROUTES, ROUTES
PalPacket_SlotMachine:
sgb_pal_set SLOT_MACHINE_0, SLOT_MACHINE_1, SLOT_MACHINE_2, SLOT_MACHINE_3
@@ -71,13 +71,13 @@ PalPacket_BetaTitleScreen:
sgb_pal_set BETA_LOGO_1, BETA_LOGO_2, DIPLOMA, RB_PURPLEMON
PalPacket_Diploma:
- sgb_pal_set DIPLOMA, 00, 00, 00
+ sgb_pal_set DIPLOMA, ROUTES, ROUTES, ROUTES
PalPacket_TradeTube:
- sgb_pal_set TRADE_TUBE, 00, 00, 00
+ sgb_pal_set TRADE_TUBE, ROUTES, ROUTES, ROUTES
PalPacket_GamefreakLogo:
- sgb_pal_set GS_INTRO_GAMEFREAK_LOGO, 00, 00, 00
+ sgb_pal_set GS_INTRO_GAMEFREAK_LOGO, ROUTES, ROUTES, ROUTES
PalPacket_9ce6:
sgb_pal01
diff --git a/gfx/slots/slots_1.2bpp.lz.b22ddc13 b/gfx/slots/slots_1.2bpp.lz.b22ddc13
deleted file mode 100644
index 90d3ce139..000000000
--- a/gfx/slots/slots_1.2bpp.lz.b22ddc13
+++ /dev/null
Binary files differ
diff --git a/gfx/slots/slots_2.2bpp.lz.b28f76e3 b/gfx/slots/slots_2.2bpp.lz.b28f76e3
deleted file mode 100644
index 638c68055..000000000
--- a/gfx/slots/slots_2.2bpp.lz.b28f76e3
+++ /dev/null
Binary files differ
diff --git a/gfx/slots/slots_3.2bpp.lz.70c2984c b/gfx/slots/slots_3.2bpp.lz.70c2984c
deleted file mode 100644
index 858b6e464..000000000
--- a/gfx/slots/slots_3.2bpp.lz.70c2984c
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/aerodactyl_word_room.2bpp.lz.8b42470b b/gfx/tilesets/aerodactyl_word_room.2bpp.lz.8b42470b
deleted file mode 100644
index 68a4fdad0..000000000
--- a/gfx/tilesets/aerodactyl_word_room.2bpp.lz.8b42470b
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/battle_tower_inside.2bpp.lz.467b6a2d b/gfx/tilesets/battle_tower_inside.2bpp.lz.467b6a2d
deleted file mode 100644
index fa5d0a9f0..000000000
--- a/gfx/tilesets/battle_tower_inside.2bpp.lz.467b6a2d
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/battle_tower_outside.2bpp.lz.391603fb b/gfx/tilesets/battle_tower_outside.2bpp.lz.391603fb
deleted file mode 100644
index 64f23e23b..000000000
--- a/gfx/tilesets/battle_tower_outside.2bpp.lz.391603fb
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/beta_word_room.2bpp.lz.8b42470b b/gfx/tilesets/beta_word_room.2bpp.lz.8b42470b
deleted file mode 100644
index 68a4fdad0..000000000
--- a/gfx/tilesets/beta_word_room.2bpp.lz.8b42470b
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/cave.2bpp.lz.3437812a b/gfx/tilesets/cave.2bpp.lz.3437812a
deleted file mode 100644
index 69069fb75..000000000
--- a/gfx/tilesets/cave.2bpp.lz.3437812a
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/champions_room.2bpp.lz.93800351 b/gfx/tilesets/champions_room.2bpp.lz.93800351
deleted file mode 100644
index e19994f37..000000000
--- a/gfx/tilesets/champions_room.2bpp.lz.93800351
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/dark_cave.2bpp.lz.25b9c4b6 b/gfx/tilesets/dark_cave.2bpp.lz.25b9c4b6
deleted file mode 100644
index 50a5ab9ac..000000000
--- a/gfx/tilesets/dark_cave.2bpp.lz.25b9c4b6
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/elite_four_room.2bpp.lz.c1f2ed8f b/gfx/tilesets/elite_four_room.2bpp.lz.c1f2ed8f
deleted file mode 100644
index 6b45c769d..000000000
--- a/gfx/tilesets/elite_four_room.2bpp.lz.c1f2ed8f
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/facility.2bpp.lz.454cfd8b b/gfx/tilesets/facility.2bpp.lz.454cfd8b
deleted file mode 100644
index 584e54dd2..000000000
--- a/gfx/tilesets/facility.2bpp.lz.454cfd8b
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/forest.2bpp.lz.6b0ac896 b/gfx/tilesets/forest.2bpp.lz.6b0ac896
deleted file mode 100644
index 7b5355705..000000000
--- a/gfx/tilesets/forest.2bpp.lz.6b0ac896
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/game_corner.2bpp.lz.71d29a2f b/gfx/tilesets/game_corner.2bpp.lz.71d29a2f
deleted file mode 100644
index f7e185b4e..000000000
--- a/gfx/tilesets/game_corner.2bpp.lz.71d29a2f
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/gate.2bpp.lz.f5a55006 b/gfx/tilesets/gate.2bpp.lz.f5a55006
deleted file mode 100644
index 724b6b8b7..000000000
--- a/gfx/tilesets/gate.2bpp.lz.f5a55006
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/ho_oh_word_room.2bpp.lz.8b42470b b/gfx/tilesets/ho_oh_word_room.2bpp.lz.8b42470b
deleted file mode 100644
index 68a4fdad0..000000000
--- a/gfx/tilesets/ho_oh_word_room.2bpp.lz.8b42470b
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/house.2bpp.lz.c848ef13 b/gfx/tilesets/house.2bpp.lz.c848ef13
deleted file mode 100644
index f9afaf70d..000000000
--- a/gfx/tilesets/house.2bpp.lz.c848ef13
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/ice_path.2bpp.lz.e23bc89f b/gfx/tilesets/ice_path.2bpp.lz.e23bc89f
deleted file mode 100644
index 25cc45c85..000000000
--- a/gfx/tilesets/ice_path.2bpp.lz.e23bc89f
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/johto.2bpp.lz.0c7e555a b/gfx/tilesets/johto.2bpp.lz.0c7e555a
deleted file mode 100644
index 9821e1433..000000000
--- a/gfx/tilesets/johto.2bpp.lz.0c7e555a
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/johto_modern.2bpp.lz.391603fb b/gfx/tilesets/johto_modern.2bpp.lz.391603fb
deleted file mode 100644
index 64f23e23b..000000000
--- a/gfx/tilesets/johto_modern.2bpp.lz.391603fb
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/kabuto_word_room.2bpp.lz.8b42470b b/gfx/tilesets/kabuto_word_room.2bpp.lz.8b42470b
deleted file mode 100644
index 68a4fdad0..000000000
--- a/gfx/tilesets/kabuto_word_room.2bpp.lz.8b42470b
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/kanto.2bpp.lz.a29f5d51 b/gfx/tilesets/kanto.2bpp.lz.a29f5d51
deleted file mode 100644
index d925ee111..000000000
--- a/gfx/tilesets/kanto.2bpp.lz.a29f5d51
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/lab.2bpp.lz.b8d0f547 b/gfx/tilesets/lab.2bpp.lz.b8d0f547
deleted file mode 100644
index cd0f43861..000000000
--- a/gfx/tilesets/lab.2bpp.lz.b8d0f547
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/lighthouse.2bpp.lz.0c1544c1 b/gfx/tilesets/lighthouse.2bpp.lz.0c1544c1
deleted file mode 100644
index d208e65c3..000000000
--- a/gfx/tilesets/lighthouse.2bpp.lz.0c1544c1
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/mansion.2bpp.lz.63b414d4 b/gfx/tilesets/mansion.2bpp.lz.63b414d4
deleted file mode 100644
index b68f147d0..000000000
--- a/gfx/tilesets/mansion.2bpp.lz.63b414d4
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/mart.2bpp.lz.e2e94f92 b/gfx/tilesets/mart.2bpp.lz.e2e94f92
deleted file mode 100644
index e8091a899..000000000
--- a/gfx/tilesets/mart.2bpp.lz.e2e94f92
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/omanyte_word_room.2bpp.lz.8b42470b b/gfx/tilesets/omanyte_word_room.2bpp.lz.8b42470b
deleted file mode 100644
index 68a4fdad0..000000000
--- a/gfx/tilesets/omanyte_word_room.2bpp.lz.8b42470b
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/park.2bpp.lz.7fcb81d6 b/gfx/tilesets/park.2bpp.lz.7fcb81d6
deleted file mode 100644
index 01a0e56bd..000000000
--- a/gfx/tilesets/park.2bpp.lz.7fcb81d6
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/players_house.2bpp.lz.252cbd8f b/gfx/tilesets/players_house.2bpp.lz.252cbd8f
deleted file mode 100644
index 17c64de65..000000000
--- a/gfx/tilesets/players_house.2bpp.lz.252cbd8f
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/players_room.2bpp.lz.35e51007 b/gfx/tilesets/players_room.2bpp.lz.35e51007
deleted file mode 100644
index b458a501d..000000000
--- a/gfx/tilesets/players_room.2bpp.lz.35e51007
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/pokecenter.2bpp.lz.e1c4014c b/gfx/tilesets/pokecenter.2bpp.lz.e1c4014c
deleted file mode 100644
index 71783d9f2..000000000
--- a/gfx/tilesets/pokecenter.2bpp.lz.e1c4014c
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/pokecom_center.2bpp.lz.febbc4ec b/gfx/tilesets/pokecom_center.2bpp.lz.febbc4ec
deleted file mode 100644
index 5b787c854..000000000
--- a/gfx/tilesets/pokecom_center.2bpp.lz.febbc4ec
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/port.2bpp.lz.56b1a405 b/gfx/tilesets/port.2bpp.lz.56b1a405
deleted file mode 100644
index 96dd2e594..000000000
--- a/gfx/tilesets/port.2bpp.lz.56b1a405
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/radio_tower.2bpp.lz.27cdd9ad b/gfx/tilesets/radio_tower.2bpp.lz.27cdd9ad
deleted file mode 100644
index 34be33856..000000000
--- a/gfx/tilesets/radio_tower.2bpp.lz.27cdd9ad
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/ruins_of_alph.2bpp.lz.8b42470b b/gfx/tilesets/ruins_of_alph.2bpp.lz.8b42470b
deleted file mode 100644
index 68a4fdad0..000000000
--- a/gfx/tilesets/ruins_of_alph.2bpp.lz.8b42470b
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/tower.2bpp.lz.bc56789c b/gfx/tilesets/tower.2bpp.lz.bc56789c
deleted file mode 100644
index 2033306e3..000000000
--- a/gfx/tilesets/tower.2bpp.lz.bc56789c
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/traditional_house.2bpp.lz.dd51d079 b/gfx/tilesets/traditional_house.2bpp.lz.dd51d079
deleted file mode 100644
index 28f025413..000000000
--- a/gfx/tilesets/traditional_house.2bpp.lz.dd51d079
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/train_station.2bpp.lz.1600ca86 b/gfx/tilesets/train_station.2bpp.lz.1600ca86
deleted file mode 100644
index 56e509f5e..000000000
--- a/gfx/tilesets/train_station.2bpp.lz.1600ca86
+++ /dev/null
Binary files differ
diff --git a/gfx/tilesets/underground.2bpp.lz.cace291c b/gfx/tilesets/underground.2bpp.lz.cace291c
deleted file mode 100644
index c204dca26..000000000
--- a/gfx/tilesets/underground.2bpp.lz.cace291c
+++ /dev/null
Binary files differ
diff --git a/gfx/title/crystal.2bpp.lz.cd5aabdd b/gfx/title/crystal.2bpp.lz.cd5aabdd
deleted file mode 100644
index 9dcbafc86..000000000
--- a/gfx/title/crystal.2bpp.lz.cd5aabdd
+++ /dev/null
Binary files differ
diff --git a/gfx/title/logo.2bpp.lz.f22013e3 b/gfx/title/logo.2bpp.lz.f22013e3
deleted file mode 100644
index 0fa7d7744..000000000
--- a/gfx/title/logo.2bpp.lz.f22013e3
+++ /dev/null
Binary files differ
diff --git a/gfx/title/suicune.2bpp.lz.30e490d0 b/gfx/title/suicune.2bpp.lz.30e490d0
deleted file mode 100644
index 359fd93ca..000000000
--- a/gfx/title/suicune.2bpp.lz.30e490d0
+++ /dev/null
Binary files differ
diff --git a/gfx/trade/game_boy.2bpp.lz.71a5f644 b/gfx/trade/game_boy.2bpp.lz.71a5f644
deleted file mode 100644
index 832164306..000000000
--- a/gfx/trade/game_boy.2bpp.lz.71a5f644
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/beauty.2bpp.lz.c1c13787 b/gfx/trainers/beauty.2bpp.lz.c1c13787
deleted file mode 100644
index 8c5d30ee6..000000000
--- a/gfx/trainers/beauty.2bpp.lz.c1c13787
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/biker.2bpp.lz.cb40f7cd b/gfx/trainers/biker.2bpp.lz.cb40f7cd
deleted file mode 100644
index 07ad8621b..000000000
--- a/gfx/trainers/biker.2bpp.lz.cb40f7cd
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/bird_keeper.2bpp.lz.1e56954c b/gfx/trainers/bird_keeper.2bpp.lz.1e56954c
deleted file mode 100644
index 48b505847..000000000
--- a/gfx/trainers/bird_keeper.2bpp.lz.1e56954c
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/blackbelt_t.2bpp.lz.4ef2481c b/gfx/trainers/blackbelt_t.2bpp.lz.4ef2481c
deleted file mode 100644
index 086b8fc02..000000000
--- a/gfx/trainers/blackbelt_t.2bpp.lz.4ef2481c
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/blaine.2bpp.lz.00a3b6f5 b/gfx/trainers/blaine.2bpp.lz.00a3b6f5
deleted file mode 100644
index d967bb3ba..000000000
--- a/gfx/trainers/blaine.2bpp.lz.00a3b6f5
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/blue.2bpp.lz.9fdbab8f b/gfx/trainers/blue.2bpp.lz.9fdbab8f
deleted file mode 100644
index 9d4cb50c6..000000000
--- a/gfx/trainers/blue.2bpp.lz.9fdbab8f
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/boarder.2bpp.lz.5d6881a8 b/gfx/trainers/boarder.2bpp.lz.5d6881a8
deleted file mode 100644
index a6dc315d8..000000000
--- a/gfx/trainers/boarder.2bpp.lz.5d6881a8
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/brock.2bpp.lz.5bdeb7bf b/gfx/trainers/brock.2bpp.lz.5bdeb7bf
deleted file mode 100644
index d7a4e29bf..000000000
--- a/gfx/trainers/brock.2bpp.lz.5bdeb7bf
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/bruno.2bpp.lz.22f3c222 b/gfx/trainers/bruno.2bpp.lz.22f3c222
deleted file mode 100644
index 69406d11d..000000000
--- a/gfx/trainers/bruno.2bpp.lz.22f3c222
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/bug_catcher.2bpp.lz.43144f97 b/gfx/trainers/bug_catcher.2bpp.lz.43144f97
deleted file mode 100644
index cea17dbac..000000000
--- a/gfx/trainers/bug_catcher.2bpp.lz.43144f97
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/bugsy.2bpp.lz.c070450d b/gfx/trainers/bugsy.2bpp.lz.c070450d
deleted file mode 100644
index 7910628aa..000000000
--- a/gfx/trainers/bugsy.2bpp.lz.c070450d
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/burglar.2bpp.lz.e063f42e b/gfx/trainers/burglar.2bpp.lz.e063f42e
deleted file mode 100644
index 45da954d9..000000000
--- a/gfx/trainers/burglar.2bpp.lz.e063f42e
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/cal.2bpp.lz.aac54a14 b/gfx/trainers/cal.2bpp.lz.aac54a14
deleted file mode 100644
index f7d3570ae..000000000
--- a/gfx/trainers/cal.2bpp.lz.aac54a14
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/camper.2bpp.lz.cc2357ea b/gfx/trainers/camper.2bpp.lz.cc2357ea
deleted file mode 100644
index a8963bae7..000000000
--- a/gfx/trainers/camper.2bpp.lz.cc2357ea
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/champion.2bpp.lz.0175f5ea b/gfx/trainers/champion.2bpp.lz.0175f5ea
deleted file mode 100644
index c5840a676..000000000
--- a/gfx/trainers/champion.2bpp.lz.0175f5ea
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/chuck.2bpp.lz.cab13edd b/gfx/trainers/chuck.2bpp.lz.cab13edd
deleted file mode 100644
index 0a92c7074..000000000
--- a/gfx/trainers/chuck.2bpp.lz.cab13edd
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/clair.2bpp.lz.a1771075 b/gfx/trainers/clair.2bpp.lz.a1771075
deleted file mode 100644
index bbc463594..000000000
--- a/gfx/trainers/clair.2bpp.lz.a1771075
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/cooltrainer_f.2bpp.lz.6fb1e652 b/gfx/trainers/cooltrainer_f.2bpp.lz.6fb1e652
deleted file mode 100644
index cb41d74ee..000000000
--- a/gfx/trainers/cooltrainer_f.2bpp.lz.6fb1e652
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/cooltrainer_m.2bpp.lz.0aa81882 b/gfx/trainers/cooltrainer_m.2bpp.lz.0aa81882
deleted file mode 100644
index 93dad0319..000000000
--- a/gfx/trainers/cooltrainer_m.2bpp.lz.0aa81882
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/erika.2bpp.lz.58985f01 b/gfx/trainers/erika.2bpp.lz.58985f01
deleted file mode 100644
index 963363d26..000000000
--- a/gfx/trainers/erika.2bpp.lz.58985f01
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/executive_f.2bpp.lz.c8b5dc9c b/gfx/trainers/executive_f.2bpp.lz.c8b5dc9c
deleted file mode 100644
index b823ddaab..000000000
--- a/gfx/trainers/executive_f.2bpp.lz.c8b5dc9c
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/executive_m.2bpp.lz.211746a6 b/gfx/trainers/executive_m.2bpp.lz.211746a6
deleted file mode 100644
index e10b588cc..000000000
--- a/gfx/trainers/executive_m.2bpp.lz.211746a6
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/falkner.2bpp.lz.6ec6bbaf b/gfx/trainers/falkner.2bpp.lz.6ec6bbaf
deleted file mode 100644
index 323587e3a..000000000
--- a/gfx/trainers/falkner.2bpp.lz.6ec6bbaf
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/firebreather.2bpp.lz.a790feb1 b/gfx/trainers/firebreather.2bpp.lz.a790feb1
deleted file mode 100644
index a0f853a9d..000000000
--- a/gfx/trainers/firebreather.2bpp.lz.a790feb1
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/fisher.2bpp.lz.95bfbfd6 b/gfx/trainers/fisher.2bpp.lz.95bfbfd6
deleted file mode 100644
index b210aeda1..000000000
--- a/gfx/trainers/fisher.2bpp.lz.95bfbfd6
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/gentleman.2bpp.lz.d3d78e00 b/gfx/trainers/gentleman.2bpp.lz.d3d78e00
deleted file mode 100644
index 153720e71..000000000
--- a/gfx/trainers/gentleman.2bpp.lz.d3d78e00
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/grunt_f.2bpp.lz.522aecd7 b/gfx/trainers/grunt_f.2bpp.lz.522aecd7
deleted file mode 100644
index beee0721b..000000000
--- a/gfx/trainers/grunt_f.2bpp.lz.522aecd7
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/grunt_m.2bpp.lz.916e09d2 b/gfx/trainers/grunt_m.2bpp.lz.916e09d2
deleted file mode 100644
index 5ac5597b0..000000000
--- a/gfx/trainers/grunt_m.2bpp.lz.916e09d2
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/guitarist.2bpp.lz.be5a9b71 b/gfx/trainers/guitarist.2bpp.lz.be5a9b71
deleted file mode 100644
index d67e6ea98..000000000
--- a/gfx/trainers/guitarist.2bpp.lz.be5a9b71
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/hiker.2bpp.lz.07a4e386 b/gfx/trainers/hiker.2bpp.lz.07a4e386
deleted file mode 100644
index c7cecda28..000000000
--- a/gfx/trainers/hiker.2bpp.lz.07a4e386
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/janine.2bpp.lz.5350f3ce b/gfx/trainers/janine.2bpp.lz.5350f3ce
deleted file mode 100644
index d6249eba3..000000000
--- a/gfx/trainers/janine.2bpp.lz.5350f3ce
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/jasmine.2bpp.lz.dcd58308 b/gfx/trainers/jasmine.2bpp.lz.dcd58308
deleted file mode 100644
index 7c08ded94..000000000
--- a/gfx/trainers/jasmine.2bpp.lz.dcd58308
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/juggler.2bpp.lz.2d7625ba b/gfx/trainers/juggler.2bpp.lz.2d7625ba
deleted file mode 100644
index d64ed1f0b..000000000
--- a/gfx/trainers/juggler.2bpp.lz.2d7625ba
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/karen.2bpp.lz.7fc3d941 b/gfx/trainers/karen.2bpp.lz.7fc3d941
deleted file mode 100644
index a0bd871f7..000000000
--- a/gfx/trainers/karen.2bpp.lz.7fc3d941
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/kimono_girl.2bpp.lz.e8833d48 b/gfx/trainers/kimono_girl.2bpp.lz.e8833d48
deleted file mode 100644
index 465ccb111..000000000
--- a/gfx/trainers/kimono_girl.2bpp.lz.e8833d48
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/koga.2bpp.lz.7a066020 b/gfx/trainers/koga.2bpp.lz.7a066020
deleted file mode 100644
index bc4501f08..000000000
--- a/gfx/trainers/koga.2bpp.lz.7a066020
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/lass.2bpp.lz.e3726508 b/gfx/trainers/lass.2bpp.lz.e3726508
deleted file mode 100644
index 0c7cffa79..000000000
--- a/gfx/trainers/lass.2bpp.lz.e3726508
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/lt_surge.2bpp.lz.4ac586d0 b/gfx/trainers/lt_surge.2bpp.lz.4ac586d0
deleted file mode 100644
index 9a3df5d3f..000000000
--- a/gfx/trainers/lt_surge.2bpp.lz.4ac586d0
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/medium.2bpp.lz.db642b9e b/gfx/trainers/medium.2bpp.lz.db642b9e
deleted file mode 100644
index 4aaa71326..000000000
--- a/gfx/trainers/medium.2bpp.lz.db642b9e
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/misty.2bpp.lz.2ded1a10 b/gfx/trainers/misty.2bpp.lz.2ded1a10
deleted file mode 100644
index 1a96cdddd..000000000
--- a/gfx/trainers/misty.2bpp.lz.2ded1a10
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/morty.2bpp.lz.aec5773b b/gfx/trainers/morty.2bpp.lz.aec5773b
deleted file mode 100644
index 67999aeb8..000000000
--- a/gfx/trainers/morty.2bpp.lz.aec5773b
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/mysticalman.2bpp.lz.35d01215 b/gfx/trainers/mysticalman.2bpp.lz.35d01215
deleted file mode 100644
index 38296bc91..000000000
--- a/gfx/trainers/mysticalman.2bpp.lz.35d01215
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/oak.2bpp.lz.91a27df3 b/gfx/trainers/oak.2bpp.lz.91a27df3
deleted file mode 100644
index 276f7c533..000000000
--- a/gfx/trainers/oak.2bpp.lz.91a27df3
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/officer.2bpp.lz.630b057a b/gfx/trainers/officer.2bpp.lz.630b057a
deleted file mode 100644
index e3e22f870..000000000
--- a/gfx/trainers/officer.2bpp.lz.630b057a
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/picnicker.2bpp.lz.6842b86a b/gfx/trainers/picnicker.2bpp.lz.6842b86a
deleted file mode 100644
index 81ee09ab7..000000000
--- a/gfx/trainers/picnicker.2bpp.lz.6842b86a
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/pokefan_f.2bpp.lz.9cbd3f20 b/gfx/trainers/pokefan_f.2bpp.lz.9cbd3f20
deleted file mode 100644
index 2ab555a85..000000000
--- a/gfx/trainers/pokefan_f.2bpp.lz.9cbd3f20
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/pokefan_m.2bpp.lz.5bc5a3e1 b/gfx/trainers/pokefan_m.2bpp.lz.5bc5a3e1
deleted file mode 100644
index 25b4a9ff7..000000000
--- a/gfx/trainers/pokefan_m.2bpp.lz.5bc5a3e1
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/pokemaniac.2bpp.lz.786c5fce b/gfx/trainers/pokemaniac.2bpp.lz.786c5fce
deleted file mode 100644
index 78fb417f4..000000000
--- a/gfx/trainers/pokemaniac.2bpp.lz.786c5fce
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/pryce.2bpp.lz.1a98cae8 b/gfx/trainers/pryce.2bpp.lz.1a98cae8
deleted file mode 100644
index ca69273e0..000000000
--- a/gfx/trainers/pryce.2bpp.lz.1a98cae8
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/psychic_t.2bpp.lz.ecd603f4 b/gfx/trainers/psychic_t.2bpp.lz.ecd603f4
deleted file mode 100644
index c1123a84e..000000000
--- a/gfx/trainers/psychic_t.2bpp.lz.ecd603f4
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/red.2bpp.lz.51104ac6 b/gfx/trainers/red.2bpp.lz.51104ac6
deleted file mode 100644
index 15a8dcf88..000000000
--- a/gfx/trainers/red.2bpp.lz.51104ac6
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/rival1.2bpp.lz.e43b32ef b/gfx/trainers/rival1.2bpp.lz.e43b32ef
deleted file mode 100644
index 9a5b99abc..000000000
--- a/gfx/trainers/rival1.2bpp.lz.e43b32ef
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/rival2.2bpp.lz.562de263 b/gfx/trainers/rival2.2bpp.lz.562de263
deleted file mode 100644
index 683ec66bb..000000000
--- a/gfx/trainers/rival2.2bpp.lz.562de263
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/sabrina.2bpp.lz.d09a2b46 b/gfx/trainers/sabrina.2bpp.lz.d09a2b46
deleted file mode 100644
index bee6dd0e9..000000000
--- a/gfx/trainers/sabrina.2bpp.lz.d09a2b46
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/sage.2bpp.lz.2038324b b/gfx/trainers/sage.2bpp.lz.2038324b
deleted file mode 100644
index aff9d4589..000000000
--- a/gfx/trainers/sage.2bpp.lz.2038324b
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/sailor.2bpp.lz.0f7f3386 b/gfx/trainers/sailor.2bpp.lz.0f7f3386
deleted file mode 100644
index 425667a73..000000000
--- a/gfx/trainers/sailor.2bpp.lz.0f7f3386
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/schoolboy.2bpp.lz.6d26b31b b/gfx/trainers/schoolboy.2bpp.lz.6d26b31b
deleted file mode 100644
index 7d9bd00a3..000000000
--- a/gfx/trainers/schoolboy.2bpp.lz.6d26b31b
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/scientist.2bpp.lz.2ef10474 b/gfx/trainers/scientist.2bpp.lz.2ef10474
deleted file mode 100644
index 033f421b5..000000000
--- a/gfx/trainers/scientist.2bpp.lz.2ef10474
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/skier.2bpp.lz.399d4240 b/gfx/trainers/skier.2bpp.lz.399d4240
deleted file mode 100644
index 42be70abe..000000000
--- a/gfx/trainers/skier.2bpp.lz.399d4240
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/super_nerd.2bpp.lz.c5362664 b/gfx/trainers/super_nerd.2bpp.lz.c5362664
deleted file mode 100644
index dbdb4ca46..000000000
--- a/gfx/trainers/super_nerd.2bpp.lz.c5362664
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/swimmer_f.2bpp.lz.c60d0ad6 b/gfx/trainers/swimmer_f.2bpp.lz.c60d0ad6
deleted file mode 100644
index 3f27a6d42..000000000
--- a/gfx/trainers/swimmer_f.2bpp.lz.c60d0ad6
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/swimmer_m.2bpp.lz.2c1a716e b/gfx/trainers/swimmer_m.2bpp.lz.2c1a716e
deleted file mode 100644
index b162cadca..000000000
--- a/gfx/trainers/swimmer_m.2bpp.lz.2c1a716e
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/teacher.2bpp.lz.1d131210 b/gfx/trainers/teacher.2bpp.lz.1d131210
deleted file mode 100644
index 92151f891..000000000
--- a/gfx/trainers/teacher.2bpp.lz.1d131210
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/twins.2bpp.lz.462fd733 b/gfx/trainers/twins.2bpp.lz.462fd733
deleted file mode 100644
index 1bdf29c7d..000000000
--- a/gfx/trainers/twins.2bpp.lz.462fd733
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/whitney.2bpp.lz.dcb46ea6 b/gfx/trainers/whitney.2bpp.lz.dcb46ea6
deleted file mode 100644
index 9564767a8..000000000
--- a/gfx/trainers/whitney.2bpp.lz.dcb46ea6
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/will.2bpp.lz.842af358 b/gfx/trainers/will.2bpp.lz.842af358
deleted file mode 100644
index 3de211cd4..000000000
--- a/gfx/trainers/will.2bpp.lz.842af358
+++ /dev/null
Binary files differ
diff --git a/gfx/trainers/youngster.2bpp.lz.4bef139d b/gfx/trainers/youngster.2bpp.lz.4bef139d
deleted file mode 100644
index ec742f9f3..000000000
--- a/gfx/trainers/youngster.2bpp.lz.4bef139d
+++ /dev/null
Binary files differ
diff --git a/gfx/unown_puzzle/aerodactyl.2bpp.lz.f546fb5e b/gfx/unown_puzzle/aerodactyl.2bpp.lz.f546fb5e
deleted file mode 100644
index cc73411f9..000000000
--- a/gfx/unown_puzzle/aerodactyl.2bpp.lz.f546fb5e
+++ /dev/null
Binary files differ
diff --git a/gfx/unown_puzzle/hooh.2bpp.lz.e440a572 b/gfx/unown_puzzle/hooh.2bpp.lz.e440a572
deleted file mode 100644
index d8c899e86..000000000
--- a/gfx/unown_puzzle/hooh.2bpp.lz.e440a572
+++ /dev/null
Binary files differ
diff --git a/gfx/unown_puzzle/kabuto.2bpp.lz.0ed9882d b/gfx/unown_puzzle/kabuto.2bpp.lz.0ed9882d
deleted file mode 100644
index a94050316..000000000
--- a/gfx/unown_puzzle/kabuto.2bpp.lz.0ed9882d
+++ /dev/null
Binary files differ
diff --git a/gfx/unown_puzzle/omanyte.2bpp.lz.27bfcbde b/gfx/unown_puzzle/omanyte.2bpp.lz.27bfcbde
deleted file mode 100644
index 5bdd993dc..000000000
--- a/gfx/unown_puzzle/omanyte.2bpp.lz.27bfcbde
+++ /dev/null
Binary files differ
diff --git a/gfx/unown_puzzle/start_cancel.2bpp.lz.e07fe7bd b/gfx/unown_puzzle/start_cancel.2bpp.lz.e07fe7bd
deleted file mode 100644
index 96fbb1fbb..000000000
--- a/gfx/unown_puzzle/start_cancel.2bpp.lz.e07fe7bd
+++ /dev/null
Binary files differ
diff --git a/home/gfx.asm b/home/gfx.asm
index 52facb851..8ae2c759c 100644
--- a/home/gfx.asm
+++ b/home/gfx.asm
@@ -1,20 +1,20 @@
; Functions to copy data from ROM.
-Get2bpp_2::
+Get2bppViaHDMA::
ldh a, [rLCDC]
bit rLCDC_ENABLE, a
jp z, Copy2bpp
- homecall _Get2bpp
+ homecall HDMATransfer2bpp
ret
-Get1bpp_2::
+Get1bppViaHDMA::
ldh a, [rLCDC]
bit rLCDC_ENABLE, a
jp z, Copy1bpp
- homecall _Get1bpp
+ homecall HDMATransfer1bpp
ret
@@ -31,7 +31,7 @@ FarCopyBytesDouble_DoubleBankSwitch::
rst Bankswitch
ret
-OldDMATransfer:
+UnreferencedOldDMATransfer:
dec c
ldh a, [hBGMapMode]
push af
diff --git a/home/map_objects.asm b/home/map_objects.asm
index 64e21e546..667658f0c 100644
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -574,12 +574,12 @@ _GetMovementByte::
ld a, h
ret
-SetVramState_Bit0::
+UnreferencedSetVramState_Bit0::
ld hl, wVramState
set 0, [hl]
ret
-ResetVramState_Bit0::
+UnreferencedResetVramState_Bit0::
ld hl, wVramState
res 0, [hl]
ret
diff --git a/home/math.asm b/home/math.asm
index 3042cc61d..c99214cce 100644
--- a/home/math.asm
+++ b/home/math.asm
@@ -48,8 +48,8 @@ Divide::
pop hl
ret
-SubtractSigned::
-; Return a - b, sign in carry.
+UnreferencedSubtractAbsolute::
+; Return |a - b|, sign in carry.
sub b
ret nc
cpl
diff --git a/home/menu.asm b/home/menu.asm
index 12dfc67af..07ce54d48 100644
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -417,7 +417,7 @@ YesNoBox::
PlaceYesNoBox::
jr _YesNoBox
-PlaceGenericTwoOptionBox::
+UnreferencedPlaceGenericTwoOptionBox::
call LoadMenuHeader
jr InterpretTwoOptionMenu
diff --git a/home/text.asm b/home/text.asm
index 82fdd7111..abbf12c41 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -128,7 +128,7 @@ SpeechTextbox::
ld c, TEXTBOX_INNERW
jp Textbox
-TestText::
+UnreferencedTestText::
text "ゲームフりーク!"
done
@@ -172,7 +172,8 @@ PlaceNextChar::
ld c, l
pop hl
ret
- pop de
+
+ pop de ; unused
NextChar::
inc de
diff --git a/home/tilemap.asm b/home/tilemap.asm
index 379b1464a..56e6182ef 100644
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -58,13 +58,13 @@ CGBOnly_CopyTilemapAtOnce::
jr z, WaitBGMap
CopyTilemapAtOnce::
- jr .CopyTilemapAtOnce
+ jr _CopyTilemapAtOnce
; unused
farcall HDMATransferAttrmapAndTilemapToWRAMBank3
ret
-.CopyTilemapAtOnce:
+_CopyTilemapAtOnce:
ldh a, [hBGMapMode]
push af
xor a
@@ -77,22 +77,22 @@ CopyTilemapAtOnce::
.wait
ldh a, [rLY]
- cp $7f
+ cp $80 - 1
jr c, .wait
di
- ld a, BANK(vTiles3)
+ ld a, BANK(vBGMap2)
ldh [rVBK], a
hlcoord 0, 0, wAttrmap
- call .StackPointerMagic
- ld a, BANK(vTiles0)
+ call .CopyBGMapViaStack
+ ld a, BANK(vBGMap0)
ldh [rVBK], a
hlcoord 0, 0
- call .StackPointerMagic
+ call .CopyBGMapViaStack
.wait2
ldh a, [rLY]
- cp $7f
+ cp $80 - 1
jr c, .wait2
ei
@@ -102,7 +102,7 @@ CopyTilemapAtOnce::
ldh [hBGMapMode], a
ret
-.StackPointerMagic:
+.CopyBGMapViaStack:
; Copy all tiles to vBGMap
ld [hSPBuffer], sp
ld sp, hl
@@ -122,7 +122,7 @@ rept SCREEN_WIDTH / 2
ldh a, [c]
and b
jr nz, .loop\@
-; load BGMap0
+; load vBGMap
ld [hl], e
inc l
ld [hl], d
diff --git a/home/time.asm b/home/time.asm
index b708329c5..2a866d6b5 100644
--- a/home/time.asm
+++ b/home/time.asm
@@ -256,7 +256,7 @@ SetClock::
call CloseSRAM ; unlatch clock, disable clock r/w
ret
-ClearRTCStatus::
+UnreferencedClearRTCStatus::
; clear sRTCStatusFlags
xor a
push af
diff --git a/home/trainers.asm b/home/trainers.asm
index e9971be3f..00ae5dbcd 100644
--- a/home/trainers.asm
+++ b/home/trainers.asm
@@ -203,7 +203,7 @@ FacingPlayerDistance::
and a
ret
-CheckTrainerFlag::
+UnreferencedCheckTrainerFlag::
push bc
ld hl, OBJECT_MAP_OBJECT_INDEX
add hl, bc
diff --git a/home/video.asm b/home/video.asm
index 008f1057c..5578ad293 100644
--- a/home/video.asm
+++ b/home/video.asm
@@ -117,7 +117,7 @@ UpdateBGMap::
; Update the BG Map, in thirds, from wTilemap and wAttrmap.
ldh a, [hBGMapMode]
- and a
+ and a ; 0
ret z
; BG Map 0
@@ -127,7 +127,7 @@ UpdateBGMap::
jr z, .Attr
; BG Map 1
- dec a
+ dec a ; useless
ldh a, [hBGMapAddress]
ld l, a
@@ -232,7 +232,7 @@ THIRD_HEIGHT EQU SCREEN_HEIGHT / 3
ldh [hBGMapThird], a
; Rows of tiles in a third
- ld a, SCREEN_HEIGHT / 3
+ ld a, THIRD_HEIGHT
; Discrepancy between wTilemap and BGMap
ld bc, BG_MAP_WIDTH - (SCREEN_WIDTH - 1)
diff --git a/macros/data.asm b/macros/data.asm
index e9052f6b2..a6656af32 100644
--- a/macros/data.asm
+++ b/macros/data.asm
@@ -1,7 +1,30 @@
; Value macros
+; Many arbitrary percentages are simple base-10 or base-16 values:
+; - 10 = 4 percent
+; - 15 = 6 percent
+; - $10 = 6 percent + 1 = 7 percent - 1
+; - 20 = 8 percent
+; - 25 = 10 percent
+; - 30 = 12 percent
+; - 40 = 16 percent
+; - 50 = 20 percent - 1
+; - 60 = 24 percent - 1
+; - 70 = 28 percent - 1
+; - 80 = 31 percent + 1 = 32 percent - 1
+; - 85 = 33 percent + 1 = 34 percent - 1
+; - 100 = 39 percent + 1 = 40 percent - 2
+; - 120 = 47 percent + 1
+; - 123 = 49 percent - 1
+; - 160 = 63 percent
+; - 180 = 71 percent - 1 = 70 percent + 2
+; - 200 = 79 percent - 1
+; - 230 = 90 percent + 1
percent EQUS "* $ff / 100"
+; e.g. 1 out_of 2 == 50 percent + 1 == $80
+out_of EQUS "* $100 /"
+
; Constant data (db, dw, dl) macros
dwb: MACRO
diff --git a/main.asm b/main.asm
index 8f6d542a4..827bad959 100644
--- a/main.asm
+++ b/main.asm
@@ -146,7 +146,6 @@ INCLUDE "engine/events/move_deleter.asm"
INCLUDE "engine/link/mystery_gift_2.asm"
INCLUDE "engine/items/tmhm.asm"
INCLUDE "engine/pokemon/print_move_description.asm"
-INCLUDE "data/moves/descriptions.asm"
INCLUDE "engine/events/pokerus/pokerus.asm"
INCLUDE "engine/battle/start_battle.asm"
INCLUDE "engine/gfx/place_graphic.asm"
diff --git a/maps/PlayersHouse2F.asm b/maps/PlayersHouse2F.asm
index 02659d55b..4ea22f8f8 100644
--- a/maps/PlayersHouse2F.asm
+++ b/maps/PlayersHouse2F.asm
@@ -32,7 +32,7 @@ PlayersHouse2F_MapScripts:
db 0, 0, 0 ; filler
-Doll1Script:
+Doll1Script::
describedecoration DECODESC_LEFT_DOLL
Doll2Script:
diff --git a/mobile/mobile_40.asm b/mobile/mobile_40.asm
index 6becee7c0..1cbb3bda7 100644
--- a/mobile/mobile_40.asm
+++ b/mobile/mobile_40.asm
@@ -1529,7 +1529,7 @@ Function1009f3:
_LinkBattleSendReceiveAction:
call .StageForSend
- ld [wd431], a
+ ld [wLinkBattleSentAction], a
farcall PlaceWaitingText
ld a, [wLinkMode]
cp LINK_MOBILE
@@ -1573,7 +1573,7 @@ _LinkBattleSendReceiveAction:
ret
.LinkBattle_SendReceiveAction:
- ld a, [wd431]
+ ld a, [wLinkBattleSentAction]
ld [wPlayerLinkAction], a
ld a, $ff
ld [wOtherPlayerLinkAction], a
@@ -1642,7 +1642,7 @@ _LinkBattleSendReceiveAction:
Function100acf:
ld de, Unknown_100b0a
ld hl, wccb5
- ld a, [wd431]
+ ld a, [wLinkBattleSentAction]
ld [hli], a
ld c, $01
.asm_100adb
@@ -6487,12 +6487,12 @@ Function102e07:
db "Waiting...!@"
Function102e3e:
- ld de, .CANCEL
+ ld de, .CancelString
hlcoord 10, 17
call PlaceString
ret
-.CANCEL:
+.CancelString:
db "CANCEL@"
Function102e4f:
diff --git a/mobile/mobile_42.asm b/mobile/mobile_42.asm
index 5f4b62e5f..fbf6bed02 100644
--- a/mobile/mobile_42.asm
+++ b/mobile/mobile_42.asm
@@ -1374,7 +1374,7 @@ Function108ad4:
ldh [rVBK], a
ld hl, vTiles2 tile $4a
lb bc, BANK(MobileCable1GFX), 16 ; aka BANK(MobileCable2GFX)
- call Get2bpp_2
+ call Get2bppViaHDMA
call DelayFrame
ld a, $0
ldh [rVBK], a
diff --git a/mobile/mobile_46.asm b/mobile/mobile_46.asm
index 793cf7c21..0f4698c1d 100644
--- a/mobile/mobile_46.asm
+++ b/mobile/mobile_46.asm
@@ -3889,8 +3889,8 @@ Strings_Ll0ToL40:
db " L:30 @@"
db " L:40 @@"
db "CANCEL@@"
-
-String_119d8c:
+
+Unreferenced_CancelString:
db "CANCEL@"
BattleTower_LevelCheck:
diff --git a/mobile/news/news.asm b/mobile/news/news.asm
index 8875b0871..0aec6a35e 100644
--- a/mobile/news/news.asm
+++ b/mobile/news/news.asm
@@ -1,6 +1,6 @@
; http://forums.glitchcity.info/index.php?topic=7509.msg206449#msg206449
- db $cc, $6b, $1e ; unused
+ dab Doll1Script ; related to "My Room" in Stadium 2?
Unreferenced_Function1f4003:
ld a, BANK(s6_a000)
diff --git a/tools/Makefile b/tools/Makefile
index 768f8912e..5dd3139fa 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -10,15 +10,18 @@ tools := \
palette \
pokemon_animation \
pokemon_animation_graphics \
- gfx \
- md5
+ gfx
all: $(tools)
@:
clean:
rm -f $(tools)
-gfx md5: common.h
+gfx: common.h
+
+lzcomp: CFLAGS = -O3 -flto -std=c11 -Wall -Wextra -pedantic -Wno-strict-overflow -Wno-sign-compare
+lzcomp: $(wildcard lz/*.c) $(wildcard lz/*.h)
+ $(CC) $(CFLAGS) -o $@ lz/*.c
%: %.c
$(CC) $(CFLAGS) -o $@ $<
diff --git a/tools/lz/global.c b/tools/lz/global.c
new file mode 100644
index 000000000..4d26acee8
--- /dev/null
+++ b/tools/lz/global.c
@@ -0,0 +1,35 @@
+#include "proto.h"
+
+const struct compressor compressors[] = {
+ // NOTE: the "flags" field for each compressor will be set to the chosen/current method number minus the base
+ // number for that particular compressor. That means that each compressor will use a zero-based flags value.
+ {.methods = 72, .name = "singlepass", .function = &try_compress_single_pass}, // 0-71
+ {.methods = 2, .name = "null", .function = &store_uncompressed}, // 72-73
+ {.methods = 6, .name = "repetitions", .function = &try_compress_repetitions}, // 74-79
+ {.methods = 16, .name = "multipass", .function = &try_compress_multi_pass}, // 80-95
+ {0} // end of the list
+};
+
+const unsigned char bit_flipping_table[] = {
+ // For each byte, the table contains that same byte with its bits flipped around (for instance,
+ // 0x58 (01011000 binary) becomes 0x1a (00011010 binary)). This is faster than flipping bits
+ // manually at runtime.
+ 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
+ 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
+ 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
+ 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
+ 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
+ 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
+ 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
+ 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
+ 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
+ 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
+ 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
+ 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
+ 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
+ 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
+ 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
+ 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
+};
+
+char option_name_buffer[] = "-?"; // used to extract the name of a short option (separated from its argument)
diff --git a/tools/lz/main.c b/tools/lz/main.c
new file mode 100644
index 000000000..62e6dc413
--- /dev/null
+++ b/tools/lz/main.c
@@ -0,0 +1,54 @@
+#include "proto.h"
+
+int main (int argc, char ** argv) {
+ struct options options = get_options(argc, argv);
+ unsigned short size;
+ unsigned char * file_buffer = read_file_into_buffer(options.input, &size);
+ struct command * commands;
+ if (options.mode & 2) {
+ unsigned short original_size = size, remainder;
+ commands = get_commands_from_file(file_buffer, &size, &remainder);
+ if (!commands) error_exit(1, "invalid command stream");
+ if (options.mode == 2) {
+ unsigned char * uncompressed = get_uncompressed_data(commands, file_buffer, &size);
+ if (!uncompressed) error_exit(1, "output data is too large");
+ write_raw_data_to_file(options.output, uncompressed, size);
+ free(uncompressed);
+ } else
+ write_commands_and_padding_to_textfile(options.output, commands, size, file_buffer, original_size - remainder, remainder);
+ } else {
+ commands = compress(file_buffer, &size, options.method);
+ (options.mode ? write_commands_to_textfile : write_commands_to_file)(options.output, commands, size, file_buffer, options.alignment);
+ }
+ free(file_buffer);
+ free(commands);
+ return 0;
+}
+
+struct command * compress (const unsigned char * data, unsigned short * size, unsigned method) {
+ unsigned char * bitflipped = malloc(*size);
+ unsigned current;
+ for (current = 0; current < *size; current ++) bitflipped[current] = bit_flipping_table[data[current]];
+ const struct compressor * compressor = compressors;
+ struct command * result;
+ if (method < COMPRESSION_METHODS) {
+ while (method >= compressor -> methods) method -= (compressor ++) -> methods;
+ result = compressor -> function(data, bitflipped, size, method);
+ } else {
+ struct command * compressed_sequences[COMPRESSION_METHODS];
+ unsigned short lengths[COMPRESSION_METHODS];
+ unsigned flags = 0;
+ for (current = 0; current < COMPRESSION_METHODS; current ++) {
+ lengths[current] = *size;
+ if (flags == compressor -> methods) {
+ flags = 0;
+ compressor ++;
+ }
+ compressed_sequences[current] = compressor -> function(data, bitflipped, lengths + current, flags ++);
+ }
+ result = select_optimal_sequence(compressed_sequences, lengths, size);
+ for (current = 0; current < COMPRESSION_METHODS; current ++) free(compressed_sequences[current]);
+ }
+ free(bitflipped);
+ return result;
+}
diff --git a/tools/lz/merging.c b/tools/lz/merging.c
new file mode 100644
index 000000000..79abb6d2e
--- /dev/null
+++ b/tools/lz/merging.c
@@ -0,0 +1,102 @@
+#include "proto.h"
+
+struct command * select_optimal_sequence (struct command ** sequences, const unsigned short * lengths, unsigned short * final_length) {
+ struct command * compressor_sequences[NUM_COMPRESSORS * 2];
+ unsigned short compressor_lengths[NUM_COMPRESSORS * 2];
+ struct command * inverted_sequences[COMPRESSION_METHODS];
+ unsigned short inverted_lengths[COMPRESSION_METHODS];
+ unsigned p, current, method = 0;
+ for (current = 0; current < NUM_COMPRESSORS; current ++) {
+ compressor_sequences[current] = select_command_sequence(sequences + method, lengths + method, compressors[current].methods, compressor_lengths + current);
+ compressor_sequences[current + NUM_COMPRESSORS] = select_command_sequence(sequences + method, lengths + method, -(int) compressors[current].methods,
+ compressor_lengths + (current + NUM_COMPRESSORS));
+ for (p = 0; p < compressors[current].methods; p ++) {
+ inverted_sequences[method + compressors[current].methods - 1 - p] = sequences[method + p];
+ inverted_lengths[method + compressors[current].methods - 1 - p] = lengths[method + p];
+ }
+ method += compressors[current].methods;
+ }
+ unsigned short final_lengths[8];
+ struct command * final_sequences[8] = {
+ select_command_sequence(compressor_sequences, compressor_lengths, NUM_COMPRESSORS, final_lengths),
+ select_command_sequence(compressor_sequences, compressor_lengths, -NUM_COMPRESSORS, final_lengths + 1),
+ select_command_sequence(compressor_sequences + NUM_COMPRESSORS, compressor_lengths + NUM_COMPRESSORS, NUM_COMPRESSORS, final_lengths + 2),
+ select_command_sequence(compressor_sequences + NUM_COMPRESSORS, compressor_lengths + NUM_COMPRESSORS, -NUM_COMPRESSORS, final_lengths + 3),
+ select_command_sequence(sequences, lengths, COMPRESSION_METHODS, final_lengths + 4),
+ select_command_sequence(sequences, lengths, -COMPRESSION_METHODS, final_lengths + 5),
+ select_command_sequence(inverted_sequences, inverted_lengths, COMPRESSION_METHODS, final_lengths + 6),
+ select_command_sequence(inverted_sequences, inverted_lengths, -COMPRESSION_METHODS, final_lengths + 7)
+ };
+ for (current = 0; current < (2 * NUM_COMPRESSORS); current ++) free(compressor_sequences[current]);
+ struct command * result = select_command_sequence(final_sequences, final_lengths, 8, final_length);
+ for (current = 0; current < 8; current ++) free(final_sequences[current]);
+ return result;
+}
+
+struct command * select_command_sequence (struct command ** sequences, const unsigned short * lengths, int count, unsigned short * final_length) {
+ // negative count indicates iterating backwards
+ unsigned short min_sequence = 0, min_length = compressed_length(*sequences, *lengths);
+ unsigned short seq, len;
+ int backwards = 0;
+ if (count < 0) {
+ backwards = 1;
+ count = -count;
+ }
+ for (seq = 1; seq < count; seq ++) {
+ len = compressed_length(sequences[seq], lengths[seq]);
+ if (len < min_length) {
+ min_sequence = seq;
+ min_length = len;
+ }
+ }
+ *final_length = lengths[min_sequence];
+ struct command * current = malloc(*final_length * sizeof(struct command));
+ memcpy(current, sequences[min_sequence], *final_length * sizeof(struct command));
+ struct command * new;
+ for (seq = 1; seq < count; seq ++) {
+ if (backwards) seq = count - seq;
+ new = merge_command_sequences(current, *final_length, sequences[(seq + min_sequence) % count], lengths[(seq + min_sequence) % count], final_length);
+ if (backwards) seq = count - seq; // restore the value for the loop
+ free(current);
+ current = new;
+ }
+ return current;
+}
+
+struct command * merge_command_sequences (const struct command * current, unsigned short current_length, const struct command * new, unsigned short new_length,
+ unsigned short * result_length) {
+ struct command * result = malloc(sizeof(struct command) * (current_length + new_length));
+ struct command * current_command = result;
+ const struct command * saved_current;
+ const struct command * saved_new;
+ unsigned short current_pos, new_pos;
+ while (current_length) {
+ if (current -> count == new -> count) {
+ *(current_command ++) = pick_best_command(2, *(current ++), *(new ++));
+ current_length --;
+ continue;
+ }
+ saved_current = current;
+ saved_new = new;
+ current_pos = (current ++) -> count;
+ new_pos = (new ++) -> count;
+ current_length --;
+ while (current_pos != new_pos)
+ if (current_pos < new_pos) {
+ current_pos += (current ++) -> count;
+ current_length --;
+ } else
+ new_pos += (new ++) -> count;
+ current_pos = compressed_length(saved_current, current - saved_current);
+ new_pos = compressed_length(saved_new, new - saved_new);
+ if (new_pos < current_pos) {
+ memcpy(current_command, saved_new, sizeof(struct command) * (new - saved_new));
+ current_command += new - saved_new;
+ } else {
+ memcpy(current_command, saved_current, sizeof(struct command) * (current - saved_current));
+ current_command += current - saved_current;
+ }
+ }
+ *result_length = current_command - result;
+ return result;
+}
diff --git a/tools/lz/mpcomp.c b/tools/lz/mpcomp.c
new file mode 100644
index 000000000..5961be8eb
--- /dev/null
+++ b/tools/lz/mpcomp.c
@@ -0,0 +1,112 @@
+#include "proto.h"
+
+/*
+ Multi-pass compressor: performs an initial pass generating a single command for each byte position in the data and
+ refines the command stream further in subsequent passes.
+ Methods defined: 16
+ Flags values: the flags are a bitfield; each bit triggers some alternate behavior if set:
+ 1: always emit a literal command (0) for the first byte of the file
+ 2: when reducing a two-byte repetition (2) command in the overlap elimination pass, don't force it to contain a
+ whole number of repetitions (i.e., an even count)
+ 4: don't emit copy commands (4, 5, 6) with a count of 3
+ 8: don't emit single-byte repetition (1) commands
+*/
+
+struct command * try_compress_multi_pass (const unsigned char * data, const unsigned char * flipped, unsigned short * size, unsigned flags) {
+ struct command * result = calloc(*size, sizeof(struct command));
+ unsigned char * reversed = malloc(*size);
+ short * sources = malloc(*size * sizeof(short));
+ unsigned short pos, next, current = 0;
+ for (pos = 0; pos < *size; pos ++) {
+ reversed[pos] = data[*size - 1 - pos];
+ sources[pos] = -1;
+ }
+ for (pos = (flags & 1); pos < *size; pos += (result[pos].count >= MULTIPASS_SKIP_THRESHOLD) ? result[pos].count : 1) {
+ result[pos] = pick_command_for_pass(data, flipped, reversed, sources, *size, pos, flags);
+ if ((result[pos].command >= 4) || (result[pos].count < MULTIPASS_SKIP_THRESHOLD)) sources[current ++] = pos;
+ }
+ free(reversed);
+ free(sources);
+ for (pos = 0; pos < *size; pos ++) {
+ for (current = 1; current < result[pos].count; current ++) if (result[pos + current].count > result[pos].count) {
+ result[pos].count = current;
+ if ((result[pos].command == 2) && (current & 1) && !(flags & 2)) result[pos].count --;
+ }
+ if (result[pos].count <= command_size(result[pos])) result[pos] = (struct command) {.command = 0, .count = 0};
+ }
+ for (pos = 0; pos < *size; pos ++)
+ if (!result[pos].command) {
+ for (current = 1; (current < MAX_COMMAND_COUNT) && ((pos + current) < *size); current ++) if (result[pos + current].command) break;
+ result[pos] = (struct command) {.command = 0, .count = current, .value = pos};
+ } else if (result[pos].count > MAX_COMMAND_COUNT) {
+ result[pos + MAX_COMMAND_COUNT] = result[pos];
+ result[pos + MAX_COMMAND_COUNT].count -= MAX_COMMAND_COUNT;
+ if ((result[pos + MAX_COMMAND_COUNT].command >= 4) && (result[pos + MAX_COMMAND_COUNT].value >= 0))
+ result[pos + MAX_COMMAND_COUNT].value += (result[pos].command == 6) ? -MAX_COMMAND_COUNT : MAX_COMMAND_COUNT;
+ result[pos].count = MAX_COMMAND_COUNT;
+ }
+ for (next = pos = 0; pos < *size; pos ++)
+ if (pos == next)
+ next += result[pos].count;
+ else
+ result[pos].command = 7;
+ repack(&result, size);
+ return result;
+}
+
+struct command pick_command_for_pass (const unsigned char * data, const unsigned char * flipped, const unsigned char * reversed, const short * sources,
+ unsigned short length, unsigned short position, unsigned flags) {
+ struct command result = pick_repetition_for_pass(data, length, position, flags);
+ if (result.count >= MULTIPASS_SKIP_THRESHOLD) return result;
+ unsigned char p;
+ for (p = 0; p < 3; p ++) {
+ struct command temp = pick_copy_for_pass(data, p[(const unsigned char * []) {data, flipped, reversed}], sources, p + 4, length, position, flags);
+ if (temp.command == 7) continue;
+ if (temp.count > result.count) result = temp;
+ }
+ if ((result.command >= 4) && (result.value >= (position - LOOKBACK_LIMIT))) result.value -= position;
+ return result;
+}
+
+struct command pick_repetition_for_pass (const unsigned char * data, unsigned short length, unsigned short position, unsigned flags) {
+ unsigned short p;
+ if (data[position]) {
+ if ((position + 1) >= length) return (struct command) {.command = 1, .count = 1, .value = data[position]};
+ struct command result;
+ if (!(flags & 8) && (data[position] == data[position + 1]))
+ result = (struct command) {.command = 1, .value = data[position]};
+ else
+ result = (struct command) {.command = 2, .value = data[position] | (data[position + 1] << 8)};
+ for (p = 1; ((position + p) < length) && (p < LOOKAHEAD_LIMIT); p ++) if (data[position + p] != data[position + (p & 1)]) break;
+ result.count = p;
+ return result;
+ } else {
+ for (p = position + 1; (p < length) && (p < (position + LOOKAHEAD_LIMIT)); p ++) if (data[p]) break;
+ return (struct command) {.command = 3, .count = p - position};
+ }
+}
+
+struct command pick_copy_for_pass (const unsigned char * data, const unsigned char * reference, const short * sources, unsigned char command_type,
+ unsigned short length, unsigned short position, unsigned flags) {
+ struct command result = {.command = 7, .count = (flags & 4) ? 4 : 3};
+ if (length < 3) return result;
+ unsigned refpos, count;
+ const unsigned char * current;
+ unsigned char buffer[6] = {0};
+ memcpy(buffer, reference + length - 3, 3);
+ while (*sources >= 0) {
+ refpos = *(sources ++);
+ if (command_type == 6) refpos = length - 1 - refpos;
+ if (refpos >= (length - 3))
+ current = buffer + refpos - (length - 3);
+ else
+ current = reference + refpos;
+ if (memcmp(data + position, current, 4)) continue;
+ for (count = 4; (count < (length - position)) && (count < (length - refpos)); count ++) if (data[position + count] != current[count]) break;
+ if (count > (length - refpos)) count = length - refpos;
+ if (count > (length - position)) count = length - position;
+ if (result.count > count) continue;
+ result = (struct command) {.command = command_type, .count = count, .value = sources[-1]};
+ }
+ return result;
+}
diff --git a/tools/lz/nullcomp.c b/tools/lz/nullcomp.c
new file mode 100644
index 000000000..d4535bd39
--- /dev/null
+++ b/tools/lz/nullcomp.c
@@ -0,0 +1,20 @@
+#include "proto.h"
+
+/*
+ Null compressor: stores data uncompressed, using literal (0) commands only.
+ Methods defined: 2
+ Flags values: 0 = split a trailing 33-to-64-byte block at the end into two short blocks; 1 = don't
+*/
+
+struct command * store_uncompressed (__attribute__((unused)) const unsigned char * data, __attribute__((unused)) const unsigned char * bitflipped, unsigned short * size, unsigned flags) {
+ unsigned short position, block, remainder = *size;
+ struct command * result = NULL;
+ *size = 0;
+ for (position = 0; remainder; position += block, remainder -= block) {
+ block = (remainder > MAX_COMMAND_COUNT) ? MAX_COMMAND_COUNT : remainder;
+ if (!(flags & 1) && (block <= (2 * SHORT_COMMAND_COUNT)) && (block > SHORT_COMMAND_COUNT)) block = SHORT_COMMAND_COUNT;
+ result = realloc(result, sizeof(struct command) * (1 + *size));
+ result[(*size) ++] = (struct command) {.command = 0, .count = block, .value = position};
+ }
+ return result;
+}
diff --git a/tools/lz/options.c b/tools/lz/options.c
new file mode 100644
index 000000000..8e5d05a7b
--- /dev/null
+++ b/tools/lz/options.c
@@ -0,0 +1,141 @@
+#include "proto.h"
+
+struct options get_options (int argc, char ** argv) {
+ struct options result = {.input = NULL, .output = NULL, .mode = 0, .alignment = 0, .method = COMPRESSION_METHODS};
+ const char * program_name = *argv;
+ int compressor = -1;
+ if (argc == 1) usage(program_name);
+ for (argv ++; *argv; argv ++) {
+ if (**argv != '-') break;
+ if (!1[*argv]) break;
+ if (!strcmp(*argv, "--")) {
+ argv ++;
+ break;
+ } else if (!(strcmp(*argv, "--text") && strcmp(*argv, "-t")))
+ result.mode = 1;
+ else if (!(strcmp(*argv, "--binary") && strcmp(*argv, "-b")))
+ result.mode = 0;
+ else if (!(strcmp(*argv, "--uncompress") && strcmp(*argv, "-u")))
+ result.mode = 2;
+ else if (!(strcmp(*argv, "--dump") && strcmp(*argv, "-d")))
+ result.mode = 3;
+ else if (!(strcmp(*argv, "--align") && strncmp(*argv, "-a", 2)))
+ result.alignment = parse_numeric_option_argument(&argv, 12);
+ else if (!(strcmp(*argv, "--method") && strncmp(*argv, "-m", 2)))
+ result.method = parse_numeric_option_argument(&argv, COMPRESSION_METHODS - 1);
+ else if (!(strcmp(*argv, "--compressor") && strncmp(*argv, "-c", 2)))
+ compressor = parse_compressor_option_argument(&argv);
+ else if (!(strcmp(*argv, "--optimize") && strcmp(*argv, "-o"))) {
+ result.method = COMPRESSION_METHODS;
+ compressor = -1;
+ } else if (!(strcmp(*argv, "--help") && strcmp(*argv, "-?")))
+ usage(program_name);
+ else if (!(strcmp(*argv, "--list") && strcmp(*argv, "-l")))
+ list_compressors();
+ else
+ error_exit(3, "unknown option: %s", *argv);
+ }
+ if (compressor >= 0) {
+ if (result.method >= COMPRESSION_METHODS) result.method = 0;
+ if (result.method >= compressors[compressor].methods)
+ error_exit(3, "method for the %s compressor must be between 0 and %u", compressors[compressor].name, compressors[compressor].methods - 1);
+ while (compressor > 0) result.method += compressors[-- compressor].methods;
+ }
+ if (*argv) {
+ if (strcmp(*argv, "-")) result.input = *argv;
+ if (*(++ argv)) {
+ if (argv[1]) error_exit(3, "too many command-line arguments");
+ if (strcmp(*argv, "-")) result.output = *argv;
+ }
+ }
+ return result;
+}
+
+unsigned parse_numeric_option_argument (char *** alp, unsigned limit) {
+ const char * option;
+ const char * value = get_argument_for_option(alp, &option);
+ char * error;
+ unsigned long result = strtoul(value, &error, 10);
+ if (*error) error_exit(3, "invalid argument to option %s", option);
+ if (result > limit) error_exit(3, "argument to option %s must be between 0 and %u", option, limit);
+ return result;
+}
+
+int parse_compressor_option_argument (char *** alp) {
+ const char * name = get_argument_for_option(alp, NULL);
+ if (!strcmp(name, "*")) return -1;
+ int result = -1;
+ unsigned length = strlen(name);
+ const struct compressor * compressor;
+ for (compressor = compressors; compressor -> name; compressor ++) {
+ if (strncmp(name, compressor -> name, length)) continue;
+ if (result >= 0) error_exit(3, "ambiguous compressor prefix: %s", name);
+ result = compressor - compressors;
+ }
+ if (result < 0) error_exit(3, "unknown compressor: %s", name);
+ return result;
+}
+
+const char * get_argument_for_option (char *** alp, const char ** option_name) {
+ // alp: argument list pointer (i.e., address of the current value of argv after indexing)
+ // will point at the last consumed argument on exit (since the caller will probably increment it once more)
+ const char * option;
+ const char * result;
+ if (1[**alp] == '-') {
+ option = *((*alp) ++);
+ result = **alp;
+ } else {
+ option_name_buffer[1] = 1[**alp];
+ option = option_name_buffer;
+ result = **alp + 2;
+ }
+ if (!(result && *result)) error_exit(3, "option %s requires an argument", option);
+ if (option_name) *option_name = option;
+ return result;
+}
+
+noreturn usage (const char * program_name) {
+ fprintf(stderr, "Usage: %s [<options>] [<source file> [<output>]]\n\n", program_name);
+ fputs("Execution mode:\n", stderr);
+ fputs(" -b, --binary Output the command stream as binary data (default).\n", stderr);
+ fputs(" -t, --text Output the command stream as text.\n", stderr);
+ fputs(" -u, --uncompress Process a compressed file and output the original data.\n", stderr);
+ fputs(" -d, --dump Process a compressed file and dump the command stream as\n", stderr);
+ fputs(" text (as if compressed with the --text option).\n", stderr);
+ fputs(" -l, --list List compressors and their method numbers.\n", stderr);
+ fputs(" -?, --help Print this help text and exit.\n", stderr);
+ fputs("Compression options:\n", stderr);
+ fputs(" -o, --optimize Use the best combination of compression\n", stderr);
+ fputs(" methods available (default).\n", stderr);
+ fputs(" -m<number>, --method <number> Use only one specific compression method.\n", stderr);
+ fprintf(stderr, " Valid method numbers are between 0 and %u.\n", COMPRESSION_METHODS - 1);
+ fputs(" -c<name>, --compressor <name> Use the specified compressor: the method\n", stderr);
+ fputs(" number will be relative to that compressor.\n", stderr);
+ fputs(" Any prefix of the compressor name may be\n", stderr);
+ fputs(" specified. Use * to indicate any compressor.\n", stderr);
+ fputs(" -a<number>, --align <number> Pad the compressed output with zeros until\n", stderr);
+ fputs(" the size has the specified number of low bits\n", stderr);
+ fputs(" cleared (default: 0).\n", stderr);
+ fputs("The source and output filenames can be given as - (or omitted) to use standard\n", stderr);
+ fputs("input and output. Use -- to indicate that subsequent arguments are file names.\n", stderr);
+ exit(3);
+}
+
+noreturn list_compressors (void) {
+ const struct compressor * compressor;
+ unsigned current, length = 10;
+ for (compressor = compressors; compressor -> name; compressor ++) if ((current = strlen(compressor -> name)) > length) length = current;
+ fprintf(stderr, "%-*s Offset Methods\n", length, "Compressor");
+ for (current = 0; current < length; current ++) putc('-', stderr);
+ fputs(" ------ -------\n", stderr);
+ current = 0;
+ for (compressor = compressors; compressor -> name; compressor ++) {
+ fprintf(stderr, "%-*s %6u %7u\n", length, compressor -> name, current, compressor -> methods);
+ current += compressor -> methods;
+ }
+ putc('\n', stderr);
+ fputs("Note: the offset indicates the compressor's lowest method number when the\n", stderr);
+ fputs("--compressor option is not given. When that option is used, every compressor's\n", stderr);
+ fputs("methods are numbered from zero.\n", stderr);
+ exit(3);
+}
diff --git a/tools/lz/output.c b/tools/lz/output.c
new file mode 100644
index 000000000..43e7ba928
--- /dev/null
+++ b/tools/lz/output.c
@@ -0,0 +1,138 @@
+#include "proto.h"
+
+void write_commands_to_textfile (const char * file, const struct command * commands, unsigned count, const unsigned char * input_stream,
+ unsigned char alignment) {
+ FILE * fp = file ? fopen(file, "w") : stdout;
+ if (!fp) error_exit(1, "could not open file %s for writing", file);
+ unsigned length = 0;
+ while (count --) {
+ write_command_to_textfile(fp, *commands, input_stream);
+ length += command_size(*(commands ++));
+ }
+ if (fputs("\tlzend\n", fp) < 0) error_exit(1, "could not write terminator to compressed output");
+ length = ~length & ((1 << alignment) - 1);
+ if (length --) {
+ int rv = fputs("\tdb 0", fp);
+ while ((rv >= 0) && length --) rv = fputs(", 0", fp);
+ if (rv >= 0) rv = -(putc('\n', fp) == EOF);
+ if (rv < 0) error_exit(1, "could not write padding to compressed output");
+ }
+ if (file) fclose(fp);
+}
+
+void write_commands_and_padding_to_textfile (const char * file, const struct command * commands, unsigned count, const unsigned char * input_stream,
+ unsigned padding_offset, unsigned padding_size) {
+ FILE * fp = file ? fopen(file, "w") : stdout;
+ if (!fp) error_exit(1, "could not open file %s for writing", file);
+ while (count --) write_command_to_textfile(fp, *(commands ++), input_stream);
+ if (fputs("\tlzend\n", fp) < 0) error_exit(1, "could not write terminator to compressed output");
+ if (padding_size) {
+ input_stream += padding_offset;
+ int rv = fprintf(fp, "\tdb $%02hhx", *(input_stream ++));
+ while ((rv >= 0) && (-- padding_size)) rv = fprintf(fp, ", $%02hhx", *(input_stream ++));
+ if (rv >= 0) rv = -(putc('\n', fp) == EOF);
+ if (rv < 0) error_exit(1, "could not write padding to compressed output");
+ }
+ if (file) fclose(fp);
+}
+
+void write_command_to_textfile (FILE * fp, struct command command, const unsigned char * input_stream) {
+ if ((!command.count) || (command.count > MAX_COMMAND_COUNT)) error_exit(2, "invalid command in output stream");
+ int rv, pos;
+ const char * kind;
+ switch (command.command) {
+ case 0:
+ if ((rv = fprintf(fp, "\tlzdata")) < 0) break;
+ for (pos = 0; pos < command.count; pos ++) if ((rv = fprintf(fp, "%s$%02hhx", pos ? ", " : " ", input_stream[command.value + pos])) < 0) break;
+ rv = putc('\n', fp);
+ break;
+ case 1:
+ if ((command.value < 0) || (command.value > 255)) error_exit(2, "invalid command in output stream");
+ rv = fprintf(fp, "\tlzrepeat %u, $%02hhx\n", command.count, (unsigned char) command.value);
+ break;
+ case 2:
+ if (command.value < 0) error_exit(2, "invalid command in output stream");
+ rv = fprintf(fp, "\tlzrepeat %u, $%02hhx, $%02hhx\n", command.count, (unsigned char) command.value, (unsigned char) (command.value >> 8));
+ break;
+ case 3:
+ rv = fprintf(fp, "\tlzzero %u\n", command.count);
+ break;
+ case 4:
+ kind = "normal";
+ goto copy;
+ case 5:
+ kind = "flipped";
+ goto copy;
+ case 6:
+ kind = "reversed";
+ copy:
+ if ((command.value < -LOOKBACK_LIMIT) || (command.value >= MAX_FILE_SIZE)) error_exit(2, "invalid command in output stream");
+ if (command.value < 0)
+ rv = fprintf(fp, "\tlzcopy %s, %u, %d\n", kind, command.count, command.value);
+ else
+ rv = fprintf(fp, "\tlzcopy %s, %u, $%04hx\n", kind, command.count, (unsigned short) command.value);
+ break;
+ default:
+ error_exit(2, "invalid command in output stream");
+ }
+ if (rv < 0) error_exit(1, "could not write command to compressed output");
+}
+
+void write_commands_to_file (const char * file, const struct command * commands, unsigned count, const unsigned char * input_stream, unsigned char alignment) {
+ FILE * fp = file ? fopen(file, "wb") : stdout;
+ if (!fp) error_exit(1, "could not open file %s for writing", file);
+ unsigned length = 0;
+ while (count --) {
+ write_command_to_file(fp, *commands, input_stream);
+ length += command_size(*(commands ++));
+ }
+ if (putc(-1, fp) == EOF) error_exit(1, "could not write terminator to compressed output");
+ length = ~length & ((1 << alignment) - 1);
+ while (length --) if (putc(0, fp) == EOF) error_exit(1, "could not write padding to compressed output");
+ if (file) fclose(fp);
+}
+
+void write_command_to_file (FILE * fp, struct command command, const unsigned char * input_stream) {
+ if ((!command.count) || (command.count > MAX_COMMAND_COUNT)) error_exit(2, "invalid command in output stream");
+ unsigned char buf[4];
+ unsigned char * pos = buf;
+ int n;
+ command.count --;
+ if (command.count < SHORT_COMMAND_COUNT)
+ *(pos ++) = (command.command << 5) + command.count;
+ else {
+ *(pos ++) = 224 + (command.command << 2) + (command.count >> 8);
+ *(pos ++) = command.count;
+ }
+ switch (command.command) {
+ case 1: case 2:
+ if ((command.value < 0) || (command.value >= (1 << (command.command << 3)))) error_exit(2, "invalid command in output stream");
+ for (n = 0; n < command.command; n ++) *(pos ++) = command.value >> (n << 3);
+ case 0: case 3:
+ break;
+ default:
+ if ((command.value < -LOOKBACK_LIMIT) || (command.value >= MAX_FILE_SIZE)) error_exit(2, "invalid command in output stream");
+ if (command.value < 0)
+ *(pos ++) = command.value ^ 127;
+ else {
+ *(pos ++) = command.value >> 8;
+ *(pos ++) = command.value;
+ }
+ }
+ if (fwrite(buf, 1, pos - buf, fp) != (pos - buf)) error_exit(1, "could not write command to compressed output");
+ if (command.command) return;
+ command.count ++;
+ if (fwrite(input_stream + command.value, 1, command.count, fp) != command.count) error_exit(1, "could not write data to compressed output");
+}
+
+void write_raw_data_to_file (const char * file, const void * data, unsigned length) {
+ FILE * fp = file ? fopen(file, "w") : stdout;
+ if (!fp) error_exit(1, "could not open file %s for writing", file);
+ while (length) {
+ unsigned rv = fwrite(data, 1, length, fp);
+ if (!rv) error_exit(1, "could not write raw data to output");
+ data = (const char *) data + rv;
+ length -= rv;
+ }
+ if (file) fclose(fp);
+}
diff --git a/tools/lz/packing.c b/tools/lz/packing.c
new file mode 100644
index 000000000..0cb9fae90
--- /dev/null
+++ b/tools/lz/packing.c
@@ -0,0 +1,56 @@
+#include "proto.h"
+
+void optimize (struct command * commands, unsigned short count) {
+ while (count && (commands -> command == 7)) commands ++, count --;
+ if (count < 2) return;
+ struct command * end = commands + count;
+ struct command * next;
+ for (next = commands + 1; next < end; next ++) {
+ if (next -> command == 7) continue;
+ if (
+ !(commands -> command) &&
+ (command_size(*next) == next -> count) &&
+ ((commands -> count + next -> count) <= MAX_COMMAND_COUNT) &&
+ ((commands -> count > SHORT_COMMAND_COUNT) || ((commands -> count + next -> count) <= SHORT_COMMAND_COUNT))
+ ) {
+ commands -> count += next -> count;
+ next -> command = 7;
+ continue;
+ }
+ if (next -> command == commands -> command)
+ switch (commands -> command) {
+ case 0:
+ if ((commands -> value + commands -> count) != next -> value) break;
+ commands -> count += next -> count;
+ next -> command = 7;
+ if (commands -> count <= MAX_COMMAND_COUNT) continue;
+ next -> command = 0;
+ next -> value = commands -> value + MAX_COMMAND_COUNT;
+ next -> count = commands -> count - MAX_COMMAND_COUNT;
+ commands -> count = MAX_COMMAND_COUNT;
+ break;
+ case 1:
+ if (commands -> value != next -> value) break;
+ // fallthrough
+ case 3:
+ if ((commands -> count + next -> count) <= MAX_COMMAND_COUNT) {
+ commands -> count += next -> count;
+ next -> command = 7;
+ continue;
+ }
+ next -> count = (commands -> count + next -> count) - MAX_COMMAND_COUNT;
+ commands -> count = MAX_COMMAND_COUNT;
+ }
+ commands = next;
+ }
+}
+
+void repack (struct command ** commands, unsigned short * length) {
+ struct command * new_commands = malloc(sizeof(struct command) * *length);
+ struct command * current = new_commands;
+ unsigned short p;
+ for (p = 0; p < *length; p ++) if (p[*commands].command != 7) *(current ++) = p[*commands];
+ free(*commands);
+ *commands = new_commands;
+ *length = current - new_commands;
+}
diff --git a/tools/lz/proto.h b/tools/lz/proto.h
new file mode 100644
index 000000000..845774221
--- /dev/null
+++ b/tools/lz/proto.h
@@ -0,0 +1,107 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+
+#define NUM_COMPRESSORS 4
+#define COMPRESSION_METHODS 96 /* sum of all values for the methods field in compressors */
+#define MAX_FILE_SIZE 32768
+#define SHORT_COMMAND_COUNT 32
+#define MAX_COMMAND_COUNT 1024
+#define LOOKBACK_LIMIT 128 /* highest negative valid count for a copy command */
+#define LOOKAHEAD_LIMIT 3072 /* maximum lookahead distance for the first pass of multi-pass compression */
+#define MULTIPASS_SKIP_THRESHOLD 64
+
+#if __STDC_VERSION__ >= 201112L
+ // <noreturn.h> forces "noreturn void", which is silly and redundant; this is simpler
+ #define noreturn _Noreturn void
+#else
+ #define noreturn void /* fallback */
+#endif
+
+struct command {
+ unsigned command: 3; // commands 0-6 as per compression spec; command 7 is used as a dummy placeholder
+ unsigned count: 12; // always equals the uncompressed data length
+ signed value: 17; // offset for commands 0 (into source) and 4-6 (into decompressed output); repeated bytes for commands 1-2
+};
+
+struct compressor {
+ unsigned methods;
+ const char * name;
+ struct command * (* function) (const unsigned char *, const unsigned char *, unsigned short *, unsigned);
+};
+
+struct options {
+ const char * input;
+ const char * output;
+ unsigned method; // method to use, or >= COMPRESSION_METHODS to try them all
+ unsigned char mode; // 0: compress, 1: compress to text, 2: uncompress, 3: dump commands as text
+ unsigned char alignment; // 1 << value
+};
+
+// global.c
+extern const struct compressor compressors[];
+extern const unsigned char bit_flipping_table[];
+extern char option_name_buffer[];
+
+// main.c
+int main(int, char **);
+struct command * compress(const unsigned char *, unsigned short *, unsigned);
+
+// merging.c
+struct command * select_optimal_sequence(struct command **, const unsigned short *, unsigned short *);
+struct command * select_command_sequence(struct command **, const unsigned short *, int, unsigned short *);
+struct command * merge_command_sequences(const struct command *, unsigned short, const struct command *, unsigned short, unsigned short *);
+
+// mpcomp.c
+struct command * try_compress_multi_pass(const unsigned char *, const unsigned char *, unsigned short *, unsigned);
+struct command pick_command_for_pass(const unsigned char *, const unsigned char *, const unsigned char *, const short *, unsigned short,
+ unsigned short, unsigned);
+struct command pick_repetition_for_pass(const unsigned char *, unsigned short, unsigned short, unsigned);
+struct command pick_copy_for_pass(const unsigned char *, const unsigned char *, const short *, unsigned char, unsigned short, unsigned short, unsigned);
+
+// nullcomp.c
+struct command * store_uncompressed(const unsigned char *, const unsigned char *, unsigned short *, unsigned);
+
+// options.c
+struct options get_options(int, char **);
+unsigned parse_numeric_option_argument(char ***, unsigned);
+int parse_compressor_option_argument(char ***);
+const char * get_argument_for_option(char ***, const char **);
+noreturn usage(const char *);
+noreturn list_compressors(void);
+
+// output.c
+void write_commands_to_textfile(const char *, const struct command *, unsigned, const unsigned char *, unsigned char);
+void write_commands_and_padding_to_textfile(const char *, const struct command *, unsigned, const unsigned char *, unsigned, unsigned);
+void write_command_to_textfile(FILE *, struct command, const unsigned char *);
+void write_commands_to_file(const char *, const struct command *, unsigned, const unsigned char *, unsigned char);
+void write_command_to_file(FILE *, struct command, const unsigned char *);
+void write_raw_data_to_file(const char *, const void *, unsigned);
+
+// packing.c
+void optimize(struct command *, unsigned short);
+void repack(struct command **, unsigned short *);
+
+// repcomp.c
+struct command * try_compress_repetitions(const unsigned char *, const unsigned char *, unsigned short *, unsigned);
+struct command find_repetition_at_position(const unsigned char *, unsigned short, unsigned short);
+
+// spcomp.c
+struct command * try_compress_single_pass(const unsigned char *, const unsigned char *, unsigned short *, unsigned);
+struct command find_best_copy(const unsigned char *, unsigned short, unsigned short, const unsigned char *, unsigned);
+unsigned short scan_forwards(const unsigned char *, unsigned short, const unsigned char *, unsigned short, short *);
+unsigned short scan_backwards(const unsigned char *, unsigned short, unsigned short, short *);
+struct command find_best_repetition(const unsigned char *, unsigned short, unsigned short);
+
+// uncomp.c
+struct command * get_commands_from_file(const unsigned char *, unsigned short * restrict, unsigned short * restrict);
+unsigned char * get_uncompressed_data(const struct command *, const unsigned char *, unsigned short *);
+
+// util.c
+noreturn error_exit(int, const char *, ...);
+unsigned char * read_file_into_buffer(const char *, unsigned short *);
+struct command pick_best_command(unsigned, struct command, ...);
+int is_better(struct command, struct command);
+short command_size(struct command);
+unsigned short compressed_length(const struct command *, unsigned short);
diff --git a/tools/lz/repcomp.c b/tools/lz/repcomp.c
new file mode 100644
index 000000000..f2bbad8a6
--- /dev/null
+++ b/tools/lz/repcomp.c
@@ -0,0 +1,63 @@
+#include "proto.h"
+
+/*
+ Repetitions compressor: compresses the data only using a subset of the available repetition commands.
+ Methods defined: 6
+ Flags values: the value plus one is taken as a bitfield indicating which kinds of repetition commands are used
+ (lowest bit to highest: repeat single byte (1), repeat two bytes (2), repeat zeros (3)).
+*/
+
+struct command * try_compress_repetitions (const unsigned char * data, __attribute__((unused)) const unsigned char * bitflipped, unsigned short * size, unsigned flags) {
+ unsigned short pos = 0, skipped = 0;
+ struct command * result = malloc(*size * sizeof(struct command));
+ struct command * current = result;
+ struct command candidate;
+ flags = (flags + 1) << 1;
+ while (pos < *size) {
+ candidate = find_repetition_at_position(data, pos, *size);
+ if ((candidate.command == 3) && !(flags & 8)) {
+ candidate.command = 1;
+ candidate.value = 0;
+ }
+ if ((candidate.command == 1) && !(flags & 2)) {
+ candidate.command = 2;
+ candidate.value |= candidate.value << 8;
+ }
+ if ((flags & (1 << candidate.command)) && (command_size(candidate) <= candidate.count)) {
+ if (skipped) *(current ++) = (struct command) {.command = 0, .count = skipped, .value = pos - skipped};
+ skipped = 0;
+ *(current ++) = candidate;
+ pos += candidate.count;
+ } else {
+ pos ++;
+ if ((++ skipped) == MAX_COMMAND_COUNT) {
+ *(current ++) = (struct command) {.command = 0, .count = MAX_COMMAND_COUNT, .value = pos - MAX_COMMAND_COUNT};
+ skipped = 0;
+ }
+ }
+ }
+ if (skipped) *(current ++) = (struct command) {.command = 0, .count = skipped, .value = pos - skipped};
+ *size = current - result;
+ result = realloc(result, *size * sizeof(struct command));
+ return result;
+}
+
+struct command find_repetition_at_position (const unsigned char * data, unsigned short position, unsigned short length) {
+ if ((position + 1) >= length) return data[position] ? ((struct command) {.command = 7}) : ((struct command) {.command = 3, .count = 1});
+ unsigned char value[2] = {data[position], data[position + 1]};
+ unsigned repcount, limit = length - position;
+ if (limit > MAX_COMMAND_COUNT) limit = MAX_COMMAND_COUNT;
+ for (repcount = 2; (repcount < limit) && (data[position + repcount] == value[repcount & 1]); repcount ++);
+ struct command result;
+ result.count = repcount;
+ if (*value != value[1]) {
+ if (!*value && (repcount < 3)) return (struct command) {.command = 3, .count = 1};
+ result.command = 2;
+ result.value = ((unsigned) (*value)) | (((unsigned) (value[1])) << 8);
+ } else if (*value) {
+ result.command = 1;
+ result.value = *value;
+ } else
+ result.command = 3;
+ return result;
+}
diff --git a/tools/lz/spcomp.c b/tools/lz/spcomp.c
new file mode 100644
index 000000000..b61848365
--- /dev/null
+++ b/tools/lz/spcomp.c
@@ -0,0 +1,141 @@
+#include "proto.h"
+
+/*
+ Single-pass compressor: attempts to compress the data in a single pass, selecting the best command at each
+ position within some constraints.
+ Methods defined: 72
+ Flags values:
+ Bit fields (will trigger alternate behavior if set):
+ 1: prefer repetition commands over copy commands of equal count
+ 2: don't emit a copy or repetition with a count equal to its size when the previous command is a literal (0) that
+ is not at maximum size (32 or 1024)
+ 4: don't emit long copy commands
+ Selector values (pick one from each group and add them to the bit fields):
+ - Scan delay: number of bytes that are forced into literal (0) commands after each non-literal command:
+ 0: 0 bytes
+ 8: 1 byte
+ 16: 2 bytes
+ - Copy command preference (when the command counts are tied), in order from most to least:
+ 0: normal (4), reversed (6), flipped (5)
+ 24: reversed (6), flipped (5), normal (4)
+ 48: flipped (5), reversed (6), normal (4)
+*/
+
+struct command * try_compress_single_pass (const unsigned char * data, const unsigned char * bitflipped, unsigned short * length, unsigned flags) {
+ struct command * commands = malloc(sizeof(struct command) * *length);
+ memset(commands, -1, sizeof(struct command) * *length);
+ struct command * current_command = commands;
+ unsigned short position = 0, previous_data = 0;
+ unsigned char scan_delay = 0, scan_delay_flag = (flags >> 3) % 3;
+ struct command copy, repetition;
+ while (position < *length) {
+ copy = find_best_copy(data, position, *length, bitflipped, flags);
+ repetition = find_best_repetition(data, position, *length);
+ if (flags & 1)
+ *current_command = pick_best_command(2, repetition, copy);
+ else
+ *current_command = pick_best_command(2, copy, repetition);
+ *current_command = pick_best_command(2, (struct command) {.command = 0, .count = 1, .value = position}, *current_command);
+ if ((flags & 2) && (command_size(*current_command) == current_command -> count))
+ if (previous_data && (previous_data != SHORT_COMMAND_COUNT) && (previous_data != MAX_COMMAND_COUNT))
+ *current_command = (struct command) {.command = 0, .count = 1, .value = position};
+ if (scan_delay_flag) {
+ if (scan_delay >= scan_delay_flag)
+ scan_delay = 0;
+ else if (current_command -> command) {
+ scan_delay ++;
+ *current_command = (struct command) {.command = 0, .count = 1, .value = position};
+ }
+ }
+ if (current_command -> command)
+ previous_data = 0;
+ else
+ previous_data += current_command -> count;
+ position += (current_command ++) -> count;
+ }
+ optimize(commands, current_command - commands);
+ repack(&commands, length);
+ return commands;
+}
+
+struct command find_best_copy (const unsigned char * data, unsigned short position, unsigned short length, const unsigned char * bitflipped, unsigned flags) {
+ struct command simple = {.command = 7};
+ struct command flipped = simple, backwards = simple;
+ short count, offset;
+ if ((count = scan_forwards(data + position, length - position, data, position, &offset)))
+ simple = (struct command) {.command = 4, .count = count, .value = offset};
+ if ((count = scan_forwards(data + position, length - position, bitflipped, position, &offset)))
+ flipped = (struct command) {.command = 5, .count = count, .value = offset};
+ if ((count = scan_backwards(data, length - position, position, &offset)))
+ backwards = (struct command) {.command = 6, .count = count, .value = offset};
+ struct command command;
+ switch (flags / 24) {
+ case 0: command = pick_best_command(3, simple, backwards, flipped); break;
+ case 1: command = pick_best_command(3, backwards, flipped, simple); break;
+ case 2: command = pick_best_command(3, flipped, backwards, simple);
+ }
+ if ((flags & 4) && (command.count > SHORT_COMMAND_COUNT)) command.count = SHORT_COMMAND_COUNT;
+ return command;
+}
+
+unsigned short scan_forwards (const unsigned char * target, unsigned short limit, const unsigned char * source, unsigned short real_position, short * offset) {
+ unsigned short best_match, best_length = 0;
+ unsigned short current_length;
+ unsigned short position;
+ for (position = 0; position < real_position; position ++) {
+ if (source[position] != *target) continue;
+ for (current_length = 0; (current_length < limit) && (source[position + current_length] == target[current_length]); current_length ++);
+ if (current_length > MAX_COMMAND_COUNT) current_length = MAX_COMMAND_COUNT;
+ if (current_length < best_length) continue;
+ best_match = position;
+ best_length = current_length;
+ }
+ if (!best_length) return 0;
+ if ((best_match + LOOKBACK_LIMIT) >= real_position)
+ *offset = best_match - real_position;
+ else
+ *offset = best_match;
+ return best_length;
+}
+
+unsigned short scan_backwards (const unsigned char * data, unsigned short limit, unsigned short real_position, short * offset) {
+ if (real_position < limit) limit = real_position;
+ unsigned short best_match, best_length = 0;
+ unsigned short current_length;
+ unsigned short position;
+ for (position = 0; position < real_position; position ++) {
+ if (data[position] != data[real_position]) continue;
+ for (current_length = 0; (current_length <= position) && (current_length < limit) &&
+ (data[position - current_length] == data[real_position + current_length]); current_length ++);
+ if (current_length > MAX_COMMAND_COUNT) current_length = MAX_COMMAND_COUNT;
+ if (current_length < best_length) continue;
+ best_match = position;
+ best_length = current_length;
+ }
+ if (!best_length) return 0;
+ if ((best_match + LOOKBACK_LIMIT) >= real_position)
+ *offset = best_match - real_position;
+ else
+ *offset = best_match;
+ return best_length;
+}
+
+struct command find_best_repetition (const unsigned char * data, unsigned short position, unsigned short length) {
+ if ((position + 1) >= length) return data[position] ? ((struct command) {.command = 7}) : ((struct command) {.command = 3, .count = 1});
+ unsigned char value[2] = {data[position], data[position + 1]};
+ unsigned repcount, limit = length - position;
+ if (limit > MAX_COMMAND_COUNT) limit = MAX_COMMAND_COUNT;
+ for (repcount = 2; (repcount < limit) && (data[position + repcount] == value[repcount & 1]); repcount ++);
+ struct command result;
+ result.count = repcount;
+ if (*value != value[1]) {
+ if (!*value && (repcount < 3)) return (struct command) {.command = 3, .count = 1};
+ result.command = 2;
+ result.value = ((unsigned) (*value)) | (((unsigned) (value[1])) << 8);
+ } else if (*value) {
+ result.command = 1;
+ result.value = *value;
+ } else
+ result.command = 3;
+ return result;
+}
diff --git a/tools/lz/uncomp.c b/tools/lz/uncomp.c
new file mode 100644
index 000000000..3544cd93b
--- /dev/null
+++ b/tools/lz/uncomp.c
@@ -0,0 +1,92 @@
+#include "proto.h"
+
+struct command * get_commands_from_file (const unsigned char * data, unsigned short * restrict size, unsigned short * restrict slack) {
+ struct command * result = malloc(*size * sizeof(struct command));
+ unsigned short remaining = *size;
+ struct command * current = result;
+ const unsigned char * rp = data;
+ while (1) {
+ if (!(remaining --)) goto error;
+ current -> command = *rp >> 5;
+ current -> count = *(rp ++) & 31;
+ if (current -> command == 7) {
+ current -> command = current -> count >> 2;
+ current -> count = (current -> count & 3) << 8;
+ if (current -> command == 7) {
+ // long commands inside long commands are not allowed, but if the count is 0x300 here, it means that the original byte was 0xff
+ if (current -> count == 0x300) break;
+ goto error;
+ }
+ if (!(remaining --)) goto error;
+ current -> count |= *(rp ++);
+ }
+ current -> count ++;
+ switch (current -> command) {
+ case 0:
+ if (remaining <= current -> count) goto error;
+ current -> value = rp - data;
+ rp += current -> count;
+ remaining -= current -> count;
+ case 3:
+ break;
+ case 1: case 2: {
+ unsigned char p;
+ if (remaining <= current -> command) goto error;
+ current -> value = 0;
+ for (p = 0; p < current -> command; p ++) current -> value |= *(rp ++) << (p << 3);
+ remaining -= current -> command;
+ } break;
+ default:
+ if (!(remaining --)) goto error;
+ if ((current -> value = *(rp ++)) & 128)
+ current -> value = 127 - current -> value;
+ else {
+ if (!(remaining --)) goto error;
+ current -> value = (current -> value << 8) | *(rp ++);
+ }
+ }
+ current ++;
+ }
+ if (slack) *slack = *size - (rp - data);
+ *size = current - result;
+ return realloc(result, *size * sizeof(struct command));
+ error:
+ free(result);
+ return NULL;
+}
+
+unsigned char * get_uncompressed_data (const struct command * commands, const unsigned char * compressed, unsigned short * size) {
+ const struct command * limit = commands + *size;
+ unsigned char * result = malloc(MAX_FILE_SIZE + MAX_COMMAND_COUNT);
+ unsigned char * current = result;
+ unsigned short p;
+ for (; commands < limit; commands ++) {
+ switch (commands -> command) {
+ case 0:
+ memcpy(current, compressed + commands -> value, commands -> count);
+ current += commands -> count;
+ break;
+ case 1: case 2:
+ for (p = 0; p < commands -> count; p ++) *(current ++) = commands -> value >> ((p % commands -> command) << 3);
+ break;
+ case 3:
+ memset(current, 0, commands -> count);
+ current += commands -> count;
+ break;
+ default: {
+ const unsigned char * ref = ((commands -> value < 0) ? current : result) + commands -> value;
+ for (p = 0; p < commands -> count; p ++) {
+ current[p] = ref[(commands -> command == 6) ? -(int) p : p];
+ if (commands -> command == 5) current[p] = bit_flipping_table[current[p]];
+ }
+ current += commands -> count;
+ }
+ }
+ if ((current - result) > MAX_FILE_SIZE) {
+ free(result);
+ return NULL;
+ }
+ }
+ *size = current - result;
+ return result;
+}
diff --git a/tools/lz/util.c b/tools/lz/util.c
new file mode 100644
index 000000000..d77ac7bcc
--- /dev/null
+++ b/tools/lz/util.c
@@ -0,0 +1,54 @@
+#include "proto.h"
+
+noreturn error_exit (int error_code, const char * error, ...) {
+ va_list ap;
+ va_start(ap, error);
+ fputs("error: ", stderr);
+ vfprintf(stderr, error, ap);
+ va_end(ap);
+ fputc('\n', stderr);
+ exit(error_code);
+}
+
+unsigned char * read_file_into_buffer (const char * file, unsigned short * size) {
+ FILE * fp = file ? fopen(file, "rb") : stdin;
+ if (!fp) error_exit(1, "could not open file %s for reading", file);
+ unsigned char * buf = malloc(MAX_FILE_SIZE + 1);
+ int rv = fread(buf, 1, MAX_FILE_SIZE + 1, fp);
+ if (file) fclose(fp);
+ if (rv < 0) error_exit(1, "could not read from file %s", file);
+ if (rv > MAX_FILE_SIZE) error_exit(1, "file %s is too big", file ? file : "<standard input>");
+ *size = rv;
+ return buf;
+}
+
+struct command pick_best_command (unsigned count, struct command command, ...) {
+ struct command result = command;
+ va_list ap;
+ va_start(ap, command);
+ while (-- count) {
+ command = va_arg(ap, struct command);
+ if (is_better(command, result)) result = command;
+ }
+ va_end(ap);
+ return result;
+}
+
+int is_better (struct command new, struct command old) {
+ if (new.command == 7) return 0;
+ if (old.command == 7) return 1;
+ short new_savings = new.count - command_size(new), old_savings = old.count - command_size(old);
+ return new_savings > old_savings;
+}
+
+short command_size (struct command command) {
+ short header_size = 1 + (command.count > SHORT_COMMAND_COUNT);
+ if (command.command & 4) return header_size + 1 + (command.value >= 0);
+ return header_size + command.command[(short []) {command.count, 1, 2, 0}];
+}
+
+unsigned short compressed_length (const struct command * commands, unsigned short count) {
+ unsigned short current, total = 0;
+ for (current = 0; current < count; current ++) if (commands[current].command != 7) total += command_size(commands[current]);
+ return total;
+}
diff --git a/tools/lzcomp.c b/tools/lzcomp.c
deleted file mode 100644
index 562a5ec08..000000000
--- a/tools/lzcomp.c
+++ /dev/null
@@ -1,512 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-
-#define COMPRESSION_METHODS 72
-
-struct command {
- unsigned command: 3;
- unsigned count: 12;
- signed value: 17;
-};
-
-struct options {
- const char * input;
- const char * output;
- unsigned char mode;
-};
-
-int main(int, char **);
-struct options get_options(char **);
-void usage(const char *);
-void error_exit(int, const char *, ...);
-void bit_flip(const unsigned char *, unsigned short, unsigned char *);
-unsigned char * read_file_into_buffer(const char *, unsigned short *);
-void write_commands_to_textfile(const char *, const struct command *, unsigned, const unsigned char *);
-void write_command_to_textfile(FILE *, struct command, const unsigned char *);
-void write_commands_to_file(const char *, const struct command *, unsigned, const unsigned char *);
-void write_command_to_file(FILE *, struct command, const unsigned char *);
-struct command * compress(const unsigned char *, unsigned short *);
-struct command * store_uncompressed(unsigned short *);
-struct command * try_compress(const unsigned char *, const unsigned char *, unsigned short *, unsigned);
-struct command find_best_copy(const unsigned char *, unsigned short, unsigned short, const unsigned char *, unsigned);
-unsigned short scan_forwards(const unsigned char *, unsigned short, const unsigned char *, unsigned short, short *);
-unsigned short scan_backwards(const unsigned char *, unsigned short, unsigned short, short *);
-struct command find_best_repetition(const unsigned char *, unsigned short, unsigned short);
-struct command pick_best_command(unsigned, struct command, ...);
-int is_better(struct command, struct command);
-short command_size(struct command);
-void optimize(struct command *, unsigned short);
-void repack(struct command **, unsigned short *);
-struct command * select_command_sequence(struct command **, const unsigned short *, unsigned, unsigned short *);
-struct command * merge_command_sequences(const struct command *, unsigned short, const struct command *, unsigned short, unsigned short *);
-unsigned short compressed_length(const struct command *, unsigned short);
-
-int main (int argc __attribute__((unused)), char ** argv) {
- struct options options = get_options(argv);
- unsigned short size;
- unsigned char * file_buffer = read_file_into_buffer(options.input, &size);
- struct command * compressed = compress(file_buffer, &size);
- if (options.mode)
- write_commands_to_textfile(options.output, compressed, size, file_buffer);
- else
- write_commands_to_file(options.output, compressed, size, file_buffer);
- free(file_buffer);
- free(compressed);
- return 0;
-}
-
-struct options get_options (char ** argv) {
- struct options result = {.input = NULL, .output = NULL, .mode = 0};
- const char * program_name = *argv;
- for (argv ++; *argv; argv ++) {
- if (strncmp(*argv, "--", 2)) break;
- if (!strcmp(*argv, "--")) {
- argv ++;
- break;
- } else if (!strcmp(*argv, "--text"))
- result.mode = 1;
- else if (!strcmp(*argv, "--binary"))
- result.mode = 0;
- else
- error_exit(3, "unknown option: %s", *argv);
- }
- if (!*argv) usage(program_name);
- result.input = *argv;
- result.output = argv[1];
- return result;
-}
-
-void usage (const char * program_name) {
- fprintf(stderr, "Usage: %s [<options>] <source file> [<compressed output>]\n\n", program_name);
- fputs("Options:\n", stderr);
- fputs(" --text Output the command stream as text.\n", stderr);
- fputs(" --binary Output the command stream as binary data (default).\n", stderr);
- fputs(" -- End of option list.\n", stderr);
- exit(3);
-}
-
-void error_exit (int error_code, const char * error, ...) {
- va_list ap;
- va_start(ap, error);
- fputs("error: ", stderr);
- vfprintf(stderr, error, ap);
- fputc('\n', stderr);
- exit(error_code);
-}
-
-void bit_flip (const unsigned char * data, unsigned short length, unsigned char * result) {
- unsigned char new_value, pos;
- while (length --) {
- new_value = 0;
- for (pos = 0; pos < 8; pos ++) new_value |= ((*data >> pos) & 1) << (7 - pos);
- *(result ++) = new_value;
- data ++;
- }
-}
-
-unsigned char * read_file_into_buffer (const char * file, unsigned short * size) {
- FILE * fp = fopen(file, "rb");
- if (!fp) error_exit(1, "could not open file %s for reading", file);
- unsigned char * buf = malloc(32769);
- int rv = fread(buf, 1, 32769, fp);
- fclose(fp);
- if (rv < 0) error_exit(1, "could not read from file %s", file);
- if (rv > 32768) error_exit(1, "file %s is too big", file);
- *size = rv;
- return buf;
-}
-
-void write_commands_to_textfile (const char * file, const struct command * commands, unsigned count, const unsigned char * input_stream) {
- FILE * fp = file ? fopen(file, "w") : stdout;
- if (!fp) error_exit(1, "could not open file %s for writing", file);
- while (count --) write_command_to_textfile(fp, *(commands ++), input_stream);
- if (fputs("\tlzend\n", fp) < 0) error_exit(1, "could not write terminator to compressed output");
- if (file) fclose(fp);
-}
-
-void write_command_to_textfile (FILE * fp, struct command command, const unsigned char * input_stream) {
- if ((!command.count) || (command.count > 1024)) error_exit(2, "invalid command in output stream");
- int rv = -1, pos;
- const char * kind;
- switch (command.command) {
- case 0:
- if ((rv = fprintf(fp, "\tlzdata")) < 0) break;
- for (pos = 0; pos < command.count; pos ++) if ((rv = fprintf(fp, "%s$%02hhx", pos ? ", " : " ", input_stream[command.value + pos])) < 0) break;
- rv = putc('\n', fp);
- break;
- case 1:
- if ((command.value < 0) || (command.value > 255)) error_exit(2, "invalid command in output stream");
- rv = fprintf(fp, "\tlzrepeat %u, $%02hhx\n", command.count, (unsigned char) command.value);
- break;
- case 2:
- if (command.value < 0) error_exit(2, "invalid command in output stream");
- rv = fprintf(fp, "\tlzrepeat %u, $%02hhx, $%02hhx\n", command.count, (unsigned char) command.value, (unsigned char) (command.value >> 8));
- break;
- case 3:
- rv = fprintf(fp, "\tlzzero %u\n", command.count);
- break;
- case 4:
- kind = "normal";
- goto copy;
- case 5:
- kind = "flipped";
- goto copy;
- case 6:
- kind = "reversed";
- copy:
- if ((command.value < -128) || (command.value > 32767)) error_exit(2, "invalid command in output stream");
- if (command.value < 0)
- rv = fprintf(fp, "\tlzcopy %s, %u, %d\n", kind, command.count, command.value);
- else
- rv = fprintf(fp, "\tlzcopy %s, %u, $%04hx\n", kind, command.count, (unsigned short) command.value);
- break;
- default:
- error_exit(2, "invalid command in output stream");
- }
- if (rv < 0) error_exit(1, "could not write command to compressed output");
-}
-
-void write_commands_to_file (const char * file, const struct command * commands, unsigned count, const unsigned char * input_stream) {
- FILE * fp = file ? fopen(file, "wb") : stdout;
- if (!fp) error_exit(1, "could not open file %s for writing", file);
- while (count --) write_command_to_file(fp, *(commands ++), input_stream);
- unsigned char terminator = -1;
- if (fwrite(&terminator, 1, 1, fp) != 1) error_exit(1, "could not write terminator to compressed output");
- if (file) fclose(fp);
-}
-
-void write_command_to_file (FILE * fp, struct command command, const unsigned char * input_stream) {
- if ((!command.count) || (command.count > 1024)) error_exit(2, "invalid command in output stream");
- unsigned char buf[4];
- unsigned char * pos = buf;
- int n;
- command.count --;
- if (command.count < 32)
- *(pos ++) = (command.command << 5) + command.count;
- else {
- *(pos ++) = 224 + (command.command << 2) + (command.count >> 8);
- *(pos ++) = command.count;
- }
- switch (command.command) {
- case 1: case 2:
- if ((command.value < 0) || (command.value >= (1 << (command.command << 3)))) error_exit(2, "invalid command in output stream");
- for (n = 0; n < command.command; n ++) *(pos ++) = command.value >> (n << 3);
- case 0: case 3:
- break;
- default:
- if ((command.value < -128) || (command.value > 32767)) error_exit(2, "invalid command in output stream");
- if (command.value < 0)
- *(pos ++) = command.value ^ 127;
- else {
- *(pos ++) = command.value >> 8;
- *(pos ++) = command.value;
- }
- }
- if (fwrite(buf, 1, pos - buf, fp) != (size_t)(pos - buf)) error_exit(1, "could not write command to compressed output");
- if (command.command) return;
- command.count ++;
- if (fwrite(input_stream + command.value, 1, command.count, fp) != command.count) error_exit(1, "could not write data to compressed output");
-}
-
-struct command * compress (const unsigned char * data, unsigned short * size) {
- unsigned char * bitflipped = malloc(*size);
- bit_flip(data, *size, bitflipped);
- struct command * compressed_sequences[COMPRESSION_METHODS + 1];
- unsigned short lengths[COMPRESSION_METHODS + 1];
- unsigned current;
- for (current = 0; current < COMPRESSION_METHODS; current ++) {
- lengths[current] = *size;
- compressed_sequences[current] = try_compress(data, bitflipped, lengths + current, current);
- }
- free(bitflipped);
- lengths[COMPRESSION_METHODS] = *size;
- compressed_sequences[COMPRESSION_METHODS] = store_uncompressed(lengths + COMPRESSION_METHODS);
- struct command * result = select_command_sequence(compressed_sequences, lengths, COMPRESSION_METHODS + 1, size);
- for (current = 0; current <= COMPRESSION_METHODS; current ++) free(compressed_sequences[current]);
- return result;
-}
-
-struct command * store_uncompressed (unsigned short * size) {
- unsigned short position, block, remainder = *size;
- struct command * result = NULL;
- *size = 0;
- for (position = 0; remainder; position += block, remainder -= block) {
- block = (remainder > 1024) ? 1024 : remainder;
- if ((block <= 64) && (block > 32)) block = 32;
- result = realloc(result, sizeof(struct command) * (1 + *size));
- result[(*size) ++] = (struct command) {.command = 0, .count = block, .value = position};
- }
- return result;
-}
-
-struct command * try_compress (const unsigned char * data, const unsigned char * bitflipped, unsigned short * length, unsigned flags) {
- struct command * commands = malloc(sizeof(struct command) * *length);
- memset(commands, -1, sizeof(struct command) * *length);
- struct command * current_command = commands;
- unsigned short position = 0, previous_data = 0;
- unsigned char lookahead = 0, lookahead_flag = (flags >> 3) % 3;
- struct command copy, repetition;
- while (position < *length) {
- copy = find_best_copy(data, position, *length, bitflipped, flags);
- repetition = find_best_repetition(data, position, *length);
- if (flags & 1)
- *current_command = pick_best_command(2, repetition, copy);
- else
- *current_command = pick_best_command(2, copy, repetition);
- *current_command = pick_best_command(2, (struct command) {.command = 0, .count = 1, .value = position}, *current_command);
- if (flags & 2) {
- if (previous_data && (previous_data != 32) && (previous_data != 1024) && (command_size(*current_command) == current_command -> count))
- *current_command = (struct command) {.command = 0, .count = 1, .value = position};
- }
- if (lookahead_flag) {
- if (lookahead >= lookahead_flag)
- lookahead = 0;
- else if (current_command -> command) {
- lookahead ++;
- *current_command = (struct command) {.command = 0, .count = 1, .value = position};
- }
- }
- if (current_command -> command)
- previous_data = 0;
- else
- previous_data += current_command -> count;
- position += (current_command ++) -> count;
- }
- optimize(commands, current_command - commands);
- repack(&commands, length);
- return commands;
-}
-
-struct command find_best_copy (const unsigned char * data, unsigned short position, unsigned short length, const unsigned char * bitflipped, unsigned flags) {
- struct command simple = {.command = 7};
- struct command flipped = simple, backwards = simple;
- short count, offset;
- if ((count = scan_forwards(data + position, length - position, data, position, &offset)))
- simple = (struct command) {.command = 4, .count = count, .value = offset};
- if ((count = scan_forwards(data + position, length - position, bitflipped, position, &offset)))
- flipped = (struct command) {.command = 5, .count = count, .value = offset};
- if ((count = scan_backwards(data, length - position, position, &offset)))
- backwards = (struct command) {.command = 6, .count = count, .value = offset};
- struct command command;
- switch (flags / 24) {
- case 0: command = pick_best_command(3, simple, backwards, flipped); break;
- case 1: command = pick_best_command(3, backwards, flipped, simple); break;
- case 2: command = pick_best_command(3, flipped, backwards, simple);
- }
- if ((flags & 4) && (command.count > 32)) command.count = 32;
- return command;
-}
-
-unsigned short scan_forwards (const unsigned char * target, unsigned short limit, const unsigned char * source, unsigned short real_position, short * offset) {
- unsigned short best_match, best_length = 0;
- unsigned short current_length;
- unsigned short position;
- for (position = 0; position < real_position; position ++) {
- if (source[position] != *target) continue;
- for (current_length = 0; (current_length < limit) && (source[position + current_length] == target[current_length]); current_length ++);
- if (current_length > 1024) current_length = 1024;
- if (current_length < best_length) continue;
- best_match = position;
- best_length = current_length;
- }
- if (!best_length) return 0;
- if ((best_match + 128) >= real_position)
- *offset = best_match - real_position;
- else
- *offset = best_match;
- return best_length;
-}
-
-unsigned short scan_backwards (const unsigned char * data, unsigned short limit, unsigned short real_position, short * offset) {
- if (real_position < limit) limit = real_position;
- unsigned short best_match, best_length = 0;
- unsigned short current_length;
- unsigned short position;
- for (position = 0; position < real_position; position ++) {
- if (data[position] != data[real_position]) continue;
- for (current_length = 0; (current_length <= position) && (current_length < limit) &&
- (data[position - current_length] == data[real_position + current_length]); current_length ++);
- if (current_length > 1024) current_length = 1024;
- if (current_length < best_length) continue;
- best_match = position;
- best_length = current_length;
- }
- if (!best_length) return 0;
- if ((best_match + 128) >= real_position)
- *offset = best_match - real_position;
- else
- *offset = best_match;
- return best_length;
-}
-
-struct command find_best_repetition (const unsigned char * data, unsigned short position, unsigned short length) {
- if ((position + 1) >= length) return data[position] ? ((struct command) {.command = 7}) : ((struct command) {.command = 3, .count = 1});
- unsigned char value[2] = {data[position], data[position + 1]};
- unsigned repcount, limit = length - position;
- if (limit > 1024) limit = 1024;
- for (repcount = 2; (repcount < limit) && (data[position + repcount] == value[repcount & 1]); repcount ++);
- struct command result;
- result.count = repcount;
- if (*value != value[1]) {
- if (!*value && (repcount < 3)) return (struct command) {.command = 3, .count = 1};
- result.command = 2;
- result.value = ((unsigned) (*value)) | (((unsigned) (value[1])) << 8);
- } else if (*value) {
- result.command = 1;
- result.value = *value;
- } else
- result.command = 3;
- return result;
-}
-
-struct command pick_best_command (unsigned count, struct command command, ...) {
- struct command result = command;
- va_list ap;
- va_start(ap, command);
- while (-- count) {
- command = va_arg(ap, struct command);
- if (is_better(command, result)) result = command;
- }
- va_end(ap);
- return result;
-}
-
-int is_better (struct command new, struct command old) {
- if (new.command == 7) return 0;
- if (old.command == 7) return 1;
- short new_savings = new.count - command_size(new), old_savings = old.count - command_size(old);
- return new_savings > old_savings;
-}
-
-short command_size (struct command command) {
- short header_size = 1 + (command.count > 32);
- if (command.command & 4) return header_size + 1 + (command.value >= 0);
- return header_size + command.command[(short []) {command.count, 1, 2, 0}];
-}
-
-void optimize (struct command * commands, unsigned short count) {
- while (count && (commands -> command == 7)) commands ++, count --;
- if (count < 2) return;
- struct command * end = commands + count;
- struct command * next = commands + 1;
- while (next < end) {
- if (next -> command == 7) goto skip;
- if (
- !(commands -> command) &&
- (command_size(*next) == next -> count) &&
- ((commands -> count + next -> count) <= 1024) &&
- ((commands -> count > 32) || ((commands -> count + next -> count) <= 32))
- ) {
- commands -> count += next -> count;
- next -> command = 7;
- goto skip;
- }
- if (next -> command != commands -> command) goto accept;
- switch (commands -> command) {
- case 0:
- if ((commands -> value + commands -> count) != next -> value) break;
- commands -> count += next -> count;
- next -> command = 7;
- if (commands -> count <= 1024) goto skip;
- next -> command = 0;
- next -> value = commands -> value + 1024;
- next -> count = commands -> count - 1024;
- commands -> count = 1024;
- break;
- case 1:
- if (commands -> value != next -> value) break;
- // fall through
- case 3:
- if ((commands -> count + next -> count) <= 1024) {
- commands -> count += next -> count;
- next -> command = 7;
- goto skip;
- }
- next -> count = (commands -> count + next -> count) - 1024;
- commands -> count = 1024;
- break;
- }
- accept:
- commands = next;
- skip:
- next ++;
- }
-}
-
-void repack (struct command ** commands, unsigned short * length) {
- struct command * new_commands = malloc(sizeof(struct command) * *length);
- struct command * current = new_commands;
- unsigned short p;
- for (p = 0; p < *length; p ++) if (p[*commands].command != 7) *(current ++) = p[*commands];
- free(*commands);
- *commands = new_commands;
- *length = current - new_commands;
-}
-
-struct command * select_command_sequence (struct command ** sequences, const unsigned short * lengths, unsigned count, unsigned short * final_length) {
- unsigned short min_sequence = 0, min_length = compressed_length(*sequences, *lengths);
- unsigned short seq, len;
- for (seq = 1; seq < count; seq ++) {
- len = compressed_length(sequences[seq], lengths[seq]);
- if (len < min_length) {
- min_sequence = seq;
- min_length = len;
- }
- }
- *final_length = lengths[min_sequence];
- struct command * current = malloc(*final_length * sizeof(struct command));
- memcpy(current, sequences[min_sequence], *final_length * sizeof(struct command));
- struct command * new;
- for (seq = 1; seq < count; seq ++) {
- new = merge_command_sequences(current, *final_length, sequences[(seq + min_sequence) % count], lengths[(seq + min_sequence) % count], final_length);
- free(current);
- current = new;
- }
- return current;
-}
-
-struct command * merge_command_sequences (const struct command * current, unsigned short current_length, const struct command * new, unsigned short new_length,
- unsigned short * result_length) {
- struct command * result = malloc(sizeof(struct command) * (current_length + new_length));
- struct command * current_command = result;
- const struct command * saved_current;
- const struct command * saved_new;
- unsigned short current_pos, new_pos;
- while (current_length) {
- if (current -> count == new -> count) {
- *(current_command ++) = pick_best_command(2, *(current ++), *(new ++));
- current_length --;
- continue;
- }
- saved_current = current;
- saved_new = new;
- current_pos = (current ++) -> count;
- new_pos = (new ++) -> count;
- current_length --;
- while (current_pos != new_pos)
- if (current_pos < new_pos) {
- current_pos += (current ++) -> count;
- current_length --;
- } else
- new_pos += (new ++) -> count;
- current_pos = compressed_length(saved_current, current - saved_current);
- new_pos = compressed_length(saved_new, new - saved_new);
- if (new_pos < current_pos) {
- memcpy(current_command, saved_new, sizeof(struct command) * (new - saved_new));
- current_command += new - saved_new;
- } else {
- memcpy(current_command, saved_current, sizeof(struct command) * (current - saved_current));
- current_command += current - saved_current;
- }
- }
- *result_length = current_command - result;
- return result;
-}
-
-unsigned short compressed_length (const struct command * commands, unsigned short count) {
- unsigned short current, total = 0;
- for (current = 0; current < count; current ++) if (commands[current].command != 7) total += command_size(commands[current]);
- return total;
-}
diff --git a/tools/mapreader.py b/tools/mapreader.py
index 8a29e5235..de2ec3423 100644
--- a/tools/mapreader.py
+++ b/tools/mapreader.py
@@ -38,10 +38,11 @@ class MapReader:
bank_types = {
'HRAM' : { 'size': 0x80, 'banked': False, },
'OAM' : { 'size': 0xA0, 'banked': False, },
- 'ROM Bank' : { 'size': 0x4000, 'banked': True, },
- 'SRAM Bank': { 'size': 0x2000, 'banked': True, },
- 'VRAM Bank': { 'size': 0x1000, 'banked': True, },
- 'WRAM Bank': { 'size': 0x2000, 'banked': True, },
+ 'ROM0 bank': { 'size': 0x4000, 'banked': True, },
+ 'ROMX bank': { 'size': 0x4000, 'banked': True, },
+ 'SRAM bank': { 'size': 0x2000, 'banked': True, },
+ 'VRAM bank': { 'size': 0x1000, 'banked': True, },
+ 'WRAM bank': { 'size': 0x2000, 'banked': True, },
}
# FSM states
@@ -52,7 +53,7 @@ class MapReader:
# $506D = TypeMatchups
section_data_regex = re.compile('\$([0-9A-Fa-f]{4}) = (.*)')
# $3ED2 bytes
- slack_regex = re.compile('\$([0-9A-Fa-f]{4}) bytes')
+ slack_regex = re.compile('\$([0-9A-Fa-f]{4}) bytes?')
def __init__(self, *args, **kwargs):
self.__dict__.update(kwargs)
diff --git a/tools/md5.c b/tools/md5.c
deleted file mode 100644
index 6f4f58d2d..000000000
--- a/tools/md5.c
+++ /dev/null
@@ -1,128 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-
-#include "common.h"
-
-static const int s[64] = {
- 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,
- 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,
- 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,
- 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21,
-};
-
-static const uint32_t K[64] = {
- 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee,
- 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,
- 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be,
- 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821,
- 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa,
- 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8,
- 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed,
- 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a,
- 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c,
- 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70,
- 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05,
- 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665,
- 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039,
- 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1,
- 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1,
- 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391,
-};
-
-#define rotate_left_32(value, by) \
- ((((value) << (by)) & 0xffffffff) | ((value) >> (32 - (by))))
-
-void md5_wikipedia(uint8_t *data, int length, uint8_t *result) {
-
- uint8_t *message = calloc(length + 64, sizeof(uint8_t));
- memcpy(message, data, length);
-
- int64_t orig_bitlength = length * 8;
-
- message[length++] |= 1 << 7;
-
- while (length % 64 != (64 - 8)) {
- length++;
- }
- for (int i = 0; i < 8; i++) {
- message[length++] = (orig_bitlength >> (i * 8)) & 0xff;
- }
-
- int a0 = 0x67452301;
- int b0 = 0xefcdab89;
- int c0 = 0x98badcfe;
- int d0 = 0x10325476;
-
- for (int start = 0; start < length; start += 64) {
- uint32_t M[16];
- for (int j = 0; j < 16; j++) {
- uint8_t *word = &message[start + j * 4];
- M[j] = *word++;
- M[j] |= *word++ << 8;
- M[j] |= *word++ << 16;
- M[j] |= *word++ << 24;
- }
-
- int A = a0;
- int B = b0;
- int C = c0;
- int D = d0;
- for (int i = 0; i < 64; i++) {
- int F, g;
- switch (i / 16) {
- case 0:
- F = (B & C) | (~B & D);
- g = i;
- break;
- case 1:
- F = (D & B) | (~D & C);
- g = (5 * i + 1) % 16;
- break;
- case 2:
- F = B ^ C ^ D;
- g = (3 * i + 5) % 16;
- break;
- case 3:
- F = C ^ (B | ~D);
- g = (7 * i) % 16;
- break;
- }
- int e = D;
- D = C;
- C = B;
- B = B + rotate_left_32(A + F + K[i] + M[g], s[i]);
- A = e;
- }
- a0 += A;
- b0 += B;
- c0 += C;
- d0 += D;
- }
-
- int values[] = {a0, b0, c0, d0};
- for (int i = 0; i < 16; i++) {
- int value = values[i >> 2];
- int shift = (i % 4) * 8;
- result[i] = (value >> shift) & 0xff;
- }
-
- free(message);
-}
-
-int main(int argc, char *argv[]) {
- if (argc < 2) {
- exit(1);
- }
- char *infile = argv[1];
- int size;
- uint8_t *data = read_u8(infile, &size);
-
- uint8_t result[16];
- md5_wikipedia(data, size, result);
- for (int i = 0; i < 16; i++) {
- printf("%02x", result[i]);
- }
- printf("\n");
-}
diff --git a/tools/used_space.py b/tools/used_space.py
index 3fc401f57..34f8e492d 100644
--- a/tools/used_space.py
+++ b/tools/used_space.py
@@ -38,7 +38,8 @@ def main():
default_bank_data = {'sections': [], 'used': 0, 'slack': bank_size}
for bank in range(num_banks):
hits = [0] * pixels_per_bank
- data = r.bank_data['ROM Bank'].get(bank, default_bank_data)
+ bank_data = r.bank_data['ROM0 bank'] if bank == 0 else r.bank_data['ROMX bank']
+ data = bank_data.get(bank, default_bank_data)
for s in data['sections']:
beg = s['beg'] & bank_mask
end = s['end'] & bank_mask
diff --git a/wram.asm b/wram.asm
index 022b06353..6ba4d7d31 100644
--- a/wram.asm
+++ b/wram.asm
@@ -640,6 +640,7 @@ wEnemyScreens:: ; c700
; see wPlayerScreens
db
+UNION ; c701
wPlayerSafeguardCount:: db ; c701
wPlayerLightScreenCount:: db ; c702
wPlayerReflectCount:: db ; c703
@@ -648,7 +649,19 @@ wPlayerReflectCount:: db ; c703
wEnemySafeguardCount:: db ; c705
wEnemyLightScreenCount:: db ; c706
wEnemyReflectCount:: db ; c707
- ds 2
+ ds 1
+
+NEXTU ; c701
+ ds 1
+wBetaPokerSGBPals:: dw ; c702
+ ds 1
+wBetaPokerSGBAttr:: db ; c705
+wBetaPokerSGBCol:: db ; c706
+wBetaPokerSGBRow:: db ; c707
+ ds 1
+ENDU ; c708
+
+ ds 1
wBattleWeather:: ; c70a
; 00 normal
@@ -2352,7 +2365,7 @@ ENDU ; d430
wd430:: ; mobile
wBattleAction:: db ; d430
-wd431:: db ; mobile
+wLinkBattleSentAction:: db ; d431
wMapStatus:: db ; d432
wMapEventStatus:: db ; d433