summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorentrpntr <12521136+entrpntr@users.noreply.github.com>2020-05-27 18:42:13 -0400
committerGitHub <noreply@github.com>2020-05-27 18:42:13 -0400
commit2321448d133ac3651f08787b1cf2c2fcbdac82c9 (patch)
tree47f648c0fd273463376c981055cdc9cc5b6a93dc
parent418ac97a9c2142aae82051e6bdb149c9103b7282 (diff)
parent9dac1d992d343f542acae9974eff3099fbd9b39f (diff)
Merge pull request #36 from entrpntr/misc-dump
Disassemble banks $70 and $3f, add tileset data
-rw-r--r--.gitignore4
-rw-r--r--Makefile3
-rw-r--r--constants.asm2
-rwxr-xr-xconstants/collision_constants.asm10
-rw-r--r--constants/credits_constants.asm78
-rw-r--r--constants/map_constants.asm2
-rw-r--r--constants/npc_trade_constants.asm2
-rwxr-xr-xdata/collision_permissions.asm515
-rw-r--r--data/credits_strings.asm92
-rw-r--r--data/credits_strings_pointers.asm78
-rw-r--r--data/events/npc_trades.asm16
-rw-r--r--data/items/mom_phone.asm27
-rw-r--r--data/maps/roofs.asm46
-rw-r--r--data/tilesets/cave_collision.asm64
-rw-r--r--data/tilesets/cave_metatiles.bin6
-rw-r--r--data/tilesets/champions_room_collision.asm64
-rw-r--r--data/tilesets/champions_room_metatiles.bin15
-rw-r--r--data/tilesets/elite_four_room_collision.asm64
-rw-r--r--data/tilesets/elite_four_room_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/facility_collision.asm64
-rw-r--r--data/tilesets/facility_metatiles.bin8
-rw-r--r--data/tilesets/forest_collision.asm64
-rw-r--r--data/tilesets/forest_metatiles.bin1
-rw-r--r--data/tilesets/game_corner_collision.asm64
-rw-r--r--data/tilesets/game_corner_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/gate_collision.asm64
-rw-r--r--data/tilesets/gate_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/house_collision.asm64
-rw-r--r--data/tilesets/house_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/ice_path_collision.asm64
-rw-r--r--data/tilesets/ice_path_metatiles.bin3
-rw-r--r--data/tilesets/johto_collision.asm128
-rw-r--r--data/tilesets/johto_metatiles.binbin0 -> 2048 bytes
-rw-r--r--data/tilesets/johto_modern_collision.asm128
-rw-r--r--data/tilesets/johto_modern_metatiles.binbin0 -> 2048 bytes
-rw-r--r--data/tilesets/kanto_collision.asm128
-rw-r--r--data/tilesets/kanto_metatiles.binbin0 -> 2048 bytes
-rw-r--r--data/tilesets/lab_collision.asm64
-rw-r--r--data/tilesets/lab_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/lighthouse_collision.asm64
-rw-r--r--data/tilesets/lighthouse_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/mansion_collision.asm64
-rw-r--r--data/tilesets/mansion_metatiles.bin5
-rw-r--r--data/tilesets/mart_collision.asm64
-rw-r--r--data/tilesets/mart_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/park_collision.asm64
-rw-r--r--data/tilesets/park_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/players_house_collision.asm64
-rw-r--r--data/tilesets/players_house_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/players_room_collision.asm64
-rw-r--r--data/tilesets/players_room_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/pokecenter_collision.asm64
-rw-r--r--data/tilesets/pokecenter_metatiles.bin2
-rw-r--r--data/tilesets/port_collision.asm64
-rw-r--r--data/tilesets/port_metatiles.bin65
-rw-r--r--data/tilesets/radio_tower_collision.asm64
-rw-r--r--data/tilesets/radio_tower_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/ruins_of_alph_collision.asm64
-rw-r--r--data/tilesets/ruins_of_alph_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/tower_collision.asm64
-rw-r--r--data/tilesets/tower_metatiles.bin2
-rw-r--r--data/tilesets/traditional_house_collision.asm64
-rw-r--r--data/tilesets/traditional_house_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/train_station_collision.asm64
-rw-r--r--data/tilesets/train_station_metatiles.binbin0 -> 1024 bytes
-rw-r--r--data/tilesets/underground_collision.asm64
-rw-r--r--data/tilesets/underground_metatiles.bin2
-rw-r--r--data/tilesets/unused_johto_collision.asm128
-rw-r--r--data/tilesets/unused_johto_metatiles.binbin0 -> 2048 bytes
-rw-r--r--engine/events/catch_tutorial.asm81
-rw-r--r--engine/events/catch_tutorial_input.asm43
-rw-r--r--engine/events/mom_phone.asm231
-rw-r--r--engine/events/npc_trade.asm478
-rw-r--r--engine/link/mystery_gift_3.asm190
-rw-r--r--engine/link/mystery_gift_gfx.asm31
-rw-r--r--engine/menus/debug.asm1464
-rw-r--r--engine/menus/main_menu.asm4
-rw-r--r--engine/pokedex/pokedex_3.asm165
-rw-r--r--engine/pokegear/townmap_convertlinebreakcharacters.asm21
-rw-r--r--engine/printer/print_party.asm360
-rw-r--r--engine/rtc/print_hours_mins.asm76
-rw-r--r--engine/rtc/restart_clock.asm236
-rw-r--r--engine/tilesets/map_palettes.asm4
-rw-r--r--engine/tilesets/mapgroup_roofs.asm18
-rw-r--r--engine/tilesets/tileset_anims.asm753
-rw-r--r--gfx/debug/bg.pal43
-rw-r--r--gfx/debug/color_test.2bppbin0 -> 352 bytes
-rw-r--r--gfx/debug/color_test.pngbin0 -> 200 bytes
-rw-r--r--gfx/debug/ob.pal42
-rw-r--r--gfx/debug/up_arrow.2bpp1
-rw-r--r--gfx/debug/up_arrow.pngbin0 -> 81 bytes
-rw-r--r--gfx/mystery_gift/border.1bppbin0 -> 56 bytes
-rw-r--r--gfx/mystery_gift/border.2bpp (renamed from gfx/unknown/gfx_17079.2bpp)bin120 -> 120 bytes
-rw-r--r--gfx/mystery_gift/border.pngbin0 -> 118 bytes
-rw-r--r--gfx/mystery_gift/mystery_gift.2bppbin0 -> 512 bytes
-rw-r--r--gfx/mystery_gift/mystery_gift.pngbin0 -> 343 bytes
-rw-r--r--gfx/mystery_gift/mystery_gift_2.2bpp (renamed from gfx/unknown/gfx_170f1.2bpp)bin224 -> 224 bytes
-rw-r--r--gfx/mystery_gift/mystery_gift_2.png (renamed from gfx/unknown/gfx_170f1.png)bin201 -> 201 bytes
-rw-r--r--gfx/mystery_gift/question_mark.1bppbin0 -> 64 bytes
-rw-r--r--gfx/mystery_gift/question_mark.pngbin0 -> 142 bytes
-rw-r--r--gfx/overworld/heal_machine.pngbin137 -> 93 bytes
-rw-r--r--gfx/pack/pack.pngbin438 -> 282 bytes
-rw-r--r--gfx/pokedex/pokedex_sgb.2bpp.lzbin0 -> 420 bytes
-rw-r--r--gfx/pokedex/pokedex_sgb.pngbin0 -> 429 bytes
-rw-r--r--gfx/pokedex/question_mark.2bpp.lzbin0 -> 144 bytes
-rw-r--r--gfx/pokedex/question_mark.pngbin0 -> 183 bytes
-rw-r--r--gfx/pokegear/pokegear.2bpp.lzbin0 -> 740 bytes
-rw-r--r--gfx/pokegear/pokegear.pngbin0 -> 388 bytes
-rw-r--r--gfx/pokemon/abra/back.pngbin445 -> 445 bytes
-rw-r--r--gfx/pokemon/aerodactyl/back.pngbin414 -> 414 bytes
-rw-r--r--gfx/pokemon/aipom/back.pngbin410 -> 410 bytes
-rw-r--r--gfx/pokemon/alakazam/back.pngbin532 -> 532 bytes
-rw-r--r--gfx/pokemon/ampharos/back.pngbin408 -> 408 bytes
-rw-r--r--gfx/pokemon/arbok/back.pngbin354 -> 354 bytes
-rw-r--r--gfx/pokemon/arcanine/back.pngbin468 -> 468 bytes
-rw-r--r--gfx/pokemon/ariados/back.pngbin428 -> 428 bytes
-rw-r--r--gfx/pokemon/articuno/back.pngbin368 -> 368 bytes
-rw-r--r--gfx/pokemon/azumarill/back.pngbin347 -> 347 bytes
-rw-r--r--gfx/pokemon/bayleef/back.pngbin484 -> 484 bytes
-rw-r--r--gfx/pokemon/beedrill/back.pngbin460 -> 460 bytes
-rw-r--r--gfx/pokemon/bellossom/back.pngbin423 -> 423 bytes
-rw-r--r--gfx/pokemon/bellsprout/back.pngbin364 -> 364 bytes
-rw-r--r--gfx/pokemon/blastoise/back.pngbin468 -> 468 bytes
-rw-r--r--gfx/pokemon/blissey/back.pngbin352 -> 352 bytes
-rw-r--r--gfx/pokemon/bulbasaur/back.pngbin374 -> 374 bytes
-rw-r--r--gfx/pokemon/butterfree/back.pngbin499 -> 499 bytes
-rw-r--r--gfx/pokemon/caterpie/back.pngbin390 -> 390 bytes
-rw-r--r--gfx/pokemon/celebi/back.pngbin515 -> 515 bytes
-rw-r--r--gfx/pokemon/chansey/back.pngbin389 -> 389 bytes
-rw-r--r--gfx/pokemon/charizard/back.pngbin436 -> 436 bytes
-rw-r--r--gfx/pokemon/charmander/back.pngbin385 -> 385 bytes
-rw-r--r--gfx/pokemon/charmeleon/back.pngbin442 -> 442 bytes
-rw-r--r--gfx/pokemon/chikorita/back.pngbin403 -> 403 bytes
-rw-r--r--gfx/pokemon/chinchou/back.pngbin376 -> 376 bytes
-rw-r--r--gfx/pokemon/clefable/back.pngbin500 -> 500 bytes
-rw-r--r--gfx/pokemon/clefairy/back.pngbin436 -> 436 bytes
-rw-r--r--gfx/pokemon/cleffa/back.pngbin337 -> 337 bytes
-rw-r--r--gfx/pokemon/cloyster/back.pngbin556 -> 556 bytes
-rw-r--r--gfx/pokemon/corsola/back.pngbin354 -> 354 bytes
-rw-r--r--gfx/pokemon/crobat/back.pngbin354 -> 354 bytes
-rw-r--r--gfx/pokemon/croconaw/back.pngbin481 -> 481 bytes
-rw-r--r--gfx/pokemon/cubone/back.pngbin472 -> 472 bytes
-rw-r--r--gfx/pokemon/cyndaquil/back.pngbin498 -> 498 bytes
-rw-r--r--gfx/pokemon/delibird/back.pngbin447 -> 447 bytes
-rw-r--r--gfx/pokemon/dewgong/back.pngbin337 -> 337 bytes
-rw-r--r--gfx/pokemon/diglett/back.pngbin285 -> 285 bytes
-rw-r--r--gfx/pokemon/ditto/back.pngbin315 -> 315 bytes
-rw-r--r--gfx/pokemon/dodrio/back.pngbin553 -> 553 bytes
-rw-r--r--gfx/pokemon/doduo/back.pngbin447 -> 447 bytes
-rw-r--r--gfx/pokemon/donphan/back.pngbin352 -> 352 bytes
-rw-r--r--gfx/pokemon/dragonair/back.pngbin430 -> 430 bytes
-rw-r--r--gfx/pokemon/dragonite/back.pngbin386 -> 386 bytes
-rw-r--r--gfx/pokemon/dratini/back.pngbin357 -> 357 bytes
-rw-r--r--gfx/pokemon/drowzee/back.pngbin353 -> 353 bytes
-rw-r--r--gfx/pokemon/dugtrio/back.pngbin397 -> 397 bytes
-rw-r--r--gfx/pokemon/dunsparce/back.pngbin380 -> 380 bytes
-rw-r--r--gfx/pokemon/eevee/back.pngbin473 -> 473 bytes
-rw-r--r--gfx/pokemon/ekans/back.pngbin449 -> 449 bytes
-rw-r--r--gfx/pokemon/electabuzz/back.pngbin461 -> 461 bytes
-rw-r--r--gfx/pokemon/electrode/back.pngbin308 -> 308 bytes
-rw-r--r--gfx/pokemon/elekid/back.pngbin508 -> 508 bytes
-rw-r--r--gfx/pokemon/entei/back.pngbin370 -> 370 bytes
-rw-r--r--gfx/pokemon/espeon/back.pngbin410 -> 410 bytes
-rw-r--r--gfx/pokemon/exeggcute/back.pngbin431 -> 431 bytes
-rw-r--r--gfx/pokemon/exeggutor/back.pngbin527 -> 527 bytes
-rw-r--r--gfx/pokemon/farfetch_d/back.pngbin479 -> 479 bytes
-rw-r--r--gfx/pokemon/fearow/back.pngbin339 -> 339 bytes
-rw-r--r--gfx/pokemon/feraligatr/back.pngbin550 -> 550 bytes
-rw-r--r--gfx/pokemon/flaaffy/back.pngbin496 -> 496 bytes
-rw-r--r--gfx/pokemon/flareon/back.pngbin455 -> 455 bytes
-rw-r--r--gfx/pokemon/forretress/back.pngbin255 -> 255 bytes
-rw-r--r--gfx/pokemon/furret/back.pngbin450 -> 450 bytes
-rw-r--r--gfx/pokemon/gastly/back.pngbin319 -> 319 bytes
-rw-r--r--gfx/pokemon/gengar/back.pngbin396 -> 396 bytes
-rw-r--r--gfx/pokemon/geodude/back.pngbin471 -> 471 bytes
-rw-r--r--gfx/pokemon/girafarig/back.pngbin492 -> 492 bytes
-rw-r--r--gfx/pokemon/gligar/back.pngbin467 -> 467 bytes
-rw-r--r--gfx/pokemon/gloom/back.pngbin455 -> 455 bytes
-rw-r--r--gfx/pokemon/golbat/back.pngbin285 -> 285 bytes
-rw-r--r--gfx/pokemon/goldeen/back.pngbin488 -> 488 bytes
-rw-r--r--gfx/pokemon/golduck/back.pngbin413 -> 413 bytes
-rw-r--r--gfx/pokemon/golem/back.pngbin333 -> 333 bytes
-rw-r--r--gfx/pokemon/granbull/back.pngbin389 -> 389 bytes
-rw-r--r--gfx/pokemon/graveler/back.pngbin441 -> 441 bytes
-rw-r--r--gfx/pokemon/grimer/back.pngbin446 -> 446 bytes
-rw-r--r--gfx/pokemon/growlithe/back.pngbin448 -> 448 bytes
-rw-r--r--gfx/pokemon/gyarados/back.pngbin520 -> 520 bytes
-rw-r--r--gfx/pokemon/haunter/back.pngbin385 -> 385 bytes
-rw-r--r--gfx/pokemon/heracross/back.pngbin464 -> 464 bytes
-rw-r--r--gfx/pokemon/hitmonchan/back.pngbin439 -> 439 bytes
-rw-r--r--gfx/pokemon/hitmonlee/back.pngbin391 -> 391 bytes
-rw-r--r--gfx/pokemon/hitmontop/back.pngbin538 -> 538 bytes
-rw-r--r--gfx/pokemon/ho_oh/back.pngbin464 -> 464 bytes
-rw-r--r--gfx/pokemon/hoothoot/back.pngbin427 -> 427 bytes
-rw-r--r--gfx/pokemon/hoppip/back.pngbin391 -> 391 bytes
-rw-r--r--gfx/pokemon/horsea/back.pngbin355 -> 355 bytes
-rw-r--r--gfx/pokemon/houndoom/back.pngbin426 -> 426 bytes
-rw-r--r--gfx/pokemon/houndour/back.pngbin350 -> 350 bytes
-rw-r--r--gfx/pokemon/hypno/back.pngbin485 -> 485 bytes
-rw-r--r--gfx/pokemon/igglybuff/back.pngbin358 -> 358 bytes
-rw-r--r--gfx/pokemon/ivysaur/back.pngbin423 -> 423 bytes
-rw-r--r--gfx/pokemon/jigglypuff/back.pngbin317 -> 317 bytes
-rw-r--r--gfx/pokemon/jolteon/back.pngbin407 -> 407 bytes
-rw-r--r--gfx/pokemon/jumpluff/back.pngbin451 -> 451 bytes
-rw-r--r--gfx/pokemon/jynx/back.pngbin289 -> 289 bytes
-rw-r--r--gfx/pokemon/kabuto/back.pngbin369 -> 369 bytes
-rw-r--r--gfx/pokemon/kabutops/back.pngbin476 -> 476 bytes
-rw-r--r--gfx/pokemon/kadabra/back.pngbin450 -> 450 bytes
-rw-r--r--gfx/pokemon/kakuna/back.pngbin356 -> 356 bytes
-rw-r--r--gfx/pokemon/kangaskhan/back.pngbin530 -> 530 bytes
-rw-r--r--gfx/pokemon/kingdra/back.pngbin434 -> 434 bytes
-rw-r--r--gfx/pokemon/kingler/back.pngbin417 -> 417 bytes
-rw-r--r--gfx/pokemon/koffing/back.pngbin464 -> 464 bytes
-rw-r--r--gfx/pokemon/krabby/back.pngbin504 -> 504 bytes
-rw-r--r--gfx/pokemon/lanturn/back.pngbin348 -> 348 bytes
-rw-r--r--gfx/pokemon/lapras/back.pngbin428 -> 428 bytes
-rw-r--r--gfx/pokemon/larvitar/back.pngbin379 -> 379 bytes
-rw-r--r--gfx/pokemon/ledian/back.pngbin453 -> 453 bytes
-rw-r--r--gfx/pokemon/ledyba/back.pngbin531 -> 531 bytes
-rw-r--r--gfx/pokemon/lickitung/back.pngbin398 -> 398 bytes
-rw-r--r--gfx/pokemon/lugia/back.pngbin389 -> 389 bytes
-rw-r--r--gfx/pokemon/machamp/back.pngbin580 -> 580 bytes
-rw-r--r--gfx/pokemon/machoke/back.pngbin447 -> 447 bytes
-rw-r--r--gfx/pokemon/machop/back.pngbin436 -> 436 bytes
-rw-r--r--gfx/pokemon/magby/back.pngbin404 -> 404 bytes
-rw-r--r--gfx/pokemon/magcargo/back.pngbin464 -> 464 bytes
-rw-r--r--gfx/pokemon/magikarp/back.pngbin475 -> 475 bytes
-rw-r--r--gfx/pokemon/magmar/back.pngbin472 -> 472 bytes
-rw-r--r--gfx/pokemon/magnemite/back.pngbin288 -> 288 bytes
-rw-r--r--gfx/pokemon/magneton/back.pngbin508 -> 508 bytes
-rw-r--r--gfx/pokemon/mankey/back.pngbin497 -> 497 bytes
-rw-r--r--gfx/pokemon/mantine/back.pngbin313 -> 313 bytes
-rw-r--r--gfx/pokemon/mareep/back.pngbin459 -> 459 bytes
-rw-r--r--gfx/pokemon/marill/back.pngbin329 -> 329 bytes
-rw-r--r--gfx/pokemon/marowak/back.pngbin460 -> 460 bytes
-rw-r--r--gfx/pokemon/meganium/back.pngbin414 -> 414 bytes
-rw-r--r--gfx/pokemon/meowth/back.pngbin420 -> 420 bytes
-rw-r--r--gfx/pokemon/metapod/back.pngbin355 -> 355 bytes
-rw-r--r--gfx/pokemon/mew/back.pngbin411 -> 411 bytes
-rw-r--r--gfx/pokemon/mewtwo/back.pngbin463 -> 463 bytes
-rw-r--r--gfx/pokemon/miltank/back.pngbin462 -> 462 bytes
-rw-r--r--gfx/pokemon/misdreavus/back.pngbin395 -> 395 bytes
-rw-r--r--gfx/pokemon/moltres/back.pngbin447 -> 447 bytes
-rw-r--r--gfx/pokemon/mr__mime/back.pngbin371 -> 371 bytes
-rw-r--r--gfx/pokemon/muk/back.pngbin420 -> 420 bytes
-rw-r--r--gfx/pokemon/murkrow/back.pngbin407 -> 407 bytes
-rw-r--r--gfx/pokemon/natu/back.pngbin286 -> 286 bytes
-rw-r--r--gfx/pokemon/nidoking/back.pngbin597 -> 597 bytes
-rw-r--r--gfx/pokemon/nidoqueen/back.pngbin459 -> 459 bytes
-rw-r--r--gfx/pokemon/nidoran_f/back.pngbin420 -> 420 bytes
-rw-r--r--gfx/pokemon/nidoran_m/back.pngbin520 -> 520 bytes
-rw-r--r--gfx/pokemon/nidorina/back.pngbin489 -> 489 bytes
-rw-r--r--gfx/pokemon/nidorino/back.pngbin474 -> 474 bytes
-rw-r--r--gfx/pokemon/ninetales/back.pngbin478 -> 478 bytes
-rw-r--r--gfx/pokemon/noctowl/back.pngbin405 -> 405 bytes
-rw-r--r--gfx/pokemon/octillery/back.pngbin354 -> 354 bytes
-rw-r--r--gfx/pokemon/oddish/back.pngbin355 -> 355 bytes
-rw-r--r--gfx/pokemon/omanyte/back.pngbin451 -> 451 bytes
-rw-r--r--gfx/pokemon/omastar/back.pngbin518 -> 518 bytes
-rw-r--r--gfx/pokemon/onix/back.pngbin469 -> 469 bytes
-rw-r--r--gfx/pokemon/paras/back.pngbin402 -> 402 bytes
-rw-r--r--gfx/pokemon/parasect/back.pngbin378 -> 378 bytes
-rw-r--r--gfx/pokemon/persian/back.pngbin468 -> 468 bytes
-rw-r--r--gfx/pokemon/phanpy/back.pngbin347 -> 347 bytes
-rw-r--r--gfx/pokemon/pichu/back.pngbin377 -> 377 bytes
-rw-r--r--gfx/pokemon/pidgeot/back.pngbin383 -> 383 bytes
-rw-r--r--gfx/pokemon/pidgeotto/back.pngbin382 -> 382 bytes
-rw-r--r--gfx/pokemon/pidgey/back.pngbin517 -> 517 bytes
-rw-r--r--gfx/pokemon/pikachu/back.pngbin427 -> 427 bytes
-rw-r--r--gfx/pokemon/piloswine/back.pngbin287 -> 287 bytes
-rw-r--r--gfx/pokemon/pineco/back.pngbin387 -> 387 bytes
-rw-r--r--gfx/pokemon/pinsir/back.pngbin462 -> 462 bytes
-rw-r--r--gfx/pokemon/politoed/back.pngbin392 -> 392 bytes
-rw-r--r--gfx/pokemon/poliwag/back.pngbin305 -> 305 bytes
-rw-r--r--gfx/pokemon/poliwhirl/back.pngbin403 -> 403 bytes
-rw-r--r--gfx/pokemon/poliwrath/back.pngbin446 -> 446 bytes
-rw-r--r--gfx/pokemon/ponyta/back.pngbin471 -> 471 bytes
-rw-r--r--gfx/pokemon/porygon/back.pngbin366 -> 366 bytes
-rw-r--r--gfx/pokemon/porygon2/back.pngbin396 -> 396 bytes
-rw-r--r--gfx/pokemon/primeape/back.pngbin449 -> 449 bytes
-rw-r--r--gfx/pokemon/psyduck/back.pngbin426 -> 426 bytes
-rw-r--r--gfx/pokemon/pupitar/back.pngbin470 -> 470 bytes
-rw-r--r--gfx/pokemon/quagsire/back.pngbin380 -> 380 bytes
-rw-r--r--gfx/pokemon/quilava/back.pngbin476 -> 476 bytes
-rw-r--r--gfx/pokemon/qwilfish/back.pngbin468 -> 468 bytes
-rw-r--r--gfx/pokemon/raichu/back.pngbin414 -> 414 bytes
-rw-r--r--gfx/pokemon/raikou/back.pngbin336 -> 336 bytes
-rw-r--r--gfx/pokemon/rapidash/back.pngbin466 -> 466 bytes
-rw-r--r--gfx/pokemon/raticate/back.pngbin467 -> 467 bytes
-rw-r--r--gfx/pokemon/rattata/back.pngbin436 -> 436 bytes
-rw-r--r--gfx/pokemon/remoraid/back.pngbin431 -> 431 bytes
-rw-r--r--gfx/pokemon/rhydon/back.pngbin531 -> 531 bytes
-rw-r--r--gfx/pokemon/rhyhorn/back.pngbin448 -> 448 bytes
-rw-r--r--gfx/pokemon/sandshrew/back.pngbin518 -> 518 bytes
-rw-r--r--gfx/pokemon/sandslash/back.pngbin504 -> 504 bytes
-rw-r--r--gfx/pokemon/scizor/back.pngbin450 -> 450 bytes
-rw-r--r--gfx/pokemon/scyther/back.pngbin453 -> 453 bytes
-rw-r--r--gfx/pokemon/seadra/back.pngbin508 -> 508 bytes
-rw-r--r--gfx/pokemon/seaking/back.pngbin476 -> 476 bytes
-rw-r--r--gfx/pokemon/seel/back.pngbin375 -> 375 bytes
-rw-r--r--gfx/pokemon/sentret/back.pngbin360 -> 360 bytes
-rw-r--r--gfx/pokemon/shellder/back.pngbin481 -> 481 bytes
-rw-r--r--gfx/pokemon/shuckle/back.pngbin342 -> 342 bytes
-rw-r--r--gfx/pokemon/skarmory/back.pngbin363 -> 363 bytes
-rw-r--r--gfx/pokemon/skiploom/back.pngbin405 -> 405 bytes
-rw-r--r--gfx/pokemon/slowbro/back.pngbin412 -> 412 bytes
-rw-r--r--gfx/pokemon/slowking/back.pngbin507 -> 507 bytes
-rw-r--r--gfx/pokemon/slowpoke/back.pngbin331 -> 331 bytes
-rw-r--r--gfx/pokemon/slugma/back.pngbin395 -> 395 bytes
-rw-r--r--gfx/pokemon/smeargle/back.pngbin439 -> 439 bytes
-rw-r--r--gfx/pokemon/smoochum/back.pngbin378 -> 378 bytes
-rw-r--r--gfx/pokemon/sneasel/back.pngbin396 -> 396 bytes
-rw-r--r--gfx/pokemon/snorlax/back.pngbin274 -> 274 bytes
-rw-r--r--gfx/pokemon/snubbull/back.pngbin431 -> 431 bytes
-rw-r--r--gfx/pokemon/spearow/back.pngbin410 -> 410 bytes
-rw-r--r--gfx/pokemon/spinarak/back.pngbin341 -> 341 bytes
-rw-r--r--gfx/pokemon/squirtle/back.pngbin344 -> 344 bytes
-rw-r--r--gfx/pokemon/stantler/back.pngbin483 -> 483 bytes
-rw-r--r--gfx/pokemon/starmie/back.pngbin351 -> 351 bytes
-rw-r--r--gfx/pokemon/staryu/back.pngbin379 -> 379 bytes
-rw-r--r--gfx/pokemon/steelix/back.pngbin518 -> 518 bytes
-rw-r--r--gfx/pokemon/sudowoodo/back.pngbin467 -> 467 bytes
-rw-r--r--gfx/pokemon/suicune/back.pngbin518 -> 518 bytes
-rw-r--r--gfx/pokemon/sunflora/back.pngbin505 -> 505 bytes
-rw-r--r--gfx/pokemon/sunkern/back.pngbin403 -> 403 bytes
-rw-r--r--gfx/pokemon/swinub/back.pngbin285 -> 285 bytes
-rw-r--r--gfx/pokemon/tangela/back.pngbin307 -> 307 bytes
-rw-r--r--gfx/pokemon/tauros/back.pngbin305 -> 305 bytes
-rw-r--r--gfx/pokemon/teddiursa/back.pngbin344 -> 344 bytes
-rw-r--r--gfx/pokemon/tentacool/back.pngbin397 -> 397 bytes
-rw-r--r--gfx/pokemon/tentacruel/back.pngbin437 -> 437 bytes
-rw-r--r--gfx/pokemon/togepi/back.pngbin389 -> 389 bytes
-rw-r--r--gfx/pokemon/togetic/back.pngbin450 -> 450 bytes
-rw-r--r--gfx/pokemon/totodile/back.pngbin405 -> 405 bytes
-rw-r--r--gfx/pokemon/typhlosion/back.pngbin494 -> 494 bytes
-rw-r--r--gfx/pokemon/tyranitar/back.pngbin497 -> 497 bytes
-rw-r--r--gfx/pokemon/tyrogue/back.pngbin456 -> 456 bytes
-rw-r--r--gfx/pokemon/umbreon/back.pngbin452 -> 452 bytes
-rw-r--r--gfx/pokemon/unown_a/back.pngbin257 -> 257 bytes
-rw-r--r--gfx/pokemon/unown_b/back.pngbin243 -> 243 bytes
-rw-r--r--gfx/pokemon/unown_c/back.pngbin295 -> 295 bytes
-rw-r--r--gfx/pokemon/unown_d/back.pngbin252 -> 252 bytes
-rw-r--r--gfx/pokemon/unown_e/back.pngbin238 -> 238 bytes
-rw-r--r--gfx/pokemon/unown_f/back.pngbin259 -> 259 bytes
-rw-r--r--gfx/pokemon/unown_g/back.pngbin257 -> 257 bytes
-rw-r--r--gfx/pokemon/unown_h/back.pngbin287 -> 287 bytes
-rw-r--r--gfx/pokemon/unown_i/back.pngbin209 -> 209 bytes
-rw-r--r--gfx/pokemon/unown_j/back.pngbin236 -> 236 bytes
-rw-r--r--gfx/pokemon/unown_k/back.pngbin232 -> 232 bytes
-rw-r--r--gfx/pokemon/unown_l/back.pngbin230 -> 230 bytes
-rw-r--r--gfx/pokemon/unown_m/back.pngbin303 -> 303 bytes
-rw-r--r--gfx/pokemon/unown_n/back.pngbin252 -> 252 bytes
-rw-r--r--gfx/pokemon/unown_o/back.pngbin282 -> 282 bytes
-rw-r--r--gfx/pokemon/unown_p/back.pngbin224 -> 224 bytes
-rw-r--r--gfx/pokemon/unown_q/back.pngbin215 -> 215 bytes
-rw-r--r--gfx/pokemon/unown_r/back.pngbin219 -> 219 bytes
-rw-r--r--gfx/pokemon/unown_s/back.pngbin265 -> 265 bytes
-rw-r--r--gfx/pokemon/unown_t/back.pngbin220 -> 220 bytes
-rw-r--r--gfx/pokemon/unown_u/back.pngbin273 -> 273 bytes
-rw-r--r--gfx/pokemon/unown_v/back.pngbin260 -> 260 bytes
-rw-r--r--gfx/pokemon/unown_w/back.pngbin255 -> 255 bytes
-rw-r--r--gfx/pokemon/unown_x/back.pngbin242 -> 242 bytes
-rw-r--r--gfx/pokemon/unown_y/back.pngbin248 -> 248 bytes
-rw-r--r--gfx/pokemon/unown_z/back.pngbin225 -> 225 bytes
-rw-r--r--gfx/pokemon/ursaring/back.pngbin362 -> 362 bytes
-rw-r--r--gfx/pokemon/vaporeon/back.pngbin381 -> 381 bytes
-rw-r--r--gfx/pokemon/venomoth/back.pngbin537 -> 537 bytes
-rw-r--r--gfx/pokemon/venonat/back.pngbin428 -> 428 bytes
-rw-r--r--gfx/pokemon/venusaur/back.pngbin494 -> 494 bytes
-rw-r--r--gfx/pokemon/victreebel/back.pngbin397 -> 397 bytes
-rw-r--r--gfx/pokemon/vileplume/back.pngbin424 -> 424 bytes
-rw-r--r--gfx/pokemon/voltorb/back.pngbin318 -> 318 bytes
-rw-r--r--gfx/pokemon/vulpix/back.pngbin444 -> 444 bytes
-rw-r--r--gfx/pokemon/wartortle/back.pngbin439 -> 439 bytes
-rw-r--r--gfx/pokemon/weedle/back.pngbin363 -> 363 bytes
-rw-r--r--gfx/pokemon/weepinbell/back.pngbin410 -> 410 bytes
-rw-r--r--gfx/pokemon/weezing/back.pngbin417 -> 417 bytes
-rw-r--r--gfx/pokemon/wigglytuff/back.pngbin333 -> 333 bytes
-rw-r--r--gfx/pokemon/wobbuffet/back.pngbin343 -> 343 bytes
-rw-r--r--gfx/pokemon/wooper/back.pngbin336 -> 336 bytes
-rw-r--r--gfx/pokemon/xatu/back.pngbin396 -> 396 bytes
-rw-r--r--gfx/pokemon/yanma/back.pngbin514 -> 514 bytes
-rw-r--r--gfx/pokemon/zapdos/back.pngbin427 -> 427 bytes
-rw-r--r--gfx/pokemon/zubat/back.pngbin466 -> 466 bytes
-rw-r--r--gfx/printer/hp.1bppbin0 -> 8 bytes
-rw-r--r--gfx/printer/hp.pngbin0 -> 82 bytes
-rw-r--r--gfx/printer/lv.1bppbin0 -> 8 bytes
-rw-r--r--gfx/printer/lv.pngbin0 -> 78 bytes
-rw-r--r--gfx/sgb/gold_border.pngbin926 -> 616 bytes
-rw-r--r--gfx/sgb/silver_border.pngbin926 -> 616 bytes
-rw-r--r--gfx/tileset_palette_maps.asm97
-rw-r--r--gfx/tilesets.asm281
-rw-r--r--gfx/tilesets/cave.2bpp.lzbin0 -> 912 bytes
-rw-r--r--gfx/tilesets/cave.pngbin0 -> 1031 bytes
-rw-r--r--gfx/tilesets/cave_palette_map.asm12
-rw-r--r--gfx/tilesets/champions_room.2bpp.lzbin0 -> 1216 bytes
-rw-r--r--gfx/tilesets/champions_room.pngbin0 -> 1305 bytes
-rw-r--r--gfx/tilesets/champions_room_palette_map.asm12
-rw-r--r--gfx/tilesets/dark_cave.2bpp.lzbin0 -> 832 bytes
-rw-r--r--gfx/tilesets/dark_cave.pngbin0 -> 840 bytes
-rw-r--r--gfx/tilesets/elite_four_room.2bpp.lzbin0 -> 1248 bytes
-rw-r--r--gfx/tilesets/elite_four_room.pngbin0 -> 1272 bytes
-rw-r--r--gfx/tilesets/elite_four_room_palette_map.asm12
-rw-r--r--gfx/tilesets/facility.2bpp.lzbin0 -> 1056 bytes
-rw-r--r--gfx/tilesets/facility.pngbin0 -> 1123 bytes
-rw-r--r--gfx/tilesets/facility_palette_map.asm12
-rw-r--r--gfx/tilesets/flower/cgb_1.2bpp1
-rw-r--r--gfx/tilesets/flower/cgb_1.pngbin0 -> 90 bytes
-rw-r--r--gfx/tilesets/flower/cgb_2.2bpp1
-rw-r--r--gfx/tilesets/flower/cgb_2.pngbin0 -> 88 bytes
-rw-r--r--gfx/tilesets/flower/dmg_1.2bpp1
-rw-r--r--gfx/tilesets/flower/dmg_1.pngbin0 -> 90 bytes
-rw-r--r--gfx/tilesets/flower/dmg_2.2bpp1
-rw-r--r--gfx/tilesets/flower/dmg_2.pngbin0 -> 90 bytes
-rw-r--r--gfx/tilesets/forest.2bpp.lzbin0 -> 896 bytes
-rw-r--r--gfx/tilesets/forest.pngbin0 -> 1038 bytes
-rw-r--r--gfx/tilesets/forest_palette_map.asm12
-rw-r--r--gfx/tilesets/game_corner.2bpp.lzbin0 -> 1024 bytes
-rw-r--r--gfx/tilesets/game_corner.pngbin0 -> 1103 bytes
-rw-r--r--gfx/tilesets/game_corner_palette_map.asm12
-rw-r--r--gfx/tilesets/gate.2bpp.lzbin0 -> 1024 bytes
-rw-r--r--gfx/tilesets/gate.pngbin0 -> 1124 bytes
-rw-r--r--gfx/tilesets/gate_palette_map.asm12
-rw-r--r--gfx/tilesets/house.2bpp.lzbin0 -> 1184 bytes
-rw-r--r--gfx/tilesets/house.pngbin0 -> 1230 bytes
-rw-r--r--gfx/tilesets/house_palette_map.asm12
-rw-r--r--gfx/tilesets/ice_path.2bpp.lzbin0 -> 1088 bytes
-rw-r--r--gfx/tilesets/ice_path.pngbin0 -> 1233 bytes
-rw-r--r--gfx/tilesets/ice_path_palette_map.asm12
-rw-r--r--gfx/tilesets/johto.2bpp.lzbin0 -> 1542 bytes
-rw-r--r--gfx/tilesets/johto.pngbin0 -> 1296 bytes
-rw-r--r--gfx/tilesets/johto_modern.2bpp.lzbin0 -> 1542 bytes
-rw-r--r--gfx/tilesets/johto_modern.pngbin0 -> 1315 bytes
-rw-r--r--gfx/tilesets/johto_modern_palette_map.asm12
-rw-r--r--gfx/tilesets/johto_palette_map.asm12
-rw-r--r--gfx/tilesets/kanto.2bpp.lzbin0 -> 1542 bytes
-rw-r--r--gfx/tilesets/kanto.pngbin0 -> 1301 bytes
-rw-r--r--gfx/tilesets/kanto_palette_map.asm12
-rw-r--r--gfx/tilesets/lab.2bpp.lzbin0 -> 976 bytes
-rw-r--r--gfx/tilesets/lab.pngbin0 -> 1044 bytes
-rw-r--r--gfx/tilesets/lab_palette_map.asm12
-rw-r--r--gfx/tilesets/lava/1.2bppbin0 -> 16 bytes
-rw-r--r--gfx/tilesets/lava/1.pngbin0 -> 89 bytes
-rw-r--r--gfx/tilesets/lava/2.2bppbin0 -> 16 bytes
-rw-r--r--gfx/tilesets/lava/2.pngbin0 -> 89 bytes
-rw-r--r--gfx/tilesets/lava/3.2bppbin0 -> 16 bytes
-rw-r--r--gfx/tilesets/lava/3.pngbin0 -> 87 bytes
-rw-r--r--gfx/tilesets/lava/4.2bppbin0 -> 16 bytes
-rw-r--r--gfx/tilesets/lava/4.pngbin0 -> 79 bytes
-rw-r--r--gfx/tilesets/lighthouse.2bpp.lzbin0 -> 1024 bytes
-rw-r--r--gfx/tilesets/lighthouse.pngbin0 -> 1118 bytes
-rw-r--r--gfx/tilesets/lighthouse_palette_map.asm12
-rw-r--r--gfx/tilesets/mansion.2bpp.lzbin0 -> 912 bytes
-rw-r--r--gfx/tilesets/mansion.pngbin0 -> 988 bytes
-rw-r--r--gfx/tilesets/mansion_palette_map.asm12
-rw-r--r--gfx/tilesets/mart.2bpp.lzbin0 -> 944 bytes
-rw-r--r--gfx/tilesets/mart.pngbin0 -> 957 bytes
-rw-r--r--gfx/tilesets/mart_palette_map.asm12
-rwxr-xr-xgfx/tilesets/palette_maps.asm393
-rw-r--r--gfx/tilesets/park.2bpp.lzbin0 -> 1120 bytes
-rw-r--r--gfx/tilesets/park.pngbin0 -> 1206 bytes
-rw-r--r--gfx/tilesets/park_palette_map.asm12
-rw-r--r--gfx/tilesets/players_house.2bpp.lzbin0 -> 992 bytes
-rw-r--r--gfx/tilesets/players_house.pngbin0 -> 999 bytes
-rw-r--r--gfx/tilesets/players_house_palette_map.asm12
-rw-r--r--gfx/tilesets/players_room.2bpp.lzbin0 -> 1216 bytes
-rw-r--r--gfx/tilesets/players_room.pngbin0 -> 1221 bytes
-rw-r--r--gfx/tilesets/players_room_palette_map.asm12
-rw-r--r--gfx/tilesets/pokecenter.2bpp.lzbin0 -> 1072 bytes
-rw-r--r--gfx/tilesets/pokecenter.pngbin0 -> 1169 bytes
-rw-r--r--gfx/tilesets/pokecenter_palette_map.asm12
-rw-r--r--gfx/tilesets/port.2bpp.lzbin0 -> 1040 bytes
-rw-r--r--gfx/tilesets/port.pngbin0 -> 1048 bytes
-rw-r--r--gfx/tilesets/port_palette_map.asm12
-rw-r--r--gfx/tilesets/radio_tower.2bpp.lzbin0 -> 1104 bytes
-rw-r--r--gfx/tilesets/radio_tower.pngbin0 -> 1106 bytes
-rw-r--r--gfx/tilesets/radio_tower_palette_map.asm12
-rw-r--r--gfx/tilesets/roofs/azalea.2bppbin0 -> 144 bytes
-rw-r--r--gfx/tilesets/roofs/azalea.pngbin0 -> 143 bytes
-rw-r--r--gfx/tilesets/roofs/goldenrod.2bppbin0 -> 144 bytes
-rw-r--r--gfx/tilesets/roofs/goldenrod.pngbin0 -> 112 bytes
-rw-r--r--gfx/tilesets/roofs/new_bark.2bppbin0 -> 144 bytes
-rw-r--r--gfx/tilesets/roofs/new_bark.pngbin0 -> 102 bytes
-rw-r--r--gfx/tilesets/roofs/olivine.2bppbin0 -> 144 bytes
-rw-r--r--gfx/tilesets/roofs/olivine.pngbin0 -> 97 bytes
-rw-r--r--gfx/tilesets/roofs/violet.2bppbin0 -> 144 bytes
-rw-r--r--gfx/tilesets/roofs/violet.pngbin0 -> 103 bytes
-rw-r--r--gfx/tilesets/ruins_of_alph.2bpp.lzbin0 -> 816 bytes
-rw-r--r--gfx/tilesets/ruins_of_alph.pngbin0 -> 850 bytes
-rw-r--r--gfx/tilesets/ruins_of_alph_palette_map.asm12
-rw-r--r--gfx/tilesets/tower-pillar/1.2bpp1
-rw-r--r--gfx/tilesets/tower-pillar/1.pngbin0 -> 137 bytes
-rw-r--r--gfx/tilesets/tower-pillar/10.2bpp1
-rw-r--r--gfx/tilesets/tower-pillar/10.pngbin0 -> 118 bytes
-rw-r--r--gfx/tilesets/tower-pillar/2.2bpp1
-rw-r--r--gfx/tilesets/tower-pillar/2.pngbin0 -> 133 bytes
-rw-r--r--gfx/tilesets/tower-pillar/3.2bpp1
-rw-r--r--gfx/tilesets/tower-pillar/3.pngbin0 -> 127 bytes
-rw-r--r--gfx/tilesets/tower-pillar/4.2bpp1
-rw-r--r--gfx/tilesets/tower-pillar/4.pngbin0 -> 130 bytes
-rw-r--r--gfx/tilesets/tower-pillar/5.2bpp1
-rw-r--r--gfx/tilesets/tower-pillar/5.pngbin0 -> 117 bytes
-rw-r--r--gfx/tilesets/tower-pillar/6.2bpp1
-rw-r--r--gfx/tilesets/tower-pillar/6.pngbin0 -> 116 bytes
-rw-r--r--gfx/tilesets/tower-pillar/7.2bpp1
-rw-r--r--gfx/tilesets/tower-pillar/7.pngbin0 -> 115 bytes
-rw-r--r--gfx/tilesets/tower-pillar/8.2bpp1
-rw-r--r--gfx/tilesets/tower-pillar/8.pngbin0 -> 115 bytes
-rw-r--r--gfx/tilesets/tower-pillar/9.2bpp1
-rw-r--r--gfx/tilesets/tower-pillar/9.pngbin0 -> 127 bytes
-rw-r--r--gfx/tilesets/tower.2bpp.lzbin0 -> 1072 bytes
-rw-r--r--gfx/tilesets/tower.pngbin0 -> 1139 bytes
-rw-r--r--gfx/tilesets/tower_palette_map.asm12
-rw-r--r--gfx/tilesets/traditional_house.2bpp.lzbin0 -> 1200 bytes
-rw-r--r--gfx/tilesets/traditional_house.pngbin0 -> 1161 bytes
-rw-r--r--gfx/tilesets/traditional_house_palette_map.asm12
-rw-r--r--gfx/tilesets/train_station.2bpp.lzbin0 -> 928 bytes
-rw-r--r--gfx/tilesets/train_station.pngbin0 -> 1122 bytes
-rw-r--r--gfx/tilesets/train_station_palette_map.asm12
-rw-r--r--gfx/tilesets/underground.2bpp.lzbin0 -> 976 bytes
-rw-r--r--gfx/tilesets/underground.pngbin0 -> 1098 bytes
-rw-r--r--gfx/tilesets/underground_palette_map.asm12
-rw-r--r--gfx/tilesets/unused_museum_palette_map.asm15
-rw-r--r--gfx/tilesets/water/water.2bppbin0 -> 64 bytes
-rw-r--r--gfx/tilesets/water/water.pngbin0 -> 100 bytes
-rw-r--r--gfx/tilesets/whirlpool/1.2bppbin0 -> 64 bytes
-rw-r--r--gfx/tilesets/whirlpool/1.pngbin0 -> 146 bytes
-rw-r--r--gfx/tilesets/whirlpool/2.2bppbin0 -> 64 bytes
-rw-r--r--gfx/tilesets/whirlpool/2.pngbin0 -> 145 bytes
-rw-r--r--gfx/tilesets/whirlpool/3.2bppbin0 -> 64 bytes
-rw-r--r--gfx/tilesets/whirlpool/3.pngbin0 -> 146 bytes
-rw-r--r--gfx/tilesets/whirlpool/4.2bppbin0 -> 64 bytes
-rw-r--r--gfx/tilesets/whirlpool/4.pngbin0 -> 145 bytes
-rw-r--r--gfx/unknown/gfx_17079.pngbin173 -> 0 bytes
-rw-r--r--layout.link17
-rw-r--r--main.asm336
-rw-r--r--tools/gfx.py49
-rw-r--r--tools/pokemontools/gfx.py6
-rwxr-xr-xtools/unused_sources.sh2
-rw-r--r--unknown/bank05_704d.asm30
-rw-r--r--wram.asm34
541 files changed, 7829 insertions, 1042 deletions
diff --git a/.gitignore b/.gitignore
index 7b6a70e0..f72107ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -55,6 +55,10 @@ gfx/battle/dude.2bpp
gfx/player/chris_back.2bpp
gfx/trade/game_boy.2bpp
gfx/pokegear/pokegear_sprites.2bpp
+gfx/pokegear/pokegear.2bpp
gfx/slots/slots_*.2bpp
gfx/pokedex/pokedex.2bpp
gfx/pokedex/slowpoke.2bpp
+gfx/pokedex/pokedex_sgb.2bpp
+gfx/pokedex/question_mark.2bpp
+gfx/tilesets/*.2bpp
diff --git a/Makefile b/Makefile
index 5c067182..643b8946 100644
--- a/Makefile
+++ b/Makefile
@@ -11,7 +11,8 @@ data/pokemon/dex_entries.o \
data/pokemon/egg_moves.o \
data/pokemon/evos_attacks.o \
engine/overworld/events.o \
-gfx/sprites.o
+gfx/sprites.o \
+gfx/tilesets.o
# Distinguish asm files which are game-exclusive for building (*_[gold|silver].asm)
gs_excl_asm := gfx/pics
diff --git a/constants.asm b/constants.asm
index 03c24b8d..80b15cab 100644
--- a/constants.asm
+++ b/constants.asm
@@ -13,7 +13,7 @@ INCLUDE "constants/audio_constants.asm"
INCLUDE "constants/battle_anim_constants.asm"
INCLUDE "constants/battle_constants.asm"
INCLUDE "constants/collision_constants.asm"
-;INCLUDE "constants/credits_constants.asm"
+INCLUDE "constants/credits_constants.asm"
INCLUDE "constants/cry_constants.asm"
INCLUDE "constants/engine_flags.asm"
INCLUDE "constants/event_flags.asm"
diff --git a/constants/collision_constants.asm b/constants/collision_constants.asm
index 5626cb09..420122ac 100755
--- a/constants/collision_constants.asm
+++ b/constants/collision_constants.asm
@@ -20,6 +20,8 @@ COLL_TALL_GRASS EQU $18
COLL_CUT_TREE_1A EQU $1a ; unused
COLL_LONG_GRASS_1C EQU $1c ; unused
COLL_HEADBUTT_TREE_1D EQU $1d ; unused
+COLL_1E EQU $1e ; ?
+COLL_1F EQU $1f ; ?
COLL_WATER_21 EQU $21 ; unused
COLL_ICE EQU $23
COLL_WHIRLPOOL EQU $24
@@ -32,6 +34,7 @@ COLL_WATERFALL_RIGHT EQU $30 ; unused
COLL_WATERFALL_LEFT EQU $31 ; unused
COLL_WATERFALL_UP EQU $32 ; unused
COLL_WATERFALL EQU $33
+COLL_36 EQU $36 ; ?
COLL_CURRENT_RIGHT EQU $38 ; unused
COLL_CURRENT_LEFT EQU $39 ; unused
COLL_CURRENT_UP EQU $3a ; unused
@@ -44,8 +47,8 @@ COLL_WALK_DOWN EQU $44 ; unused
COLL_BRAKE_45 EQU $45 ; garbage
COLL_BRAKE_46 EQU $46 ; unused
COLL_BRAKE_47 EQU $47 ; unused
-COLL_GRASS_48 EQU $48 ; unused
-COLL_GRASS_49 EQU $49 ; unused
+COLL_GRASS_48 EQU $48
+COLL_GRASS_49 EQU $49
COLL_GRASS_4A EQU $4a ; garbage
COLL_GRASS_4B EQU $4b ; garbage
COLL_GRASS_4C EQU $4c ; unused
@@ -60,6 +63,7 @@ COLL_BRAKE_57 EQU $57 ; unused
COLL_5B EQU $5b ; garbage
COLL_PIT EQU $60
COLL_VIRTUAL_BOY EQU $61 ; garbage
+COLL_63 EQU $63 ; ?
COLL_64 EQU $64 ; garbage
COLL_65 EQU $65 ; garbage
COLL_PIT_68 EQU $68 ; unused
@@ -79,6 +83,8 @@ COLL_WARP_PANEL EQU $7c
COLL_DOOR_7D EQU $7d ; unused
COLL_WARP_CARPET_RIGHT EQU $7e
COLL_WARP_7F EQU $7f ; unused
+COLL_88 EQU $88 ; ?
+COLL_89 EQU $89 ; ?
COLL_COUNTER EQU $90
COLL_BOOKSHELF EQU $91
COLL_PC EQU $93
diff --git a/constants/credits_constants.asm b/constants/credits_constants.asm
new file mode 100644
index 00000000..686f73ba
--- /dev/null
+++ b/constants/credits_constants.asm
@@ -0,0 +1,78 @@
+; CreditsStringsPointers indexes (see data/credits_strings_pointers.asm)
+ const_def
+ const SATOSHI_TAJIRI
+ const JUNICHI_MASUDA
+ const TETSUYA_WATANABE
+ const SHIGEKI_MORIMOTO
+ const SOUSUKE_TAMADA
+ const TAKENORI_OOTA
+ const KEN_SUGIMORI
+ const MOTOFUMI_FUJIWARA
+ const ATSUKO_NISHIDA
+ const MUNEO_SAITO
+ const SATOSHI_OOTA
+ const RENA_YOSHIKAWA
+ const JUN_OKUTANI
+ const HIRONOBU_YOSHIDA
+ const ASUKA_IWASHITA
+ const GO_ICHINOSE
+ const MORIKAZU_AOKI
+ const KOHJI_NISHINO
+ const KENJI_MATSUSHIMA
+ const TOSHINOBU_MATSUMIYA
+ const SATORU_IWATA
+ const NOBUHIRO_SEYA
+ const KAZUHITO_SEKINE
+ const TETSUJI_OOTA
+ const NCL_SUPER_MARIO_CLUB
+ const SARUGAKUCHO
+ const AKITO_MORI
+ const TAKAHIRO_HARADA
+ const TOHRU_HASHIMOTO
+ const NOBORU_MATSUMOTO
+ const TAKEHIRO_IZUSHI
+ const TAKASHI_KAWAGUCHI
+ const TSUNEKAZU_ISHIHARA
+ const HIROSHI_YAMAUCHI
+ const KENJI_SAIKI
+ const ATSUSHI_TADA
+ const NAOKO_KAWAKAMI
+ const HIROYUKI_ZINNAI
+ const KUNIMI_KAWAMURA
+ const GAIL_TILDEN
+ const HIRO_NAKAMURA
+ const JEFF_KALLES
+ const WILLIAM_GIESE
+ const NOB_OGASAWARA
+ const RANDY_SHOEMAKE
+ const KATHY_HUGUENARD
+ const JOEL_SIMON
+ const TERUKI_MURAKAWA
+ const KAZUYOSHI_OSAWA
+ const KIMIKO_NAKAMICHI
+ const CREDIT_END
+ const STAFF
+ const DIRECTOR
+ const SUBDIRECTOR
+ const PROGRAMMERS
+ const GRAPHICS_DIRECTOR
+ const MONSTER_DESIGN
+ const GRAPHICS_DESIGN
+ const CREDIT_MUSIC
+ const CREDIT_SOUND_EFFECTS
+ const GAME_DESIGN
+ const GAME_SCENARIO
+ const TOOL_PROGRAMMING
+ const PARAMETRIC_DESIGN
+ const SCRIPT_DESIGN
+ const MAP_DATA_DESIGN
+ const MAP_DESIGN
+ const PRODUCT_TESTING
+ const SPECIAL_THANKS
+ const PRODUCERS
+ const EXECUTIVE_PRODUCER
+ const COPYRIGHT
+ const US_VERSION_STAFF
+ const US_COORDINATION
+ const TEXT_TRANSLATION
+ const PAAD_TESTING
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index 3e5af01e..6c229920 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -471,3 +471,5 @@ ENDM
map_const ROUTE_30_BERRY_HOUSE, 4, 4 ; 9
map_const MR_POKEMONS_HOUSE, 4, 4 ; 10
map_const ROUTE_31_VIOLET_GATE, 5, 4 ; 11
+
+NUM_MAP_GROUPS EQU const_value
diff --git a/constants/npc_trade_constants.asm b/constants/npc_trade_constants.asm
index f84db5df..6e1d45c9 100644
--- a/constants/npc_trade_constants.asm
+++ b/constants/npc_trade_constants.asm
@@ -18,7 +18,6 @@ NPCTRADE_PADDING EQU 31 ; db
const NPC_TRADE_EMY ; 3
const NPC_TRADE_CHRIS ; 4
const NPC_TRADE_KIM ; 5
- const NPC_TRADE_FOREST ; 6
NUM_NPC_TRADES EQU const_value
; trade gender limits
@@ -42,4 +41,3 @@ NUM_NPC_TRADES EQU const_value
const TRADE_DIALOGSET_COLLECTOR
const TRADE_DIALOGSET_HAPPY
const TRADE_DIALOGSET_NEWBIE
- const TRADE_DIALOGSET_GIRL
diff --git a/data/collision_permissions.asm b/data/collision_permissions.asm
index 93cf5509..57172ca5 100755
--- a/data/collision_permissions.asm
+++ b/data/collision_permissions.asm
@@ -1,261 +1,258 @@
-NONTALKABLE EQUS "db"
-TALKABLE EQUS "db TALK +"
-
TileCollisionTable::
; entries correspond to COLL_* constants
- NONTALKABLE LAND_TILE ; COLL_FLOOR
- NONTALKABLE LAND_TILE ; COLL_01
- NONTALKABLE LAND_TILE ; 02
- NONTALKABLE LAND_TILE ; COLL_03
- NONTALKABLE LAND_TILE ; COLL_04
- NONTALKABLE LAND_TILE ; 05
- NONTALKABLE LAND_TILE ; 06
- NONTALKABLE WALL_TILE ; COLL_WALL
- NONTALKABLE LAND_TILE ; COLL_CUT_08
- NONTALKABLE LAND_TILE ; 09
- NONTALKABLE LAND_TILE ; 0a
- NONTALKABLE LAND_TILE ; 0b
- NONTALKABLE LAND_TILE ; 0c
- NONTALKABLE LAND_TILE ; 0d
- NONTALKABLE LAND_TILE ; 0e
- NONTALKABLE WALL_TILE ; 0f
- NONTALKABLE LAND_TILE ; COLL_TALL_GRASS_10
- NONTALKABLE LAND_TILE ; 11
- TALKABLE WALL_TILE ; COLL_CUT_TREE
- NONTALKABLE LAND_TILE ; 13
- NONTALKABLE LAND_TILE ; COLL_LONG_GRASS
- TALKABLE WALL_TILE ; COLL_HEADBUTT_TREE
- NONTALKABLE LAND_TILE ; 16
- NONTALKABLE LAND_TILE ; 17
- NONTALKABLE LAND_TILE ; COLL_TALL_GRASS
- NONTALKABLE LAND_TILE ; 19
- TALKABLE WALL_TILE ; COLL_CUT_TREE_1A
- NONTALKABLE LAND_TILE ; 1b
- NONTALKABLE LAND_TILE ; COLL_LONG_GRASS_1C
- TALKABLE WALL_TILE ; COLL_HEADBUTT_TREE_1D
- NONTALKABLE LAND_TILE ; 1e
- NONTALKABLE LAND_TILE ; 1f
- NONTALKABLE WATERTILE ; 20
- NONTALKABLE WATERTILE ; COLL_WATER_21
- TALKABLE WATERTILE ; 22
- NONTALKABLE LAND_TILE ; COLL_ICE
- TALKABLE WATERTILE ; COLL_WHIRLPOOL
- NONTALKABLE WATERTILE ; 25
- NONTALKABLE WATERTILE ; 26
- NONTALKABLE WALL_TILE ; COLL_BUOY
- NONTALKABLE WATERTILE ; COLL_CUT_28
- NONTALKABLE WATERTILE ; COLL_WATER
- TALKABLE WATERTILE ; 2a
- NONTALKABLE LAND_TILE ; COLL_ICE_2B
- TALKABLE WATERTILE ; COLL_WHIRLPOOL_2C
- NONTALKABLE WATERTILE ; 2d
- NONTALKABLE WATERTILE ; 2e
- NONTALKABLE WALL_TILE ; 2f
- NONTALKABLE WATERTILE ; COLL_WATERFALL_RIGHT
- NONTALKABLE WATERTILE ; COLL_WATERFALL_LEFT
- NONTALKABLE WATERTILE ; COLL_WATERFALL_UP
- NONTALKABLE WATERTILE ; COLL_WATERFALL
- NONTALKABLE WATERTILE ; 34
- NONTALKABLE WATERTILE ; 35
- NONTALKABLE WATERTILE ; 36
- NONTALKABLE WATERTILE ; 37
- NONTALKABLE WATERTILE ; COLL_CURRENT_RIGHT
- NONTALKABLE WATERTILE ; COLL_CURRENT_LEFT
- NONTALKABLE WATERTILE ; COLL_CURRENT_UP
- NONTALKABLE WATERTILE ; COLL_CURRENT_DOWN
- NONTALKABLE WATERTILE ; 3c
- NONTALKABLE WATERTILE ; 3d
- NONTALKABLE WATERTILE ; 3e
- NONTALKABLE WATERTILE ; 3f
- NONTALKABLE LAND_TILE ; COLL_BRAKE
- NONTALKABLE LAND_TILE ; COLL_WALK_RIGHT
- NONTALKABLE LAND_TILE ; COLL_WALK_LEFT
- NONTALKABLE LAND_TILE ; COLL_WALK_UP
- NONTALKABLE LAND_TILE ; COLL_WALK_DOWN
- NONTALKABLE LAND_TILE ; COLL_BRAKE_45
- NONTALKABLE LAND_TILE ; COLL_BRAKE_46
- NONTALKABLE LAND_TILE ; COLL_BRAKE_47
- NONTALKABLE LAND_TILE ; COLL_GRASS_48
- NONTALKABLE LAND_TILE ; COLL_GRASS_49
- NONTALKABLE LAND_TILE ; COLL_GRASS_4A
- NONTALKABLE LAND_TILE ; COLL_GRASS_4B
- NONTALKABLE LAND_TILE ; COLL_GRASS_4C
- NONTALKABLE LAND_TILE ; 4d
- NONTALKABLE LAND_TILE ; 4e
- NONTALKABLE LAND_TILE ; 4f
- NONTALKABLE LAND_TILE ; COLL_WALK_RIGHT_ALT
- NONTALKABLE LAND_TILE ; COLL_WALK_LEFT_ALT
- NONTALKABLE LAND_TILE ; COLL_WALK_UP_ALT
- NONTALKABLE LAND_TILE ; COLL_WALK_DOWN_ALT
- NONTALKABLE LAND_TILE ; COLL_BRAKE_ALT
- NONTALKABLE LAND_TILE ; COLL_BRAKE_55
- NONTALKABLE LAND_TILE ; COLL_BRAKE_56
- NONTALKABLE LAND_TILE ; COLL_BRAKE_57
- NONTALKABLE LAND_TILE ; 58
- NONTALKABLE LAND_TILE ; 59
- NONTALKABLE LAND_TILE ; 5a
- NONTALKABLE LAND_TILE ; COLL_5B
- NONTALKABLE LAND_TILE ; 5c
- NONTALKABLE LAND_TILE ; 5d
- NONTALKABLE LAND_TILE ; 5e
- NONTALKABLE LAND_TILE ; 5f
- NONTALKABLE LAND_TILE ; COLL_PIT
- NONTALKABLE LAND_TILE ; COLL_VIRTUAL_BOY
- NONTALKABLE WALL_TILE ; 62
- NONTALKABLE LAND_TILE ; 63
- NONTALKABLE LAND_TILE ; COLL_64
- NONTALKABLE LAND_TILE ; COLL_65
- NONTALKABLE LAND_TILE ; 66
- NONTALKABLE LAND_TILE ; 67
- NONTALKABLE LAND_TILE ; COLL_PIT_68
- NONTALKABLE LAND_TILE ; 69
- NONTALKABLE WALL_TILE ; 6a
- NONTALKABLE LAND_TILE ; 6b
- NONTALKABLE LAND_TILE ; 6c
- NONTALKABLE LAND_TILE ; 6d
- NONTALKABLE LAND_TILE ; 6e
- NONTALKABLE LAND_TILE ; 6f
- NONTALKABLE LAND_TILE ; COLL_WARP_CARPET_DOWN
- NONTALKABLE LAND_TILE ; COLL_DOOR
- NONTALKABLE LAND_TILE ; COLL_LADDER
- NONTALKABLE LAND_TILE ; COLL_STAIRCASE_73
- NONTALKABLE LAND_TILE ; COLL_CAVE_74
- NONTALKABLE LAND_TILE ; COLL_DOOR_75
- NONTALKABLE LAND_TILE ; COLL_WARP_CARPET_LEFT
- NONTALKABLE LAND_TILE ; COLL_WARP_77
- NONTALKABLE LAND_TILE ; COLL_WARP_CARPET_UP
- NONTALKABLE LAND_TILE ; COLL_DOOR_79
- NONTALKABLE LAND_TILE ; COLL_STAIRCASE
- NONTALKABLE LAND_TILE ; COLL_CAVE
- NONTALKABLE LAND_TILE ; COLL_WARP_PANEL
- NONTALKABLE LAND_TILE ; COLL_DOOR_7D
- NONTALKABLE LAND_TILE ; COLL_WARP_CARPET_RIGHT
- NONTALKABLE LAND_TILE ; COLL_WARP_7F
- NONTALKABLE WALL_TILE ; 80
- NONTALKABLE WALL_TILE ; 81
- NONTALKABLE WALL_TILE ; 82
- NONTALKABLE WALL_TILE ; 83
- NONTALKABLE WALL_TILE ; 84
- NONTALKABLE LAND_TILE ; 85
- NONTALKABLE LAND_TILE ; 86
- NONTALKABLE LAND_TILE ; 87
- NONTALKABLE WALL_TILE ; 88
- NONTALKABLE WALL_TILE ; 89
- NONTALKABLE WALL_TILE ; 8a
- NONTALKABLE WALL_TILE ; 8b
- NONTALKABLE WALL_TILE ; 8c
- NONTALKABLE LAND_TILE ; 8d
- NONTALKABLE LAND_TILE ; 8e
- NONTALKABLE LAND_TILE ; 8f
- NONTALKABLE WALL_TILE ; COLL_COUNTER
- NONTALKABLE WALL_TILE ; COLL_BOOKSHELF
- NONTALKABLE WALL_TILE ; 92
- NONTALKABLE WALL_TILE ; COLL_PC
- NONTALKABLE WALL_TILE ; COLL_RADIO
- NONTALKABLE WALL_TILE ; COLL_TOWN_MAP
- NONTALKABLE WALL_TILE ; COLL_MART_SHELF
- NONTALKABLE WALL_TILE ; COLL_TV
- NONTALKABLE WALL_TILE ; COLL_COUNTER_98
- NONTALKABLE WALL_TILE ; 99
- NONTALKABLE WALL_TILE ; 9a
- NONTALKABLE WALL_TILE ; 9b
- NONTALKABLE WALL_TILE ; COLL_9C
- NONTALKABLE WALL_TILE ; COLL_WINDOW
- NONTALKABLE WALL_TILE ; 9e
- NONTALKABLE WALL_TILE ; COLL_INCENSE_BURNER
- NONTALKABLE LAND_TILE ; COLL_HOP_RIGHT
- NONTALKABLE LAND_TILE ; COLL_HOP_LEFT
- NONTALKABLE LAND_TILE ; COLL_HOP_UP
- NONTALKABLE LAND_TILE ; COLL_HOP_DOWN
- NONTALKABLE LAND_TILE ; COLL_HOP_DOWN_RIGHT
- NONTALKABLE LAND_TILE ; COLL_HOP_DOWN_LEFT
- NONTALKABLE LAND_TILE ; COLL_HOP_UP_RIGHT
- NONTALKABLE LAND_TILE ; COLL_HOP_UP_LEFT
- NONTALKABLE LAND_TILE ; a8
- NONTALKABLE LAND_TILE ; a9
- NONTALKABLE LAND_TILE ; aa
- NONTALKABLE LAND_TILE ; ab
- NONTALKABLE LAND_TILE ; ac
- NONTALKABLE LAND_TILE ; ad
- NONTALKABLE LAND_TILE ; ae
- NONTALKABLE LAND_TILE ; af
- NONTALKABLE LAND_TILE ; COLL_RIGHT_WALL
- NONTALKABLE LAND_TILE ; COLL_LEFT_WALL
- NONTALKABLE LAND_TILE ; COLL_UP_WALL
- NONTALKABLE LAND_TILE ; COLL_DOWN_WALL
- NONTALKABLE LAND_TILE ; COLL_DOWN_RIGHT_WALL
- NONTALKABLE LAND_TILE ; COLL_DOWN_LEFT_WALL
- NONTALKABLE LAND_TILE ; COLL_UP_RIGHT_WALL
- NONTALKABLE LAND_TILE ; COLL_UP_LEFT_WALL
- NONTALKABLE LAND_TILE ; b8
- NONTALKABLE LAND_TILE ; b9
- NONTALKABLE LAND_TILE ; ba
- NONTALKABLE LAND_TILE ; bb
- NONTALKABLE LAND_TILE ; bc
- NONTALKABLE LAND_TILE ; bd
- NONTALKABLE LAND_TILE ; be
- NONTALKABLE LAND_TILE ; bf
- NONTALKABLE WATERTILE ; COLL_RIGHT_BUOY
- NONTALKABLE WATERTILE ; COLL_LEFT_BUOY
- NONTALKABLE WATERTILE ; COLL_UP_BUOY
- NONTALKABLE WATERTILE ; COLL_DOWN_BUOY
- NONTALKABLE WATERTILE ; COLL_DOWN_RIGHT_BUOY
- NONTALKABLE WATERTILE ; COLL_DOWN_LEFT_BUOY
- NONTALKABLE WATERTILE ; COLL_UP_RIGHT_BUOY
- NONTALKABLE WATERTILE ; COLL_UP_LEFT_BUOY
- NONTALKABLE WATERTILE ; c8
- NONTALKABLE WATERTILE ; c9
- NONTALKABLE WATERTILE ; ca
- NONTALKABLE WATERTILE ; cb
- NONTALKABLE WATERTILE ; cc
- NONTALKABLE WATERTILE ; cd
- NONTALKABLE WATERTILE ; ce
- NONTALKABLE WATERTILE ; cf
- NONTALKABLE LAND_TILE ; d0
- NONTALKABLE LAND_TILE ; d1
- NONTALKABLE LAND_TILE ; d2
- NONTALKABLE LAND_TILE ; d3
- NONTALKABLE LAND_TILE ; d4
- NONTALKABLE LAND_TILE ; d5
- NONTALKABLE LAND_TILE ; d6
- NONTALKABLE LAND_TILE ; d7
- NONTALKABLE LAND_TILE ; d8
- NONTALKABLE LAND_TILE ; d9
- NONTALKABLE LAND_TILE ; da
- NONTALKABLE LAND_TILE ; db
- NONTALKABLE LAND_TILE ; dc
- NONTALKABLE LAND_TILE ; dd
- NONTALKABLE LAND_TILE ; de
- NONTALKABLE LAND_TILE ; df
- NONTALKABLE LAND_TILE ; e0
- NONTALKABLE LAND_TILE ; e1
- NONTALKABLE LAND_TILE ; e2
- NONTALKABLE LAND_TILE ; e3
- NONTALKABLE LAND_TILE ; e4
- NONTALKABLE LAND_TILE ; e5
- NONTALKABLE LAND_TILE ; e6
- NONTALKABLE LAND_TILE ; e7
- NONTALKABLE LAND_TILE ; e8
- NONTALKABLE LAND_TILE ; e9
- NONTALKABLE LAND_TILE ; ea
- NONTALKABLE LAND_TILE ; eb
- NONTALKABLE LAND_TILE ; ec
- NONTALKABLE LAND_TILE ; ed
- NONTALKABLE LAND_TILE ; ee
- NONTALKABLE LAND_TILE ; ef
- NONTALKABLE LAND_TILE ; f0
- NONTALKABLE LAND_TILE ; f1
- NONTALKABLE LAND_TILE ; f2
- NONTALKABLE LAND_TILE ; f3
- NONTALKABLE LAND_TILE ; f4
- NONTALKABLE LAND_TILE ; f5
- NONTALKABLE LAND_TILE ; f6
- NONTALKABLE LAND_TILE ; f7
- NONTALKABLE LAND_TILE ; f8
- NONTALKABLE LAND_TILE ; f9
- NONTALKABLE LAND_TILE ; fa
- NONTALKABLE LAND_TILE ; fb
- NONTALKABLE LAND_TILE ; fc
- NONTALKABLE LAND_TILE ; fd
- NONTALKABLE LAND_TILE ; fe
- NONTALKABLE WALL_TILE ; COLL_FF
+ db LAND_TILE ; COLL_FLOOR
+ db LAND_TILE ; COLL_01
+ db LAND_TILE ; 02
+ db LAND_TILE ; COLL_03
+ db LAND_TILE ; COLL_04
+ db LAND_TILE ; 05
+ db LAND_TILE ; 06
+ db WALL_TILE ; COLL_WALL
+ db LAND_TILE ; COLL_CUT_08
+ db LAND_TILE ; 09
+ db LAND_TILE ; 0a
+ db LAND_TILE ; 0b
+ db LAND_TILE ; 0c
+ db LAND_TILE ; 0d
+ db LAND_TILE ; 0e
+ db WALL_TILE ; 0f
+ db LAND_TILE ; COLL_TALL_GRASS_10
+ db LAND_TILE ; 11
+ db WALL_TILE | TALK ; COLL_CUT_TREE
+ db LAND_TILE ; 13
+ db LAND_TILE ; COLL_LONG_GRASS
+ db WALL_TILE | TALK ; COLL_HEADBUTT_TREE
+ db LAND_TILE ; 16
+ db LAND_TILE ; 17
+ db LAND_TILE ; COLL_TALL_GRASS
+ db LAND_TILE ; 19
+ db WALL_TILE | TALK ; COLL_CUT_TREE_1A
+ db LAND_TILE ; 1b
+ db LAND_TILE ; COLL_LONG_GRASS_1C
+ db WALL_TILE | TALK ; COLL_HEADBUTT_TREE_1D
+ db LAND_TILE ; 1e
+ db LAND_TILE ; 1f
+ db WATER_TILE ; 20
+ db WATER_TILE ; COLL_WATER_21
+ db WATER_TILE | TALK ; 22
+ db LAND_TILE ; COLL_ICE
+ db WATER_TILE | TALK ; COLL_WHIRLPOOL
+ db WATER_TILE ; 25
+ db WATER_TILE ; 26
+ db WALL_TILE ; COLL_BUOY
+ db WATER_TILE ; COLL_CUT_28
+ db WATER_TILE ; COLL_WATER
+ db WATER_TILE | TALK ; 2a
+ db LAND_TILE ; COLL_ICE_2B
+ db WATER_TILE | TALK ; COLL_WHIRLPOOL_2C
+ db WATER_TILE ; 2d
+ db WATER_TILE ; 2e
+ db WALL_TILE ; 2f
+ db WATER_TILE ; COLL_WATERFALL_RIGHT
+ db WATER_TILE ; COLL_WATERFALL_LEFT
+ db WATER_TILE ; COLL_WATERFALL_UP
+ db WATER_TILE ; COLL_WATERFALL
+ db WATER_TILE ; 34
+ db WATER_TILE ; 35
+ db WATER_TILE ; 36
+ db WATER_TILE ; 37
+ db WATER_TILE ; COLL_CURRENT_RIGHT
+ db WATER_TILE ; COLL_CURRENT_LEFT
+ db WATER_TILE ; COLL_CURRENT_UP
+ db WATER_TILE ; COLL_CURRENT_DOWN
+ db WATER_TILE ; 3c
+ db WATER_TILE ; 3d
+ db WATER_TILE ; 3e
+ db WATER_TILE ; 3f
+ db LAND_TILE ; COLL_BRAKE
+ db LAND_TILE ; COLL_WALK_RIGHT
+ db LAND_TILE ; COLL_WALK_LEFT
+ db LAND_TILE ; COLL_WALK_UP
+ db LAND_TILE ; COLL_WALK_DOWN
+ db LAND_TILE ; COLL_BRAKE_45
+ db LAND_TILE ; COLL_BRAKE_46
+ db LAND_TILE ; COLL_BRAKE_47
+ db LAND_TILE ; COLL_GRASS_48
+ db LAND_TILE ; COLL_GRASS_49
+ db LAND_TILE ; COLL_GRASS_4A
+ db LAND_TILE ; COLL_GRASS_4B
+ db LAND_TILE ; COLL_GRASS_4C
+ db LAND_TILE ; 4d
+ db LAND_TILE ; 4e
+ db LAND_TILE ; 4f
+ db LAND_TILE ; COLL_WALK_RIGHT_ALT
+ db LAND_TILE ; COLL_WALK_LEFT_ALT
+ db LAND_TILE ; COLL_WALK_UP_ALT
+ db LAND_TILE ; COLL_WALK_DOWN_ALT
+ db LAND_TILE ; COLL_BRAKE_ALT
+ db LAND_TILE ; COLL_BRAKE_55
+ db LAND_TILE ; COLL_BRAKE_56
+ db LAND_TILE ; COLL_BRAKE_57
+ db LAND_TILE ; 58
+ db LAND_TILE ; 59
+ db LAND_TILE ; 5a
+ db LAND_TILE ; COLL_5B
+ db LAND_TILE ; 5c
+ db LAND_TILE ; 5d
+ db LAND_TILE ; 5e
+ db LAND_TILE ; 5f
+ db LAND_TILE ; COLL_PIT
+ db LAND_TILE ; COLL_VIRTUAL_BOY
+ db WALL_TILE ; 62
+ db LAND_TILE ; 63
+ db LAND_TILE ; COLL_64
+ db LAND_TILE ; COLL_65
+ db LAND_TILE ; 66
+ db LAND_TILE ; 67
+ db LAND_TILE ; COLL_PIT_68
+ db LAND_TILE ; 69
+ db WALL_TILE ; 6a
+ db LAND_TILE ; 6b
+ db LAND_TILE ; 6c
+ db LAND_TILE ; 6d
+ db LAND_TILE ; 6e
+ db LAND_TILE ; 6f
+ db LAND_TILE ; COLL_WARP_CARPET_DOWN
+ db LAND_TILE ; COLL_DOOR
+ db LAND_TILE ; COLL_LADDER
+ db LAND_TILE ; COLL_STAIRCASE_73
+ db LAND_TILE ; COLL_CAVE_74
+ db LAND_TILE ; COLL_DOOR_75
+ db LAND_TILE ; COLL_WARP_CARPET_LEFT
+ db LAND_TILE ; COLL_WARP_77
+ db LAND_TILE ; COLL_WARP_CARPET_UP
+ db LAND_TILE ; COLL_DOOR_79
+ db LAND_TILE ; COLL_STAIRCASE
+ db LAND_TILE ; COLL_CAVE
+ db LAND_TILE ; COLL_WARP_PANEL
+ db LAND_TILE ; COLL_DOOR_7D
+ db LAND_TILE ; COLL_WARP_CARPET_RIGHT
+ db LAND_TILE ; COLL_WARP_7F
+ db WALL_TILE ; 80
+ db WALL_TILE ; 81
+ db WALL_TILE ; 82
+ db WALL_TILE ; 83
+ db WALL_TILE ; 84
+ db LAND_TILE ; 85
+ db LAND_TILE ; 86
+ db LAND_TILE ; 87
+ db WALL_TILE ; 88
+ db WALL_TILE ; 89
+ db WALL_TILE ; 8a
+ db WALL_TILE ; 8b
+ db WALL_TILE ; 8c
+ db LAND_TILE ; 8d
+ db LAND_TILE ; 8e
+ db LAND_TILE ; 8f
+ db WALL_TILE ; COLL_COUNTER
+ db WALL_TILE ; COLL_BOOKSHELF
+ db WALL_TILE ; 92
+ db WALL_TILE ; COLL_PC
+ db WALL_TILE ; COLL_RADIO
+ db WALL_TILE ; COLL_TOWN_MAP
+ db WALL_TILE ; COLL_MART_SHELF
+ db WALL_TILE ; COLL_TV
+ db WALL_TILE ; COLL_COUNTER_98
+ db WALL_TILE ; 99
+ db WALL_TILE ; 9a
+ db WALL_TILE ; 9b
+ db WALL_TILE ; COLL_9C
+ db WALL_TILE ; COLL_WINDOW
+ db WALL_TILE ; 9e
+ db WALL_TILE ; COLL_INCENSE_BURNER
+ db LAND_TILE ; COLL_HOP_RIGHT
+ db LAND_TILE ; COLL_HOP_LEFT
+ db LAND_TILE ; COLL_HOP_UP
+ db LAND_TILE ; COLL_HOP_DOWN
+ db LAND_TILE ; COLL_HOP_DOWN_RIGHT
+ db LAND_TILE ; COLL_HOP_DOWN_LEFT
+ db LAND_TILE ; COLL_HOP_UP_RIGHT
+ db LAND_TILE ; COLL_HOP_UP_LEFT
+ db LAND_TILE ; a8
+ db LAND_TILE ; a9
+ db LAND_TILE ; aa
+ db LAND_TILE ; ab
+ db LAND_TILE ; ac
+ db LAND_TILE ; ad
+ db LAND_TILE ; ae
+ db LAND_TILE ; af
+ db LAND_TILE ; COLL_RIGHT_WALL
+ db LAND_TILE ; COLL_LEFT_WALL
+ db LAND_TILE ; COLL_UP_WALL
+ db LAND_TILE ; COLL_DOWN_WALL
+ db LAND_TILE ; COLL_DOWN_RIGHT_WALL
+ db LAND_TILE ; COLL_DOWN_LEFT_WALL
+ db LAND_TILE ; COLL_UP_RIGHT_WALL
+ db LAND_TILE ; COLL_UP_LEFT_WALL
+ db LAND_TILE ; b8
+ db LAND_TILE ; b9
+ db LAND_TILE ; ba
+ db LAND_TILE ; bb
+ db LAND_TILE ; bc
+ db LAND_TILE ; bd
+ db LAND_TILE ; be
+ db LAND_TILE ; bf
+ db WATER_TILE ; COLL_RIGHT_BUOY
+ db WATER_TILE ; COLL_LEFT_BUOY
+ db WATER_TILE ; COLL_UP_BUOY
+ db WATER_TILE ; COLL_DOWN_BUOY
+ db WATER_TILE ; COLL_DOWN_RIGHT_BUOY
+ db WATER_TILE ; COLL_DOWN_LEFT_BUOY
+ db WATER_TILE ; COLL_UP_RIGHT_BUOY
+ db WATER_TILE ; COLL_UP_LEFT_BUOY
+ db WATER_TILE ; c8
+ db WATER_TILE ; c9
+ db WATER_TILE ; ca
+ db WATER_TILE ; cb
+ db WATER_TILE ; cc
+ db WATER_TILE ; cd
+ db WATER_TILE ; ce
+ db WATER_TILE ; cf
+ db LAND_TILE ; d0
+ db LAND_TILE ; d1
+ db LAND_TILE ; d2
+ db LAND_TILE ; d3
+ db LAND_TILE ; d4
+ db LAND_TILE ; d5
+ db LAND_TILE ; d6
+ db LAND_TILE ; d7
+ db LAND_TILE ; d8
+ db LAND_TILE ; d9
+ db LAND_TILE ; da
+ db LAND_TILE ; db
+ db LAND_TILE ; dc
+ db LAND_TILE ; dd
+ db LAND_TILE ; de
+ db LAND_TILE ; df
+ db LAND_TILE ; e0
+ db LAND_TILE ; e1
+ db LAND_TILE ; e2
+ db LAND_TILE ; e3
+ db LAND_TILE ; e4
+ db LAND_TILE ; e5
+ db LAND_TILE ; e6
+ db LAND_TILE ; e7
+ db LAND_TILE ; e8
+ db LAND_TILE ; e9
+ db LAND_TILE ; ea
+ db LAND_TILE ; eb
+ db LAND_TILE ; ec
+ db LAND_TILE ; ed
+ db LAND_TILE ; ee
+ db LAND_TILE ; ef
+ db LAND_TILE ; f0
+ db LAND_TILE ; f1
+ db LAND_TILE ; f2
+ db LAND_TILE ; f3
+ db LAND_TILE ; f4
+ db LAND_TILE ; f5
+ db LAND_TILE ; f6
+ db LAND_TILE ; f7
+ db LAND_TILE ; f8
+ db LAND_TILE ; f9
+ db LAND_TILE ; fa
+ db LAND_TILE ; fb
+ db LAND_TILE ; fc
+ db LAND_TILE ; fd
+ db LAND_TILE ; fe
+ db WALL_TILE ; COLL_FF
diff --git a/data/credits_strings.asm b/data/credits_strings.asm
new file mode 100644
index 00000000..d863b56c
--- /dev/null
+++ b/data/credits_strings.asm
@@ -0,0 +1,92 @@
+CreditsStrings: ; used for BANK(CreditsStrings)
+
+Credits_SatoshiTajiri: db " SATOSHI TAJIRI@" ; "たじり さとし@"
+Credits_JunichiMasuda: db " JUNICHI MASUDA@" ; "ますだ じゅんいち@"
+Credits_TetsuyaWatanabe: db " TETSUYA WATANABE@" ; "わたなべ てつや@"
+Credits_ShigekiMorimoto: db " SHIGEKI MORIMOTO@" ; "もりもと しげき@"
+Credits_SousukeTamada: db " SOUSUKE TAMADA@" ; "たまだ そうすけ@"
+Credits_TakenoriOota: db " TAKENORI OOTA@" ; "おおた たけのり@"
+Credits_KenSugimori: db " KEN SUGIMORI@" ; "すぎもり けん@"
+Credits_MotofumiFujiwara: db " MOTOFUMI FUJIWARA@" ; "ふじわら もとふみ@"
+Credits_AtsukoNishida: db " ATSUKO NISHIDA@" ; "にしだ あつこ@"
+Credits_MuneoSaito: db " MUNEO SAITO@" ; "さいとう むねお@"
+Credits_SatoshiOota: db " SATOSHI OOTA@" ; "おおた さとし@"
+Credits_RenaYoshikawa: db " RENA YOSHIKAWA@" ; "よしかわ れな@"
+Credits_JunOkutani: db " JUN OKUTANI@" ; "おくたに じゅん@"
+Credits_HironobuYoshida: db " HIRONOBU YOSHIDA@" ; "よしだ ひろのぶ@"
+Credits_AsukaIwashita: db " ASUKA IWASHITA@" ; "いわした あすか@"
+Credits_GoIchinose: db " GO ICHINOSE@" ; "いちのせ ごう@"
+Credits_MorikazuAoki: db " MORIKAZU AOKI@" ; "あおき もりかず@"
+Credits_KohjiNishino: db " KOHJI NISHINO@" ; "にしの こうじ@"
+Credits_KenjiMatsushima: db " KENJI MATSUSHIMA@" ; "まつしま けんじ@"
+Credits_ToshinobuMatsumiya: db "TOSHINOBU MATSUMIYA@" ; "まつみや としのぶ@"
+Credits_SatoruIwata: db " SATORU IWATA@" ; "いわた さとる@"
+Credits_NobuhiroSeya: db " NOBUHIRO SEYA@" ; "せや のぶひろ@"
+Credits_KazuhitoSekine: db " KAZUHITO SEKINE@" ; "せきね かずひと@"
+Credits_TetsujiOota: db " TETSUJI OOTA@" ; "おおた てつじ@"
+Credits_NclSuperMarioClub: db "NCL SUPER MARIO CLUB@" ; "スーパーマりオクラブ@"
+Credits_Sarugakucho: db " SARUGAKUCHO@" ; "さるがくちょう@"
+Credits_AkitoMori: db " AKITO MORI@" ; "もり あきと@"
+Credits_TakahiroHarada: db " TAKAHIRO HARADA@" ; "はらだ たかひろ@"
+Credits_TohruHashimoto: db " TOHRU HASHIMOTO@" ; "はしもと とおる@"
+Credits_NoboruMatsumoto: db " NOBORU MATSUMOTO@" ; "まつもと のぼる@"
+Credits_TakehiroIzushi: db " TAKEHIRO IZUSHI@" ; "いずし たけひろ@"
+Credits_TakashiKawaguchi: db " TAKASHI KAWAGUCHI@" ; "かわぐち たかし@"
+Credits_TsunekazuIshihara: db " TSUNEKAZU ISHIHARA@" ; "いしはら つねかず@"
+Credits_HiroshiYamauchi: db " HIROSHI YAMAUCHI@" ; "やまうち ひろし@"
+Credits_KenjiSaiki: db " KENJI SAIKI@" ; "さいき けんじ@"
+Credits_AtsushiTada: db " ATSUSHI TADA@" ; "ただ あつし@"
+Credits_NaokoKawakami: db " NAOKO KAWAKAMI@" ; "かわかみ なおこ@"
+Credits_HiroyukiZinnai: db " HIROYUKI ZINNAI@" ; "じんない ひろゆき@"
+Credits_KunimiKawamura: db " KUNIMI KAWAMURA@" ; "かわむら くにみ@"
+Credits_GailTilden: db " GAIL TILDEN@"
+Credits_HiroNakamura: db " HIRO NAKAMURA@"
+Credits_JeffKalles: db " JEFF KALLES@"
+Credits_WilliamGiese: db " WILLIAM GIESE@"
+Credits_NobOgasawara: db " NOB OGASAWARA@"
+Credits_RandyShoemake: db " RANDY SHOEMAKE@"
+Credits_KathyHuguenard: db " KATHY HUGUENARD@"
+Credits_JoelSimon: db " JOEL SIMON@"
+Credits_TerukiMurakawa: db " TERUKI MURAKAWA@"
+Credits_KazuyoshiOsawa: db " KAZUYOSHI OSAWA@"
+Credits_KimikoNakamichi: db " KIMIKO NAKAMICHI@"
+Credits_End: db "END@" ; "おしまい@"
+Credits_Staff: db " #MON" ; "ポケットモンスター"
+ IF DEF(_GOLD)
+ next " GOLD VERSION"
+ ELIF DEF(_SILVER)
+ next " SILVER VERSION"
+ ENDC
+ next " STAFF@"
+Credits_Director: db " DIRECTOR@" ; "エグゼクティブ ディレクター@"
+Credits_SubDirector: db " SUB DIRECTOR@"
+Credits_Programmers: db " PROGRAMMERS@" ; "プログラム@"
+Credits_GraphicsDirector: db " GRAPHICS DIRECTOR@" ; "グラフィック ディレクター@"
+Credits_MonsterDesign: db " MONSTER DESIGN@" ; "# デザイン@"
+Credits_GraphicsDesign: db " GRAPHICS DESIGN@" ; "グラフィック デザイン@"
+Credits_Music: db " MUSIC@" ; "おんがく@"
+Credits_SoundEffects: db " SOUND EFFECTS@" ; "サウンド エフェクト@"
+Credits_GameDesign: db " GAME DESIGN@" ; "ゲームデザイン@"
+Credits_GameScenario: db " GAME SCENARIO@" ; "シナりオ@"
+Credits_ToolProgramming: db " TOOL PROGRAMMING@" ; "ツール プログラム@"
+Credits_ParametricDesign: db " PARAMETRIC DESIGN@" ; "パラメーター せってい@"
+Credits_ScriptDesign: db " SCRIPT DESIGN@" ; "スクりプト せってい@"
+Credits_MapDataDesign: db " MAP DATA DESIGN@" ; "マップデータ せってい@"
+Credits_MapDesign: db " MAP DESIGN@" ; "マップ デザイン@"
+Credits_ProductTesting: db " PRODUCT TESTING@" ; "デバッグプレイ@"
+Credits_SpecialThanks: db " SPECIAL THANKS@" ; "スぺシャルサンクス@"
+Credits_Producers: db " PRODUCERS@" ; "プロデューサー@"
+Credits_ExecutiveProducer: db " EXECUTIVE PRODUCER@" ; "エグゼクティブ プロデューサー@"
+Credits_UsVersionStaff: db " US VERSION STAFF@"
+Credits_UsCoordination: db " US COORDINATION@"
+Credits_TextTranslation: db " TEXT TRANSLATION@"
+Credits_PaadTesting: db " PAAD TESTING@"
+
+Credits_Copyright:
+ ; (C) 1 9 9 5 - 2 0 0 0 N i n t e n d o
+ db $60,$61,$62,$63,$7a,$7b,$7c,$7d,$65,$66,$67,$68,$69,$6a
+ ; (C) 1 9 9 5 - 2 0 0 0 C r e a t u r e s i n c .
+ next $60,$61,$62,$63,$7a,$7b,$7c,$7d,$6b,$6c,$6d,$6e,$6f, $70,$71,$72
+ ; (C) 1 9 9 5 - 2 0 0 0 G A M E F R E A K i n c .
+ next $60,$61,$62,$63,$7a,$7b,$7c,$7d,$73,$74,$75,$76,$77,$78, $79,$71,$72
+ db "@"
diff --git a/data/credits_strings_pointers.asm b/data/credits_strings_pointers.asm
new file mode 100644
index 00000000..4d79bfad
--- /dev/null
+++ b/data/credits_strings_pointers.asm
@@ -0,0 +1,78 @@
+CreditsStringsPointers:
+; entries correspond to constants/credits_constants.asm
+ dw Credits_SatoshiTajiri
+ dw Credits_JunichiMasuda
+ dw Credits_TetsuyaWatanabe
+ dw Credits_ShigekiMorimoto
+ dw Credits_SousukeTamada
+ dw Credits_TakenoriOota
+ dw Credits_KenSugimori
+ dw Credits_MotofumiFujiwara
+ dw Credits_AtsukoNishida
+ dw Credits_MuneoSaito
+ dw Credits_SatoshiOota
+ dw Credits_RenaYoshikawa
+ dw Credits_JunOkutani
+ dw Credits_HironobuYoshida
+ dw Credits_AsukaIwashita
+ dw Credits_GoIchinose
+ dw Credits_MorikazuAoki
+ dw Credits_KohjiNishino
+ dw Credits_KenjiMatsushima
+ dw Credits_ToshinobuMatsumiya
+ dw Credits_SatoruIwata
+ dw Credits_NobuhiroSeya
+ dw Credits_KazuhitoSekine
+ dw Credits_TetsujiOota
+ dw Credits_NclSuperMarioClub
+ dw Credits_Sarugakucho
+ dw Credits_AkitoMori
+ dw Credits_TakahiroHarada
+ dw Credits_TohruHashimoto
+ dw Credits_NoboruMatsumoto
+ dw Credits_TakehiroIzushi
+ dw Credits_TakashiKawaguchi
+ dw Credits_TsunekazuIshihara
+ dw Credits_HiroshiYamauchi
+ dw Credits_KenjiSaiki
+ dw Credits_AtsushiTada
+ dw Credits_NaokoKawakami
+ dw Credits_HiroyukiZinnai
+ dw Credits_KunimiKawamura
+ dw Credits_GailTilden
+ dw Credits_HiroNakamura
+ dw Credits_JeffKalles
+ dw Credits_WilliamGiese
+ dw Credits_NobOgasawara
+ dw Credits_RandyShoemake
+ dw Credits_KathyHuguenard
+ dw Credits_JoelSimon
+ dw Credits_TerukiMurakawa
+ dw Credits_KazuyoshiOsawa
+ dw Credits_KimikoNakamichi
+ dw Credits_End
+ dw Credits_Staff
+ dw Credits_Director
+ dw Credits_SubDirector
+ dw Credits_Programmers
+ dw Credits_GraphicsDirector
+ dw Credits_MonsterDesign
+ dw Credits_GraphicsDesign
+ dw Credits_Music
+ dw Credits_SoundEffects
+ dw Credits_GameDesign
+ dw Credits_GameScenario
+ dw Credits_ToolProgramming
+ dw Credits_ParametricDesign
+ dw Credits_ScriptDesign
+ dw Credits_MapDataDesign
+ dw Credits_MapDesign
+ dw Credits_ProductTesting
+ dw Credits_SpecialThanks
+ dw Credits_Producers
+ dw Credits_ExecutiveProducer
+ dw Credits_Copyright
+ dw Credits_UsVersionStaff
+ dw Credits_UsCoordination
+ dw Credits_TextTranslation
+ dw Credits_PaadTesting
diff --git a/data/events/npc_trades.asm b/data/events/npc_trades.asm
new file mode 100644
index 00000000..dae70fe0
--- /dev/null
+++ b/data/events/npc_trades.asm
@@ -0,0 +1,16 @@
+npctrade: MACRO
+; dialog set, requested mon, offered mon, nickname, dvs, item, OT ID, OT name, gender requested
+ db \1, \2, \3, \4, \5, \6, \7
+ shift
+ dw \7
+ db \8, \9, 0
+ENDM
+
+NPCTrades:
+; entries correspond to NPCTRADE_* constants
+ npctrade TRADE_DIALOGSET_COLLECTOR, DROWZEE, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, 37460, "MIKE@@@@@@@", TRADE_GENDER_EITHER
+ npctrade TRADE_DIALOGSET_COLLECTOR, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_GENDER_EITHER
+ npctrade TRADE_DIALOGSET_HAPPY, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_GENDER_EITHER
+ npctrade TRADE_DIALOGSET_NEWBIE, DRAGONAIR, RHYDON, "DON@@@@@@@@", $77, $66, BITTER_BERRY, 00283, "EMY@@@@@@@@", TRADE_GENDER_FEMALE
+ npctrade TRADE_DIALOGSET_HAPPY, GLOOM, RAPIDASH, "RUNNY@@@@@@", $96, $66, BURNT_BERRY, 15616, "CHRIS@@@@@@", TRADE_GENDER_EITHER
+ npctrade TRADE_DIALOGSET_NEWBIE, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, 26491, "KIM@@@@@@@@", TRADE_GENDER_EITHER
diff --git a/data/items/mom_phone.asm b/data/items/mom_phone.asm
new file mode 100644
index 00000000..407a9a01
--- /dev/null
+++ b/data/items/mom_phone.asm
@@ -0,0 +1,27 @@
+momitem: MACRO
+; money to trigger, cost, kind, item
+ dt \1
+ dt \2
+ db \3, \4
+ENDM
+
+MomItems_1:
+ momitem 0, 600, MOM_ITEM, SUPER_POTION
+ momitem 0, 90, MOM_ITEM, ANTIDOTE
+ momitem 0, 180, MOM_ITEM, POKE_BALL
+ momitem 0, 450, MOM_ITEM, ESCAPE_ROPE
+ momitem 0, 500, MOM_ITEM, GREAT_BALL
+.End
+
+MomItems_2:
+ momitem 900, 600, MOM_ITEM, SUPER_POTION
+ momitem 4000, 270, MOM_ITEM, REPEL
+ momitem 7000, 600, MOM_ITEM, SUPER_POTION
+ momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL
+ momitem 15000, 3000, MOM_ITEM, MOON_STONE
+ momitem 19000, 600, MOM_ITEM, SUPER_POTION
+ momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL
+ momitem 40000, 900, MOM_ITEM, HYPER_POTION
+ momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL
+ momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL
+.End
diff --git a/data/maps/roofs.asm b/data/maps/roofs.asm
new file mode 100644
index 00000000..ac1ea556
--- /dev/null
+++ b/data/maps/roofs.asm
@@ -0,0 +1,46 @@
+; MapGroupRoofs values; Roofs indexes
+ const_def
+ const ROOF_NEW_BARK ; 0
+ const ROOF_VIOLET ; 1
+ const ROOF_AZALEA ; 2
+ const ROOF_OLIVINE ; 3
+ const ROOF_GOLDENROD ; 4
+
+MapGroupRoofs:
+; entries correspond to map groups
+; values are indexes for Roofs (see below)
+ db -1 ; 0
+ db ROOF_OLIVINE ; 1 (Olivine)
+ db ROOF_AZALEA ; 2 (Mahogany)
+ db -1 ; 3
+ db ROOF_VIOLET ; 4 (Ecruteak)
+ db ROOF_AZALEA ; 5 (Blackthorn)
+ db -1 ; 6
+ db -1 ; 7
+ db ROOF_AZALEA ; 8 (Azalea)
+ db ROOF_AZALEA ; 9 (Lake of Rage)
+ db ROOF_VIOLET ; 10 (Violet)
+ db ROOF_GOLDENROD ; 11 (Goldenrod)
+ db -1 ; 12
+ db -1 ; 13
+ db -1 ; 14
+ db -1 ; 15
+ db -1 ; 16
+ db -1 ; 17
+ db -1 ; 18
+ db ROOF_NEW_BARK ; 19 (Silver Cave)
+ db -1 ; 20
+ db -1 ; 21
+ db ROOF_OLIVINE ; 22 (Cianwood)
+ db -1 ; 23
+ db ROOF_NEW_BARK ; 24 (New Bark)
+ db -1 ; 25
+ db ROOF_NEW_BARK ; 26 (Cherrygrove)
+
+Roofs:
+; entries correspond to ROOF_* constants
+INCBIN "gfx/tilesets/roofs/new_bark.2bpp"
+INCBIN "gfx/tilesets/roofs/violet.2bpp"
+INCBIN "gfx/tilesets/roofs/azalea.2bpp"
+INCBIN "gfx/tilesets/roofs/olivine.2bpp"
+INCBIN "gfx/tilesets/roofs/goldenrod.2bpp"
diff --git a/data/tilesets/cave_collision.asm b/data/tilesets/cave_collision.asm
new file mode 100644
index 00000000..c9994e73
--- /dev/null
+++ b/data/tilesets/cave_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WATERFALL_RIGHT, FLOOR, 36, FLOOR ; 00
+ tilecoll WALL, WALL, WALL, WALL ; 01
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+ tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 03
+ tilecoll WALL, UP_WALL, WALL, FLOOR ; 04
+ tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 05
+ tilecoll UP_WALL, WALL, FLOOR, WALL ; 06
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 07
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 08
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0a
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 0b
+ tilecoll WALL, FLOOR, WALL, WALL ; 0c
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 0d
+ tilecoll FLOOR, WALL, WALL, WALL ; 0e
+ tilecoll WATER, WATER, WATER, WATER ; 0f
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 10
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 11
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 12
+ tilecoll FLOOR, FLOOR, WALL, CAVE ; 13
+ tilecoll UP_WALL, UP_WALL, FLOOR, LADDER ; 14
+ tilecoll UP_WALL, UP_WALL, FLOOR, LADDER ; 15
+ tilecoll WALL, FLOOR, WALL, WARP_CARPET_DOWN ; 16
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 17
+ tilecoll WALL, WALL, WALL, FLOOR ; 18
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 19
+ tilecoll WALL, WALL, FLOOR, WALL ; 1a
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 1b
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1c
+ tilecoll WALL, WALL, WALL, WALL ; 1d
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1e
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 1f
+ tilecoll WALL, FLOOR, WALL, WALL ; 20
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 21
+ tilecoll FLOOR, WALL, WALL, WALL ; 22
+ tilecoll UP_WALL, WALL, FLOOR, FLOOR ; 23
+ tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 24
+ tilecoll WATER, WATER, WATER, WATER ; 25
+ tilecoll WATER, WATER, WATER, WATER ; 26
+ tilecoll WATER, WATER, WATER, WATER ; 27
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 28
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 29
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 2b
+ tilecoll WATERFALL, WATERFALL, WATERFALL, WATERFALL ; 2c
+ tilecoll WALL, WALL, WALL, WALL ; 2d
+ tilecoll WALL, WALL, WALL, WALL ; 2e
+ tilecoll WALL, WALL, WALL, WALL ; 2f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+ tilecoll WALL, WALL, WALL, WALL ; 31
+ tilecoll WATER, WATER, WATER, WATER ; 32
+ tilecoll WATER, WATER, WATER, WATER ; 33
+ tilecoll WALL, WALL, WALL, WALL ; 34
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 35
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 36
+ tilecoll WALL, WALL, WALL, CAVE ; 37
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 38
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 39
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 3a
+ tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 3b
+ tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 3c
+ tilecoll WATER, WATER, WATER, WATER ; 3d
+ tilecoll WATER, WATER, WATER, WATER ; 3e
+ tilecoll FLOOR, FLOOR, PIT, FLOOR ; 3f
diff --git a/data/tilesets/cave_metatiles.bin b/data/tilesets/cave_metatiles.bin
new file mode 100644
index 00000000..c1b9880c
--- /dev/null
+++ b/data/tilesets/cave_metatiles.bin
@@ -0,0 +1,6 @@
+$$$$$$$$*+:;"#23%&&%&&&&&&&&&&&&&'&&&'
+&
+&  &&67&&67&&&&$$$$*+:;$$$$"#23     ()89       !01     $$&&&&    @@@@@@@@@@@@@@@@%&&&%&&&%&&&%&&&&&&&&&&&&&&&&&&&&&&'&&&'&&&'&&&'$$%&&'%' &&&&&&&& 
+&
+67'67&'&&&&&&&&&&&&%&&&&&&&&&&'&&& 
+&&& \ No newline at end of file
diff --git a/data/tilesets/champions_room_collision.asm b/data/tilesets/champions_room_collision.asm
new file mode 100644
index 00000000..2869913e
--- /dev/null
+++ b/data/tilesets/champions_room_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll WALL, WALL, FLOOR, WALL ; 01
+ tilecoll WALL, WALL, WALL, FLOOR ; 02
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 03
+ tilecoll WALL, WALL, WALL, WALL ; 04
+ tilecoll WALL, WALL, COUNTER, FLOOR ; 05
+ tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 06
+ tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 07
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 08
+ tilecoll WALL, FLOOR, FLOOR, WALL ; 09
+ tilecoll WALL, WALL, WALL, WALL ; 0a
+ tilecoll LADDER, LADDER, FLOOR, FLOOR ; 0b
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 0c
+ tilecoll WALL, WALL, WALL, WALL ; 0d
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+ tilecoll WALL, WALL, WALL, FLOOR ; 11
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 12
+ tilecoll WALL, WALL, FLOOR, WALL ; 13
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 15
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 16
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 17
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 18
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 19
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1a
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1b
+ tilecoll WALL, UP_WALL, WALL, FLOOR ; 1c
+ tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 1d
+ tilecoll UP_WALL, WALL, FLOOR, WALL ; 1e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1f
+ tilecoll WALL, FLOOR, WALL, WALL ; 20
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 21
+ tilecoll FLOOR, WALL, WALL, WALL ; 22
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 23
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 24
+ tilecoll WALL, WALL, WALL, WALL ; 25
+ tilecoll WALL, WALL, WALL, WALL ; 26
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 27
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 29
+ tilecoll WALL, WALL, WALL, WALL ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 32
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 34
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 35
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 36
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 37
+ tilecoll WALL, WALL, WALL, FLOOR ; 38
+ tilecoll WALL, WALL, FLOOR, WALL ; 39
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 3a
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 3b
+ tilecoll WALL, WALL, WALL, WALL ; 3c
+ tilecoll WALL, WALL, WALL, WALL ; 3d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 3f
diff --git a/data/tilesets/champions_room_metatiles.bin b/data/tilesets/champions_room_metatiles.bin
new file mode 100644
index 00000000..85811c0e
--- /dev/null
+++ b/data/tilesets/champions_room_metatiles.bin
@@ -0,0 +1,15 @@
+  *() 89+,!!   %'!!  5 5 5 5 5&&01    %&&'677:"##$2334ZZZZJJJJJJJJJJJJ  +,+, *() 89 SSSSSSSSSSSSSSSSFGFGVWVWFGSSVWSS FGFGVWVWSSFGSSVWnono~~nono~~nono~~nono~~SSSSSSSSFGFGVWVWnono~~nono~~FGSSVWSSFGSSVWSSSSFGSSVWSSFGSSVW./SS>?SSNOSS^_SSSS./SS>?SSNOSS^_S@HH@PQQPPQQPPQQHHHHQQQQQQQQQQQQHHBSQQRBQQRRQQRR----------------PPQQPPQQPCDDCDDDQQQQQQQQTUTUTUTUQQRRQQRRDDERDDDESSSSSSSS
+ SS
+ SS
+ SSSS
+ FG
+ VW
+ FG
+ VWFG
+ VW
+ FG
+ VW
+ SS
+ SS
+ SS
+ SSnono~~nono~~nono~~nono~~FGFGVWVWFGFGVWVW]]]]]]]]]]]]]]]]nono~~nono~~nono~~nono~~nono~~nono~~nono~~nono~~nono~~nono~~;<<=;<<=;<<=;<<=IIIIIIIIIIIIMMMMJJJJJJJJJJJJJJJJ]]]]]]]]%&&'XYXY./]]>?]]NO]]^_]]]]./]]>?]]NO]]^_KLKL[\[\ZZZZJJJJ%'II5II5ZZ5ZJII%'II5ZZ5JJ55ZJ5ZJ5ZJ5ZJJJ5JJ5JJ5JJ55./5>?5NOXY^_./5>?5NO5^_XYJJJJJJJJTUTUTUTU]]]]]]]] \ No newline at end of file
diff --git a/data/tilesets/elite_four_room_collision.asm b/data/tilesets/elite_four_room_collision.asm
new file mode 100644
index 00000000..59b5d223
--- /dev/null
+++ b/data/tilesets/elite_four_room_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 03
+ tilecoll WALL, WALL, WALL, FLOOR ; 04
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 05
+ tilecoll WALL, WALL, FLOOR, WALL ; 06
+ tilecoll WALL, WALL, WALL, WALL ; 07
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 08
+ tilecoll FLOOR, FLOOR, PIT, FLOOR ; 09
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0a
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 0b
+ tilecoll WALL, FLOOR, WALL, WALL ; 0c
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 0d
+ tilecoll FLOOR, WALL, WALL, WALL ; 0e
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 0f
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 10
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 11
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 12
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 13
+ tilecoll WALL, WALL, WALL, WALL ; 14
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 15
+ tilecoll LADDER, LADDER, FLOOR, FLOOR ; 16
+ tilecoll WALL, WALL, WALL, WALL ; 17
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 18
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 19
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1a
+ tilecoll WALL, FLOOR, WALL, WALL ; 1b
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 1c
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1d
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1e
+ tilecoll WALL, WALL, WALL, WALL ; 1f
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 20
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 21
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 22
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 23
+ tilecoll WALL, WALL, WALL, WALL ; 24
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 25
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 26
+ tilecoll WALL, WALL, WALL, WALL ; 27
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 28
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 29
+ tilecoll WALL, WALL, WALL, WALL ; 2a
+ tilecoll WALL, WALL, WALL, WALL ; 2b
+ tilecoll WALL, WALL, WALL, WALL ; 2c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+ tilecoll ICE, ICE, ICE, FLOOR ; 2e
+ tilecoll ICE, ICE, FLOOR, ICE ; 2f
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 30
+ tilecoll FLOOR, ICE, ICE, ICE ; 31
+ tilecoll ICE, FLOOR, ICE, ICE ; 32
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 33
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 34
+ tilecoll ICE, WALL, ICE, WALL ; 35
+ tilecoll WALL, ICE, WALL, ICE ; 36
+ tilecoll WALL, WALL, WALL, WALL ; 37
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+ tilecoll ICE, ICE, ICE, ICE ; 39
+ tilecoll WALL, FLOOR, FLOOR, WALL ; 3a
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 3b
+ tilecoll DOOR, DOOR, FLOOR, FLOOR ; 3c
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 3d
+ tilecoll WALL, WALL, WALL, WALL ; 3e
+ tilecoll WALL, WALL, WALL, WALL ; 3f
diff --git a/data/tilesets/elite_four_room_metatiles.bin b/data/tilesets/elite_four_room_metatiles.bin
new file mode 100644
index 00000000..a9df6062
--- /dev/null
+++ b/data/tilesets/elite_four_room_metatiles.bin
Binary files differ
diff --git a/data/tilesets/facility_collision.asm b/data/tilesets/facility_collision.asm
new file mode 100644
index 00000000..781618c2
--- /dev/null
+++ b/data/tilesets/facility_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 00
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 01
+ tilecoll WALL, WALL, WALL, WALL ; 02
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+ tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 04
+ tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 05
+ tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 06
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 08
+ tilecoll WALL, WALL, WALL, FLOOR ; 09
+ tilecoll WALL, WALL, FLOOR, WALL ; 0a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0c
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 0d
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 10
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 11
+ tilecoll WALL, WALL, WALL, WALL ; 12
+ tilecoll WALL, WALL, WALL, WALL ; 13
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 14
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 15
+ tilecoll WALL, WALL, WALL, WALL ; 16
+ tilecoll WALL, WALL, WALL, WALL ; 17
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 18
+ tilecoll WALL, WALL, WALL, WALL ; 19
+ tilecoll WALL, WALL, WALL, FLOOR ; 1a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1b
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1c
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 1d
+ tilecoll WALL, WALL, FLOOR, COUNTER ; 1e
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1f
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 20
+ tilecoll WALL, WALL, WALL, FLOOR ; 21
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 22
+ tilecoll WALL, FLOOR, WALL, WALL ; 23
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 24
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 25
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 26
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 28
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 29
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 2a
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2b
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 2c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2d
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2e
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+ tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 31
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 32
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 33
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 34
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 35
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 36
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 37
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 38
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 39
+ tilecoll FLOOR, WALL, WALL, WALL ; 3a
+ tilecoll WALL, WALL, FLOOR, WALL ; 3b
+ tilecoll WALL, WALL, WALL, FLOOR ; 3c
+ tilecoll WALL, WALL, FLOOR, WALL ; 3d
+ tilecoll WALL, FLOOR, WALL, WALL ; 3e
+ tilecoll FLOOR, COUNTER, COUNTER, COUNTER ; 3f
diff --git a/data/tilesets/facility_metatiles.bin b/data/tilesets/facility_metatiles.bin
new file mode 100644
index 00000000..f6089d29
--- /dev/null
+++ b/data/tilesets/facility_metatiles.bin
@@ -0,0 +1,8 @@
+6666666666666666""""""""&&&&@B@B
+
+
+
+ &&&&88889999&& !&&&&&01&&&&&@B@B()()()()*+()&&&&&&&& &&,-""<=""./&>?&"",-""<=&./&>? &&&&''''7777,-&<=&./&>?&&,-&<=&./&>?@AABPQQRPHIRS::T&&&@A&PQ&&AAABQQQREEFEUUVU
+ K
+[EFEEUVUU K
+ [&PQ&S:&&QQQR:::T&&EFE;UVU;JKJ;Z[Z;6666666666666666AAABMMMN88889999""""""""#$$%WXXY""""@B""PRPRPRPRPR""23""CD&&&&""""""@B&PR&PR;;;;;;;;&&&&&&&&;;;;;;;;""""@B""PR&PR&PR&PR&PR&PR&PR&PR&PR@APRLM&&&&&@A&LM&&&&AB&MN&&&&&@B@APRLM&&&& &&@AABPHIR &&&&&&@B&PR&PR&PR&PR&&@BPR#$$%WXXY&&&&PRPRPRPR@B&PR&PR&PR&@AAALMMM&&&&AAABMMMN&&&&&@B&PR&PR&PR&&&&AAAAMMMM""""""""&&AAAAMMMM&&&&&PR&PR&PR&PR&@A&PQ&PQ&S:@AAALMMM88889999&PR&PRABPRMNPR""""""\]&^_&@B@APRLMPR&PR&AB@BMNPR&PR&PRPR&PR&PR@ALM&PR&PRABPRMN \ No newline at end of file
diff --git a/data/tilesets/forest_collision.asm b/data/tilesets/forest_collision.asm
new file mode 100644
index 00000000..0b9aa78b
--- /dev/null
+++ b/data/tilesets/forest_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll WATER, WATER, WATER, WATER ; 02
+ tilecoll WATER, WATER, WATER, WATER ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll WALL, WALL, WALL, WALL ; 05
+ tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 06
+ tilecoll WATER, WATER, WATER, WATER ; 07
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, FLOOR ; 08
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, FLOOR ; 09
+ tilecoll WATER, WATER, WATER, WATER ; 0a
+ tilecoll WATER, WATER, WATER, WATER ; 0b
+ tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, FLOOR ; 0c
+ tilecoll WATER, WATER, WATER, WATER ; 0d
+ tilecoll FLOOR, HEADBUTT_TREE, FLOOR, HEADBUTT_TREE ; 0e
+ tilecoll FLOOR, FLOOR, CUT_TREE, HEADBUTT_TREE ; 0f
+ tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 10
+ tilecoll FLOOR, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 11
+ tilecoll FLOOR, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 12
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 13
+ tilecoll HEADBUTT_TREE, FLOOR, FLOOR, FLOOR ; 14
+ tilecoll FLOOR, HEADBUTT_TREE, FLOOR, FLOOR ; 15
+ tilecoll FLOOR, FLOOR, HEADBUTT_TREE, FLOOR ; 16
+ tilecoll FLOOR, FLOOR, FLOOR, HEADBUTT_TREE ; 17
+ tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 18
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 19
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 1a
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 1b
+ tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 1c
+ tilecoll WALL, WALL, WALL, WALL ; 1d
+ tilecoll WALL, WALL, WALL, WALL ; 1e
+ tilecoll WALL, WALL, WALL, WALL ; 1f
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 20
+ tilecoll WALL, WALL, WALL, WALL ; 21
+ tilecoll WALL, WALL, WALL, WALL ; 22
+ tilecoll WALL, WALL, WALL, WALL ; 23
+ tilecoll WALL, WALL, WALL, DOOR ; 24
+ tilecoll WALL, WALL, WALL, WALL ; 25
+ tilecoll WALL, WALL, WALL, WALL ; 26
+ tilecoll WALL, WALL, WALL, WALL ; 27
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 28
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 29
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2a
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2b
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2c
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2d
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2e
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2f
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 30
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 31
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 32
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 33
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 34
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 35
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 36
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 37
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 38
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 39
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 3a
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 3b
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 3c
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 3d
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 3e
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 3f
diff --git a/data/tilesets/forest_metatiles.bin b/data/tilesets/forest_metatiles.bin
new file mode 100644
index 00000000..a8b82d8c
--- /dev/null
+++ b/data/tilesets/forest_metatiles.bin
@@ -0,0 +1 @@
+ ,-./<=>?**** ,-./<=>? ***&'&'6767&'67&'&'6767&'67&'67*** &'67&'67(9&'8:67&'67&'&'6767&'&'6767&'67&'&'6767&'67&'67&'67&'67)**********+** !!! !!! !!!!!!!!!!!!!!!!!!"!!!"!!!"02 !!!0111#$$$#$!!!!1111$$$$$$!!!"1112$$$%$%#$$$#$$$#$34#$$$#$$$#$$$3444$$$$$$$$$$$$4444$$$%$$$%$$$%4445 \ No newline at end of file
diff --git a/data/tilesets/game_corner_collision.asm b/data/tilesets/game_corner_collision.asm
new file mode 100644
index 00000000..3d9a9255
--- /dev/null
+++ b/data/tilesets/game_corner_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 02
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 04
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+ tilecoll COUNTER, COUNTER, COUNTER, COUNTER ; 07
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 08
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 09
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 0a
+ tilecoll WALL, WALL, WALL, WALL ; 0b
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 0d
+ tilecoll WALL, WALL, WALL, WALL ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll WALL, WALL, COUNTER, COUNTER ; 10
+ tilecoll WALL, WALL, COUNTER, COUNTER ; 11
+ tilecoll WALL, WALL, WALL, WALL ; 12
+ tilecoll WALL, WALL, COUNTER, FLOOR ; 13
+ tilecoll COUNTER, FLOOR, COUNTER, COUNTER ; 14
+ tilecoll WALL, WALL, WALL, WALL ; 15
+ tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 16
+ tilecoll COUNTER, FLOOR, COUNTER, COUNTER ; 17
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 18
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 19
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1a
+ tilecoll FLOOR, COUNTER, COUNTER, COUNTER ; 1b
+ tilecoll WALL, WALL, FLOOR, COUNTER ; 1c
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1d
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1e
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 1f
+ tilecoll WALL, WALL, WALL, WALL ; 20
+ tilecoll WALL, WALL, WALL, WALL ; 21
+ tilecoll WALL, WALL, WALL, WALL ; 22
+ tilecoll WALL, WALL, WALL, WALL ; 23
+ tilecoll WALL, WALL, WALL, WALL ; 24
+ tilecoll WALL, WALL, WALL, WALL ; 25
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 26
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 27
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 28
+ tilecoll WALL, WALL, FLOOR, WALL ; 29
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 2c
+ tilecoll WALL, WALL, WALL, WALL ; 2d
+ tilecoll WALL, WALL, WALL, WALL ; 2e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
diff --git a/data/tilesets/game_corner_metatiles.bin b/data/tilesets/game_corner_metatiles.bin
new file mode 100644
index 00000000..b72d03d9
--- /dev/null
+++ b/data/tilesets/game_corner_metatiles.bin
Binary files differ
diff --git a/data/tilesets/gate_collision.asm b/data/tilesets/gate_collision.asm
new file mode 100644
index 00000000..80c99f9a
--- /dev/null
+++ b/data/tilesets/gate_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 02
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+ tilecoll DOOR, DOOR, FLOOR, FLOOR ; 04
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+ tilecoll COUNTER, COUNTER, COUNTER, FLOOR ; 08
+ tilecoll COUNTER, COUNTER, FLOOR, COUNTER ; 09
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0a
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 0b
+ tilecoll COUNTER, FLOOR, COUNTER, COUNTER ; 0c
+ tilecoll FLOOR, COUNTER, COUNTER, COUNTER ; 0d
+ tilecoll WALL, WALL, COUNTER, FLOOR ; 0e
+ tilecoll WALL, WALL, FLOOR, COUNTER ; 0f
+ tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 10
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 11
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 12
+ tilecoll WALL, WALL, FLOOR, COUNTER ; 13
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+ tilecoll WALL, WALL, WALL, WALL ; 15
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 17
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 18
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 19
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1a
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 1b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 20
+ tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 21
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+ tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 23
+ tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 24
+ tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 25
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 26
+ tilecoll WALL, WALL, WALL, WALL ; 27
+ tilecoll FLOOR, COUNTER, FLOOR, COUNTER ; 28
+ tilecoll WALL, DOOR, FLOOR, FLOOR ; 29
+ tilecoll DOOR, WALL, FLOOR, FLOOR ; 2a
+ tilecoll FLOOR, COUNTER, FLOOR, COUNTER ; 2b
+ tilecoll WALL, WALL, FLOOR, PC ; 2c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2d
+ tilecoll DOOR, WALL, FLOOR, FLOOR ; 2e
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2f
+ tilecoll FLOOR, FLOOR, FLOOR, COUNTER ; 30
+ tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 31
+ tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 32
+ tilecoll COUNTER, FLOOR, FLOOR, WALL ; 33
+ tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 34
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 38
+ tilecoll WALL, WALL, WALL, WALL ; 39
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 3a
+ tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 3b
+ tilecoll FLOOR, FLOOR, COUNTER, FLOOR ; 3c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 3d
+ tilecoll COUNTER, COUNTER, FLOOR, COUNTER ; 3e
+ tilecoll FLOOR, COUNTER, COUNTER, COUNTER ; 3f
diff --git a/data/tilesets/gate_metatiles.bin b/data/tilesets/gate_metatiles.bin
new file mode 100644
index 00000000..284a2936
--- /dev/null
+++ b/data/tilesets/gate_metatiles.bin
Binary files differ
diff --git a/data/tilesets/house_collision.asm b/data/tilesets/house_collision.asm
new file mode 100644
index 00000000..7c7f3fca
--- /dev/null
+++ b/data/tilesets/house_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 01
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 02
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 03
+ tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 04
+ tilecoll WALL, WINDOW, FLOOR, FLOOR ; 05
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 06
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 07
+ tilecoll WALL, WINDOW, FLOOR, FLOOR ; 08
+ tilecoll WALL, WALL, FLOOR, BOOKSHELF ; 09
+ tilecoll WALL, WALL, WALL, WALL ; 0a
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0b
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 0c
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 0d
+ tilecoll WALL, TOWN_MAP, FLOOR, FLOOR ; 0e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0f
+ tilecoll WALL, WALL, PC, WALL ; 10
+ tilecoll WALL, WALL, WALL, FLOOR ; 11
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 12
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 13
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 14
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 15
+ tilecoll WINDOW, WALL, FLOOR, FLOOR ; 16
+ tilecoll FLOOR, FLOOR, WARP_CARPET_LEFT, FLOOR ; 17
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 18
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 19
+ tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 1a
+ tilecoll WARP_CARPET_LEFT, FLOOR, FLOOR, FLOOR ; 1b
+ tilecoll WALL, WALL, FLOOR, PC ; 1c
+ tilecoll WALL, WALL, FLOOR, RADIO ; 1d
+ tilecoll WALL, TOWN_MAP, TV, FLOOR ; 1e
+ tilecoll WALL, WALL, WALL, WALL ; 1f
+ tilecoll WALL, WALL, WALL, WALL ; 20
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 21
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 22
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 23
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 24
+ tilecoll LADDER, FLOOR, FLOOR, FLOOR ; 25
+ tilecoll COUNTER, COUNTER, FLOOR, COUNTER ; 26
+ tilecoll FLOOR, COUNTER, FLOOR, COUNTER ; 27
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 28
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 29
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2a
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2b
+ tilecoll WALL, WALL, WALL, WALL ; 2c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+ tilecoll WALL, WALL, FLOOR, WALL ; 2f
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 30
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 31
+ tilecoll WALL, WINDOW, WALL, WALL ; 32
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
diff --git a/data/tilesets/house_metatiles.bin b/data/tilesets/house_metatiles.bin
new file mode 100644
index 00000000..0d3a22f3
--- /dev/null
+++ b/data/tilesets/house_metatiles.bin
Binary files differ
diff --git a/data/tilesets/ice_path_collision.asm b/data/tilesets/ice_path_collision.asm
new file mode 100644
index 00000000..9f04a5d7
--- /dev/null
+++ b/data/tilesets/ice_path_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 00
+ tilecoll WALL, WALL, WALL, WALL ; 01
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 03
+ tilecoll WALL, UP_WALL, WALL, FLOOR ; 04
+ tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 05
+ tilecoll UP_WALL, WALL, FLOOR, WALL ; 06
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 07
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 08
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0a
+ tilecoll ICE, ICE, ICE, LADDER ; 0b
+ tilecoll WALL, FLOOR, WALL, WALL ; 0c
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 0d
+ tilecoll FLOOR, WALL, WALL, WALL ; 0e
+ tilecoll ICE, ICE, ICE, LADDER ; 0f
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 10
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 11
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 12
+ tilecoll FLOOR, FLOOR, WALL, CAVE ; 13
+ tilecoll WALL, WALL, WALL, FLOOR ; 14
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 15
+ tilecoll WALL, WALL, FLOOR, WALL ; 16
+ tilecoll FLOOR, FLOOR, PIT, FLOOR ; 17
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 18
+ tilecoll WALL, WALL, WALL, WALL ; 19
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1a
+ tilecoll FLOOR, PIT, FLOOR, FLOOR ; 1b
+ tilecoll WALL, FLOOR, WALL, WALL ; 1c
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 1d
+ tilecoll FLOOR, WALL, WALL, WALL ; 1e
+ tilecoll ICE, ICE, ICE, ICE ; 1f
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 20
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 21
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 22
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 23
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 24
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 25
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 26
+ tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 27
+ tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 28
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 29
+ tilecoll WALL, WALL, WALL, WALL ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+ tilecoll WALL, ICE, ICE, ICE ; 2c
+ tilecoll ICE, ICE, WALL, ICE ; 2d
+ tilecoll ICE, WALL, ICE, ICE ; 2e
+ tilecoll ICE, ICE, ICE, WALL ; 2f
+ tilecoll WALL, WALL, FLOOR, WALL ; 30
+ tilecoll WALL, WALL, WALL, WALL ; 31
+ tilecoll WALL, WALL, WALL, FLOOR ; 32
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 33
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 34
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 36
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 37
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 38
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 39
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 3a
+ tilecoll WALL, WALL, WALL, WALL ; 3b
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 3c
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 3d
+ tilecoll ICE, ICE, ICE, LADDER ; 3e
+ tilecoll ICE, ICE, ICE, LADDER ; 3f
diff --git a/data/tilesets/ice_path_metatiles.bin b/data/tilesets/ice_path_metatiles.bin
new file mode 100644
index 00000000..a00ded27
--- /dev/null
+++ b/data/tilesets/ice_path_metatiles.bin
@@ -0,0 +1,3 @@
+
+ *+:;!""!"""""""""""""#"""#$"$"%%""<=""<=""""!""""""""""#BC  RRRRSS(S >8(TRRRR,--.IJHKRRRRS)SS9? V)RRRRSSSS  >TLM \]XYZ[8//9WGGGU? NO^_ 
+ *+:;!<=!"<=<=#<="#!""#&' 67EF    \ No newline at end of file
diff --git a/data/tilesets/johto_collision.asm b/data/tilesets/johto_collision.asm
new file mode 100644
index 00000000..0db322cc
--- /dev/null
+++ b/data/tilesets/johto_collision.asm
@@ -0,0 +1,128 @@
+ tilecoll 01, 01, 01, 01 ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+ tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll WALL, WALL, WALL, WALL ; 05
+ tilecoll LADDER, LADDER, LADDER, LADDER ; 06
+ tilecoll WHIRLPOOL, BUOY, WATER, BUOY ; 07
+ tilecoll WALL, WALL, WALL, WALL ; 08
+ tilecoll WALL, WALL, WALL, WALL ; 09
+ tilecoll WALL, WALL, WALL, WALL ; 0a
+ tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 0b
+ tilecoll FLOOR, FLOOR, WALL, WARP_CARPET_DOWN ; 0c
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WALL ; 0d
+ tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll WALL, WALL, WALL, WALL ; 10
+ tilecoll WALL, WALL, WALL, WALL ; 11
+ tilecoll WALL, WALL, WALL, WALL ; 12
+ tilecoll WALL, WALL, WALL, WALL ; 13
+ tilecoll WALL, WALL, WALL, DOOR ; 14
+ tilecoll WALL, WALL, WALL, WALL ; 15
+ tilecoll WALL, WALL, WALL, DOOR ; 16
+ tilecoll WALL, WALL, WALL, WALL ; 17
+ tilecoll WALL, WALL, WALL, WALL ; 18
+ tilecoll WALL, WALL, WALL, WALL ; 19
+ tilecoll WALL, WALL, WALL, DOOR ; 1a
+ tilecoll WALL, WALL, WALL, WALL ; 1b
+ tilecoll WALL, WALL, WALL, WALL ; 1c
+ tilecoll WALL, WALL, DOOR, WALL ; 1d
+ tilecoll WALL, WALL, WALL, WALL ; 1e
+ tilecoll WALL, WALL, WALL, WALL ; 1f
+ tilecoll WALL, WALL, WALL, WALL ; 20
+ tilecoll WALL, WALL, WALL, WALL ; 21
+ tilecoll WALL, WALL, WALL, WALL ; 22
+ tilecoll WALL, WALL, WALL, WALL ; 23
+ tilecoll WALL, WALL, WALL, WALL ; 24
+ tilecoll WALL, WALL, WALL, WALL ; 25
+ tilecoll WALL, WALL, WALL, WALL ; 26
+ tilecoll WALL, WALL, DOOR, WALL ; 27
+ tilecoll WALL, WALL, WALL, DOOR ; 28
+ tilecoll WALL, WALL, WALL, WALL ; 29
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 2a
+ tilecoll WALL, WALL, WALL, WALL ; 2b
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 2c
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 2d
+ tilecoll WALL, WALL, WALL, DOOR ; 2e
+ tilecoll WALL, WALL, WALL, WALL ; 2f
+ tilecoll BUOY, BUOY, BUOY, WATER ; 30
+ tilecoll BUOY, BUOY, WATER, WATER ; 31
+ tilecoll BUOY, BUOY, WATER, BUOY ; 32
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 33
+ tilecoll BUOY, WATER, BUOY, WATER ; 34
+ tilecoll WATER, WATER, WATER, WATER ; 35
+ tilecoll WATER, BUOY, WATER, BUOY ; 36
+ tilecoll WALL, WALL, WALL, WALL ; 37
+ tilecoll BUOY, WATER, BUOY, BUOY ; 38
+ tilecoll WATER, WATER, BUOY, BUOY ; 39
+ tilecoll WATER, BUOY, BUOY, BUOY ; 3a
+ tilecoll WALL, WALL, WALL, WALL ; 3b
+ tilecoll HEADBUTT_TREE, FLOOR, FLOOR, FLOOR ; 3c
+ tilecoll FLOOR, HEADBUTT_TREE, FLOOR, FLOOR ; 3d
+ tilecoll FLOOR, FLOOR, HEADBUTT_TREE, FLOOR ; 3e
+ tilecoll FLOOR, FLOOR, FLOOR, HEADBUTT_TREE ; 3f
+ tilecoll WALL, WALL, WALL, FLOOR ; 40
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 41
+ tilecoll WALL, WALL, FLOOR, WALL ; 42
+ tilecoll WATER, WATER, WATER, WATER ; 43
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 44
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 45
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 46
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 47
+ tilecoll WALL, FLOOR, WALL, WALL ; 48
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 49
+ tilecoll FLOOR, WALL, WALL, WALL ; 4a
+ tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 4b
+ tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4c
+ tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 4d
+ tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4e
+ tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 4f
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 50
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 51
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 52
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 53
+ tilecoll WATER, WATER, WATER, WATER ; 54
+ tilecoll WATER, WATER, WATER, WATER ; 55
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 56
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 57
+ tilecoll WATER, WATER, WATER, WATER ; 58
+ tilecoll WATER, WATER, WATER, WATER ; 59
+ tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 5a
+ tilecoll HEADBUTT_TREE, CUT_TREE, FLOOR, FLOOR ; 5b
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, FLOOR ; 5c
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, FLOOR ; 5d
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, HEADBUTT_TREE ; 5e
+ tilecoll FLOOR, HEADBUTT_TREE, FLOOR, CUT_TREE ; 5f
+ tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, FLOOR ; 60
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 61
+ tilecoll FLOOR, HEADBUTT_TREE, FLOOR, HEADBUTT_TREE ; 62
+ tilecoll FLOOR, FLOOR, CUT_TREE, HEADBUTT_TREE ; 63
+ tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 64
+ tilecoll FLOOR, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 65
+ tilecoll FLOOR, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 66
+ tilecoll CUT_TREE, FLOOR, HEADBUTT_TREE, FLOOR ; 67
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 68
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 69
+ tilecoll WALL, UP_WALL, WALL, FLOOR ; 6a
+ tilecoll UP_WALL, WALL, FLOOR, WALL ; 6b
+ tilecoll WALL, FLOOR, WALL, WALL ; 6c
+ tilecoll FLOOR, WALL, WALL, WALL ; 6d
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 6e
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 6f
+ tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 70
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 71
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 72
+ tilecoll FLOOR, FLOOR, CAVE, WALL ; 73
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 74
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 75
+ tilecoll WATER, WATER, WATER, WATER ; 76
+ tilecoll WALL, WALL, DOOR, WALL ; 77
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 78
+ tilecoll WATER, WATER, WATER, WATER ; 79
+ tilecoll WATER, WATER, WATER, WATER ; 7a
+ tilecoll WALL, WALL, WALL, WALL ; 7b
+ tilecoll WALL, WALL, WALL, WALL ; 7c
+ tilecoll WALL, WALL, WALL, WALL ; 7d
+ tilecoll WALL, WALL, WALL, WALL ; 7e
+ tilecoll WALL, WALL, WALL, WALL ; 7f
diff --git a/data/tilesets/johto_metatiles.bin b/data/tilesets/johto_metatiles.bin
new file mode 100644
index 00000000..b64f206e
--- /dev/null
+++ b/data/tilesets/johto_metatiles.bin
Binary files differ
diff --git a/data/tilesets/johto_modern_collision.asm b/data/tilesets/johto_modern_collision.asm
new file mode 100644
index 00000000..540e27cd
--- /dev/null
+++ b/data/tilesets/johto_modern_collision.asm
@@ -0,0 +1,128 @@
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+ tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll WALL, WALL, WALL, WALL ; 05
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+ tilecoll WALL, WALL, WALL, WALL ; 08
+ tilecoll WALL, WALL, WALL, WALL ; 09
+ tilecoll WALL, WALL, WALL, WALL ; 0a
+ tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 0b
+ tilecoll FLOOR, FLOOR, WALL, WARP_CARPET_DOWN ; 0c
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WALL ; 0d
+ tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll WALL, WALL, WALL, WALL ; 10
+ tilecoll WALL, WALL, WALL, WALL ; 11
+ tilecoll WALL, WALL, WALL, WALL ; 12
+ tilecoll WALL, WALL, WALL, WALL ; 13
+ tilecoll WALL, WALL, WALL, DOOR ; 14
+ tilecoll WALL, WALL, WALL, WALL ; 15
+ tilecoll WALL, WALL, WALL, DOOR ; 16
+ tilecoll WALL, WALL, DOOR, WALL ; 17
+ tilecoll WALL, WALL, WALL, WALL ; 18
+ tilecoll WALL, WALL, WALL, WALL ; 19
+ tilecoll WALL, WALL, WALL, DOOR ; 1a
+ tilecoll WALL, WALL, WALL, WALL ; 1b
+ tilecoll WALL, WALL, WALL, WALL ; 1c
+ tilecoll WALL, WALL, DOOR, WALL ; 1d
+ tilecoll WALL, WALL, WALL, WALL ; 1e
+ tilecoll WALL, WALL, WALL, WALL ; 1f
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 20
+ tilecoll WALL, WALL, WALL, WALL ; 21
+ tilecoll WALL, WALL, WALL, WALL ; 22
+ tilecoll WALL, WALL, WALL, WALL ; 23
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 24
+ tilecoll WALL, WALL, WALL, WALL ; 25
+ tilecoll WALL, WALL, WALL, WALL ; 26
+ tilecoll WALL, WALL, WALL, WALL ; 27
+ tilecoll WALL, WALL, WALL, WALL ; 28
+ tilecoll WALL, WALL, WALL, WALL ; 29
+ tilecoll WALL, WALL, WALL, WALL ; 2a
+ tilecoll WALL, WALL, WALL, WALL ; 2b
+ tilecoll WALL, WALL, WALL, WALL ; 2c
+ tilecoll WALL, WALL, WALL, DOOR ; 2d
+ tilecoll WALL, WALL, WALL, WALL ; 2e
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, FLOOR ; 2f
+ tilecoll BUOY, BUOY, BUOY, WATER ; 30
+ tilecoll BUOY, BUOY, WATER, WATER ; 31
+ tilecoll BUOY, BUOY, WATER, BUOY ; 32
+ tilecoll WALL, WALL, WALL, WALL ; 33
+ tilecoll BUOY, WATER, BUOY, WATER ; 34
+ tilecoll WATER, WATER, WATER, WATER ; 35
+ tilecoll WATER, BUOY, WATER, BUOY ; 36
+ tilecoll HEADBUTT_TREE, FLOOR, FLOOR, FLOOR ; 37
+ tilecoll BUOY, WATER, BUOY, BUOY ; 38
+ tilecoll WATER, WATER, BUOY, BUOY ; 39
+ tilecoll WATER, BUOY, BUOY, BUOY ; 3a
+ tilecoll FLOOR, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 3b
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 3c
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 3d
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 3e
+ tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 3f
+ tilecoll WALL, WALL, WALL, FLOOR ; 40
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 41
+ tilecoll WALL, WALL, FLOOR, WALL ; 42
+ tilecoll WATER, WATER, WATER, WATER ; 43
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 44
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 45
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 46
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 47
+ tilecoll WALL, FLOOR, WALL, WALL ; 48
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 49
+ tilecoll FLOOR, WALL, WALL, WALL ; 4a
+ tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 4b
+ tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4c
+ tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 4d
+ tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4e
+ tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 4f
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 50
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 51
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 52
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 53
+ tilecoll WATER, WATER, WATER, WATER ; 54
+ tilecoll WATER, WATER, WATER, WATER ; 55
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 56
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 57
+ tilecoll WATER, WATER, WATER, WATER ; 58
+ tilecoll WATER, WATER, WATER, WATER ; 59
+ tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 5a
+ tilecoll WALL, WALL, WALL, CAVE ; 5b
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 5c
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 5d
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 5e
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 5f
+ tilecoll WATER, WATER, WALL, WALL ; 60
+ tilecoll WATER, WATER, WALL, WALL ; 61
+ tilecoll WATER, WATER, WALL, WALL ; 62
+ tilecoll WATER, WATER, WATER, WATER ; 63
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 64
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 65
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 66
+ tilecoll WALL, WALL, WALL, WALL ; 67
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 68
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 69
+ tilecoll WALL, UP_WALL, WALL, FLOOR ; 6a
+ tilecoll UP_WALL, WALL, FLOOR, WALL ; 6b
+ tilecoll WALL, FLOOR, WALL, WALL ; 6c
+ tilecoll FLOOR, WALL, WALL, WALL ; 6d
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 6e
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 6f
+ tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 70
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 71
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 72
+ tilecoll FLOOR, FLOOR, WALL, CAVE ; 73
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 74
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 75
+ tilecoll WATER, WATER, WATER, WATER ; 76
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 77
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 78
+ tilecoll WATER, WATER, WATER, WATER ; 79
+ tilecoll WATER, WATER, WATER, WATER ; 7a
+ tilecoll WALL, WALL, WALL, WALL ; 7b
+ tilecoll WALL, WALL, WALL, WALL ; 7c
+ tilecoll WALL, WALL, WALL, WALL ; 7d
+ tilecoll WALL, WALL, WALL, WALL ; 7e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 7f
diff --git a/data/tilesets/johto_modern_metatiles.bin b/data/tilesets/johto_modern_metatiles.bin
new file mode 100644
index 00000000..bfb99f87
--- /dev/null
+++ b/data/tilesets/johto_modern_metatiles.bin
Binary files differ
diff --git a/data/tilesets/kanto_collision.asm b/data/tilesets/kanto_collision.asm
new file mode 100644
index 00000000..275c2b0b
--- /dev/null
+++ b/data/tilesets/kanto_collision.asm
@@ -0,0 +1,128 @@
+ tilecoll CUT_TREE, CUT_TREE, CUT_TREE, CUT_TREE ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll WALL, WALL, WALL, DOOR ; 02
+ tilecoll WALL, WALL, WALL, WALL ; 03
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 04
+ tilecoll LADDER, LADDER, LADDER, LADDER ; 05
+ tilecoll FLOOR, FLOOR, CAVE, WALL ; 06
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 07
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 08
+ tilecoll WALL, WALL, WALL, WALL ; 09
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+ tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 0b
+ tilecoll WALL, WALL, WALL, WALL ; 0c
+ tilecoll WALL, WALL, WALL, WALL ; 0d
+ tilecoll WALL, WALL, WALL, WALL ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll WALL, WALL, WALL, WALL ; 10
+ tilecoll WALL, WALL, WALL, WALL ; 11
+ tilecoll WALL, WALL, DOOR, WALL ; 12
+ tilecoll WALL, WALL, WALL, WALL ; 13
+ tilecoll WALL, WATER, WALL, WALL ; 14
+ tilecoll WATER, WALL, WALL, WALL ; 15
+ tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 16
+ tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 17
+ tilecoll WALL, WATER, WALL, WATER ; 18
+ tilecoll WATER, WALL, WATER, WALL ; 19
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 1a
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 1c
+ tilecoll WATER, WATER, WATER, WATER ; 1d
+ tilecoll WATER, WATER, WATER, WATER ; 1e
+ tilecoll WATER, WATER, WATER, WATER ; 1f
+ tilecoll WALL, WALL, WALL, WALL ; 20
+ tilecoll WALL, WALL, WALL, WALL ; 21
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+ tilecoll WALL, FLOOR, WALL, WALL ; 24
+ tilecoll FLOOR, WALL, WALL, WALL ; 25
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 26
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 28
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 29
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 2b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+ tilecoll WATER, WATER, WATER, WATER ; 2d
+ tilecoll WATER, WATER, WATER, WATER ; 2e
+ tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 2f
+ tilecoll WALL, WALL, WALL, WALL ; 30
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+ tilecoll WALL, CUT_TREE, WALL, FLOOR ; 32
+ tilecoll WALL, WALL, FLOOR, CUT_TREE ; 33
+ tilecoll CUT_TREE, FLOOR, WALL, WALL ; 34
+ tilecoll FLOOR, CUT_TREE, WALL, FLOOR ; 35
+ tilecoll WALL, WALL, FLOOR, WALL ; 36
+ tilecoll WALL, WALL, WALL, WALL ; 37
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 38
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 39
+ tilecoll WALL, WALL, DOOR, WALL ; 3a
+ tilecoll UP_WALL, WALL, FLOOR, WALL ; 3b
+ tilecoll WALL, WALL, WALL, DOOR ; 3c
+ tilecoll WALL, WALL, WALL, WALL ; 3d
+ tilecoll WALL, UP_WALL, WALL, FLOOR ; 3e
+ tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 3f
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 40
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 41
+ tilecoll HOP_DOWN, WALL, WALL, WALL ; 42
+ tilecoll WATER, WATER, WATER, WATER ; 43
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 44
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 45
+ tilecoll FLOOR, FLOOR, WALL, WARP_CARPET_DOWN ; 46
+ tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 47
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 48
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 49
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WALL ; 4a
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 4b
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 4c
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 4d
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 4e
+ tilecoll FLOOR, WALL, WALL, WALL ; 4f
+ tilecoll WALL, FLOOR, WALL, WALL ; 50
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 51
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 52
+ tilecoll WALL, WALL, WALL, DOOR ; 53
+ tilecoll WALL, WALL, WALL, WALL ; 54
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 55
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 56
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 57
+ tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 58
+ tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 59
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 5a
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 5b
+ tilecoll FLOOR, HOP_DOWN, FLOOR, WALL ; 5c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5e
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 5f
+ tilecoll FLOOR, WALL, CUT_TREE, WALL ; 60
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 61
+ tilecoll WALL, WALL, WALL, FLOOR ; 62
+ tilecoll WALL, WALL, FLOOR, WALL ; 63
+ tilecoll WATER, WATER, WATER, WATER ; 64
+ tilecoll WATER, WATER, WATER, WATER ; 65
+ tilecoll WALL, WALL, WALL, WALL ; 66
+ tilecoll WALL, WATER, WALL, WATER ; 67
+ tilecoll WALL, WALL, WALL, WALL ; 68
+ tilecoll WALL, WALL, WALL, WALL ; 69
+ tilecoll WATER, WALL, WATER, WALL ; 6a
+ tilecoll WATER, WATER, WALL, WALL ; 6b
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 6c
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 6d
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 6e
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 6f
+ tilecoll FLOOR, WALL, CAVE, WALL ; 70
+ tilecoll WALL, WALL, WALL, WALL ; 71
+ tilecoll WALL, WALL, WALL, WALL ; 72
+ tilecoll WALL, WALL, WALL, WALL ; 73
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 74
+ tilecoll WALL, WALL, WALL, WALL ; 75
+ tilecoll WALL, WALL, WALL, WALL ; 76
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 77
+ tilecoll WATER, WATER, WATER, WATER ; 78
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 79
+ tilecoll WALL, WALL, WALL, WALL ; 7a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 7b
+ tilecoll WALL, WALL, WALL, DOOR ; 7c
+ tilecoll WALL, WALL, WALL, WALL ; 7d
+ tilecoll WALL, WALL, WALL, WALL ; 7e
+ tilecoll WALL, WALL, WALL, WALL ; 7f
diff --git a/data/tilesets/kanto_metatiles.bin b/data/tilesets/kanto_metatiles.bin
new file mode 100644
index 00000000..41b0cfff
--- /dev/null
+++ b/data/tilesets/kanto_metatiles.bin
Binary files differ
diff --git a/data/tilesets/lab_collision.asm b/data/tilesets/lab_collision.asm
new file mode 100644
index 00000000..90b3a245
--- /dev/null
+++ b/data/tilesets/lab_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 02
+ tilecoll WALL, WALL, WALL, WALL ; 03
+ tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 04
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 05
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 06
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 07
+ tilecoll WALL, WALL, WALL, WALL ; 08
+ tilecoll WINDOW, WALL, FLOOR, FLOOR ; 09
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 0d
+ tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 0e
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 0f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 11
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 12
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 13
+ tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 14
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 15
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+ tilecoll WALL, WALL, WALL, WALL ; 17
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 18
+ tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 19
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1a
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1c
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1d
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1e
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 1f
+ tilecoll WINDOW, WINDOW, FLOOR, FLOOR ; 20
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 21
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 25
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 26
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 29
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
diff --git a/data/tilesets/lab_metatiles.bin b/data/tilesets/lab_metatiles.bin
new file mode 100644
index 00000000..77247152
--- /dev/null
+++ b/data/tilesets/lab_metatiles.bin
Binary files differ
diff --git a/data/tilesets/lighthouse_collision.asm b/data/tilesets/lighthouse_collision.asm
new file mode 100644
index 00000000..81781faf
--- /dev/null
+++ b/data/tilesets/lighthouse_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll WALL, WALL, WALL, WALL ; 01
+ tilecoll WALL, WALL, WALL, WALL ; 02
+ tilecoll WALL, WALL, WALL, WALL ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll WALL, WALL, WALL, WALL ; 05
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 06
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+ tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 09
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 0a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+ tilecoll WALL, WALL, WALL, WALL ; 0c
+ tilecoll WALL, WALL, WALL, WALL ; 0d
+ tilecoll WALL, WALL, WALL, WALL ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll 9C, FLOOR, COUNTER, FLOOR ; 10
+ tilecoll WALL, WALL, WALL, WALL ; 11
+ tilecoll WALL, WALL, WALL, WALL ; 12
+ tilecoll WALL, WALL, WALL, WALL ; 13
+ tilecoll WALL, WARP_CARPET_DOWN, WALL, WALL ; 14
+ tilecoll WALL, WALL, WALL, WALL ; 15
+ tilecoll 9C, FLOOR, COUNTER, FLOOR ; 16
+ tilecoll WALL, WALL, WALL, WALL ; 17
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 18
+ tilecoll WALL, WALL, WALL, STAIRCASE ; 19
+ tilecoll LADDER, FLOOR, FLOOR, FLOOR ; 1a
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 1b
+ tilecoll WALL, WALL, WALL, WALL ; 1c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1d
+ tilecoll WALL, WALL, WALL, WALL ; 1e
+ tilecoll WALL, WALL, WALL, WALL ; 1f
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 20
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 21
+ tilecoll WALL, FLOOR, WALL, WALL ; 22
+ tilecoll FLOOR, WALL, WALL, WALL ; 23
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 25
+ tilecoll WALL, WALL, WALL, WALL ; 26
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+ tilecoll FLOOR, FLOOR, PIT, PIT ; 28
+ tilecoll WALL, WALL, WINDOW, WINDOW ; 29
+ tilecoll WALL, WALL, WALL, WALL ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2c
+ tilecoll WALL, WALL, WALL, WALL ; 2d
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 2e
+ tilecoll WALL, WALL, WALL, BOOKSHELF ; 2f
+ tilecoll WALL, WALL, FLOOR, WALL ; 30
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 31
+ tilecoll WALL, WALL, WALL, WALL ; 32
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 33
+ tilecoll WALL, WALL, PC, FLOOR ; 34
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 35
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 36
+ tilecoll WALL, WALL, WALL, WALL ; 37
+ tilecoll WALL, WALL, FLOOR, WALL ; 38
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 39
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 3a
+ tilecoll WALL, WALL, WALL, WALL ; 3b
+ tilecoll WALL, WALL, WALL, WALL ; 3c
+ tilecoll WALL, WALL, WINDOW, WALL ; 3d
+ tilecoll WALL, WALL, WALL, WALL ; 3e
+ tilecoll WALL, WALL, WALL, WALL ; 3f
diff --git a/data/tilesets/lighthouse_metatiles.bin b/data/tilesets/lighthouse_metatiles.bin
new file mode 100644
index 00000000..4d5712e1
--- /dev/null
+++ b/data/tilesets/lighthouse_metatiles.bin
Binary files differ
diff --git a/data/tilesets/mansion_collision.asm b/data/tilesets/mansion_collision.asm
new file mode 100644
index 00000000..b2de5663
--- /dev/null
+++ b/data/tilesets/mansion_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll WALL, WALL, WALL, WALL ; 01
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 04
+ tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 05
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 06
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 07
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 08
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 09
+ tilecoll WALL, WALL, FLOOR, WALL ; 0a
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0b
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 0c
+ tilecoll WALL, WALL, FLOOR, WALL ; 0d
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0e
+ tilecoll WALL, WALL, BOOKSHELF, INCENSE_BURNER ; 0f
+ tilecoll WALL, WALL, WALL, WALL ; 10
+ tilecoll WALL, WALL, BOOKSHELF, WALL ; 11
+ tilecoll WALL, WALL, WALL, WALL ; 12
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 14
+ tilecoll STAIRCASE, STAIRCASE, FLOOR, FLOOR ; 15
+ tilecoll STAIRCASE, STAIRCASE, FLOOR, FLOOR ; 16
+ tilecoll WALL, DOOR, FLOOR, FLOOR ; 17
+ tilecoll WALL, WALL, BOOKSHELF, WALL ; 18
+ tilecoll WALL, WALL, WALL, WALL ; 19
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1b
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1c
+ tilecoll WALL, FLOOR, WALL, WALL ; 1d
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 1e
+ tilecoll WALL, FLOOR, WALL, WALL ; 1f
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 20
+ tilecoll FLOOR, WALL, WALL, WALL ; 21
+ tilecoll WALL, WALL, FLOOR, WALL ; 22
+ tilecoll WALL, WALL, STAIRCASE, WALL ; 23
+ tilecoll WALL, WALL, WALL, STAIRCASE ; 24
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 25
+ tilecoll WALL, WALL, WALL, WALL ; 26
+ tilecoll WALL, WALL, DOOR, WALL ; 27
+ tilecoll WALL, FLOOR, WALL, WALL ; 28
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 29
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2a
+ tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 2b
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2c
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 2d
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 2e
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 2f
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 30
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 31
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 32
+ tilecoll WALL, WALL, WALL, FLOOR ; 33
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 34
+ tilecoll WALL, WALL, WALL, FLOOR ; 35
+ tilecoll WALL, WALL, FLOOR, WALL ; 36
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 37
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 38
+ tilecoll WALL, FLOOR, WALL, WALL ; 39
+ tilecoll FLOOR, WALL, WALL, WALL ; 3a
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 3b
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3c
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 3d
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 3e
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 3f
diff --git a/data/tilesets/mansion_metatiles.bin b/data/tilesets/mansion_metatiles.bin
new file mode 100644
index 00000000..599f5de2
--- /dev/null
+++ b/data/tilesets/mansion_metatiles.bin
@@ -0,0 +1,5 @@
+
+ 
+  EU((((6868$%"#4523236778FGGHFGGHVWWX68"#./23^_*+,-:;<=JKLMZ[&'
+  
+  !0168"#*+23:; ,-<=LMJKZ[*+,-:;<=JKLMZ[)DDD9TTTDDDDTTTT)D9TDDDITTTYDDEUTTDDEUTT EUDDTT DDDDTTTTFGFG\\GGGHGGGH !]01]67FG7778GGGH68"#68"#"#2323./>?NO^_6777FGGG7778GGGH./>?NO^_((((FGGGVWWWGGGHWWWXEUDDTTEUR@SAEUEPSAR@  \ No newline at end of file
diff --git a/data/tilesets/mart_collision.asm b/data/tilesets/mart_collision.asm
new file mode 100644
index 00000000..ff32f60e
--- /dev/null
+++ b/data/tilesets/mart_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 01
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 02
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 05
+ tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 06
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 07
+ tilecoll WALL, WALL, FLOOR, COUNTER ; 08
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 09
+ tilecoll WALL, WALL, COUNTER, FLOOR ; 0a
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 0b
+ tilecoll FLOOR, COUNTER, FLOOR, FLOOR ; 0c
+ tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 0d
+ tilecoll COUNTER, FLOOR, FLOOR, FLOOR ; 0e
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 0f
+ tilecoll COUNTER, COUNTER, COUNTER, FLOOR ; 10
+ tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 11
+ tilecoll FLOOR, MART_SHELF, FLOOR, MART_SHELF ; 12
+ tilecoll WALL, WALL, MART_SHELF, MART_SHELF ; 13
+ tilecoll WALL, WALL, MART_SHELF, MART_SHELF ; 14
+ tilecoll WALL, WALL, MART_SHELF, MART_SHELF ; 15
+ tilecoll FLOOR, MART_SHELF, FLOOR, MART_SHELF ; 16
+ tilecoll WALL, WALL, FLOOR, COUNTER ; 17
+ tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 18
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 19
+ tilecoll COUNTER, COUNTER, COUNTER, FLOOR ; 1a
+ tilecoll COUNTER, COUNTER, FLOOR, COUNTER ; 1b
+ tilecoll WALL, WALL, WALL, WALL ; 1c
+ tilecoll WALL, WALL, WALL, WALL ; 1d
+ tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 1e
+ tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 1f
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 20
+ tilecoll WALL, WALL, WALL, WALL ; 21
+ tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 22
+ tilecoll FLOOR, MART_SHELF, FLOOR, MART_SHELF ; 23
+ tilecoll WALL, WALL, WALL, WALL ; 24
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 25
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 26
+ tilecoll WALL, WALL, COUNTER, MART_SHELF ; 27
+ tilecoll FLOOR, MART_SHELF, FLOOR, MART_SHELF ; 28
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 29
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+ tilecoll COUNTER, COUNTER, FLOOR, MART_SHELF ; 2c
+ tilecoll FLOOR, MART_SHELF, COUNTER, COUNTER ; 2d
+ tilecoll COUNTER, FLOOR, COUNTER, COUNTER ; 2e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
diff --git a/data/tilesets/mart_metatiles.bin b/data/tilesets/mart_metatiles.bin
new file mode 100644
index 00000000..481eed77
--- /dev/null
+++ b/data/tilesets/mart_metatiles.bin
Binary files differ
diff --git a/data/tilesets/park_collision.asm b/data/tilesets/park_collision.asm
new file mode 100644
index 00000000..63318765
--- /dev/null
+++ b/data/tilesets/park_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+ tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+ tilecoll WALL, WALL, WALL, WALL ; 06
+ tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 07
+ tilecoll WALL, WALL, WALL, WALL ; 08
+ tilecoll WALL, WALL, WALL, WALL ; 09
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0a
+ tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 0b
+ tilecoll WALL, WALL, WALL, WALL ; 0c
+ tilecoll WALL, WALL, WALL, WALL ; 0d
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 0e
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 0f
+ tilecoll WALL, WALL, WALL, FLOOR ; 10
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 11
+ tilecoll WALL, WALL, FLOOR, WALL ; 12
+ tilecoll LONG_GRASS, LONG_GRASS, LONG_GRASS, LONG_GRASS ; 13
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 14
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 15
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 16
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 17
+ tilecoll WALL, FLOOR, WALL, WALL ; 18
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 19
+ tilecoll FLOOR, WALL, WALL, WALL ; 1a
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 1b
+ tilecoll WALL, WALL, WALL, FLOOR ; 1c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1d
+ tilecoll WALL, WALL, FLOOR, WALL ; 1e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1f
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 20
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 21
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 22
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+ tilecoll WALL, FLOOR, WALL, WALL ; 24
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 25
+ tilecoll FLOOR, WALL, WALL, WALL ; 26
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+ tilecoll WALL, WALL, WALL, WALL ; 28
+ tilecoll WALL, WALL, WALL, WALL ; 29
+ tilecoll WALL, WALL, WALL, WALL ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+ tilecoll WALL, WALL, WALL, WALL ; 2c
+ tilecoll WALL, WALL, WALL, WALL ; 2d
+ tilecoll WALL, WALL, WALL, WALL ; 2e
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 2f
+ tilecoll WALL, WALL, WALL, WALL ; 30
+ tilecoll WALL, WALL, WALL, WALL ; 31
+ tilecoll WALL, WALL, WALL, WALL ; 32
+ tilecoll WALL, FLOOR, WALL, WARP_CARPET_DOWN ; 33
+ tilecoll WALL, WALL, WALL, WALL ; 34
+ tilecoll WALL, WALL, WALL, WALL ; 35
+ tilecoll WALL, WALL, WALL, WALL ; 36
+ tilecoll WALL, WALL, WALL, WALL ; 37
+ tilecoll WALL, WALL, WALL, WALL ; 38
+ tilecoll WALL, WALL, WALL, WALL ; 39
+ tilecoll WALL, WALL, WALL, WALL ; 3a
+ tilecoll WALL, WALL, WALL, WALL ; 3b
+ tilecoll WALL, WALL, WALL, WALL ; 3c
+ tilecoll WALL, WALL, WALL, WALL ; 3d
+ tilecoll WALL, WALL, WALL, WALL ; 3e
+ tilecoll WALL, FLOOR, WALL, WARP_CARPET_DOWN ; 3f
diff --git a/data/tilesets/park_metatiles.bin b/data/tilesets/park_metatiles.bin
new file mode 100644
index 00000000..1dd1f517
--- /dev/null
+++ b/data/tilesets/park_metatiles.bin
Binary files differ
diff --git a/data/tilesets/players_house_collision.asm b/data/tilesets/players_house_collision.asm
new file mode 100644
index 00000000..34c8c237
--- /dev/null
+++ b/data/tilesets/players_house_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll WINDOW, WALL, FLOOR, FLOOR ; 01
+ tilecoll WALL, WALL, FLOOR, TV ; 02
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+ tilecoll WALL, WALL, WALL, WALL ; 04
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 05
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 06
+ tilecoll WALL, WALL, WALL, WALL ; 07
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 08
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 09
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 0a
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 0b
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 0c
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 0d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll WALL, WALL, PC, FLOOR ; 10
+ tilecoll WALL, WALL, TV, WALL ; 11
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 12
+ tilecoll FLOOR, TV, FLOOR, WALL ; 13
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 14
+ tilecoll WALL, WALL, FLOOR, WALL ; 15
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 16
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 17
+ tilecoll WALL, WALL, RADIO, PC ; 18
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 19
+ tilecoll WALL, WALL, RADIO, FLOOR ; 1a
+ tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 1b
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1d
+ tilecoll WALL, WALL, VIRTUAL_BOY, FLOOR ; 1e
+ tilecoll WALL, WALL, PC, RADIO ; 1f
+ tilecoll WALL, WALL, WALL, WALL ; 20
+ tilecoll WALL, WALL, TV, BOOKSHELF ; 21
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 22
+ tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 23
+ tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 24
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 25
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 26
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 27
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 29
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
diff --git a/data/tilesets/players_house_metatiles.bin b/data/tilesets/players_house_metatiles.bin
new file mode 100644
index 00000000..f316eb8c
--- /dev/null
+++ b/data/tilesets/players_house_metatiles.bin
Binary files differ
diff --git a/data/tilesets/players_room_collision.asm b/data/tilesets/players_room_collision.asm
new file mode 100644
index 00000000..713f06c9
--- /dev/null
+++ b/data/tilesets/players_room_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll WALL, WALL, WALL, WALL ; 01
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 02
+ tilecoll WALL, WALL, TV, BOOKSHELF ; 03
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 04
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 07
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 08
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 0b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 0e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 11
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 12
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 14
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 15
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 16
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 17
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 18
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 19
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1a
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1c
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1d
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1e
+ tilecoll TOWN_MAP, STAIRCASE, FLOOR, FLOOR ; 1f
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 20
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 21
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 22
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 23
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 24
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 25
+ tilecoll FF, FF, FF, FF ; 26
+ tilecoll FF, FF, FF, FF ; 27
+ tilecoll FF, FF, FF, FF ; 28
+ tilecoll FF, FF, FF, FF ; 29
+ tilecoll FF, FF, FF, FF ; 2a
+ tilecoll FF, FF, FF, FF ; 2b
+ tilecoll FF, FF, FF, FF ; 2c
+ tilecoll FF, FF, FF, FF ; 2d
+ tilecoll FF, FF, FF, FF ; 2e
+ tilecoll FF, FF, FF, FF ; 2f
+ tilecoll FF, FF, FF, FF ; 30
+ tilecoll FF, FF, FF, FF ; 31
+ tilecoll FF, FF, FF, FF ; 32
+ tilecoll FF, FF, FF, FF ; 33
+ tilecoll FF, FF, FF, FF ; 34
+ tilecoll FF, FF, FF, FF ; 35
+ tilecoll FF, FF, FF, FF ; 36
+ tilecoll FF, FF, FF, FF ; 37
+ tilecoll FF, FF, FF, FF ; 38
+ tilecoll FF, FF, FF, FF ; 39
+ tilecoll FF, FF, FF, FF ; 3a
+ tilecoll FF, FF, FF, FF ; 3b
+ tilecoll FF, FF, FF, FF ; 3c
+ tilecoll FF, FF, FF, FF ; 3d
+ tilecoll FF, FF, FF, FF ; 3e
+ tilecoll FF, FF, FF, FF ; 3f
diff --git a/data/tilesets/players_room_metatiles.bin b/data/tilesets/players_room_metatiles.bin
new file mode 100644
index 00000000..0839798f
--- /dev/null
+++ b/data/tilesets/players_room_metatiles.bin
Binary files differ
diff --git a/data/tilesets/pokecenter_collision.asm b/data/tilesets/pokecenter_collision.asm
new file mode 100644
index 00000000..867fc7db
--- /dev/null
+++ b/data/tilesets/pokecenter_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll WALL, WALL, WALL, WALL ; 01
+ tilecoll WALL, WALL, WALL, FLOOR ; 02
+ tilecoll WALL, WALL, FLOOR, WALL ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 05
+ tilecoll WALL, COUNTER, FLOOR, FLOOR ; 06
+ tilecoll COUNTER, WALL, FLOOR, FLOOR ; 07
+ tilecoll WALL, WALL, FLOOR, PC ; 08
+ tilecoll WALL, WALL, FLOOR, WALL ; 09
+ tilecoll WALL, DOOR, FLOOR, FLOOR ; 0a
+ tilecoll WALL, WALL, WALL, WALL ; 0b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0d
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 0e
+ tilecoll WALL, WALL, FLOOR, WALL ; 0f
+ tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 10
+ tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 11
+ tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 12
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 13
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 14
+ tilecoll WALL, DOOR, FLOOR, FLOOR ; 15
+ tilecoll WALL, WALL, FLOOR, WALL ; 16
+ tilecoll WALL, WALL, WALL, WALL ; 17
+ tilecoll WALL, WALL, WALL, WALL ; 18
+ tilecoll WALL, WALL, WALL, WALL ; 19
+ tilecoll WALL, WALL, WALL, WALL ; 1a
+ tilecoll WALL, WALL, WALL, WALL ; 1b
+ tilecoll WALL, WALL, WALL, WALL ; 1c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1d
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1e
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1f
+ tilecoll WALL, WALL, WALL, WALL ; 20
+ tilecoll WALL, WALL, FLOOR, PC ; 21
+ tilecoll WALL, WALL, WALL, FLOOR ; 22
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 24
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 25
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 26
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 27
+ tilecoll WALL, WALL, FLOOR, WALL ; 28
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 29
+ tilecoll WALL, WALL, WALL, FLOOR ; 2a
+ tilecoll WALL, DOOR, FLOOR, FLOOR ; 2b
+ tilecoll WALL, WALL, WALL, WALL ; 2c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2d
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 2e
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 2f
+ tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 30
+ tilecoll WALL, WALL, FLOOR, WALL ; 31
+ tilecoll PC, WALL, FLOOR, WALL ; 32
+ tilecoll FLOOR, WARP_PANEL, FLOOR, FLOOR ; 33
+ tilecoll WARP_PANEL, FLOOR, FLOOR, FLOOR ; 34
+ tilecoll WARP_PANEL, FLOOR, FLOOR, FLOOR ; 35
+ tilecoll WARP_PANEL, WARP_PANEL, WARP_PANEL, WARP_PANEL ; 36
+ tilecoll FLOOR, WARP_PANEL, FLOOR, FLOOR ; 37
+ tilecoll WARP_PANEL, FLOOR, FLOOR, FLOOR ; 38
+ tilecoll WARP_PANEL, FLOOR, FLOOR, FLOOR ; 39
+ tilecoll WARP_PANEL, WARP_PANEL, FLOOR, FLOOR ; 3a
+ tilecoll FLOOR, WARP_PANEL, FLOOR, FLOOR ; 3b
+ tilecoll WARP_PANEL, FLOOR, FLOOR, FLOOR ; 3c
+ tilecoll WARP_PANEL, FLOOR, FLOOR, FLOOR ; 3d
+ tilecoll WARP_PANEL, WARP_PANEL, FLOOR, FLOOR ; 3e
+ tilecoll FLOOR, WARP_PANEL, FLOOR, FLOOR ; 3f
diff --git a/data/tilesets/pokecenter_metatiles.bin b/data/tilesets/pokecenter_metatiles.bin
new file mode 100644
index 00000000..f775f89a
--- /dev/null
+++ b/data/tilesets/pokecenter_metatiles.bin
@@ -0,0 +1,2 @@
+================,-./<==?LMNO
+ %4444$$$$ 44$$$$4 5$$FG !01@A &'"#()23% 676767FG44$$567$$6767FGBCRSQQPPDETU44$$67"#FG236767FG6767FG================6\6-.:>>>67VW77>;67 ================================================4444$$$$JKJKZ[Z[JKJKZ[Z[6744FG$$JKJKZ[Z[6767,-67<=67LM4444$$ !JK01Z[@A./=?JKNOZ[JKJKZ[Z[JKJKZ[Z[JKJKZ[Z[QQQQPPPP44JK$$Z[JKJKZ[Z[====JKJKZ[Z[QQPP567$$6789FGHIXY "#23\]\]^_^_^_^_*+*+HIHIXYXYHIXYHIXY444$$$ ! 0167@A6767FGpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp \ No newline at end of file
diff --git a/data/tilesets/port_collision.asm b/data/tilesets/port_collision.asm
new file mode 100644
index 00000000..8abc712c
--- /dev/null
+++ b/data/tilesets/port_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 00
+ tilecoll WALL, WALL, WALL, WALL ; 01
+ tilecoll BUOY, WATER, BUOY, WATER ; 02
+ tilecoll WATER, BUOY, WATER, BUOY ; 03
+ tilecoll LADDER, LADDER, LADDER, LADDER ; 04
+ tilecoll WALL, WALL, WALL, WATER ; 05
+ tilecoll WALL, WALL, WATER, WATER ; 06
+ tilecoll WALL, WALL, WATER, WALL ; 07
+ tilecoll WATER, WATER, WATER, WATER ; 08
+ tilecoll WALL, WATER, WALL, WATER ; 09
+ tilecoll WATER, WATER, WATER, WATER ; 0a
+ tilecoll WATER, WALL, WATER, WALL ; 0b
+ tilecoll WATER, WATER, FLOOR, FLOOR ; 0c
+ tilecoll WALL, WATER, WALL, WALL ; 0d
+ tilecoll WATER, WATER, WALL, WALL ; 0e
+ tilecoll WATER, WALL, WALL, WALL ; 0f
+ tilecoll WATER, WATER, WATER, WATER ; 10
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 11
+ tilecoll WATER, WATER, WATER, WATER ; 12
+ tilecoll WATER, FLOOR, WATER, FLOOR ; 13
+ tilecoll WATER, FLOOR, WATER, FLOOR ; 14
+ tilecoll WATER, WATER, WATER, WATER ; 15
+ tilecoll WATER, WATER, WATER, WATER ; 16
+ tilecoll WATER, FLOOR, WALL, WARP_CARPET_DOWN ; 17
+ tilecoll WATER, WATER, WALL, WALL ; 18
+ tilecoll WATER, FLOOR, WALL, WALL ; 19
+ tilecoll WALL, WALL, WALL, WALL ; 1a
+ tilecoll WALL, WATER, WALL, WALL ; 1b
+ tilecoll WATER_21, WATER_21, WALL, WALL ; 1c
+ tilecoll WATER_21, WATER_21, WALL, WALL ; 1d
+ tilecoll WATER_21, WATER_21, WALL, WALL ; 1e
+ tilecoll WALL, WALL, WALL, WATER ; 1f
+ tilecoll WALL, FLOOR, WATER, WARP_CARPET_DOWN ; 20
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 21
+ tilecoll BUOY, BUOY, BUOY, WATER ; 22
+ tilecoll BUOY, BUOY, WATER, BUOY ; 23
+ tilecoll BUOY, BUOY, WATER, WATER ; 24
+ tilecoll BUOY, BUOY, WATER, WATER ; 25
+ tilecoll LADDER, LADDER, LADDER, LADDER ; 26
+ tilecoll FLOOR, FLOOR, WATER, WATER ; 27
+ tilecoll FLOOR, FLOOR, FLOOR, WATER ; 28
+ tilecoll FLOOR, FLOOR, WATER, FLOOR ; 29
+ tilecoll WALL, WALL, WALL, WALL ; 2a
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2b
+ tilecoll FLOOR, WATER, FLOOR, FLOOR ; 2c
+ tilecoll WATER, FLOOR, FLOOR, FLOOR ; 2d
+ tilecoll FLOOR, WATER, FLOOR, WATER ; 2e
+ tilecoll WATER, FLOOR, WATER, FLOOR ; 2f
+ tilecoll FLOOR, FLOOR, WATER, WATER ; 30
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 32
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 33
+ tilecoll FLOOR, WATER, FLOOR, WATER ; 34
+ tilecoll WALL, WALL, FLOOR, LADDER ; 35
+ tilecoll WATER, WATER, WATER, WATER ; 36
+ tilecoll FLOOR, WATER, FLOOR, WATER ; 37
+ tilecoll WATER, FLOOR, WATER, FLOOR ; 38
+ tilecoll WATER, WATER, FLOOR, FLOOR ; 39
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3a
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3b
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3c
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3d
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3e
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3f
diff --git a/data/tilesets/port_metatiles.bin b/data/tilesets/port_metatiles.bin
new file mode 100644
index 00000000..69a60070
--- /dev/null
+++ b/data/tilesets/port_metatiles.bin
@@ -0,0 +1,65 @@
+""""!!!!1111111111111111    ""  !!!!+,--9::3#$%./02;<=>&'()345?@AB*678CDE+,-39:PQXYZFGHIRRSSZ[\\IJKLT,-U]^^^MNOVW_""""""""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  ""1111 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  \ No newline at end of file
diff --git a/data/tilesets/radio_tower_collision.asm b/data/tilesets/radio_tower_collision.asm
new file mode 100644
index 00000000..c3b5aa80
--- /dev/null
+++ b/data/tilesets/radio_tower_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 02
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 03
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 04
+ tilecoll FLOOR, FLOOR, WALL, COUNTER ; 05
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 06
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 07
+ tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 08
+ tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 09
+ tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 0a
+ tilecoll WALL, WALL, WALL, WALL ; 0b
+ tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 0c
+ tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 0d
+ tilecoll FLOOR, FLOOR, FLOOR, COUNTER ; 0e
+ tilecoll FLOOR, FLOOR, COUNTER, FLOOR ; 0f
+ tilecoll FLOOR, COUNTER, FLOOR, FLOOR ; 10
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 11
+ tilecoll WALL, WALL, PC, FLOOR ; 12
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 15
+ tilecoll WALL, WALL, WALL, WALL ; 16
+ tilecoll FLOOR, FLOOR, COUNTER, FLOOR ; 17
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 18
+ tilecoll WALL, WALL, FLOOR, COUNTER ; 19
+ tilecoll WALL, COUNTER, FLOOR, COUNTER ; 1a
+ tilecoll COUNTER, FLOOR, FLOOR, FLOOR ; 1b
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1c
+ tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 1d
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1e
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1f
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 20
+ tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 21
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 22
+ tilecoll WALL, WALL, WALL, WALL ; 23
+ tilecoll WALL, WALL, FLOOR, BOOKSHELF ; 24
+ tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 25
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 26
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+ tilecoll WALL, WALL, FLOOR, WALL ; 28
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 29
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2a
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 2b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+ tilecoll FLOOR, COUNTER, FLOOR, COUNTER ; 2d
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 2e
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 2f
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 30
+ tilecoll WALL, WALL, FLOOR, WALL ; 31
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 32
+ tilecoll WALL, WALL, WALL, FLOOR ; 33
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 34
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 36
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 37
+ tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 38
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 39
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
diff --git a/data/tilesets/radio_tower_metatiles.bin b/data/tilesets/radio_tower_metatiles.bin
new file mode 100644
index 00000000..30d573fc
--- /dev/null
+++ b/data/tilesets/radio_tower_metatiles.bin
Binary files differ
diff --git a/data/tilesets/ruins_of_alph_collision.asm b/data/tilesets/ruins_of_alph_collision.asm
new file mode 100644
index 00000000..f20b20f3
--- /dev/null
+++ b/data/tilesets/ruins_of_alph_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll WALL, WALL, WALL, FLOOR ; 01
+ tilecoll WALL, WALL, FLOOR, WALL ; 02
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll WALL, WALL, WALL, FLOOR ; 05
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 06
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 07
+ tilecoll WALL, WALL, FLOOR, WALL ; 08
+ tilecoll WALL, FLOOR, WALL, WALL ; 09
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 0a
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 0b
+ tilecoll FLOOR, WALL, WALL, WALL ; 0c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 0e
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0f
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 10
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 11
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 12
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 13
+ tilecoll WALL, FLOOR, WALL, WALL ; 14
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 15
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 16
+ tilecoll FLOOR, WALL, WALL, WALL ; 17
+ tilecoll WALL, WALL, WALL, PIT ; 18
+ tilecoll WALL, WALL, PIT, WALL ; 19
+ tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 1a
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1c
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 1d
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 1e
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 1f
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 20
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 21
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 22
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 23
+ tilecoll WALL, WALL, WALL, WALL ; 24
+ tilecoll WALL, WALL, WALL, WALL ; 25
+ tilecoll WALL, WALL, WALL, WALL ; 26
+ tilecoll WALL, WALL, WALL, WALL ; 27
+ tilecoll WALL, WALL, WALL, WALL ; 28
+ tilecoll WALL, WALL, WALL, WALL ; 29
+ tilecoll WALL, WALL, WALL, WALL ; 2a
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WALL ; 2b
+ tilecoll FLOOR, FLOOR, WALL, WARP_CARPET_DOWN ; 2c
+ tilecoll 88, FLOOR, 88, FLOOR ; 2d
+ tilecoll 88, FLOOR, 88, FLOOR ; 2e
+ tilecoll 89, FLOOR, 89, FLOOR ; 2f
+ tilecoll 1E, FLOOR, GRASS_4A, FLOOR ; 30
+ tilecoll 1F, FLOOR, GRASS_4B, FLOOR ; 31
+ tilecoll GRASS_48, FLOOR, CUT_28, FLOOR ; 32
+ tilecoll GRASS_49, FLOOR, WATER, FLOOR ; 33
+ tilecoll 1E, FLOOR, GRASS_4A, FLOOR ; 34
+ tilecoll 1F, FLOOR, GRASS_4B, FLOOR ; 35
+ tilecoll GRASS_48, FLOOR, CUT_28, FLOOR ; 36
+ tilecoll GRASS_49, FLOOR, WATER, FLOOR ; 37
+ tilecoll 1E, FLOOR, GRASS_4A, FLOOR ; 38
+ tilecoll 1F, FLOOR, GRASS_4B, FLOOR ; 39
+ tilecoll GRASS_48, FLOOR, CUT_28, FLOOR ; 3a
+ tilecoll GRASS_49, FLOOR, WATER, FLOOR ; 3b
+ tilecoll 64, FLOOR, WATERFALL_UP, FLOOR ; 3c
+ tilecoll 65, FLOOR, WATERFALL, FLOOR ; 3d
+ tilecoll WATERFALL_UP, FLOOR, WARP_CARPET_DOWN, FLOOR ; 3e
+ tilecoll WATERFALL, FLOOR, DOOR, FLOOR ; 3f
diff --git a/data/tilesets/ruins_of_alph_metatiles.bin b/data/tilesets/ruins_of_alph_metatiles.bin
new file mode 100644
index 00000000..7c6b90e5
--- /dev/null
+++ b/data/tilesets/ruins_of_alph_metatiles.bin
Binary files differ
diff --git a/data/tilesets/tower_collision.asm b/data/tilesets/tower_collision.asm
new file mode 100644
index 00000000..6fe2e60f
--- /dev/null
+++ b/data/tilesets/tower_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll WALL, WALL, WALL, WALL ; 01
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 02
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 03
+ tilecoll WALL, WALL, WALL, FLOOR ; 04
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 05
+ tilecoll WALL, WALL, FLOOR, WALL ; 06
+ tilecoll WALL, WALL, WALL, WALL ; 07
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 08
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0a
+ tilecoll WALL, WALL, WALL, WALL ; 0b
+ tilecoll WALL, FLOOR, WALL, WALL ; 0c
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 0d
+ tilecoll FLOOR, WALL, WALL, WALL ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 10
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 11
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 12
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 13
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 14
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 15
+ tilecoll WALL, FLOOR, WALL, WALL ; 16
+ tilecoll FLOOR, WALL, WALL, WALL ; 17
+ tilecoll WALL, WALL, WALL, WALL ; 18
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 19
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1a
+ tilecoll WALL, WALL, WALL, WALL ; 1b
+ tilecoll WALL, WALL, WALL, WALL ; 1c
+ tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 1d
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 1e
+ tilecoll LADDER, FLOOR, FLOOR, FLOOR ; 1f
+ tilecoll LADDER, FLOOR, FLOOR, FLOOR ; 20
+ tilecoll WALL, WALL, WALL, FLOOR ; 21
+ tilecoll WALL, WALL, FLOOR, WALL ; 22
+ tilecoll WALL, WALL, WALL, WALL ; 23
+ tilecoll FLOOR, FLOOR, WARP_PANEL, FLOOR ; 24
+ tilecoll FLOOR, FLOOR, PIT, FLOOR ; 25
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 26
+ tilecoll WARP_CARPET_UP, WARP_CARPET_UP, FLOOR, FLOOR ; 27
+ tilecoll FLOOR, PIT, FLOOR, PIT ; 28
+ tilecoll PIT, PIT, FLOOR, FLOOR ; 29
+ tilecoll WALL, WALL, WALL, WALL ; 2a
+ tilecoll WALL, HOP_LEFT, WALL, WALL ; 2b
+ tilecoll HOP_RIGHT, WALL, WALL, WALL ; 2c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2d
+ tilecoll WALL, WALL, WALL, FLOOR ; 2e
+ tilecoll WALL, WALL, FLOOR, WALL ; 2f
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 30
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 31
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 32
+ tilecoll WALL, WALL, WALL, FLOOR ; 33
+ tilecoll WALL, WALL, FLOOR, WALL ; 34
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 35
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 36
+ tilecoll PIT, PIT, FLOOR, FLOOR ; 37
+ tilecoll FLOOR, PIT, FLOOR, PIT ; 38
+ tilecoll PIT, FLOOR, PIT, FLOOR ; 39
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 3a
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 3b
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 3c
+ tilecoll WALL, HOP_DOWN, WALL, WALL ; 3d
+ tilecoll HOP_DOWN, WALL, WALL, WALL ; 3e
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 3f
diff --git a/data/tilesets/tower_metatiles.bin b/data/tilesets/tower_metatiles.bin
new file mode 100644
index 00000000..20b87153
--- /dev/null
+++ b/data/tilesets/tower_metatiles.bin
@@ -0,0 +1,2 @@
+ @ !!A1A1!!!!!!@ A1A1
+ A1A1A1A1A1A1A1A1A1A1!!!!!!!!A1A1!!!! -.=><>MN./>?,NO()89*+:;()89*+:;MN]^NO^_A1A1@ !!A1A1!!@ !!!!^^^^"#23&'67"#23&'67PQPQPQPQPQPQPQPQ$$$$  "#23!!67"#!!2367%545%545%545%545   FV GW PQPQRSRSBCHZ[!XL\67IBCY!Z[L\67JKZ[L\67JKZ[L\67DETU!!!!PPPPPPPPFV   GW  \ No newline at end of file
diff --git a/data/tilesets/traditional_house_collision.asm b/data/tilesets/traditional_house_collision.asm
new file mode 100644
index 00000000..cc949235
--- /dev/null
+++ b/data/tilesets/traditional_house_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll 36, FLOOR, WALK_RIGHT_ALT, FLOOR ; 00
+ tilecoll WALL, WALL, RADIO, FLOOR ; 01
+ tilecoll WALL, WALL, MART_SHELF, MART_SHELF ; 02
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+ tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 06
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 07
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 08
+ tilecoll WALL, WALL, WALL, WALL ; 09
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0a
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 0b
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 0c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 11
+ tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 12
+ tilecoll WALL, WALL, INCENSE_BURNER, BOOKSHELF ; 13
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 14
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 15
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 16
+ tilecoll WALL, WALL, WALL, WALL ; 17
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 18
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 19
+ tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 1a
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 1b
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 1c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1d
+ tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 1e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1f
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 20
+ tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 21
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 22
+ tilecoll WALL, WALL, RADIO, FLOOR ; 23
+ tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 24
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 25
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 26
+ tilecoll LADDER, FLOOR, FLOOR, FLOOR ; 27
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 28
+ tilecoll WALL, WALL, WALL, WALL ; 29
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+ tilecoll FLOOR, FLOOR, HOP_DOWN, HOP_DOWN ; 2c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2d
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 2e
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 2f
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 30
+ tilecoll WALL, WALL, WALL, WALL ; 31
+ tilecoll WALL, WALL, WALL, WALL ; 32
+ tilecoll WALL, WALL, WALL, FLOOR ; 33
+ tilecoll WALL, WALL, WALL, FLOOR ; 34
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 35
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 36
+ tilecoll 04, WARP_CARPET_DOWN, 04, 63 ; 37
+ tilecoll 03, 04, 03, 03 ; 38
+ tilecoll 04, 03, 03, 03 ; 39
+ tilecoll 04, 03, 03, 03 ; 3a
+ tilecoll 03, 03, 03, 03 ; 3b
+ tilecoll 03, 03, 04, 04 ; 3c
+ tilecoll 04, 04, 04, 04 ; 3d
+ tilecoll 03, 03, 03, 03 ; 3e
+ tilecoll WARP_CARPET_DOWN, 04, 03, 03 ; 3f
diff --git a/data/tilesets/traditional_house_metatiles.bin b/data/tilesets/traditional_house_metatiles.bin
new file mode 100644
index 00000000..7e91d220
--- /dev/null
+++ b/data/tilesets/traditional_house_metatiles.bin
Binary files differ
diff --git a/data/tilesets/train_station_collision.asm b/data/tilesets/train_station_collision.asm
new file mode 100644
index 00000000..a6a4b1ac
--- /dev/null
+++ b/data/tilesets/train_station_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll FF, FF, FF, FF ; 00
+ tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 01
+ tilecoll UP_WALL, FLOOR, UP_WALL, FLOOR ; 02
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 06
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 07
+ tilecoll WALL, FLOOR, WALL, WALL ; 08
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 09
+ tilecoll WALL, WALL, WALL, WALL ; 0a
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 0c
+ tilecoll WALL, WALL, WALL, WALL ; 0d
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll WALL, WALL, WALL, WALL ; 10
+ tilecoll WALL, WALL, DOOR, WALL ; 11
+ tilecoll WALL, WALL, WALL, DOOR ; 12
+ tilecoll WALL, WALL, WALL, WALL ; 13
+ tilecoll WALL, WALL, WALL, WALL ; 14
+ tilecoll WALL, WALL, WALL, WALL ; 15
+ tilecoll WALL, WALL, WALL, WALL ; 16
+ tilecoll WALL, WALL, WALL, WALL ; 17
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 18
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 19
+ tilecoll WALL, WALL, WALL, WALL ; 1a
+ tilecoll WALL, WALL, WALL, WALL ; 1b
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1c
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1d
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1e
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 1f
+ tilecoll WALL, WALL, WALL, WALL ; 20
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 21
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 22
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 23
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 24
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 25
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 26
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 27
+ tilecoll WALL, WALL, WALL, FLOOR ; 28
+ tilecoll WALL, WALL, FLOOR, WALL ; 29
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2a
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 2b
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 2c
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 2d
+ tilecoll WALL, WALL, WALL, WALL ; 2e
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 2f
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 30
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 31
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 32
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 33
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 34
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 35
+ tilecoll WALL, WALL, WALL, FLOOR ; 36
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 37
+ tilecoll WALL, WALL, FLOOR, WALL ; 38
+ tilecoll WALL, FLOOR, WALL, WALL ; 39
+ tilecoll WALL, WALL, WALL, WALL ; 3a
+ tilecoll FLOOR, WALL, WALL, WALL ; 3b
+ tilecoll WALL, WALL, WALL, WALL ; 3c
+ tilecoll WALL, WALL, WALL, WALL ; 3d
+ tilecoll WALL, WALL, WALL, WALL ; 3e
+ tilecoll WALL, WALL, WALL, WALL ; 3f
diff --git a/data/tilesets/train_station_metatiles.bin b/data/tilesets/train_station_metatiles.bin
new file mode 100644
index 00000000..e33348a1
--- /dev/null
+++ b/data/tilesets/train_station_metatiles.bin
Binary files differ
diff --git a/data/tilesets/underground_collision.asm b/data/tilesets/underground_collision.asm
new file mode 100644
index 00000000..e4cee749
--- /dev/null
+++ b/data/tilesets/underground_collision.asm
@@ -0,0 +1,64 @@
+ tilecoll WALL, WALL, WALL, WALL ; 00
+ tilecoll WALL, WALL, WALL, WALL ; 01
+ tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 02
+ tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 03
+ tilecoll WALL, WALL, WALL, FLOOR ; 04
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 06
+ tilecoll FLOOR, FLOOR, PIT, PIT ; 07
+ tilecoll WALL, WALL, WALL, FLOOR ; 08
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 09
+ tilecoll WALL, WALL, FLOOR, WALL ; 0a
+ tilecoll WALL, WALL, WALL, WALL ; 0b
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 0c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 0e
+ tilecoll FLOOR, FLOOR, FLOOR, WARP_PANEL ; 0f
+ tilecoll WALL, FLOOR, WALL, WALL ; 10
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 11
+ tilecoll FLOOR, WALL, WALL, WALL ; 12
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 13
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 14
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 15
+ tilecoll WALL, FLOOR, WALL, WALL ; 16
+ tilecoll FLOOR, WALL, WALL, WALL ; 17
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 18
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 19
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 1a
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 1c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1d
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 1e
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 1f
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 20
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 21
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 22
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 23
+ tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 24
+ tilecoll WALL, WARP_CARPET_UP, FLOOR, FLOOR ; 25
+ tilecoll WARP_CARPET_UP, WALL, FLOOR, FLOOR ; 26
+ tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 27
+ tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 28
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 29
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 2a
+ tilecoll WALL, WALL, WALL, WALL ; 2b
+ tilecoll WALL, WALL, WALL, WALL ; 2c
+ tilecoll WALL, WALL, WALL, WALL ; 2d
+ tilecoll WARP_CARPET_DOWN, WARP_CARPET_DOWN, WALL, WALL ; 2e
+ tilecoll WALL, WALL, WALL, WALL ; 2f
+ tilecoll WALL, WALL, WALL, WALL ; 30
+ tilecoll WALL, WALL, WALL, WALL ; 31
+ tilecoll WALL, WALL, WALL, WALL ; 32
+ tilecoll WALL, WALL, WALL, WALL ; 33
+ tilecoll WALL, WALL, WALL, WALL ; 34
+ tilecoll WALL, WALL, WALL, WALL ; 35
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 36
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 37
+ tilecoll WALL, WALL, WALL, WALL ; 38
+ tilecoll WALL, WALL, WALL, WALL ; 39
+ tilecoll WALL, WALL, WALL, WALL ; 3a
+ tilecoll WALL, WALL, WALL, WALL ; 3b
+ tilecoll WALL, WALL, WALL, WALL ; 3c
+ tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 3d
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
diff --git a/data/tilesets/underground_metatiles.bin b/data/tilesets/underground_metatiles.bin
new file mode 100644
index 00000000..28b807e1
--- /dev/null
+++ b/data/tilesets/underground_metatiles.bin
@@ -0,0 +1,2 @@
+*+:;,-<=EFUV 0144444444   44 444444      CDCDSTSTCDCDSTST        "#23                     
+ QQQQQQQQ./>?./>?@ANOP]^_&'67             01 01@AAAPQQQPQQQAAABQQQRQQQR@AABPQQRPQQRPQQRPQQRPQQRPQQRPQQRPQQRPQQRPQQR@B@B()89()89 \ No newline at end of file
diff --git a/data/tilesets/unused_johto_collision.asm b/data/tilesets/unused_johto_collision.asm
new file mode 100644
index 00000000..8bbc11f2
--- /dev/null
+++ b/data/tilesets/unused_johto_collision.asm
@@ -0,0 +1,128 @@
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 00
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+ tilecoll TALL_GRASS_10, TALL_GRASS_10, TALL_GRASS_10, TALL_GRASS_10 ; 03
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+ tilecoll WALL, WALL, WALL, WALL ; 05
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+ tilecoll WALL, WALL, WALL, WALL ; 08
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+ tilecoll WALL, WALL, WALL, WALL ; 0a
+ tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 0b
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 0c
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+ tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 0e
+ tilecoll WALL, WALL, WALL, WALL ; 0f
+ tilecoll WALL, WALL, WALL, WALL ; 10
+ tilecoll WALL, WALL, WALL, WALL ; 11
+ tilecoll WALL, WALL, WALL, WALL ; 12
+ tilecoll WALL, WALL, WALL, WALL ; 13
+ tilecoll WALL, WALL, WALL, DOOR ; 14
+ tilecoll WALL, WALL, WALL, WALL ; 15
+ tilecoll WALL, WALL, WALL, DOOR ; 16
+ tilecoll WALL, WALL, TOWN_MAP, WALL ; 17
+ tilecoll WALL, WALL, WALL, WALL ; 18
+ tilecoll WALL, WALL, WALL, WALL ; 19
+ tilecoll WALL, WALL, WALL, DOOR ; 1a
+ tilecoll WALL, WALL, TOWN_MAP, WALL ; 1b
+ tilecoll WALL, WALL, WALL, WALL ; 1c
+ tilecoll WALL, WALL, DOOR, WALL ; 1d
+ tilecoll WALL, WALL, WALL, WALL ; 1e
+ tilecoll WALL, WALL, WALL, WALL ; 1f
+ tilecoll WALL, WALL, WALL, WALL ; 20
+ tilecoll WALL, WALL, WALL, WALL ; 21
+ tilecoll WALL, WALL, WALL, WALL ; 22
+ tilecoll WALL, WALL, WALL, WALL ; 23
+ tilecoll WALL, WALL, WALL, WALL ; 24
+ tilecoll WALL, WALL, WALL, WALL ; 25
+ tilecoll WALL, WALL, WALL, WALL ; 26
+ tilecoll WALL, WALL, WALL, WALL ; 27
+ tilecoll WALL, WALL, WALL, DOOR ; 28
+ tilecoll WALL, WALL, WALL, WALL ; 29
+ tilecoll WALL, WALL, WALL, DOOR ; 2a
+ tilecoll WALL, WALL, WALL, WALL ; 2b
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 2c
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 2d
+ tilecoll WALL, WALL, WALL, DOOR ; 2e
+ tilecoll WALL, WALL, WALL, WALL ; 2f
+ tilecoll BUOY, BUOY, BUOY, WATER_21 ; 30
+ tilecoll BUOY, BUOY, WATER_21, WATER_21 ; 31
+ tilecoll BUOY, BUOY, WATER_21, BUOY ; 32
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 33
+ tilecoll BUOY, WATER_21, BUOY, WATER_21 ; 34
+ tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 35
+ tilecoll WATER_21, BUOY, WATER_21, BUOY ; 36
+ tilecoll WALL, WALL, WALL, WALL ; 37
+ tilecoll BUOY, WATER_21, BUOY, BUOY ; 38
+ tilecoll WATER_21, WATER_21, BUOY, BUOY ; 39
+ tilecoll WATER_21, BUOY, BUOY, BUOY ; 3a
+ tilecoll WALL, WALL, WALL, WALL ; 3b
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 3c
+ tilecoll FLOOR, WALL, FLOOR, FLOOR ; 3d
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 3e
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3f
+ tilecoll WALL, WALL, WALL, FLOOR ; 40
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 41
+ tilecoll WALL, WALL, FLOOR, WALL ; 42
+ tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 43
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 44
+ tilecoll TOWN_MAP, FLOOR, FLOOR, FLOOR ; 45
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 46
+ tilecoll FLOOR, FLOOR, FLOOR, TOWN_MAP ; 47
+ tilecoll WALL, FLOOR, WALL, WALL ; 48
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 49
+ tilecoll FLOOR, WALL, WALL, WALL ; 4a
+ tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 4b
+ tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4c
+ tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 4d
+ tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4e
+ tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 4f
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 50
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 51
+ tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 52
+ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 53
+ tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 54
+ tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 55
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 56
+ tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 57
+ tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 58
+ tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 59
+ tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 5a
+ tilecoll WALL, CUT_TREE, FLOOR, FLOOR ; 5b
+ tilecoll WALL, WALL, WALL, FLOOR ; 5c
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 5d
+ tilecoll WALL, WALL, FLOOR, WALL ; 5e
+ tilecoll FLOOR, WALL, FLOOR, CUT_TREE ; 5f
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 60
+ tilecoll WALL, WALL, WALL, WALL ; 61
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 62
+ tilecoll FLOOR, FLOOR, CUT_TREE, WALL ; 63
+ tilecoll WALL, FLOOR, WALL, WALL ; 64
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 65
+ tilecoll FLOOR, WALL, WALL, WALL ; 66
+ tilecoll CUT_TREE, FLOOR, WALL, FLOOR ; 67
+ tilecoll WALL, FLOOR, WALL, FLOOR ; 68
+ tilecoll FLOOR, WALL, FLOOR, WALL ; 69
+ tilecoll WALL, UP_WALL, WALL, FLOOR ; 6a
+ tilecoll UP_WALL, WALL, FLOOR, WALL ; 6b
+ tilecoll WALL, FLOOR, WALL, WALL ; 6c
+ tilecoll FLOOR, WALL, WALL, WALL ; 6d
+ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 6e
+ tilecoll FLOOR, FLOOR, FLOOR, WALL ; 6f
+ tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 70
+ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 71
+ tilecoll FLOOR, FLOOR, WALL, WALL ; 72
+ tilecoll FLOOR, FLOOR, DOOR, WALL ; 73
+ tilecoll WALL, FLOOR, FLOOR, FLOOR ; 74
+ tilecoll WALL, WALL, FLOOR, FLOOR ; 75
+ tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 76
+ tilecoll WALL, WALL, WALL, WALL ; 77
+ tilecoll WALL, WALL, WALL, WALL ; 78
+ tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 79
+ tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 7a
+ tilecoll WALL, WALL, WALL, WALL ; 7b
+ tilecoll WALL, WALL, WALL, WALL ; 7c
+ tilecoll WALL, WALL, WALL, WALL ; 7d
+ tilecoll WALL, WALL, WALL, WALL ; 7e
+ tilecoll WALL, WALL, WALL, WALL ; 7f
diff --git a/data/tilesets/unused_johto_metatiles.bin b/data/tilesets/unused_johto_metatiles.bin
new file mode 100644
index 00000000..b70f1a0e
--- /dev/null
+++ b/data/tilesets/unused_johto_metatiles.bin
Binary files differ
diff --git a/engine/events/catch_tutorial.asm b/engine/events/catch_tutorial.asm
new file mode 100644
index 00000000..5c12a02f
--- /dev/null
+++ b/engine/events/catch_tutorial.asm
@@ -0,0 +1,81 @@
+CatchTutorial::
+ ld a, [wBattleType]
+ dec a
+ ld c, a
+ ld hl, .dw
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.dw
+ dw .DudeTutorial
+ dw .DudeTutorial
+ dw .DudeTutorial
+
+.DudeTutorial:
+; Back up your name to your Mom's name.
+ ld hl, wPlayerName
+ ld de, wMomsName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+; Copy Dude's name to your name
+ ld hl, .Dude
+ ld de, wPlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+
+ call .LoadDudeData
+
+ xor a
+ ldh [hJoyDown], a
+ ldh [hJoyPressed], a
+ ld a, [wOptions]
+ push af
+ and $ff ^ TEXT_DELAY_MASK
+ add TEXT_DELAY_MED
+ ld [wOptions], a
+ ld hl, .AutoInput
+ ld a, BANK(.AutoInput)
+ call StartAutoInput
+ callfar StartBattle
+ call StopAutoInput
+ pop af
+
+ ld [wOptions], a
+ ld hl, wMomsName
+ ld de, wPlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+
+.LoadDudeData:
+ ld hl, wDudeNumItems
+ ld [hl], 1
+ inc hl
+ ld [hl], POTION
+ inc hl
+ ld [hl], 1
+ inc hl
+ ld [hl], -1
+ ld hl, wDudeNumKeyItems
+ ld [hl], 0
+ inc hl
+ ld [hl], -1
+ ld hl, wDudeNumBalls
+ ld a, 1
+ ld [hli], a
+ ld a, POKE_BALL
+ ld [hli], a
+ ld [hli], a
+ ld [hl], -1
+ ret
+
+.Dude:
+ db "DUDE@"
+
+.AutoInput:
+ db NO_INPUT, $ff ; end
diff --git a/engine/events/catch_tutorial_input.asm b/engine/events/catch_tutorial_input.asm
new file mode 100644
index 00000000..cca2db2d
--- /dev/null
+++ b/engine/events/catch_tutorial_input.asm
@@ -0,0 +1,43 @@
+_DudeAutoInput_A::
+ ld hl, DudeAutoInput_A
+ jr _DudeAutoInput
+
+_DudeAutoInput_RightA:
+ ld hl, DudeAutoInput_RightA
+ jr _DudeAutoInput
+
+_DudeAutoInput_DownA:
+ ld hl, DudeAutoInput_DownA
+ jr _DudeAutoInput
+
+_DudeAutoInput:
+ ld a, BANK(DudeAutoInputs)
+ call StartAutoInput
+ ret
+
+DudeAutoInputs: ; used only for BANK(DudeAutoInputs)
+
+DudeAutoInput_A:
+ db NO_INPUT, $50
+ db A_BUTTON, $00
+ db NO_INPUT, $ff ; end
+
+DudeAutoInput_RightA:
+ db NO_INPUT, $08
+ db D_RIGHT, $00
+ db NO_INPUT, $08
+ db A_BUTTON, $00
+ db NO_INPUT, $ff ; end
+
+DudeAutoInput_DownA:
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db D_DOWN, $00
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db A_BUTTON, $00
+ db NO_INPUT, $ff ; end
diff --git a/engine/events/mom_phone.asm b/engine/events/mom_phone.asm
new file mode 100644
index 00000000..cbd91327
--- /dev/null
+++ b/engine/events/mom_phone.asm
@@ -0,0 +1,231 @@
+NUM_MOM_ITEMS_1 EQUS "((MomItems_1.End - MomItems_1) / 8)"
+NUM_MOM_ITEMS_2 EQUS "((MomItems_2.End - MomItems_2) / 8)"
+
+ const_def 1
+ const MOM_ITEM
+ const MOM_DOLL
+
+MomTriesToBuySomething::
+ ld a, [wMapReentryScriptQueueFlag]
+ and a
+ ret nz
+ call GetMapPhoneService
+ and a
+ ret nz
+ xor a
+ ld [wWhichMomItemSet], a
+ call CheckBalance_MomItem2
+ ret nc
+ call Mom_GiveItemOrDoll
+ ret nc
+ ld b, BANK(.Script)
+ ld de, .Script
+ farcall LoadScriptBDE
+ scf
+ ret
+
+.Script:
+ callasm .ASMFunction
+ farsjump Script_ReceivePhoneCall
+
+.ASMFunction:
+ call MomBuysItem_DeductFunds
+ call Mom_GetScriptPointer
+ ld a, [wWhichMomItemSet]
+ and a
+ jr nz, .ok
+ ld hl, wWhichMomItem
+ inc [hl]
+.ok
+ ld a, PHONE_MOM
+ ld [wCurCaller], a
+ ld bc, wCallerContact
+ ld hl, PHONE_CONTACT_TRAINER_CLASS
+ add hl, bc
+ ld [hl], TRAINER_NONE
+ inc hl
+ ld [hl], PHONE_MOM
+ ld hl, PHONE_CONTACT_SCRIPT2_BANK
+ add hl, bc
+ ld a, BANK(Mom_GetScriptPointer)
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hl], a
+ ret
+
+CheckBalance_MomItem2:
+ ld a, [wWhichMomItem]
+ cp NUM_MOM_ITEMS_2
+ jr nc, .nope
+ call GetItemFromMom
+ ld a, [hli]
+ ldh [hMoneyTemp], a
+ ld a, [hli]
+ ldh [hMoneyTemp + 1], a
+ ld a, [hli]
+ ldh [hMoneyTemp + 2], a
+ ld de, wMomsMoney
+ ld bc, hMoneyTemp
+ farcall CompareMoney
+ jr nc, .have_enough_money
+
+.nope
+ jr .check_have_2300
+
+.have_enough_money
+ scf
+ ret
+
+.check_have_2300
+ ld hl, hMoneyTemp
+ ld [hl], HIGH(MOM_MONEY >> 8)
+ inc hl
+ ld [hl], HIGH(MOM_MONEY) ; mid
+ inc hl
+ ld [hl], LOW(MOM_MONEY)
+.loop
+ ld de, wMomItemTriggerBalance
+ ld bc, wMomsMoney
+ farcall CompareMoney
+ jr z, .exact
+ jr nc, .less_than
+ call .AddMoney
+ jr .loop
+
+.less_than
+ xor a
+ ret
+
+.exact
+ call .AddMoney
+ ld a, NUM_MOM_ITEMS_1
+ call RandomRange
+ inc a
+ ld [wWhichMomItemSet], a
+ scf
+ ret
+
+.AddMoney:
+ ld de, wMomItemTriggerBalance
+ ld bc, hMoneyTemp
+ farcall AddMoney
+ ret
+
+MomBuysItem_DeductFunds:
+ call GetItemFromMom
+ ld de, 3 ; cost
+ add hl, de
+ ld a, [hli]
+ ldh [hMoneyTemp], a
+ ld a, [hli]
+ ldh [hMoneyTemp + 1], a
+ ld a, [hli]
+ ldh [hMoneyTemp + 2], a
+ ld de, wMomsMoney
+ ld bc, hMoneyTemp
+ farcall TakeMoney
+ ret
+
+Mom_GiveItemOrDoll:
+ call GetItemFromMom
+ ld de, 6 ; item type
+ add hl, de
+ ld a, [hli]
+ cp MOM_ITEM
+ jr z, .not_doll
+ ld a, [hl]
+ ld c, a
+ ld b, 1
+ farcall DecorationFlagAction_c
+ scf
+ ret
+
+.not_doll
+ ld a, [hl]
+ ld [wCurItem], a
+ ld a, 1
+ ld [wItemQuantityChangeBuffer], a
+ ld hl, wNumPCItems
+ call ReceiveItem
+ ret
+
+Mom_GetScriptPointer:
+ call GetItemFromMom
+ ld de, 6 ; item type
+ add hl, de
+ ld a, [hli]
+ ld de, .ItemScript
+ cp MOM_ITEM
+ ret z
+ ld de, .DollScript
+ ret
+
+.ItemScript:
+ writetext MomHiHowAreYouText
+ writetext MomFoundAnItemText
+ writetext MomBoughtWithYourMoneyText
+ writetext MomItsInPCText
+ end
+
+.DollScript:
+ writetext MomHiHowAreYouText
+ writetext MomFoundADollText
+ writetext MomBoughtWithYourMoneyText
+ writetext MomItsInYourRoomText
+ end
+
+GetItemFromMom:
+ ld a, [wWhichMomItemSet]
+ and a
+ jr z, .zero
+ dec a
+ ld de, MomItems_1
+ jr .GetFromList1
+
+.zero
+ ld a, [wWhichMomItem]
+ cp NUM_MOM_ITEMS_2
+ jr c, .ok
+ xor a
+
+.ok
+ ld de, MomItems_2
+
+.GetFromList1:
+ ld l, a
+ ld h, 0
+rept 3 ; multiply hl by 8
+ add hl, hl
+endr
+ add hl, de
+ ret
+
+INCLUDE "data/items/mom_phone.asm"
+
+ db 0, 0, 0 ; unused
+
+MomHiHowAreYouText:
+ text_far _MomHiHowAreYouText
+ text_end
+
+MomFoundAnItemText:
+ text_far _MomFoundAnItemText
+ text_end
+
+MomBoughtWithYourMoneyText:
+ text_far _MomBoughtWithYourMoneyText
+ text_end
+
+MomItsInPCText:
+ text_far _MomItsInPCText
+ text_end
+
+MomFoundADollText:
+ text_far _MomFoundADollText
+ text_end
+
+MomItsInYourRoomText:
+ text_far _MomItsInYourRoomText
+ text_end
diff --git a/engine/events/npc_trade.asm b/engine/events/npc_trade.asm
new file mode 100644
index 00000000..ce8a64d6
--- /dev/null
+++ b/engine/events/npc_trade.asm
@@ -0,0 +1,478 @@
+NPCTrade::
+ ld a, e
+ ld [wJumptableIndex], a
+ call Trade_GetDialog
+ ld b, CHECK_FLAG
+ call TradeFlagAction
+ ld a, TRADE_DIALOG_AFTER
+ jr nz, .done
+
+ ld a, TRADE_DIALOG_INTRO
+ call PrintTradeText
+
+ call YesNoBox
+ ld a, TRADE_DIALOG_CANCEL
+ jr c, .done
+
+; Select givemon from party
+ ld b, PARTYMENUACTION_GIVE_MON
+ farcall SelectTradeOrDayCareMon
+ ld a, TRADE_DIALOG_CANCEL
+ jr c, .done
+
+ ld e, NPCTRADE_GIVEMON
+ call GetTradeAttribute
+ ld a, [wCurPartySpecies]
+ cp [hl]
+ ld a, TRADE_DIALOG_WRONG
+ jr nz, .done
+
+ call CheckTradeGender
+ ld a, TRADE_DIALOG_WRONG
+ jr c, .done
+
+ ld b, SET_FLAG
+ call TradeFlagAction
+
+ ld hl, NPCTradeCableText
+ call PrintText
+
+ call DoNPCTrade
+ call .TradeAnimation
+ call GetTradeMonNames
+
+ ld hl, TradedForText
+ call PrintText
+
+ call RestartMapMusic
+
+ ld a, TRADE_DIALOG_COMPLETE
+
+.done
+ call PrintTradeText
+ ret
+
+.TradeAnimation:
+ call DisableSpriteUpdates
+ ld a, [wJumptableIndex]
+ push af
+ ld a, [wce64]
+ push af
+ predef TradeAnimation
+ pop af
+ ld [wce64], a
+ pop af
+ ld [wJumptableIndex], a
+ call ReturnToMapWithSpeechTextbox
+ ret
+
+CheckTradeGender:
+ xor a
+ ld [wMonType], a
+
+ ld e, NPCTRADE_GENDER
+ call GetTradeAttribute
+ ld a, [hl]
+ and a ; TRADE_GENDER_EITHER
+ jr z, .matching
+ cp TRADE_GENDER_MALE
+ jr z, .check_male
+ ; TRADE_GENDER_FEMALE
+ farcall GetGender
+ jr nz, .not_matching
+ jr .matching
+
+.check_male
+ farcall GetGender
+ jr z, .not_matching
+
+.matching
+ and a
+ ret
+
+.not_matching
+ scf
+ ret
+
+TradeFlagAction:
+ ld hl, wTradeFlags
+ ld a, [wJumptableIndex]
+ ld c, a
+ predef SmallFarFlagAction
+ ld a, c
+ and a
+ ret
+
+Trade_GetDialog:
+ ld e, NPCTRADE_DIALOG
+ call GetTradeAttribute
+ ld a, [hl]
+ ld [wce64], a
+ ret
+
+DoNPCTrade:
+ ld e, NPCTRADE_GIVEMON
+ call GetTradeAttribute
+ ld a, [hl]
+ ld [wPlayerTrademonSpecies], a
+
+ ld e, NPCTRADE_GETMON
+ call GetTradeAttribute
+ ld a, [hl]
+ ld [wOTTrademonSpecies], a
+
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call GetTradeMonName
+ call CopyTradeName
+
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call GetTradeMonName
+ call CopyTradeName
+
+ ld hl, wPartyMonOT
+ ld bc, NAME_LENGTH
+ call Trade_GetAttributeOfCurrentPartymon
+ ld de, wPlayerTrademonOTName
+ call CopyTradeName
+
+ ld hl, wPlayerName
+ ld de, wPlayerTrademonSenderName
+ call CopyTradeName
+
+ ld hl, wPartyMon1ID
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfCurrentPartymon
+ ld de, wPlayerTrademonID
+ call Trade_CopyTwoBytes
+
+ ld hl, wPartyMon1DVs
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfCurrentPartymon
+ ld de, wPlayerTrademonDVs
+ call Trade_CopyTwoBytes
+
+ ld hl, wPartyMon1Level
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfCurrentPartymon
+ ld a, [hl]
+ ld [wCurPartyLevel], a
+ ld a, [wOTTrademonSpecies]
+ ld [wCurPartySpecies], a
+ xor a
+ ld [wMonType], a ; PARTYMON
+ ld [wPokemonWithdrawDepositParameter], a ; REMOVE_PARTY
+ callfar RemoveMonFromPartyOrBox
+ predef TryAddMonToParty
+
+ ld e, NPCTRADE_NICK
+ call GetTradeAttribute
+ ld de, wOTTrademonNickname
+ call CopyTradeName
+
+ ld hl, wPartyMonNicknames
+ ld bc, MON_NAME_LENGTH
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonNickname
+ call CopyTradeName
+
+ ld e, NPCTRADE_OT_NAME
+ call GetTradeAttribute
+ push hl
+ ld de, wOTTrademonOTName
+ call CopyTradeName
+ pop hl
+ ld de, wOTTrademonSenderName
+ call CopyTradeName
+
+ ld hl, wPartyMonOT
+ ld bc, NAME_LENGTH
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonOTName
+ call CopyTradeName
+
+ ld e, NPCTRADE_DVS
+ call GetTradeAttribute
+ ld de, wOTTrademonDVs
+ call Trade_CopyTwoBytes
+
+ ld hl, wPartyMon1DVs
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonDVs
+ call Trade_CopyTwoBytes
+
+ ld e, NPCTRADE_OT_ID
+ call GetTradeAttribute
+ ld de, wOTTrademonID + 1
+ call Trade_CopyTwoBytesReverseEndian
+
+ ld hl, wPartyMon1ID
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonID
+ call Trade_CopyTwoBytes
+
+ ld e, NPCTRADE_ITEM
+ call GetTradeAttribute
+ push hl
+ ld hl, wPartyMon1Item
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfLastPartymon
+ pop hl
+ ld a, [hl]
+ ld [de], a
+
+ push af
+ push bc
+ push de
+ push hl
+ ld a, [wCurPartyMon]
+ push af
+ ld a, [wPartyCount]
+ dec a
+ ld [wCurPartyMon], a
+ farcall ComputeNPCTrademonStats
+ pop af
+ ld [wCurPartyMon], a
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+
+GetTradeAttribute:
+ ld d, 0
+ push de
+ ld a, [wJumptableIndex]
+ and $f
+ swap a
+ ld e, a
+ ld d, 0
+ ld hl, NPCTrades
+ add hl, de
+ add hl, de
+ pop de
+ add hl, de
+ ret
+
+Trade_GetAttributeOfCurrentPartymon:
+ ld a, [wCurPartyMon]
+ call AddNTimes
+ ret
+
+Trade_GetAttributeOfLastPartymon:
+ ld a, [wPartyCount]
+ dec a
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ret
+
+GetTradeMonName:
+ push de
+ ld [wNamedObjectIndexBuffer], a
+ call GetBasePokemonName
+ ld hl, wStringBuffer1
+ pop de
+ ret
+
+CopyTradeName:
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+
+Unreferenced_Functionfcdfb:
+ ld bc, 4
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ret
+
+Unreferenced_Functionfce05:
+ ld bc, 3
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ret
+
+Trade_CopyTwoBytes:
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ret
+
+Trade_CopyTwoBytesReverseEndian:
+ ld a, [hli]
+ ld [de], a
+ dec de
+ ld a, [hl]
+ ld [de], a
+ ret
+
+GetTradeMonNames:
+ ld e, NPCTRADE_GETMON
+ call GetTradeAttribute
+ ld a, [hl]
+ call GetTradeMonName
+
+ ld de, wStringBuffer2
+ call CopyTradeName
+
+ ld e, NPCTRADE_GIVEMON
+ call GetTradeAttribute
+ ld a, [hl]
+ call GetTradeMonName
+
+ ld de, wMonOrItemNameBuffer
+ call CopyTradeName
+
+ ld hl, wStringBuffer1
+.loop
+ ld a, [hli]
+ cp "@"
+ jr nz, .loop
+
+ dec hl
+ push hl
+ ld e, NPCTRADE_GENDER
+ call GetTradeAttribute
+ ld a, [hl]
+ pop hl
+ and a ; TRADE_GENDER_EITHER
+ ret z
+ cp TRADE_GENDER_MALE
+ ld a, "♂"
+ jr z, .done
+ ; TRADE_GENDER_FEMALE
+ ld a, "♀"
+.done
+ ld [hli], a
+ ld [hl], "@"
+ ret
+
+INCLUDE "data/events/npc_trades.asm"
+
+PrintTradeText:
+ push af
+ call GetTradeMonNames
+ pop af
+ ld e, a
+ ld d, 0
+ ld hl, TradeTexts
+rept 6
+ add hl, de
+endr
+ ld a, [wce64]
+ ld e, a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+
+TradeTexts:
+; entries correspond to TRADE_DIALOG_* × TRADE_DIALOGSET_* constants
+; TRADE_DIALOG_INTRO
+ dw NPCTradeIntroText1
+ dw NPCTradeIntroText2
+ dw NPCTradeIntroText3
+; TRADE_DIALOG_CANCEL
+ dw NPCTradeCancelText1
+ dw NPCTradeCancelText2
+ dw NPCTradeCancelText3
+; TRADE_DIALOG_WRONG
+ dw NPCTradeWrongText1
+ dw NPCTradeWrongText2
+ dw NPCTradeWrongText3
+; TRADE_DIALOG_COMPLETE
+ dw NPCTradeCompleteText1
+ dw NPCTradeCompleteText2
+ dw NPCTradeCompleteText3
+; TRADE_DIALOG_AFTER
+ dw NPCTradeAfterText1
+ dw NPCTradeAfterText2
+ dw NPCTradeAfterText3
+
+NPCTradeCableText:
+ text_far _NPCTradeCableText
+ text_end
+
+TradedForText:
+ ; traded givemon for getmon
+ text_far Text_NPCTraded
+ text_asm
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ ld hl, .done
+ ret
+
+.done
+ text_far _NPCTradeFanfareText
+ text_end
+
+NPCTradeIntroText1:
+ text_far _NPCTradeIntroText1
+ text_end
+
+NPCTradeCancelText1:
+ text_far _NPCTradeCancelText1
+ text_end
+
+NPCTradeWrongText1:
+ text_far _NPCTradeWrongText1
+ text_end
+
+NPCTradeCompleteText1:
+ text_far _NPCTradeCompleteText1
+ text_end
+
+NPCTradeAfterText1:
+ text_far _NPCTradeAfterText1
+ text_end
+
+NPCTradeIntroText2:
+ text_far _NPCTradeIntroText2
+ text_end
+
+NPCTradeCancelText2:
+ text_far _NPCTradeCancelText2
+ text_end
+
+NPCTradeWrongText2:
+ text_far _NPCTradeWrongText2
+ text_end
+
+NPCTradeCompleteText2:
+ text_far _NPCTradeCompleteText2
+ text_end
+
+NPCTradeAfterText2:
+ text_far _NPCTradeAfterText2
+ text_end
+
+NPCTradeIntroText3:
+ text_far _NPCTradeIntroText3
+ text_end
+
+NPCTradeCancelText3:
+ text_far _NPCTradeCancelText3
+ text_end
+
+NPCTradeWrongText3:
+ text_far _NPCTradeWrongText3
+ text_end
+
+NPCTradeCompleteText3:
+ text_far _NPCTradeCompleteText3
+ text_end
+
+NPCTradeAfterText3:
+ text_far _NPCTradeAfterText3
+ text_end
diff --git a/engine/link/mystery_gift_3.asm b/engine/link/mystery_gift_3.asm
new file mode 100644
index 00000000..bc12d9c8
--- /dev/null
+++ b/engine/link/mystery_gift_3.asm
@@ -0,0 +1,190 @@
+StagePartyDataForMysteryGift:
+; You will be sending this data to your mystery gift partner.
+; Structure is the same as a trainer with species and moves
+; defined.
+ ld a, BANK(sPokemonData)
+ call OpenSRAM
+ ld de, wMysteryGiftStaging
+ ld bc, sPokemonData + wPartyMons - wPokemonData
+ ld hl, sPokemonData + wPartySpecies - wPokemonData
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .party_end
+ cp EGG
+ jr z, .next
+ push hl
+ ; copy level
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ; copy species
+ ld hl, MON_SPECIES
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ; copy moves
+ ld hl, MON_MOVES
+ add hl, bc
+ push bc
+ ld bc, NUM_MOVES
+ call CopyBytes
+ pop bc
+ pop hl
+.next
+ push hl
+ ld hl, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop hl
+ jr .loop
+.party_end
+ ld a, -1
+ ld [de], a
+ ld a, $26
+ ld [wc900], a
+ jp CloseSRAM
+
+InitMysteryGiftLayout:
+ call ClearBGPalettes
+ call DisableLCD
+ ld hl, MysteryGiftGFX
+ ld de, vTiles2 tile $00
+ ld a, BANK(MysteryGiftGFX)
+ ld bc, $20 tiles
+ call FarCopyBytes
+ farcall LoadMysteryGiftBackgroundGFX
+ farcall LoadMysteryGiftGFX2
+ ld hl, vTiles2 tile $3d
+ ld a, $ff
+ ld bc, 1 tiles
+ call ByteFill
+ hlcoord 0, 0
+ ld a, $3d
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ call ByteFill
+ hlcoord 3, 7
+ lb bc, 9, 15
+ call ClearBox
+ hlcoord 0, 0
+ ld a, $1e
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 0, 1
+ ld a, $33
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 3, 1
+ ld a, 0
+ call .Load15GFX
+ hlcoord 3, 2
+ ld a, $f
+ call .Load15GFX
+ hlcoord 8, 0
+ ld a, $20
+ call .Load4GFX
+ hlcoord 9, 3
+ ld a, $24
+ call .Load3GFX
+ hlcoord 9, 4
+ ld [hl], $27
+ hlcoord 1, 2
+ ld a, $2e
+ call .Load15Column
+ hlcoord 18, 5
+ ld a, $2a
+ call .Load11Column
+ hlcoord 2, 5
+ ld a, $28
+ call .Load16Row
+ hlcoord 2, 16
+ ld a, $2c
+ call .Load16Row
+ hlcoord 2, 5
+ ld a, $35
+ call .Load4GFX
+ hlcoord 18, 5
+ ld [hl], $29
+ hlcoord 18, 16
+ ld [hl], $2b
+ hlcoord 1, 16
+ ld [hl], $2d
+ hlcoord 2, 6
+ ld a, $39
+ call .Load16Row
+ hlcoord 2, 15
+ ld a, $3b
+ call .Load16Row
+ hlcoord 2, 6
+ ld a, $3c
+ call .Load9Column
+ hlcoord 17, 6
+ ld a, $3a
+ call .Load9Column
+ hlcoord 2, 6
+ ld [hl], $2f
+ hlcoord 17, 6
+ ld [hl], $30
+ hlcoord 2, 15
+ ld [hl], $32
+ hlcoord 17, 15
+ ld [hl], $31
+ call EnableLCD
+ call WaitBGMap
+ ld b, SCGB_MYSTERY_GIFT
+ call GetSGBLayout
+ jp SetPalettes
+
+.Load3GFX:
+ ld b, 3
+ jr .gfx_loop
+
+.Load4GFX:
+ ld b, 4
+ jr .gfx_loop
+
+.Load15GFX:
+ ld b, 15
+
+.gfx_loop
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .gfx_loop
+ ret
+
+.Load9Column:
+ ld b, 9
+ jr .col_loop
+
+.Load11Column:
+ ld b, 11
+ jr .col_loop
+
+.Load15Column:
+ ld b, 15
+
+.col_loop
+ ld [hl], a
+ ld de, SCREEN_WIDTH
+ add hl, de
+ dec b
+ jr nz, .col_loop
+ ret
+
+.Load16Row:
+ ld b, 16
+.row_loop
+ ld [hli], a
+ dec b
+ jr nz, .row_loop
+ ret
+
+MysteryGiftGFX:
+INCBIN "gfx/mystery_gift/mystery_gift.2bpp"
diff --git a/engine/link/mystery_gift_gfx.asm b/engine/link/mystery_gift_gfx.asm
new file mode 100644
index 00000000..68701add
--- /dev/null
+++ b/engine/link/mystery_gift_gfx.asm
@@ -0,0 +1,31 @@
+LoadMysteryGiftBackgroundGFX:
+ ld hl, MysteryGiftBackgroundGFX
+ ld de, vTiles2 tile $20
+ ld a, BANK(MysteryGiftBackgroundGFX)
+ ld bc, wBGMapBufferEnd - wBGMapBuffer
+ call FarCopyBytesDouble
+ ld hl, vTiles2 tile $20
+ ld bc, wBGMapBufferEnd - wBGMapBuffer
+.loop:
+ ld [hl], $ff
+ inc hl
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ ret
+
+LoadMysteryGiftGFX2:
+ ld hl, MysteryGiftGFX2
+ ld de, vTiles2 tile $2f
+ ld a, BANK(MysteryGiftGFX2)
+ ld bc, 14 tiles
+ jp FarCopyBytes
+
+MysteryGiftBackgroundGFX:
+INCBIN "gfx/mystery_gift/question_mark.1bpp"
+INCBIN "gfx/mystery_gift/border.1bpp"
+
+MysteryGiftGFX2:
+INCBIN "gfx/mystery_gift/mystery_gift_2.2bpp"
diff --git a/engine/menus/debug.asm b/engine/menus/debug.asm
new file mode 100644
index 00000000..b1adf7d1
--- /dev/null
+++ b/engine/menus/debug.asm
@@ -0,0 +1,1464 @@
+; Left-over debug code from pokegold-debug
+
+ const_def $6a
+ const DEBUGTEST_TICKS_1 ; $6a
+ const DEBUGTEST_TICKS_2 ; $6b
+ const DEBUGTEST_WHITE ; $6c
+ const DEBUGTEST_LIGHT ; $6d
+ const DEBUGTEST_DARK ; $6e
+ const DEBUGTEST_BLACK ; $6f
+ const DEBUGTEST_0 ; $70
+ const DEBUGTEST_1 ; $71
+ const DEBUGTEST_2 ; $72
+ const DEBUGTEST_3 ; $73
+ const DEBUGTEST_4 ; $74
+ const DEBUGTEST_5 ; $75
+ const DEBUGTEST_6 ; $76
+ const DEBUGTEST_7 ; $77
+ const DEBUGTEST_8 ; $78
+ const DEBUGTEST_9 ; $79
+ const DEBUGTEST_A ; $7a
+ const DEBUGTEST_B ; $7b
+ const DEBUGTEST_C ; $7c
+ const DEBUGTEST_D ; $7d
+ const DEBUGTEST_E ; $7e
+ const DEBUGTEST_F ; $7f
+
+DebugColorPicker:
+; A debug menu to test monster and trainer palettes at runtime.
+
+ ldh a, [hCGB]
+ and a
+ jr nz, .set
+ ldh a, [hSGB]
+ and a
+ ret z
+
+.set
+ ldh a, [hInMenu]
+ push af
+ ld a, 1
+ ldh [hInMenu], a
+ call DisableLCD
+ call DebugColor_InitVRAM
+ call DebugColor_LoadGFX
+ call DebugColor_InitPalettes
+ call DebugColor_InitMonColor
+ call EnableLCD
+ ld de, MUSIC_NONE
+ call PlayMusic
+ xor a
+ ld [wJumptableIndex], a
+ ld [wce66], a
+ ld [wceee], a
+.loop
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .exit
+ call DebugColorMain
+ call DebugColor_PlaceCursor
+ call DelayFrame
+ jr .loop
+
+.exit
+ pop af
+ ldh [hInMenu], a
+ ret
+
+DebugColor_InitMonColor:
+ ld a, [wceed]
+ and a
+ jr nz, DebugColor_InitTrainerColor
+ ld hl, PokemonPalettes
+
+DebugColor_InitMonColor2:
+ ld de, wOverworldMapBlocks
+ ld c, NUM_POKEMON + 1
+.loop
+ push bc
+ push hl
+ call DebugColor_InitColor
+ pop hl
+ ld bc, 8
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+
+DebugColor_InitTrainerColor:
+ ld hl, TrainerPalettes
+ ld de, wOverworldMapBlocks
+ ld c, NUM_TRAINER_CLASSES
+.loop
+ push bc
+ push hl
+ call DebugColor_InitColor
+ pop hl
+ ld bc, 4
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+
+DebugColor_InitColor:
+ ld a, BANK(PokemonPalettes) ; aka BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ inc hl
+
+ ld a, BANK(PokemonPalettes) ; aka BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ inc hl
+
+ ld a, BANK(PokemonPalettes) ; aka BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ inc hl
+
+ ld a, BANK(PokemonPalettes) ; aka BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ ret
+
+DebugColor_InitVRAM:
+ ld a, 1
+ ldh [rVBK], a
+ ld hl, vTiles0
+ ld bc, sScratch - vTiles0
+ xor a
+ call ByteFill
+
+ ld a, 0
+ ldh [rVBK], a
+ ld hl, vTiles0
+ ld bc, sScratch - vTiles0
+ xor a
+ call ByteFill
+
+ hlcoord 0, 0, wAttrmap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+
+ call ClearSprites
+ ret
+
+DebugColor_LoadGFX:
+ ld hl, DebugColor_GFX
+ ld de, vTiles2 tile DEBUGTEST_TICKS_1
+ ld bc, 22 tiles
+ call CopyBytes
+ ld hl, DebugColor_UpArrowGFX
+ ld de, vTiles0
+ ld bc, 1 tiles
+ call CopyBytes
+ call LoadStandardFont
+ ld hl, vTiles1
+ lb bc, 8, 0
+.loop
+ ld a, [hl]
+ xor $ff
+ ld [hli], a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
+ ret
+
+DebugColor_InitPalettes:
+ ldh a, [hCGB]
+ and a
+ ret z
+ ld hl, Palette_DebugBG
+ ld de, wBGPals2
+ ld bc, 16 palettes
+ call CopyBytes
+ ld a, 1 << rBGPI_AUTO_INCREMENT
+ ldh [rBGPI], a
+ ld hl, Palette_DebugBG
+ ld c, 8 palettes
+ xor a
+.loop1
+ ldh [rBGPD], a
+ dec c
+ jr nz, .loop1
+
+ ld a, 1 << rOBPI_AUTO_INCREMENT
+ ldh [rOBPI], a
+ ld hl, Palette_DebugOB
+ ld c, 8 palettes
+.loop2
+ ld a, [hli]
+ ldh [rOBPD], a
+ dec c
+ jr nz, .loop2
+
+ ld a, $94
+ ld [wc508], a
+ ld a, $52
+ ld [wc508 + 1], a
+ ld a, $4a
+ ld [wc508 + 2], a
+ ld a, $29
+ ld [wc508 + 3], a
+ ret
+
+Palette_DebugBG:
+INCLUDE "gfx/debug/bg.pal"
+
+Palette_DebugOB:
+INCLUDE "gfx/debug/ob.pal"
+
+DebugColorMain:
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ cp 4
+ jr nc, .asm_fd49e
+ ld hl, hJoyLast
+ ld a, [hl]
+ and SELECT
+ jr nz, .NextMon
+ ld a, [hl]
+ and START
+ jr nz, .PreviousMon
+
+.asm_fd49e
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_fd4e2
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.NextMon:
+ call DebugColor_BackupSpriteColors
+ call DebugColor_SetMaxNum
+ ld e, a
+ ld a, [wce66]
+ inc a
+ cp e
+ jr c, .SwitchMon
+ xor a
+ jr .SwitchMon
+
+.PreviousMon:
+ call DebugColor_BackupSpriteColors
+ ld a, [wce66]
+ dec a
+ cp -1
+ jr nz, .SwitchMon
+ call DebugColor_SetMaxNum
+ dec a
+
+.SwitchMon:
+ ld [wce66], a
+ ld a, 0 ; ScreenInitNo
+ ld [wJumptableIndex], a
+ ret
+
+DebugColor_SetMaxNum:
+ ld a, [wceed]
+ and a
+ jr nz, .trainer
+; .mon
+ ld a, NUM_POKEMON
+ ret
+.trainer
+ ld a, NUM_TRAINER_CLASSES - 1
+ ret
+
+Jumptable_fd4e2:
+ dw DebugColor_InitScreen
+ dw Functionfd62b
+ dw Functionfd646
+ dw Functionfd6cb
+ dw Functionfd797
+ dw Functionfd7b8
+
+DebugColor_InitScreen:
+ xor a
+ ldh [hBGMapMode], a
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, DEBUGTEST_BLACK
+ call ByteFill
+ hlcoord 1, 3
+ lb bc, 7, 18
+ ld a, DEBUGTEST_WHITE
+ call DebugColor_FillBoxWithByte
+ hlcoord 11, 0
+ lb bc, 2, 3
+ ld a, DEBUGTEST_LIGHT
+ call DebugColor_FillBoxWithByte
+ hlcoord 16, 0
+ lb bc, 2, 3
+ ld a, DEBUGTEST_DARK
+ call DebugColor_FillBoxWithByte
+ call DebugColor_LoadRGBMeter
+ call DebugColor_SetRGBMeter
+ ld a, [wce66]
+ inc a
+ ld [wCurPartySpecies], a
+ ld [wDeciramBuffer], a
+ hlcoord 0, 1
+ ld de, wDeciramBuffer
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ ld a, [wceed]
+ and a
+ jr nz, .Trainer
+
+.MonSpriteViewer:
+ ld a, 1
+ ld [wUnownLetter], a
+ call GetPokemonName
+ hlcoord 4, 1
+ call PlaceString
+ xor a
+ ld [wBoxAlignment], a
+ hlcoord 2, 3
+ call _PrepMonFrontpic
+ ld de, vTiles2 tile $31
+ predef GetMonBackpic
+ ld a, $31
+ ldh [hGraphicStartTile], a
+ hlcoord 12, 4
+ lb bc, 6, 6
+ predef PlaceGraphic
+ ld a, [wceee]
+ and a
+ jr z, .load_normal_text
+
+.load_shiny_text
+ ld de, DebugColor_ShinyText
+ jr .place_switch_text
+
+.load_normal_text
+ ld de, DebugColor_NormalText
+
+.place_switch_text
+ hlcoord 7, 17
+ call PlaceString
+ hlcoord 0, 17
+ ld de, DebugColor_SwitchText
+ call PlaceString
+ jr .asm_fd5bc
+
+.Trainer:
+ ld a, [wDeciramBuffer]
+ ld [wTrainerClass], a
+ callfar GetTrainerAttributes
+ ld de, wStringBuffer1
+ hlcoord 4, 1
+ call PlaceString
+ ld de, vTiles2
+ callfar GetTrainerPic
+ xor a
+ ld [wTempEnemyMonSpecies], a
+ ldh [hGraphicStartTile], a
+ hlcoord 2, 3
+ lb bc, 7, 7
+ predef PlaceGraphic
+
+.asm_fd5bc
+ ld a, 1
+ ld [wJumptableIndex], a
+ ret
+
+DebugColor_ShinyText:
+ db "レア", DEBUGTEST_BLACK, DEBUGTEST_BLACK, "@" ; Rare (shiny)
+
+DebugColor_NormalText:
+ db "ノーマル@" ; Normal
+
+DebugColor_SwitchText:
+ db DEBUGTEST_A, "きりかえ▶@" ; Switch
+
+DebugColor_LoadRGBMeter:
+ decoord 0, 11, wAttrmap
+ hlcoord 2, 11
+ ld a, 1
+ call Functionfd5f1
+ decoord 0, 13, wAttrmap
+ hlcoord 2, 13
+ ld a, 2
+ call Functionfd5f1
+ decoord 0, 15, wAttrmap
+ hlcoord 2, 15
+ ld a, 3
+
+Functionfd5f1:
+ push af
+ ld a, DEBUGTEST_TICKS_1
+ ld [hli], a
+ ld bc, 15
+ ld a, DEBUGTEST_TICKS_2
+ call ByteFill
+ ld l, e
+ ld h, d
+ pop af
+ ld bc, 20 * 2
+ call ByteFill
+ ret
+
+DebugColor_SetRGBMeter:
+ ld a, [wce66]
+ inc a
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, wOverworldMapBlocks
+ add hl, de
+ ld de, wc508
+ ld bc, 4
+ call CopyBytes
+ xor a
+ ld [wce64], a
+ ld [wce65], a
+ ld de, wc508
+ call DebugColor_CalculateRGB
+ ret
+
+Functionfd62b:
+ ldh a, [hCGB]
+ and a
+ jr z, .asm_fd63d
+ ld a, 2
+ ldh [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+
+.asm_fd63d
+ call WaitBGMap
+ ld a, 2
+ ld [wJumptableIndex], a
+ ret
+
+Functionfd646:
+ ldh a, [hCGB]
+ and a
+ jr z, .sgb
+
+.cgb
+ ld hl, wBGPals2
+ ld de, wc508
+ ld c, 1
+ call Functionfd8ec
+ hlcoord 10, 2
+ ld de, wc508
+ call Functionfd6b0
+ hlcoord 15, 2
+ ld de, wc508 + 2
+ call Functionfd6b0
+ ld a, 1
+ ldh [hCGBPalUpdate], a
+ ld a, 3
+ ld [wJumptableIndex], a
+ ret
+
+.sgb
+ ld hl, wSGBPals
+ ld a, 1
+ ld [hli], a
+ ld a, LOW(PALRGB_WHITE)
+ ld [hli], a
+ ld a, HIGH(PALRGB_WHITE)
+ ld [hli], a
+ ld a, [wc508]
+ ld [hli], a
+ ld a, [wc508 + 1]
+ ld [hli], a
+ ld a, [wc508 + 2]
+ ld [hli], a
+ ld a, [wc508 + 3]
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, wSGBPals
+ call Functionfd915
+ hlcoord 10, 2
+ ld de, wc508
+ call Functionfd6b0
+ hlcoord 15, 2
+ ld de, wc508 + 2
+ call Functionfd6b0
+ ld a, 3
+ ld [wJumptableIndex], a
+ ret
+
+Functionfd6b0:
+ inc hl
+ inc hl
+ inc hl
+ ld a, [de]
+ call Functionfd6c5
+ ld a, [de]
+ swap a
+ call Functionfd6c5
+ inc de
+ ld a, [de]
+ call Functionfd6c5
+ ld a, [de]
+ swap a
+
+Functionfd6c5:
+ and $f
+ add DEBUGTEST_0
+ ld [hld], a
+ ret
+
+Functionfd6cb:
+ ldh a, [hJoyLast]
+ and B_BUTTON
+ jr nz, .asm_fd6e8
+ ldh a, [hJoyLast]
+ and A_BUTTON
+ jr nz, .asm_fd6ee
+ ld a, [wce64]
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_fd70b
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.asm_fd6e8
+ ld a, 4
+ ld [wJumptableIndex], a
+ ret
+
+.asm_fd6ee
+ ld a, [wceed]
+ and a
+ ret nz
+ ld a, [wceee]
+ xor 4
+ ld [wceee], a
+ ld c, a
+ ld b, 0
+ ld hl, PokemonPalettes
+ add hl, bc
+ call DebugColor_InitMonColor2
+ ld a, 0
+ ld [wJumptableIndex], a
+ ret
+
+Jumptable_fd70b:
+ dw DebugColor_SelectColorBox
+ dw DebugColor_ChangeRedValue
+ dw DebugColor_ChangeGreenValue
+ dw DebugColor_ChangeBlueValue
+
+DebugColor_SelectColorBox:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, DebugColor_NextRGBColor
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .lightcolor
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .darkcolor
+ ret
+
+.lightcolor:
+ xor a
+ ld [wce65], a
+ ld de, wc508
+ call DebugColor_CalculateRGB
+ ret
+
+.darkcolor:
+ ld a, 1
+ ld [wce65], a
+ ld de, wc508 + 2
+ call DebugColor_CalculateRGB
+ ret
+
+DebugColor_ChangeRedValue:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, DebugColor_NextRGBColor
+ ld a, [hl]
+ and D_UP
+ jr nz, DebugColor_PreviousRGBColor
+ ld hl, wc508 + 10
+ jr DebugColor_UpdateSpriteColor
+
+DebugColor_ChangeGreenValue:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, DebugColor_NextRGBColor
+ ld a, [hl]
+ and D_UP
+ jr nz, DebugColor_PreviousRGBColor
+ ld hl, wc508 + 11
+ jr DebugColor_UpdateSpriteColor
+
+DebugColor_ChangeBlueValue:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, DebugColor_PreviousRGBColor
+ ld hl, wc508 + 12
+
+DebugColor_UpdateSpriteColor:
+ ldh a, [hJoyLast]
+ and D_RIGHT
+ jr nz, .increment_color_value
+ ldh a, [hJoyLast]
+ and D_LEFT
+ jr nz, .decrement_color_value
+ ret
+
+.increment_color_value
+ ld a, [hl]
+ cp $1f
+ ret nc
+ inc [hl]
+ jr .asm_fd784
+
+.decrement_color_value
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+
+.asm_fd784
+ call DebugColor_CalculatePalette
+ ld a, 2
+ ld [wJumptableIndex], a
+ ret
+
+DebugColor_PreviousRGBColor:
+ ld hl, wce64
+ dec [hl]
+ ret
+
+DebugColor_NextRGBColor:
+ ld hl, wce64
+ inc [hl]
+ ret
+
+Functionfd797:
+ hlcoord 0, 10
+ ld bc, 20 * 8
+ ld a, DEBUGTEST_BLACK
+ call ByteFill
+ hlcoord 2, 12
+ ld de, String_fd9d6
+ call PlaceString
+ xor a
+ ld [wceef], a
+ call Functionfd7fd
+ ld a, 5
+ ld [wJumptableIndex], a
+ ret
+
+Functionfd7b8:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .cancel
+; ld a,(hl)
+; and A_BUTTON
+; jr nz, .exit
+ call DebugColor_TMHMJoypad
+ ret
+
+.cancel
+ ld a, 0
+ ld [wJumptableIndex], a
+ ret
+
+.exit
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+DebugColor_TMHMJoypad:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_fd7de
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_fd7eb
+ ret
+
+.asm_fd7de
+ ld a, [wceef]
+ cp 56
+ jr z, .asm_fd7e8
+ inc a
+ jr .asm_fd7f6
+
+.asm_fd7e8
+ xor a
+ jr .asm_fd7f6
+
+.asm_fd7eb
+ ld a, [wceef]
+ and a
+ jr z, .asm_fd7f4
+ dec a
+ jr .asm_fd7f6
+
+.asm_fd7f4
+ ld a, 56
+
+.asm_fd7f6
+ ld [wceef], a
+ call Functionfd7fd
+ ret
+
+Functionfd7fd:
+ hlcoord 10, 11
+ call Functionfd867
+ hlcoord 10, 12
+ call Functionfd867
+ hlcoord 10, 13
+ call Functionfd867
+ hlcoord 10, 14
+ call Functionfd867
+ ld a, [wceef]
+ inc a
+ ld [wTempTMHM], a
+ predef GetTMHMMove
+ ld a, [wTempTMHM]
+ ld [wPutativeTMHMMove], a
+ call GetMoveName
+ hlcoord 10, 12
+ call PlaceString
+ ld a, [wceef]
+ call Functionfd85e
+ ld [wCurItem], a
+ predef CanLearnTMHMMove
+ ld a, c
+ and a
+ ld de, DebugColor_AbleText
+ jr nz, .place_string
+ ld de, DebugColor_NotAbleText
+
+.place_string
+ hlcoord 10, 14
+ call PlaceString
+ ret
+
+DebugColor_AbleText:
+ db "おぼえられる@" ; Learnable
+
+DebugColor_NotAbleText:
+ db "おぼえられない@" ; Not learnable
+
+Functionfd85e:
+ cp NUM_TMS
+ jr c, .tm
+.hm
+ inc a
+ inc a
+.tm
+ add TM01
+ ret
+
+Functionfd867:
+ ld bc, 10
+ ld a, DEBUGTEST_BLACK
+ call ByteFill
+ ret
+
+DebugColor_CalculatePalette:
+ ld a, [wc508 + 10]
+ and %00011111
+ ld e, a
+ ld a, [wc508 + 11]
+ and %00000111
+ sla a
+ swap a
+ or e
+ ld e, a
+ ld a, [wc508 + 11]
+ and %00011000
+ sla a
+ swap a
+ ld d, a
+ ld a, [wc508 + 12]
+ and %00011111
+ sla a
+ sla a
+ or d
+ ld d, a
+ ld a, [wce65]
+ and a
+ jr z, .LightPalette
+
+.DarkPalette
+ ld a, e
+ ld [wc508 + 2], a
+ ld a, d
+ ld [wc508 + 3], a
+ ret
+
+.LightPalette
+ ld a, e
+ ld [wc508], a
+ ld a, d
+ ld [wc508 + 1], a
+ ret
+
+DebugColor_CalculateRGB:
+ ld a, [de]
+ and $1f
+ ld [wc508 + 10], a
+ ld a, [de]
+ and $e0
+ swap a
+ srl a
+ ld b, a
+ inc de
+ ld a, [de]
+ and 3
+ swap a
+ srl a
+ or b
+ ld [wc508 + 11], a
+ ld a, [de]
+ and $7c
+ srl a
+ srl a
+ ld [wc508 + 12], a
+ ret
+
+DebugColor_BackupSpriteColors:
+ ld a, [wce66]
+ inc a
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, wOverworldMapBlocks ; MonPalette
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, wc508
+ ld bc, 4
+ call CopyBytes
+ ret
+
+Functionfd8ec:
+; Set palette buffer
+.loop
+ ld a, LOW(PALRGB_WHITE)
+ ld [hli], a
+ ld a, HIGH(PALRGB_WHITE)
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+
+DebugColor_FillBoxWithByte:
+; For some reason, we have another copy of FillBoxWithByte here
+.row
+ push bc
+ push hl
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+
+Functionfd915:
+; SGB Related
+
+ ld a, [wd8ba]
+ push af
+ set 7, a
+ ld [wd8ba], a
+ call Functionfd926
+ pop af
+ ld [wd8ba], a
+ ret
+
+Functionfd926:
+ ld a, [hl]
+ and 7
+ ret z
+ ld b, a
+.asm_fd92b
+ push bc
+ xor a
+ ldh [rJOYP], a
+ ld a, $30
+ ldh [rJOYP], a
+ ld b, $10
+.asm_fd935
+ ld e, 8
+ ld a, [hli]
+ ld d, a
+.asm_fd939
+ bit 0, d
+ ld a, $10
+ jr nz, .asm_fd941
+ ld a, $20
+.asm_fd941
+ ldh [rJOYP], a
+ ld a, $30
+ ldh [rJOYP], a
+ rr d
+ dec e
+ jr nz, .asm_fd939
+ dec b
+ jr nz, .asm_fd935
+ ld a, $20
+ ldh [rJOYP], a
+ ld a, $30
+ ldh [rJOYP], a
+ ld de, 7000
+.wait
+ nop
+ nop
+ nop
+ dec de
+ ld a, d
+ or e
+ jr nz, .wait
+ pop bc
+ dec b
+ jr nz, .asm_fd92b
+ ret
+
+DebugColor_PlaceCursor:
+ ld a, DEBUGTEST_BLACK
+ hlcoord 10, 0
+ ld [hl], a
+ hlcoord 15, 0
+ ld [hl], a
+ hlcoord 1, 11
+ ld [hl], a
+ hlcoord 1, 13
+ ld [hl], a
+ hlcoord 1, 15
+ ld [hl], a
+ ld a, [wJumptableIndex]
+ cp 3
+ jr nz, .clearsprites
+ ld a, [wce64]
+ and a
+ jr z, .asm_fd996
+ dec a
+ hlcoord 1, 11
+ ld bc, 2 * SCREEN_WIDTH
+ call AddNTimes
+ ld [hl], "▶"
+
+.asm_fd996
+ ld a, [wce65]
+ and a
+ jr z, .lightcolor
+
+.darkcolor
+ hlcoord 15, 0
+ jr .place
+
+.lightcolor
+ hlcoord 10, 0
+
+.place
+ ld [hl], "▶"
+ ld b, $70
+ ld c, 5
+ ld hl, wVirtualOAM
+ ld de, wc508 + 10
+ call .PlaceSprites
+ ld de, wc508 + 11
+ call .PlaceSprites
+ ld de, wc508 + 12
+ call .PlaceSprites
+ ret
+
+.PlaceSprites:
+ ld a, b
+ ld [hli], a ; y
+ ld a, [de]
+ add a
+ add a
+ add 3 * TILE_WIDTH
+ ld [hli], a ; x
+ xor a
+ ld [hli], a ; tile id
+ ld a, c
+ ld [hli], a ; attributes
+ ld a, 2 * TILE_WIDTH
+ add b
+ ld b, a
+ inc c
+ ret
+
+.clearsprites
+ call ClearSprites
+ ret
+
+String_fd9d6:
+ db "おわりますか?" ; Are you finished?
+ next "はい<DOT><DOT><DOT>", DEBUGTEST_A ; YES...(A)
+ next "いいえ<DOT><DOT>", DEBUGTEST_B ; NO..(B)
+ db "@"
+
+DebugColor_UpArrowGFX:
+INCBIN "gfx/debug/up_arrow.2bpp"
+
+DebugColor_GFX:
+INCBIN "gfx/debug/color_test.2bpp"
+
+TilesetColorTest:
+ ret
+; dummied out
+ xor a
+ ld [wJumptableIndex], a
+ ld [wce64], a
+ ld [wce65], a
+ ld [wce66], a
+ ldh [hMapAnims], a
+ call ClearSprites
+ call OverworldTextModeSwitch
+ call WaitBGMap2
+ xor a
+ ldh [hBGMapMode], a
+ ld de, DebugColor_GFX
+ ld hl, vTiles2 tile DEBUGTEST_TICKS_1
+ lb bc, BANK(DebugColor_GFX), 22
+ call Request2bpp
+ ld de, DebugColor_UpArrowGFX
+ ld hl, vTiles1
+ lb bc, BANK(DebugColor_UpArrowGFX), 1
+ call Request2bpp
+ ld a, HIGH(vBGMap1)
+ ldh [hBGMapAddress + 1], a
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, DEBUGTEST_BLACK
+ call ByteFill
+ hlcoord 0, 0, wAttrmap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, 7
+ call ByteFill
+ ld de, $15
+ ld a, DEBUGTEST_WHITE
+ call Functionfdbdb
+ ld de, $1a
+ ld a, DEBUGTEST_LIGHT
+ call Functionfdbdb
+ ld de, $1f
+ ld a, DEBUGTEST_DARK
+ call Functionfdbdb
+ ld de, $24
+ ld a, DEBUGTEST_BLACK
+ call Functionfdbdb
+ call Functionfdbfd
+ call Functionfdc18
+ call WaitBGMap2
+ ld [wJumptableIndex], a
+ ld a, $40
+ ldh [hWY], a
+ ret
+
+Functionfdbdb:
+ hlcoord 0, 0
+ call Functionfdbe7
+
+Functionfdbe1:
+ ld a, [wce64]
+ hlcoord 0, 0, wAttrmap
+
+Functionfdbe7:
+ add hl, de
+rept 4
+ ld [hli], a
+endr
+ ld bc, $10
+ add hl, bc
+rept 4
+ ld [hli], a
+endr
+ ld bc, $10
+ add hl, bc
+rept 4
+ ld [hli], a
+endr
+ ret
+
+Functionfdbfd:
+ hlcoord 2, 4
+ call .Place
+ hlcoord 2, 6
+ call .Place
+ hlcoord 2, 8
+
+.Place:
+ ld a, DEBUGTEST_TICKS_1
+ ld [hli], a
+ ld bc, $10 - 1
+ ld a, DEBUGTEST_TICKS_2
+ call ByteFill
+ ret
+
+Functionfdc18:
+ ld a, [wce64]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, wBGPals1
+ add hl, de
+ ld de, wc508
+ ld bc, 8
+ call CopyBytes
+ ld de, wc508
+ call DebugColor_CalculateRGB
+ ret
+
+DebugColorMain2:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and SELECT
+ jr nz, .loop7
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .asm_fdc8e
+ call Functionfdcdb
+ ret
+
+.loop7
+ ld hl, wce64
+ ld a, [hl]
+ inc a
+ and 7
+ cp 7
+ jr nz, .asm_fdc52
+ xor a
+
+.asm_fdc52
+ ld [hl], a
+ ld de, $15
+ call Functionfdbe1
+ ld de, $1a
+ call Functionfdbe1
+ ld de, $1f
+ call Functionfdbe1
+ ld de, $24
+ call Functionfdbe1
+ ld hl, wBGPals2
+ ld a, [wce64]
+ ld bc, 1 palettes
+ call AddNTimes
+ ld de, wc508
+ ld bc, 1 palettes
+ call CopyBytes
+ ld a, 2
+ ldh [hBGMapMode], a
+ ld c, 3
+ call DelayFrames
+ ld a, 1
+ ldh [hBGMapMode], a
+ ret
+
+.asm_fdc8e
+ call ClearSprites
+ ldh a, [hWY]
+ xor $d0
+ ldh [hWY], a
+ ret
+
+Functionfdc98:
+ ld hl, wBGPals2
+ ld a, [wce64]
+ ld bc, 1 palettes
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld hl, wc508
+ ld bc, 1 palettes
+ call CopyBytes
+ hlcoord 1, 0
+ ld de, wc508
+ call Functionfd6b0
+ hlcoord 6, 0
+ ld de, wc508 + 2
+ call Functionfd6b0
+ hlcoord 11, 0
+ ld de, wc508 + 4
+ call Functionfd6b0
+ hlcoord 16, 0
+ ld de, wc508 + 6
+ call Functionfd6b0
+ ld a, 1
+ ldh [hCGBPalUpdate], a
+ call DelayFrame
+ ret
+
+Functionfdcdb:
+ ld a, [wce65]
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, .PointerTable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.PointerTable:
+ dw DebugColor_SelectColorBox2
+ dw Functionfdd24 ; Red
+ dw Functionfdd36 ; Green
+ dw Functionfdd48 ; Blue
+
+DebugColor_SelectColorBox2:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Functionfdd77
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .asm_fdd07
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .asm_fdd0d
+ ret
+
+.asm_fdd07
+ ld a, [wce66]
+ dec a
+ jr .asm_fdd11
+
+.asm_fdd0d
+ ld a, [wce66]
+ inc a
+
+.asm_fdd11
+ and 3
+ ld [wce66], a
+ ld e, a
+ ld d, 0
+ ld hl, wc508
+ add hl, de
+ add hl, de
+ ld e, l
+ ld d, h
+ call DebugColor_CalculateRGB
+ ret
+
+Functionfdd24:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Functionfdd77
+ ld a, [hl]
+ and D_UP
+ jr nz, Functionfdd72
+ ld hl, wc508 + 10
+ jr Functionfdd53
+
+Functionfdd36:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Functionfdd77
+ ld a, [hl]
+ and D_UP
+ jr nz, Functionfdd72
+ ld hl, wc508 + 11
+ jr Functionfdd53
+
+Functionfdd48:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, Functionfdd72
+ ld hl, wc508 + 12
+
+Functionfdd53:
+ ldh a, [hJoyLast]
+ and D_RIGHT
+ jr nz, .asm_fdd60
+ ldh a, [hJoyLast]
+ and D_LEFT
+ jr nz, .asm_fdd67
+ ret
+
+.asm_fdd60
+ ld a, [hl]
+ cp $1f
+ ret nc
+ inc [hl]
+ jr .asm_fdd6b
+
+.asm_fdd67
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+
+.asm_fdd6b
+ call Functionfdd7c
+ call Functionfdc98
+ ret
+
+Functionfdd72:
+ ld hl, wce65
+ dec [hl]
+ ret
+
+Functionfdd77:
+ ld hl, wce65
+ inc [hl]
+ ret
+
+Functionfdd7c:
+ ld a, [wc508 + 10]
+ and $1f
+ ld e, a
+ ld a, [wc508 + 11]
+ and 7
+ sla a
+ swap a
+ or e
+ ld e, a
+ ld a, [wc508 + 11]
+ and $18
+ sla a
+ swap a
+ ld d, a
+ ld a, [wc508 + 12]
+ and $1f
+ sla a
+ sla a
+ or d
+ ld d, a
+ ld a, [wce66]
+ ld c, a
+ ld b, 0
+ ld hl, wc508
+ add hl, bc
+ add hl, bc
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+ ret
+
+DebugColor_PlaceCursor2:
+ ld a, DEBUGTEST_BLACK
+ hlcoord 0, 4
+ ld [hl], a
+ hlcoord 0, 6
+ ld [hl], a
+ hlcoord 0, 8
+ ld [hl], a
+ hlcoord 0, 2
+ ld [hl], a
+ hlcoord 5, 2
+ ld [hl], a
+ hlcoord 10, 2
+ ld [hl], a
+ hlcoord 15, 2
+ ld [hl], a
+ ld a, [wce65]
+ and a
+ jr z, .asm_fdde1
+ dec a
+ hlcoord 0, 4
+ ld bc, 2 * SCREEN_WIDTH
+ call AddNTimes
+ ld [hl], "▶"
+
+.asm_fdde1
+ ld a, [wce66]
+ hlcoord 0, 2
+ ld bc, 5
+ call AddNTimes
+ ld [hl], "▶"
+ ld b, $78
+ ld hl, wVirtualOAM
+ ld de, wc508 + 10
+ call .PlaceSprites
+ ld de, wc508 + 11
+ call .PlaceSprites
+ ld de, wc508 + 12
+ call .PlaceSprites
+ ret
+
+.PlaceSprites:
+ ld a, b
+ ld [hli], a ; y
+ ld a, [de]
+ add a
+ add a
+ add 3 * TILE_WIDTH
+ ld [hli], a ; x
+ ld a, 16 * TILE_WIDTH
+ ld [hli], a ; tile id
+ ld a, 5
+ ld [hli], a ; attributes
+ ld a, 2 * TILE_WIDTH
+ add b
+ ld b, a
+ inc c
+ ret
+
+; unused
+ call ClearSprites
+ ret
+
+; unused
+ ret
diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm
index 4e9113a8..5907324d 100644
--- a/engine/menus/main_menu.asm
+++ b/engine/menus/main_menu.asm
@@ -176,7 +176,7 @@ MainMenu_PrintCurrentTimeAndDay:
call GetWeekday
ld b, a
decoord 1, 14
- call .PlaceCurrentDay
+ call PrintDayOfWeek
decoord 4, 16
ldh a, [hHours]
ld c, a
@@ -205,7 +205,7 @@ MainMenu_PrintCurrentTimeAndDay:
text_far _MainMenuTimeUnknownText
text_end
-.PlaceCurrentDay:
+PrintDayOfWeek:
push de
ld hl, .Days
ld a, b
diff --git a/engine/pokedex/pokedex_3.asm b/engine/pokedex/pokedex_3.asm
new file mode 100644
index 00000000..7cde4dc4
--- /dev/null
+++ b/engine/pokedex/pokedex_3.asm
@@ -0,0 +1,165 @@
+StubbedGetFrontpic::
+ ret
+
+LoadSGBPokedexGFX:
+ ld hl, SGBPokedexGFX_LZ
+ ld de, vTiles2 tile $31
+ call Decompress
+ ret
+
+LoadSGBPokedexGFX2:
+ ld hl, SGBPokedexGFX_LZ
+ ld de, vTiles2 tile $31
+ lb bc, BANK(SGBPokedexGFX_LZ), 58
+ call DecompressRequest2bpp
+ ret
+
+SGBPokedexGFX_LZ:
+INCBIN "gfx/pokedex/pokedex_sgb.2bpp.lz"
+
+LoadQuestionMarkPic:
+ ld hl, .QuestionMarkLZ
+ ld de, sScratch
+ call Decompress
+ ret
+
+.QuestionMarkLZ:
+INCBIN "gfx/pokedex/question_mark.2bpp.lz"
+
+DrawPokedexListWindow:
+ ld a, $32
+ hlcoord 0, 17
+ ld bc, 12
+ call ByteFill
+ hlcoord 0, 1
+ lb bc, 15, 11
+ call ClearBox
+ ld a, $34
+ hlcoord 0, 0
+ ld bc, 11
+ call ByteFill
+ ld a, $39
+ hlcoord 0, 16
+ ld bc, 11
+ call ByteFill
+ hlcoord 5, 0
+ ld [hl], $3f
+ hlcoord 5, 16
+ ld [hl], $40
+ ld a, [wCurDexMode]
+ cp DEXMODE_OLD
+ jr z, .OldMode
+; scroll bar
+ hlcoord 11, 0
+ ld [hl], $50
+ ld a, $51
+ hlcoord 11, 1
+ ld b, SCREEN_HEIGHT - 3
+ call Bank70_FillColumn
+ ld [hl], $52
+ jr .Done
+
+.OldMode:
+; no scroll bar
+ hlcoord 11, 0
+ ld [hl], $66
+ ld a, $67
+ hlcoord 11, 1
+ ld b, SCREEN_HEIGHT - 3
+ call Bank70_FillColumn
+ ld [hl], $68
+.Done:
+ ret
+
+DrawPokedexSearchResultsWindow:
+ ld a, $34
+ hlcoord 0, 0
+ ld bc, 11
+ call ByteFill
+ ld a, $39
+ hlcoord 0, 10
+ ld bc, 11
+ call ByteFill
+ hlcoord 5, 0
+ ld [hl], $3f
+ hlcoord 5, 10
+ ld [hl], $40
+ hlcoord 11, 0
+ ld [hl], $66
+ ld a, $67
+ hlcoord 11, 1
+ ld b, SCREEN_HEIGHT / 2
+ call Bank70_FillColumn
+ ld [hl], $68
+ ld a, $34
+ hlcoord 0, 11
+ ld bc, 11
+ call ByteFill
+ ld a, $39
+ hlcoord 0, 17
+ ld bc, 11
+ call ByteFill
+ hlcoord 11, 11
+ ld [hl], $66
+ ld a, $67
+ hlcoord 11, 12
+ ld b, 5
+ call Bank70_FillColumn
+ ld [hl], $68
+ hlcoord 0, 12
+ lb bc, 5, 11
+ call ClearBox
+ ld de, .esults_D
+ hlcoord 0, 12
+ call PlaceString
+ ret
+
+.esults_D
+; (SEARCH R)
+ db "ESULTS"
+ next ""
+; (### FOUN)
+ next "D!@"
+
+DrawDexEntryScreenRightEdge:
+ ldh a, [hBGMapAddress]
+ ld l, a
+ ldh a, [hBGMapAddress + 1]
+ ld h, a
+ push hl
+ inc hl
+ ld a, l
+ ldh [hBGMapAddress], a
+ ld a, h
+ ldh [hBGMapAddress + 1], a
+ hlcoord 19, 0
+ ld [hl], $66
+ hlcoord 19, 1
+ ld a, $67
+ ld b, 15
+ call Bank70_FillColumn
+ ld [hl], $68
+ hlcoord 19, 17
+ ld [hl], $3c
+ xor a
+ ld b, SCREEN_HEIGHT
+ hlcoord 19, 0, wAttrmap
+ call Bank70_FillColumn
+ call WaitBGMap2
+ pop hl
+ ld a, l
+ ldh [hBGMapAddress], a
+ ld a, h
+ ldh [hBGMapAddress + 1], a
+ ret
+
+Bank70_FillColumn:
+ push de
+ ld de, SCREEN_WIDTH
+.loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .loop
+ pop de
+ ret
diff --git a/engine/pokegear/townmap_convertlinebreakcharacters.asm b/engine/pokegear/townmap_convertlinebreakcharacters.asm
new file mode 100644
index 00000000..a881b926
--- /dev/null
+++ b/engine/pokegear/townmap_convertlinebreakcharacters.asm
@@ -0,0 +1,21 @@
+TownMap_ConvertLineBreakCharacters:
+ ld hl, wStringBuffer1
+.loop
+ ld a, [hl]
+ cp "@"
+ jr z, .end
+ cp "%"
+ jr z, .line_feed
+ cp "¯"
+ jr z, .line_feed
+ inc hl
+ jr .loop
+
+.line_feed
+ ld [hl], "<LF>"
+
+.end
+ ld de, wStringBuffer1
+ hlcoord 9, 0
+ call PlaceString
+ ret
diff --git a/engine/printer/print_party.asm b/engine/printer/print_party.asm
new file mode 100644
index 00000000..7b98a337
--- /dev/null
+++ b/engine/printer/print_party.asm
@@ -0,0 +1,360 @@
+PRINTPARTY_HP EQU "◀" ; $71
+
+PrintPage1:
+ hlcoord 0, 0
+ decoord 0, 0, wPrinterTilemapBuffer
+ ld bc, 17 * SCREEN_WIDTH
+ call CopyBytes
+ hlcoord 17, 1, wPrinterTilemapBuffer
+ ld a, $62
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 17, 2, wPrinterTilemapBuffer
+ ld a, $64
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 1, 9, wPrinterTilemapBuffer
+ ld a, " "
+ ld [hli], a
+ ld [hl], a
+ hlcoord 1, 10, wPrinterTilemapBuffer
+ ld a, $61
+ ld [hli], a
+ ld [hl], a
+ hlcoord 2, 11, wPrinterTilemapBuffer
+ lb bc, 5, 18
+ call ClearBox
+ ld a, [wTempSpecies]
+ dec a
+ call CheckCaughtMon
+ push af
+ ld a, [wTempSpecies]
+ ld b, a
+ ld c, 1 ; get page 1
+ farcall GetDexEntryPagePointer
+ pop af
+ ld a, b
+ hlcoord 1, 11, wPrinterTilemapBuffer
+ call nz, FarString
+ hlcoord 19, 0, wPrinterTilemapBuffer
+ ld [hl], $35
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld b, $f
+.column_loop
+ ld [hl], $37
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ ld [hl], $3a
+ ret
+
+PrintPage2:
+ hlcoord 0, 0, wPrinterTilemapBuffer
+ ld bc, 8 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 0, wPrinterTilemapBuffer
+ ld a, $36
+ ld b, 6
+ call .FillColumn
+ hlcoord 19, 0, wPrinterTilemapBuffer
+ ld a, $37
+ ld b, 6
+ call .FillColumn
+ hlcoord 0, 6, wPrinterTilemapBuffer
+ ld [hl], $38
+ inc hl
+ ld a, $39
+ ld bc, SCREEN_HEIGHT
+ call ByteFill
+ ld [hl], $3a
+ hlcoord 0, 7, wPrinterTilemapBuffer
+ ld bc, SCREEN_WIDTH
+ ld a, $32
+ call ByteFill
+ ld a, [wTempSpecies]
+ dec a
+ call CheckCaughtMon
+ push af
+ ld a, [wTempSpecies]
+ ld b, a
+ ld c, 2 ; get page 2
+ farcall GetDexEntryPagePointer
+ pop af
+ hlcoord 1, 1, wPrinterTilemapBuffer
+ ld a, b
+ call nz, FarString
+ ret
+
+.FillColumn:
+ push de
+ ld de, SCREEN_WIDTH
+.column_loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ pop de
+ ret
+
+GBPrinterStrings: ; used only for BANK(GBPrinterStrings)
+GBPrinterString_Null: db "@"
+GBPrinterString_CheckingLink: next " CHECKING LINK...@"
+GBPrinterString_Transmitting: next " TRANSMITTING...@"
+GBPrinterString_Printing: next " PRINTING...@"
+GBPrinterString_PrinterError1:
+ db " Printer Error 1"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError2:
+ db " Printer Error 2"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError3:
+ db " Printer Error 3"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError4:
+ db " Printer Error 4"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+
+PrintPartyMonPage1:
+ call ClearBGPalettes
+ call ClearTilemap
+ call ClearSprites
+ xor a
+ ldh [hBGMapMode], a
+ call LoadFontsBattleExtra
+
+ ld de, GBPrinterHPIcon
+ ld hl, vTiles2 tile PRINTPARTY_HP
+ lb bc, BANK(GBPrinterHPIcon), 1
+ call Request1bpp
+
+ ld de, GBPrinterLvIcon
+ ld hl, vTiles2 tile "<LV>"
+ lb bc, BANK(GBPrinterLvIcon), 1
+ call Request1bpp
+
+ ld de, StatsScreenPageTilesGFX + 14 tiles ; shiny icon
+ ld hl, vTiles2 tile "⁂"
+ lb bc, BANK(StatsScreenPageTilesGFX), 1
+ call Get2bpp
+
+ xor a
+ ld [wMonType], a
+ farcall CopyMonToTempMon
+ hlcoord 0, 7
+ ld b, 9
+ ld c, 18
+ call Textbox
+ hlcoord 8, 2
+ ld a, [wTempMonLevel]
+ call PrintLevel_Force3Digits
+ hlcoord 12, 2
+ ld [hl], PRINTPARTY_HP
+ inc hl
+ ld de, wTempMonMaxHP
+ lb bc, 2, 3
+ call PrintNum
+ ld a, [wCurPartySpecies]
+ ld [wNamedObjectIndexBuffer], a
+ ld [wCurSpecies], a
+ ld hl, wPartyMonNicknames
+ call Function1c0375
+ hlcoord 8, 4
+ call PlaceString
+ hlcoord 9, 6
+ ld [hl], "/"
+ call GetPokemonName
+ hlcoord 10, 6
+ call PlaceString
+ hlcoord 8, 0
+ ld [hl], "№"
+ inc hl
+ ld [hl], "."
+ inc hl
+ ld de, wNamedObjectIndexBuffer
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ hlcoord 1, 9
+ ld de, String1c03b7
+ call PlaceString
+ ld hl, wPartyMonOT
+ call Function1c0375
+ hlcoord 4, 9
+ call PlaceString
+ hlcoord 1, 11
+ ld de, String1c03c0
+ call PlaceString
+ hlcoord 4, 11
+ ld de, wTempMonID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ hlcoord 1, 14
+ ld de, String1c03bb
+ call PlaceString
+ hlcoord 7, 14
+ ld a, [wTempMonMoves + 0]
+ call Function1c0381
+ call Function1c0393
+ ld hl, wTempMonDVs
+ predef GetUnownLetter
+ hlcoord 0, 0
+ call PrepMonFrontpic
+ call WaitBGMap
+ ld b, SCGB_STATS_SCREEN_HP_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+
+PrintPartyMonPage2:
+ call ClearBGPalettes
+ call ClearTilemap
+ call ClearSprites
+ xor a
+ ldh [hBGMapMode], a
+ call LoadFontsBattleExtra
+
+ ld de, GBPrinterHPIcon
+ ld hl, vTiles2 tile PRINTPARTY_HP
+ lb bc, BANK(GBPrinterHPIcon), 1
+ call Request1bpp
+
+ ld de, GBPrinterLvIcon
+ ld hl, vTiles2 tile "<LV>"
+ lb bc, BANK(GBPrinterLvIcon), 1
+ call Request1bpp
+
+ ld de, StatsScreenPageTilesGFX + 14 tiles ; shiny icon
+ ld hl, vTiles2 tile "⁂"
+ lb bc, BANK(StatsScreenPageTilesGFX), 1
+ call Get2bpp
+
+ xor a
+ ld [wMonType], a
+ farcall CopyMonToTempMon
+ hlcoord 0, 0
+ ld b, 15
+ ld c, 18
+ call Textbox
+ ld bc, SCREEN_WIDTH
+ decoord 0, 0
+ hlcoord 0, 1
+ call CopyBytes
+ hlcoord 7, 0
+ ld a, [wTempMonMoves + 1]
+ call Function1c0381
+ hlcoord 7, 2
+ ld a, [wTempMonMoves + 2]
+ call Function1c0381
+ hlcoord 7, 4
+ ld a, [wTempMonMoves + 3]
+ call Function1c0381
+ hlcoord 7, 7
+ ld de, String1c03c3
+ call PlaceString
+ hlcoord 16, 7
+ ld de, wTempMonAttack
+ call .PrintTempMonStats
+ hlcoord 16, 9
+ ld de, wTempMonDefense
+ call .PrintTempMonStats
+ hlcoord 16, 11
+ ld de, wTempMonSpclAtk
+ call .PrintTempMonStats
+ hlcoord 16, 13
+ ld de, wTempMonSpclDef
+ call .PrintTempMonStats
+ hlcoord 16, 15
+ ld de, wTempMonSpeed
+ call .PrintTempMonStats
+ call WaitBGMap
+ ld b, SCGB_STATS_SCREEN_HP_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+
+.PrintTempMonStats:
+ lb bc, 2, 3
+ call PrintNum
+ ret
+
+Function1c0375:
+ ld bc, NAME_LENGTH
+ ld a, [wCurPartyMon]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ret
+
+Function1c0381:
+ and a
+ jr z, .no_move
+
+ ld [wNamedObjectIndexBuffer], a
+ call GetMoveName
+ jr .got_string
+
+.no_move
+ ld de, String1c03ea
+
+.got_string
+ call PlaceString
+ ret
+
+Function1c0393:
+ farcall GetGender
+ ld a, " "
+ jr c, .got_gender
+ ld a, "♂"
+ jr nz, .got_gender
+ ld a, "♀"
+
+.got_gender
+ hlcoord 17, 2
+ ld [hl], a
+ ld bc, wTempMonDVs
+ farcall CheckShininess
+ ret nc
+ hlcoord 18, 2
+ ld [hl], "⁂"
+ ret
+
+String1c03b7:
+ db "OT/@"
+
+String1c03bb:
+ db "MOVE@"
+
+String1c03c0:
+ db "<ID>№@"
+
+String1c03c3:
+ db "ATTACK"
+ next "DEFENSE"
+ next "SPCL.ATK"
+ next "SPCL.DEF"
+ next "SPEED"
+ db "@"
+
+String1c03ea:
+ db "------------@"
+
+GBPrinterHPIcon:
+INCBIN "gfx/printer/hp.1bpp"
+
+GBPrinterLvIcon:
+INCBIN "gfx/printer/lv.1bpp"
diff --git a/engine/rtc/print_hours_mins.asm b/engine/rtc/print_hours_mins.asm
new file mode 100644
index 00000000..faa69756
--- /dev/null
+++ b/engine/rtc/print_hours_mins.asm
@@ -0,0 +1,76 @@
+Unreferenced_Function1c0a0d:
+ ld a, b
+ ld b, c
+ ld c, a
+ push bc
+ push de
+ ld hl, sp+$2
+ ld d, h
+ ld e, l
+ pop hl
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ pop bc
+ ret
+
+PrintHoursMins:
+; Hours in b, minutes in c
+ ld a, b
+ cp 12
+ push af
+ jr c, .AM
+ jr z, .PM
+ sub 12
+ jr .PM
+.AM:
+ or a
+ jr nz, .PM
+ ld a, 12
+.PM:
+ ld b, a
+; Crazy stuff happening with the stack
+ push bc
+ ld hl, sp+$1
+ push de
+ push hl
+ pop de
+ pop hl
+ ld [hl], " "
+ lb bc, 1, 2
+ call PrintNum
+ ld [hl], ":"
+ inc hl
+ ld d, h
+ ld e, l
+ ld hl, sp+$0
+ push de
+ push hl
+ pop de
+ pop hl
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ pop bc
+ ld de, String_AM
+ pop af
+ jr c, .place_am_pm
+ ld de, String_PM
+.place_am_pm
+ inc hl
+ call PlaceString
+ ret
+
+String_AM: db "AM@"
+String_PM: db "PM@"
+
+UpdateTimePredef::
+ call UpdateTime
+ ld hl, wDSTBackupDay
+ ld a, [wCurDay]
+ ld [hli], a ; wDSTBackupDay
+ ldh a, [hHours]
+ ld [hli], a ; wDSTBackupHours
+ ldh a, [hMinutes]
+ ld [hli], a ; wDSTBackupMinutes
+ ldh a, [hSeconds]
+ ld [hli], a ; wDSTBackupSeconds
+ ret
diff --git a/engine/rtc/restart_clock.asm b/engine/rtc/restart_clock.asm
new file mode 100644
index 00000000..5dc98718
--- /dev/null
+++ b/engine/rtc/restart_clock.asm
@@ -0,0 +1,236 @@
+RestartClock_GetWraparoundTime:
+ push hl
+ dec a
+ ld e, a
+ ld d, 0
+ ld hl, .WrapAroundTimes
+rept 4
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ pop hl
+ ret
+
+.WrapAroundTimes:
+ dw wBuffer4
+ db 7, 4
+
+ dw wBuffer5
+ db 24, 12
+
+ dw wBuffer6
+ db 60, 15
+
+RestartClock:
+; If we're here, we had an RTC overflow.
+ ld hl, .ClockTimeMayBeWrongText
+ call PrintText
+ ld hl, wOptions
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call LoadStandardMenuHeader
+ call ClearTilemap
+ ld hl, .ClockSetWithControlPadText
+ call PrintText
+ call .SetClock
+ call ExitMenu
+ pop bc
+ ld hl, wOptions
+ ld [hl], b
+ ld c, a
+ ret
+
+.ClockTimeMayBeWrongText:
+ text_far _ClockTimeMayBeWrongText
+ text_end
+
+.ClockSetWithControlPadText:
+ text_far _ClockSetWithControlPadText
+ text_end
+
+.SetClock:
+ ld a, 1
+ ld [wBuffer1], a ; which digit
+ ld [wBuffer2], a
+ ld a, 8
+ ld [wBuffer3], a
+ call UpdateTime
+ call GetWeekday
+ ld [wBuffer4], a
+ ldh a, [hHours]
+ ld [wBuffer5], a
+ ldh a, [hMinutes]
+ ld [wBuffer6], a
+
+.loop
+ call .joy_loop
+ jr nc, .loop
+ and a
+ ret nz
+ call .PrintTime
+ ld hl, .ClockIsThisOKText
+ call PrintText
+ call YesNoBox
+ jr c, .cancel
+ ld a, [wBuffer4]
+ ld [wStringBuffer2], a
+ ld a, [wBuffer5]
+ ld [wStringBuffer2 + 1], a
+ ld a, [wBuffer6]
+ ld [wStringBuffer2 + 2], a
+ xor a
+ ld [wStringBuffer2 + 3], a
+ call InitTime
+ call .PrintTime
+ ld hl, .ClockHasResetText
+ call PrintText
+ call WaitPressAorB_BlinkCursor
+ xor a
+ ret
+
+.cancel
+ ld a, $1
+ ret
+
+.ClockIsThisOKText:
+ text_far _ClockIsThisOKText
+ text_end
+
+.ClockHasResetText:
+ text_far _ClockHasResetText
+ text_end
+
+.joy_loop
+ call JoyTextDelay_ForcehJoyDown
+ ld c, a
+ push af
+ call .PrintTime
+ pop af
+ bit 0, a
+ jr nz, .press_A
+ bit 1, a
+ jr nz, .press_B
+ bit 6, a
+ jr nz, .pressed_up
+ bit 7, a
+ jr nz, .pressed_down
+ bit 5, a
+ jr nz, .pressed_left
+ bit 4, a
+ jr nz, .pressed_right
+ jr .joy_loop
+
+.press_A
+ ld a, $0
+ scf
+ ret
+
+.press_B
+ ld a, $1
+ scf
+ ret
+
+.pressed_up
+ ld a, [wBuffer1]
+ call RestartClock_GetWraparoundTime
+ ld a, [de]
+ inc a
+ ld [de], a
+ cp b
+ jr c, .done_scroll
+ ld a, $0
+ ld [de], a
+ jr .done_scroll
+
+.pressed_down
+ ld a, [wBuffer1]
+ call RestartClock_GetWraparoundTime
+ ld a, [de]
+ dec a
+ ld [de], a
+ cp -1
+ jr nz, .done_scroll
+ ld a, b
+ dec a
+ ld [de], a
+ jr .done_scroll
+
+.pressed_left
+ ld hl, wBuffer1
+ dec [hl]
+ jr nz, .done_scroll
+ ld [hl], $3
+ jr .done_scroll
+
+.pressed_right
+ ld hl, wBuffer1
+ inc [hl]
+ ld a, [hl]
+ cp $4
+ jr c, .done_scroll
+ ld [hl], $1
+
+.done_scroll
+ xor a
+ ret
+
+.PrintTime:
+ hlcoord 0, 5
+ ld b, 5
+ ld c, 18
+ call Textbox
+ decoord 1, 8
+ ld a, [wBuffer4]
+ ld b, a
+ farcall PrintDayOfWeek
+ ld a, [wBuffer5]
+ ld b, a
+ ld a, [wBuffer6]
+ ld c, a
+ decoord 11, 8
+ farcall PrintHoursMins
+ ld a, [wBuffer2]
+ lb de, " ", " "
+ call .PlaceChars
+ ld a, [wBuffer1]
+ lb de, "▲", "▼"
+ call .PlaceChars
+ ld a, [wBuffer1]
+ ld [wBuffer2], a
+ ret
+
+.unreferenced
+; unused
+ ld a, [wBuffer3]
+ ld b, a
+ call Coord2Tile
+ ret
+
+.PlaceChars:
+ push de
+ call RestartClock_GetWraparoundTime
+ ld a, [wBuffer3]
+ dec a
+ ld b, a
+ call Coord2Tile
+ pop de
+ ld [hl], d
+ ld bc, 2 * SCREEN_WIDTH
+ add hl, bc
+ ld [hl], e
+ ret
+
+UnreferencedString_HourJP:
+; unused
+ db "じ@" ; HR
+
+UnreferencedString_MinuteJP:
+; unused
+ db "ふん@" ; MIN
diff --git a/engine/tilesets/map_palettes.asm b/engine/tilesets/map_palettes.asm
index 858098e6..2cf1192b 100644
--- a/engine/tilesets/map_palettes.asm
+++ b/engine/tilesets/map_palettes.asm
@@ -37,7 +37,7 @@ _SwapTextboxPalettes::
.asm_8038
ld a, [wMapGroup]
dec a
- ld hl, Unknown85d7
+ ld hl, MapGroupPalettes
add l
ld l, a
jr nc, .asm_8044
@@ -93,7 +93,7 @@ _ScrollBGMapPalettes::
.asm_8083
ld a, [wMapGroup]
dec a
- ld hl, Unknown85d7
+ ld hl, MapGroupPalettes
add l
ld l, a
jr nc, .asm_808f
diff --git a/engine/tilesets/mapgroup_roofs.asm b/engine/tilesets/mapgroup_roofs.asm
new file mode 100644
index 00000000..b269e527
--- /dev/null
+++ b/engine/tilesets/mapgroup_roofs.asm
@@ -0,0 +1,18 @@
+LoadMapGroupRoof::
+ ld a, [wMapGroup]
+ ld e, a
+ ld d, 0
+ ld hl, MapGroupRoofs
+ add hl, de
+ ld a, [hl]
+ cp -1
+ ret z
+ ld hl, Roofs
+ ld bc, 9 tiles
+ call AddNTimes
+ ld de, vTiles2 tile $0a
+ ld bc, 9 tiles
+ call CopyBytes
+ ret
+
+INCLUDE "data/maps/roofs.asm"
diff --git a/engine/tilesets/tileset_anims.asm b/engine/tilesets/tileset_anims.asm
new file mode 100644
index 00000000..a7b35c54
--- /dev/null
+++ b/engine/tilesets/tileset_anims.asm
@@ -0,0 +1,753 @@
+ db 0 ; unused
+
+DummyPredef3A:
+ ret
+
+ ret ; unused
+
+_AnimateTileset::
+; Iterate over a given pointer array of
+; animation functions (one per frame).
+
+; Typically in wra1, vra0
+
+ ld a, [wTilesetAnim]
+ ld e, a
+ ld a, [wTilesetAnim + 1]
+ ld d, a
+
+ ldh a, [hTileAnimFrame]
+ ld l, a
+ inc a
+ ldh [hTileAnimFrame], a
+
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ add hl, de
+
+; 2-byte parameter
+; All functions take input de.
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+
+; Function address
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ jp hl
+
+Tileset0Anim::
+TilesetJohtoModernAnim::
+TilesetKantoAnim::
+TilesetParkAnim::
+TilesetForestAnim::
+ dw vTiles2 tile $14, AnimateWaterTile
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, AnimateWaterPalette
+ dw NULL, WaitTileAnimation
+ dw NULL, AnimateFlowerTile
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, StandingTileFrame8
+ dw NULL, DoneTileAnimation
+
+TilesetJohtoAnim:
+ dw vTiles2 tile $14, AnimateWaterTile
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, AnimateWaterPalette
+ dw NULL, WaitTileAnimation
+ dw NULL, AnimateFlowerTile
+ dw WhirlpoolFrames1, AnimateWhirlpoolTile
+ dw WhirlpoolFrames2, AnimateWhirlpoolTile
+ dw WhirlpoolFrames3, AnimateWhirlpoolTile
+ dw WhirlpoolFrames4, AnimateWhirlpoolTile
+ dw NULL, WaitTileAnimation
+ dw NULL, StandingTileFrame8
+ dw NULL, DoneTileAnimation
+
+UnusedTilesetAnim_fc07e:
+ dw vTiles2 tile $03, WriteTileToBuffer
+ dw wTileAnimBuffer, ScrollTileRightLeft
+ dw vTiles2 tile $03, WriteTileFromBuffer
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, AnimateFlowerTile
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, DoneTileAnimation
+
+UnusedTilesetAnim_fc0aa:
+ dw vTiles2 tile $14, WriteTileToBuffer
+ dw wTileAnimBuffer, ScrollTileRightLeft
+ dw vTiles2 tile $14, WriteTileFromBuffer
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, DoneTileAnimation
+
+TilesetPortAnim:
+ dw vTiles2 tile $14, AnimateWaterTile
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, AnimateWaterPalette
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, StandingTileFrame8
+ dw NULL, DoneTileAnimation
+
+TilesetEliteFourRoomAnim:
+ dw NULL, LavaBubbleAnim2
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, LavaBubbleAnim1
+ dw NULL, WaitTileAnimation
+ dw NULL, StandingTileFrame8
+ dw NULL, DoneTileAnimation
+
+UnusedTilesetAnim_fc126:
+ dw vTiles2 tile $53, WriteTileToBuffer
+ dw wTileAnimBuffer, ScrollTileDown
+ dw wTileAnimBuffer, ScrollTileDown
+ dw vTiles2 tile $53, WriteTileFromBuffer
+ dw vTiles2 tile $03, WriteTileToBuffer
+ dw wTileAnimBuffer, ScrollTileRightLeft
+ dw vTiles2 tile $03, WriteTileFromBuffer
+ dw vTiles2 tile $53, WriteTileToBuffer
+ dw wTileAnimBuffer, ScrollTileDown
+ dw wTileAnimBuffer, ScrollTileDown
+ dw vTiles2 tile $53, WriteTileFromBuffer
+ dw NULL, DoneTileAnimation
+
+UnusedTilesetAnim_fc156:
+ dw vTiles2 tile $54, WriteTileToBuffer
+ dw wTileAnimBuffer, ScrollTileDown
+ dw wTileAnimBuffer, ScrollTileDown
+ dw vTiles2 tile $54, WriteTileFromBuffer
+ dw NULL, WaitTileAnimation
+ dw vTiles2 tile $03, WriteTileToBuffer
+ dw wTileAnimBuffer, ScrollTileRightLeft
+ dw vTiles2 tile $03, WriteTileFromBuffer
+ dw NULL, WaitTileAnimation
+ dw vTiles2 tile $54, WriteTileToBuffer
+ dw wTileAnimBuffer, ScrollTileDown
+ dw wTileAnimBuffer, ScrollTileDown
+ dw vTiles2 tile $54, WriteTileFromBuffer
+ dw NULL, DoneTileAnimation
+
+TilesetCaveAnim:
+TilesetDarkCaveAnim:
+ dw vTiles2 tile $14, WriteTileToBuffer
+ dw NULL, FlickeringCaveEntrancePalette
+ dw wTileAnimBuffer, ScrollTileRightLeft
+ dw NULL, FlickeringCaveEntrancePalette
+ dw vTiles2 tile $14, WriteTileFromBuffer
+ dw NULL, FlickeringCaveEntrancePalette
+ dw NULL, AnimateWaterPalette
+ dw NULL, FlickeringCaveEntrancePalette
+ dw vTiles2 tile $40, WriteTileToBuffer
+ dw NULL, FlickeringCaveEntrancePalette
+ dw wTileAnimBuffer, ScrollTileDown
+ dw NULL, FlickeringCaveEntrancePalette
+ dw wTileAnimBuffer, ScrollTileDown
+ dw NULL, FlickeringCaveEntrancePalette
+ dw wTileAnimBuffer, ScrollTileDown
+ dw NULL, FlickeringCaveEntrancePalette
+ dw vTiles2 tile $40, WriteTileFromBuffer
+ dw NULL, FlickeringCaveEntrancePalette
+ dw NULL, DoneTileAnimation
+
+TilesetIcePathAnim:
+ dw vTiles2 tile $35, WriteTileToBuffer
+ dw NULL, FlickeringCaveEntrancePalette
+ dw wTileAnimBuffer, ScrollTileRightLeft
+ dw NULL, FlickeringCaveEntrancePalette
+ dw vTiles2 tile $35, WriteTileFromBuffer
+ dw NULL, FlickeringCaveEntrancePalette
+ dw NULL, AnimateWaterPalette
+ dw NULL, FlickeringCaveEntrancePalette
+ dw vTiles2 tile $31, WriteTileToBuffer
+ dw NULL, FlickeringCaveEntrancePalette
+ dw wTileAnimBuffer, ScrollTileDown
+ dw NULL, FlickeringCaveEntrancePalette
+ dw wTileAnimBuffer, ScrollTileDown
+ dw NULL, FlickeringCaveEntrancePalette
+ dw wTileAnimBuffer, ScrollTileDown
+ dw NULL, FlickeringCaveEntrancePalette
+ dw vTiles2 tile $31, WriteTileFromBuffer
+ dw NULL, FlickeringCaveEntrancePalette
+ dw NULL, DoneTileAnimation
+
+TilesetTowerAnim:
+ dw TowerPillarTilePointer9, AnimateTowerPillarTile
+ dw TowerPillarTilePointer10, AnimateTowerPillarTile
+ dw TowerPillarTilePointer7, AnimateTowerPillarTile
+ dw TowerPillarTilePointer8, AnimateTowerPillarTile
+ dw TowerPillarTilePointer5, AnimateTowerPillarTile
+ dw TowerPillarTilePointer6, AnimateTowerPillarTile
+ dw TowerPillarTilePointer3, AnimateTowerPillarTile
+ dw TowerPillarTilePointer4, AnimateTowerPillarTile
+ dw TowerPillarTilePointer1, AnimateTowerPillarTile
+ dw TowerPillarTilePointer2, AnimateTowerPillarTile
+ dw NULL, StandingTileFrame
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, DoneTileAnimation
+ dw vTiles2 tile $4f, WriteTileToBuffer
+ dw wTileAnimBuffer, ScrollTileRightLeft
+ dw vTiles2 tile $4f, WriteTileFromBuffer
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, DoneTileAnimation
+
+TilesetHouseAnim:
+TilesetPlayersHouseAnim:
+TilesetPokecenterAnim:
+TilesetGateAnim:
+TilesetLabAnim:
+TilesetFacilityAnim:
+TilesetMartAnim:
+TilesetMansionAnim:
+TilesetGameCornerAnim:
+TilesetTraditionalHouseAnim:
+TilesetTrainStationAnim:
+TilesetChampionsRoomAnim:
+TilesetLighthouseAnim:
+TilesetPlayersRoomAnim:
+TilesetRuinsOfAlphAnim:
+TilesetRadioTowerAnim:
+TilesetUndergroundAnim:
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, WaitTileAnimation
+ dw NULL, DoneTileAnimation
+
+DoneTileAnimation:
+; Reset the animation command loop.
+ xor a
+ ldh [hTileAnimFrame], a
+
+WaitTileAnimation:
+; Do nothing this frame.
+ ret
+
+StandingTileFrame8:
+ ld a, [wTileAnimationTimer]
+ inc a
+ and %111
+ ld [wTileAnimationTimer], a
+ ret
+
+ScrollTileRightLeft:
+; Scroll right for 4 ticks, then left for 4 ticks.
+ ld a, [wTileAnimationTimer]
+ inc a
+ and %111
+ ld [wTileAnimationTimer], a
+ and %100
+ jr nz, ScrollTileLeft
+ jr ScrollTileRight
+
+ScrollTileUpDown:
+; Scroll up for 4 ticks, then down for 4 ticks.
+ ld a, [wTileAnimationTimer]
+ inc a
+ and %111
+ ld [wTileAnimationTimer], a
+ and %100
+ jr nz, ScrollTileDown
+ jr ScrollTileUp
+
+ScrollTileLeft:
+ ld h, d
+ ld l, e
+ ld c, 4
+.loop
+rept 4
+ ld a, [hl]
+ rlca
+ ld [hli], a
+endr
+ dec c
+ jr nz, .loop
+ ret
+
+ScrollTileRight:
+ ld h, d
+ ld l, e
+ ld c, 4
+.loop
+rept 4
+ ld a, [hl]
+ rrca
+ ld [hli], a
+endr
+ dec c
+ jr nz, .loop
+ ret
+
+ScrollTileUp:
+ ld h, d
+ ld l, e
+ ld d, [hl]
+ inc hl
+ ld e, [hl]
+ ld bc, TILE_WIDTH * 2 - 2
+ add hl, bc
+ ld a, TILE_WIDTH / 2
+.loop
+ ld c, [hl]
+ ld [hl], e
+ dec hl
+ ld b, [hl]
+ ld [hl], d
+ dec hl
+ ld e, [hl]
+ ld [hl], c
+ dec hl
+ ld d, [hl]
+ ld [hl], b
+ dec hl
+ dec a
+ jr nz, .loop
+ ret
+
+ScrollTileDown:
+ ld h, d
+ ld l, e
+ ld de, TILE_WIDTH * 2 - 2
+ push hl
+ add hl, de
+ ld d, [hl]
+ inc hl
+ ld e, [hl]
+ pop hl
+ ld a, TILE_WIDTH / 2
+.loop
+ ld b, [hl]
+ ld [hl], d
+ inc hl
+ ld c, [hl]
+ ld [hl], e
+ inc hl
+ ld d, [hl]
+ ld [hl], b
+ inc hl
+ ld e, [hl]
+ ld [hl], c
+ inc hl
+ dec a
+ jr nz, .loop
+ ret
+
+AnimateWaterTile:
+; Draw a water tile for the current frame in VRAM tile at de.
+
+; Save sp in bc (see WriteTile).
+ ld hl, sp+0
+ ld b, h
+ ld c, l
+
+ ld a, [wTileAnimationTimer]
+
+; 4 tile graphics, updated every other frame.
+ and %110
+
+; 2 x 8 = 16 bytes per tile
+ add a
+ add a
+ add a
+
+ add LOW(WaterTileFrames)
+ ld l, a
+ ld a, 0
+ adc HIGH(WaterTileFrames)
+ ld h, a
+
+; The stack now points to the start of the tile for this frame.
+ ld sp, hl
+
+ ld l, e
+ ld h, d
+
+ jp WriteTile
+
+WaterTileFrames:
+ INCBIN "gfx/tilesets/water/water.2bpp"
+
+AnimateFlowerTile:
+; No parameters.
+
+; Save sp in bc (see WriteTile).
+ ld hl, sp+0
+ ld b, h
+ ld c, l
+
+; Alternate tile graphic every other frame
+ ld a, [wTileAnimationTimer]
+ and %10
+
+; CGB has different color mappings for flowers.
+ ld e, a
+ ldh a, [hCGB]
+ and 1
+ add e
+
+ swap a
+ ld e, a
+ ld d, 0
+ ld hl, FlowerTileFrames
+ add hl, de
+ ld sp, hl
+
+ ld hl, vTiles2 tile $03
+
+ jp WriteTile
+
+FlowerTileFrames:
+ INCBIN "gfx/tilesets/flower/dmg_1.2bpp"
+ INCBIN "gfx/tilesets/flower/cgb_1.2bpp"
+ INCBIN "gfx/tilesets/flower/dmg_2.2bpp"
+ INCBIN "gfx/tilesets/flower/cgb_2.2bpp"
+
+LavaBubbleAnim1:
+; Splash in the bottom-right corner of the fountain.
+ ld hl, sp+0
+ ld b, h
+ ld c, l
+ ld a, [wTileAnimationTimer]
+ and %110
+ srl a
+ inc a
+ inc a
+ and %011
+ swap a
+ ld e, a
+ ld d, 0
+ ld hl, LavaBubbleFrames
+ add hl, de
+ ld sp, hl
+ ld hl, vTiles2 tile $5b
+ jp WriteTile
+
+LavaBubbleAnim2:
+; Splash in the top-left corner of the fountain.
+ ld hl, sp+0
+ ld b, h
+ ld c, l
+ ld a, [wTileAnimationTimer]
+ and %110
+ add a
+ add a
+ add a
+ ld e, a
+ ld d, 0
+ ld hl, LavaBubbleFrames
+ add hl, de
+ ld sp, hl
+ ld hl, vTiles2 tile $38
+ jp WriteTile
+
+LavaBubbleFrames:
+ INCBIN "gfx/tilesets/lava/1.2bpp"
+ INCBIN "gfx/tilesets/lava/2.2bpp"
+ INCBIN "gfx/tilesets/lava/3.2bpp"
+ INCBIN "gfx/tilesets/lava/4.2bpp"
+
+AnimateTowerPillarTile:
+; Read from struct at de:
+; Destination (VRAM)
+; Address of the first tile in the frame array
+
+ ld hl, sp+0
+ ld b, h
+ ld c, l
+
+ ld a, [wTileAnimationTimer]
+ and %111
+
+; Get frame index a
+ ld hl, .frames
+ add l
+ ld l, a
+ ld a, 0
+ adc h
+ ld h, a
+ ld a, [hl]
+
+; Destination
+ ld l, e
+ ld h, d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+
+; Add the frame index to the starting address
+ add [hl]
+ inc hl
+ ld h, [hl]
+ ld l, a
+ ld a, 0
+ adc h
+ ld h, a
+
+ ld sp, hl
+ ld l, e
+ ld h, d
+ jr WriteTile
+
+.frames
+ db $00, $10, $20, $30, $40, $30, $20, $10
+
+StandingTileFrame:
+ ld hl, wTileAnimationTimer
+ inc [hl]
+ ret
+
+AnimateWhirlpoolTile:
+; Update whirlpool tile using struct at de.
+
+; Struct:
+; VRAM address
+; Address of the first tile
+
+; Only does one of 4 tiles at a time.
+
+; Save sp in bc (see WriteTile).
+ ld hl, sp+0
+ ld b, h
+ ld c, l
+
+; de = VRAM address
+ ld l, e
+ ld h, d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+; Tile address is now at hl.
+
+; Get the tile for this frame.
+ ld a, [wTileAnimationTimer]
+ and %11 ; 4 frames x2
+ swap a ; * 16 bytes per tile
+
+ add [hl]
+ inc hl
+ ld h, [hl]
+ ld l, a
+ ld a, 0
+ adc h
+ ld h, a
+
+; The stack now points to the desired frame.
+ ld sp, hl
+
+ ld l, e
+ ld h, d
+
+ jr WriteTile
+
+WriteTileFromBuffer:
+; Write tiledata at wTileAnimBuffer to de.
+; wTileAnimBuffer is loaded to sp for WriteTile.
+
+ ld hl, sp+0
+ ld b, h
+ ld c, l
+
+ ld hl, wTileAnimBuffer
+ ld sp, hl
+
+ ld h, d
+ ld l, e
+ jr WriteTile
+
+WriteTileToBuffer:
+; Write tiledata de to wTileAnimBuffer.
+; de is loaded to sp for WriteTile.
+
+ ld hl, sp+0
+ ld b, h
+ ld c, l
+
+ ld h, d
+ ld l, e
+ ld sp, hl
+
+ ld hl, wTileAnimBuffer
+
+ ; fallthrough
+
+WriteTile:
+; Write one 8x8 tile ($10 bytes) from sp to hl.
+
+; Warning: sp is saved in bc so we can abuse pop.
+; sp is restored to address bc. Save sp in bc before calling.
+
+ pop de
+ ld [hl], e
+ inc hl
+ ld [hl], d
+
+rept 7
+ pop de
+ inc hl
+ ld [hl], e
+ inc hl
+ ld [hl], d
+endr
+
+; restore sp
+ ld h, b
+ ld l, c
+ ld sp, hl
+ ret
+
+AnimateWaterPalette:
+; Transition between color values 0-2 for color 0 in palette 3.
+
+; No palette changes on DMG.
+ ldh a, [hCGB]
+ and a
+ ret z
+
+; We don't want to mess with non-standard palettes.
+ ldh a, [rBGP] ; BGP
+ cp %11100100
+ ret nz
+
+; Only update on even frames.
+ ld a, [wTileAnimationTimer]
+ ld l, a
+ and 1 ; odd
+ ret nz
+
+; Ready for BGPD input...
+
+ ld a, (1 << rBGPI_AUTO_INCREMENT) palette PAL_BG_WATER
+ ldh [rBGPI], a
+
+; Update color 0 in order 0 1 2 1
+ ld a, l
+ and %110 ; frames 0 2 4 6
+ jr z, .color0
+ cp %100 ; frame 4
+ jr z, .color2
+
+.color1
+ ld hl, wBGPals1 palette PAL_BG_WATER color 1
+ ld a, [hli]
+ ldh [rBGPD], a
+ ld a, [hli]
+ ldh [rBGPD], a
+ ret
+
+.color0
+ ld hl, wBGPals1 palette PAL_BG_WATER color 0
+ ld a, [hli]
+ ldh [rBGPD], a
+ ld a, [hli]
+ ldh [rBGPD], a
+ ret
+
+.color2
+ ld hl, wBGPals1 palette PAL_BG_WATER color 2
+ ld a, [hli]
+ ldh [rBGPD], a
+ ld a, [hli]
+ ldh [rBGPD], a
+ ret
+
+FlickeringCaveEntrancePalette:
+; No palette changes on DMG.
+ ldh a, [hCGB]
+ and a
+ ret z
+; We don't want to mess with non-standard palettes.
+ ldh a, [rBGP]
+ cp %11100100
+ ret nz
+; We only want to be here if we're in a dark cave.
+ ld a, [wTimeOfDayPalset]
+ cp %11111111 ; 3,3,3,3
+ ret nz
+
+; Ready for BGPD input...
+ ld a, (1 << rBGPI_AUTO_INCREMENT) palette PAL_BG_YELLOW
+ ldh [rBGPI], a
+ ldh a, [hVBlankCounter]
+ and %10
+ jr nz, .bit1set
+ ld hl, wBGPals1 palette PAL_BG_YELLOW
+ jr .okay
+
+.bit1set
+ ld hl, wBGPals1 palette PAL_BG_YELLOW color 1
+
+.okay
+ ld a, [hli]
+ ldh [rBGPD], a
+ ld a, [hli]
+ ldh [rBGPD], a
+ ret
+
+TowerPillarTilePointer1: dw vTiles2 tile $2d, TowerPillarTile1
+TowerPillarTilePointer2: dw vTiles2 tile $2f, TowerPillarTile2
+TowerPillarTilePointer3: dw vTiles2 tile $3d, TowerPillarTile3
+TowerPillarTilePointer4: dw vTiles2 tile $3f, TowerPillarTile4
+TowerPillarTilePointer5: dw vTiles2 tile $3c, TowerPillarTile5
+TowerPillarTilePointer6: dw vTiles2 tile $2c, TowerPillarTile6
+TowerPillarTilePointer7: dw vTiles2 tile $4d, TowerPillarTile7
+TowerPillarTilePointer8: dw vTiles2 tile $4f, TowerPillarTile8
+TowerPillarTilePointer9: dw vTiles2 tile $5d, TowerPillarTile9
+TowerPillarTilePointer10: dw vTiles2 tile $5f, TowerPillarTile10
+
+TowerPillarTile1: INCBIN "gfx/tilesets/tower-pillar/1.2bpp"
+TowerPillarTile2: INCBIN "gfx/tilesets/tower-pillar/2.2bpp"
+TowerPillarTile3: INCBIN "gfx/tilesets/tower-pillar/3.2bpp"
+TowerPillarTile4: INCBIN "gfx/tilesets/tower-pillar/4.2bpp"
+TowerPillarTile5: INCBIN "gfx/tilesets/tower-pillar/5.2bpp"
+TowerPillarTile6: INCBIN "gfx/tilesets/tower-pillar/6.2bpp"
+TowerPillarTile7: INCBIN "gfx/tilesets/tower-pillar/7.2bpp"
+TowerPillarTile8: INCBIN "gfx/tilesets/tower-pillar/8.2bpp"
+TowerPillarTile9: INCBIN "gfx/tilesets/tower-pillar/9.2bpp"
+TowerPillarTile10: INCBIN "gfx/tilesets/tower-pillar/10.2bpp"
+
+WhirlpoolFrames1: dw vTiles2 tile $32, WhirlpoolTiles1
+WhirlpoolFrames2: dw vTiles2 tile $33, WhirlpoolTiles2
+WhirlpoolFrames3: dw vTiles2 tile $42, WhirlpoolTiles3
+WhirlpoolFrames4: dw vTiles2 tile $43, WhirlpoolTiles4
+
+WhirlpoolTiles1: INCBIN "gfx/tilesets/whirlpool/1.2bpp"
+WhirlpoolTiles2: INCBIN "gfx/tilesets/whirlpool/2.2bpp"
+WhirlpoolTiles3: INCBIN "gfx/tilesets/whirlpool/3.2bpp"
+WhirlpoolTiles4: INCBIN "gfx/tilesets/whirlpool/4.2bpp"
+
+;unused
+ ret
diff --git a/gfx/debug/bg.pal b/gfx/debug/bg.pal
new file mode 100644
index 00000000..d0b57359
--- /dev/null
+++ b/gfx/debug/bg.pal
@@ -0,0 +1,43 @@
+ ; white
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ ; red
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ ; green
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 00, 00
+
+ ; blue
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
diff --git a/gfx/debug/color_test.2bpp b/gfx/debug/color_test.2bpp
new file mode 100644
index 00000000..fd536647
--- /dev/null
+++ b/gfx/debug/color_test.2bpp
Binary files differ
diff --git a/gfx/debug/color_test.png b/gfx/debug/color_test.png
new file mode 100644
index 00000000..e33be965
--- /dev/null
+++ b/gfx/debug/color_test.png
Binary files differ
diff --git a/gfx/debug/ob.pal b/gfx/debug/ob.pal
new file mode 100644
index 00000000..2a03f4e8
--- /dev/null
+++ b/gfx/debug/ob.pal
@@ -0,0 +1,42 @@
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ ; red
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ ; green
+ RGB 31, 31, 31
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 00, 00
+
+ ; blue
+ RGB 31, 31, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
diff --git a/gfx/debug/up_arrow.2bpp b/gfx/debug/up_arrow.2bpp
new file mode 100644
index 00000000..2fa4ef56
--- /dev/null
+++ b/gfx/debug/up_arrow.2bpp
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/gfx/debug/up_arrow.png b/gfx/debug/up_arrow.png
new file mode 100644
index 00000000..6c623d2a
--- /dev/null
+++ b/gfx/debug/up_arrow.png
Binary files differ
diff --git a/gfx/mystery_gift/border.1bpp b/gfx/mystery_gift/border.1bpp
new file mode 100644
index 00000000..1ce46789
--- /dev/null
+++ b/gfx/mystery_gift/border.1bpp
Binary files differ
diff --git a/gfx/unknown/gfx_17079.2bpp b/gfx/mystery_gift/border.2bpp
index f4a50690..f4a50690 100644
--- a/gfx/unknown/gfx_17079.2bpp
+++ b/gfx/mystery_gift/border.2bpp
Binary files differ
diff --git a/gfx/mystery_gift/border.png b/gfx/mystery_gift/border.png
new file mode 100644
index 00000000..9af68a94
--- /dev/null
+++ b/gfx/mystery_gift/border.png
Binary files differ
diff --git a/gfx/mystery_gift/mystery_gift.2bpp b/gfx/mystery_gift/mystery_gift.2bpp
new file mode 100644
index 00000000..a0c9fc68
--- /dev/null
+++ b/gfx/mystery_gift/mystery_gift.2bpp
Binary files differ
diff --git a/gfx/mystery_gift/mystery_gift.png b/gfx/mystery_gift/mystery_gift.png
new file mode 100644
index 00000000..818fa455
--- /dev/null
+++ b/gfx/mystery_gift/mystery_gift.png
Binary files differ
diff --git a/gfx/unknown/gfx_170f1.2bpp b/gfx/mystery_gift/mystery_gift_2.2bpp
index af5dda20..af5dda20 100644
--- a/gfx/unknown/gfx_170f1.2bpp
+++ b/gfx/mystery_gift/mystery_gift_2.2bpp
Binary files differ
diff --git a/gfx/unknown/gfx_170f1.png b/gfx/mystery_gift/mystery_gift_2.png
index a887fcf2..a887fcf2 100644
--- a/gfx/unknown/gfx_170f1.png
+++ b/gfx/mystery_gift/mystery_gift_2.png
Binary files differ
diff --git a/gfx/mystery_gift/question_mark.1bpp b/gfx/mystery_gift/question_mark.1bpp
new file mode 100644
index 00000000..00e065b2
--- /dev/null
+++ b/gfx/mystery_gift/question_mark.1bpp
Binary files differ
diff --git a/gfx/mystery_gift/question_mark.png b/gfx/mystery_gift/question_mark.png
new file mode 100644
index 00000000..3ad140ff
--- /dev/null
+++ b/gfx/mystery_gift/question_mark.png
Binary files differ
diff --git a/gfx/overworld/heal_machine.png b/gfx/overworld/heal_machine.png
index ccb93402..dbf51348 100644
--- a/gfx/overworld/heal_machine.png
+++ b/gfx/overworld/heal_machine.png
Binary files differ
diff --git a/gfx/pack/pack.png b/gfx/pack/pack.png
index fc39b378..b85fc099 100644
--- a/gfx/pack/pack.png
+++ b/gfx/pack/pack.png
Binary files differ
diff --git a/gfx/pokedex/pokedex_sgb.2bpp.lz b/gfx/pokedex/pokedex_sgb.2bpp.lz
new file mode 100644
index 00000000..6ec9c46b
--- /dev/null
+++ b/gfx/pokedex/pokedex_sgb.2bpp.lz
Binary files differ
diff --git a/gfx/pokedex/pokedex_sgb.png b/gfx/pokedex/pokedex_sgb.png
new file mode 100644
index 00000000..bbacb114
--- /dev/null
+++ b/gfx/pokedex/pokedex_sgb.png
Binary files differ
diff --git a/gfx/pokedex/question_mark.2bpp.lz b/gfx/pokedex/question_mark.2bpp.lz
new file mode 100644
index 00000000..cd2f7f22
--- /dev/null
+++ b/gfx/pokedex/question_mark.2bpp.lz
Binary files differ
diff --git a/gfx/pokedex/question_mark.png b/gfx/pokedex/question_mark.png
new file mode 100644
index 00000000..e2b681c7
--- /dev/null
+++ b/gfx/pokedex/question_mark.png
Binary files differ
diff --git a/gfx/pokegear/pokegear.2bpp.lz b/gfx/pokegear/pokegear.2bpp.lz
new file mode 100644
index 00000000..df312a51
--- /dev/null
+++ b/gfx/pokegear/pokegear.2bpp.lz
Binary files differ
diff --git a/gfx/pokegear/pokegear.png b/gfx/pokegear/pokegear.png
new file mode 100644
index 00000000..78774a26
--- /dev/null
+++ b/gfx/pokegear/pokegear.png
Binary files differ
diff --git a/gfx/pokemon/abra/back.png b/gfx/pokemon/abra/back.png
index 6a2c3f95..f3a681f0 100644
--- a/gfx/pokemon/abra/back.png
+++ b/gfx/pokemon/abra/back.png
Binary files differ
diff --git a/gfx/pokemon/aerodactyl/back.png b/gfx/pokemon/aerodactyl/back.png
index 02d85d7e..2bb63c65 100644
--- a/gfx/pokemon/aerodactyl/back.png
+++ b/gfx/pokemon/aerodactyl/back.png
Binary files differ
diff --git a/gfx/pokemon/aipom/back.png b/gfx/pokemon/aipom/back.png
index feb8b559..e9c9eca1 100644
--- a/gfx/pokemon/aipom/back.png
+++ b/gfx/pokemon/aipom/back.png
Binary files differ
diff --git a/gfx/pokemon/alakazam/back.png b/gfx/pokemon/alakazam/back.png
index c4aa120e..977c2974 100644
--- a/gfx/pokemon/alakazam/back.png
+++ b/gfx/pokemon/alakazam/back.png
Binary files differ
diff --git a/gfx/pokemon/ampharos/back.png b/gfx/pokemon/ampharos/back.png
index e04691ad..08337082 100644
--- a/gfx/pokemon/ampharos/back.png
+++ b/gfx/pokemon/ampharos/back.png
Binary files differ
diff --git a/gfx/pokemon/arbok/back.png b/gfx/pokemon/arbok/back.png
index c88edb69..5d980991 100644
--- a/gfx/pokemon/arbok/back.png
+++ b/gfx/pokemon/arbok/back.png
Binary files differ
diff --git a/gfx/pokemon/arcanine/back.png b/gfx/pokemon/arcanine/back.png
index 6be33e4e..0584e6de 100644
--- a/gfx/pokemon/arcanine/back.png
+++ b/gfx/pokemon/arcanine/back.png
Binary files differ
diff --git a/gfx/pokemon/ariados/back.png b/gfx/pokemon/ariados/back.png
index 1fb29f20..6d0bc737 100644
--- a/gfx/pokemon/ariados/back.png
+++ b/gfx/pokemon/ariados/back.png
Binary files differ
diff --git a/gfx/pokemon/articuno/back.png b/gfx/pokemon/articuno/back.png
index 58d88e6a..b70659ef 100644
--- a/gfx/pokemon/articuno/back.png
+++ b/gfx/pokemon/articuno/back.png
Binary files differ
diff --git a/gfx/pokemon/azumarill/back.png b/gfx/pokemon/azumarill/back.png
index 24fcce8d..891d8131 100644
--- a/gfx/pokemon/azumarill/back.png
+++ b/gfx/pokemon/azumarill/back.png
Binary files differ
diff --git a/gfx/pokemon/bayleef/back.png b/gfx/pokemon/bayleef/back.png
index 50532568..058934a3 100644
--- a/gfx/pokemon/bayleef/back.png
+++ b/gfx/pokemon/bayleef/back.png
Binary files differ
diff --git a/gfx/pokemon/beedrill/back.png b/gfx/pokemon/beedrill/back.png
index 5c1ce918..38e3f35d 100644
--- a/gfx/pokemon/beedrill/back.png
+++ b/gfx/pokemon/beedrill/back.png
Binary files differ
diff --git a/gfx/pokemon/bellossom/back.png b/gfx/pokemon/bellossom/back.png
index 62428b61..8a1db9dc 100644
--- a/gfx/pokemon/bellossom/back.png
+++ b/gfx/pokemon/bellossom/back.png
Binary files differ
diff --git a/gfx/pokemon/bellsprout/back.png b/gfx/pokemon/bellsprout/back.png
index 66e405cc..08b49c75 100644
--- a/gfx/pokemon/bellsprout/back.png
+++ b/gfx/pokemon/bellsprout/back.png
Binary files differ
diff --git a/gfx/pokemon/blastoise/back.png b/gfx/pokemon/blastoise/back.png
index 6545ec3b..9f236fb9 100644
--- a/gfx/pokemon/blastoise/back.png
+++ b/gfx/pokemon/blastoise/back.png
Binary files differ
diff --git a/gfx/pokemon/blissey/back.png b/gfx/pokemon/blissey/back.png
index d6598ae8..858ad5d4 100644
--- a/gfx/pokemon/blissey/back.png
+++ b/gfx/pokemon/blissey/back.png
Binary files differ
diff --git a/gfx/pokemon/bulbasaur/back.png b/gfx/pokemon/bulbasaur/back.png
index 2f17f4a9..c37b4b2c 100644
--- a/gfx/pokemon/bulbasaur/back.png
+++ b/gfx/pokemon/bulbasaur/back.png
Binary files differ
diff --git a/gfx/pokemon/butterfree/back.png b/gfx/pokemon/butterfree/back.png
index 56de7fa5..08fd65ef 100644
--- a/gfx/pokemon/butterfree/back.png
+++ b/gfx/pokemon/butterfree/back.png
Binary files differ
diff --git a/gfx/pokemon/caterpie/back.png b/gfx/pokemon/caterpie/back.png
index f4575c5a..115c0273 100644
--- a/gfx/pokemon/caterpie/back.png
+++ b/gfx/pokemon/caterpie/back.png
Binary files differ
diff --git a/gfx/pokemon/celebi/back.png b/gfx/pokemon/celebi/back.png
index b0f498a4..ebb79c02 100644
--- a/gfx/pokemon/celebi/back.png
+++ b/gfx/pokemon/celebi/back.png
Binary files differ
diff --git a/gfx/pokemon/chansey/back.png b/gfx/pokemon/chansey/back.png
index d933a652..0e67b449 100644
--- a/gfx/pokemon/chansey/back.png
+++ b/gfx/pokemon/chansey/back.png
Binary files differ
diff --git a/gfx/pokemon/charizard/back.png b/gfx/pokemon/charizard/back.png
index e526d3bb..37b98fa0 100644
--- a/gfx/pokemon/charizard/back.png
+++ b/gfx/pokemon/charizard/back.png
Binary files differ
diff --git a/gfx/pokemon/charmander/back.png b/gfx/pokemon/charmander/back.png
index 022283db..986c9ace 100644
--- a/gfx/pokemon/charmander/back.png
+++ b/gfx/pokemon/charmander/back.png
Binary files differ
diff --git a/gfx/pokemon/charmeleon/back.png b/gfx/pokemon/charmeleon/back.png
index dea09359..bd34e345 100644
--- a/gfx/pokemon/charmeleon/back.png
+++ b/gfx/pokemon/charmeleon/back.png
Binary files differ
diff --git a/gfx/pokemon/chikorita/back.png b/gfx/pokemon/chikorita/back.png
index 52e92f9c..e1c4989a 100644
--- a/gfx/pokemon/chikorita/back.png
+++ b/gfx/pokemon/chikorita/back.png
Binary files differ
diff --git a/gfx/pokemon/chinchou/back.png b/gfx/pokemon/chinchou/back.png
index 167c80c2..31288938 100644
--- a/gfx/pokemon/chinchou/back.png
+++ b/gfx/pokemon/chinchou/back.png
Binary files differ
diff --git a/gfx/pokemon/clefable/back.png b/gfx/pokemon/clefable/back.png
index 1ba42f95..21e1570c 100644
--- a/gfx/pokemon/clefable/back.png
+++ b/gfx/pokemon/clefable/back.png
Binary files differ
diff --git a/gfx/pokemon/clefairy/back.png b/gfx/pokemon/clefairy/back.png
index 76a23e38..6d46184c 100644
--- a/gfx/pokemon/clefairy/back.png
+++ b/gfx/pokemon/clefairy/back.png
Binary files differ
diff --git a/gfx/pokemon/cleffa/back.png b/gfx/pokemon/cleffa/back.png
index 1fa66cfe..c888fef1 100644
--- a/gfx/pokemon/cleffa/back.png
+++ b/gfx/pokemon/cleffa/back.png
Binary files differ
diff --git a/gfx/pokemon/cloyster/back.png b/gfx/pokemon/cloyster/back.png
index 6b6d7b1a..f9dcec88 100644
--- a/gfx/pokemon/cloyster/back.png
+++ b/gfx/pokemon/cloyster/back.png
Binary files differ
diff --git a/gfx/pokemon/corsola/back.png b/gfx/pokemon/corsola/back.png
index d911eeb7..3ee1c222 100644
--- a/gfx/pokemon/corsola/back.png
+++ b/gfx/pokemon/corsola/back.png
Binary files differ
diff --git a/gfx/pokemon/crobat/back.png b/gfx/pokemon/crobat/back.png
index 9bfa8de7..944c3a87 100644
--- a/gfx/pokemon/crobat/back.png
+++ b/gfx/pokemon/crobat/back.png
Binary files differ
diff --git a/gfx/pokemon/croconaw/back.png b/gfx/pokemon/croconaw/back.png
index f021db4a..7fe41053 100644
--- a/gfx/pokemon/croconaw/back.png
+++ b/gfx/pokemon/croconaw/back.png
Binary files differ
diff --git a/gfx/pokemon/cubone/back.png b/gfx/pokemon/cubone/back.png
index 9c512e1d..b7196dee 100644
--- a/gfx/pokemon/cubone/back.png
+++ b/gfx/pokemon/cubone/back.png
Binary files differ
diff --git a/gfx/pokemon/cyndaquil/back.png b/gfx/pokemon/cyndaquil/back.png
index 26ac3d7b..4e0664be 100644
--- a/gfx/pokemon/cyndaquil/back.png
+++ b/gfx/pokemon/cyndaquil/back.png
Binary files differ
diff --git a/gfx/pokemon/delibird/back.png b/gfx/pokemon/delibird/back.png
index f0342689..367d6055 100644
--- a/gfx/pokemon/delibird/back.png
+++ b/gfx/pokemon/delibird/back.png
Binary files differ
diff --git a/gfx/pokemon/dewgong/back.png b/gfx/pokemon/dewgong/back.png
index 1264e7f4..9544f9c2 100644
--- a/gfx/pokemon/dewgong/back.png
+++ b/gfx/pokemon/dewgong/back.png
Binary files differ
diff --git a/gfx/pokemon/diglett/back.png b/gfx/pokemon/diglett/back.png
index 55467aa4..cde3b07f 100644
--- a/gfx/pokemon/diglett/back.png
+++ b/gfx/pokemon/diglett/back.png
Binary files differ
diff --git a/gfx/pokemon/ditto/back.png b/gfx/pokemon/ditto/back.png
index ef743b36..bf1f4cb1 100644
--- a/gfx/pokemon/ditto/back.png
+++ b/gfx/pokemon/ditto/back.png
Binary files differ
diff --git a/gfx/pokemon/dodrio/back.png b/gfx/pokemon/dodrio/back.png
index 0d8dd772..abc23288 100644
--- a/gfx/pokemon/dodrio/back.png
+++ b/gfx/pokemon/dodrio/back.png
Binary files differ
diff --git a/gfx/pokemon/doduo/back.png b/gfx/pokemon/doduo/back.png
index 23210c5e..e74731ee 100644
--- a/gfx/pokemon/doduo/back.png
+++ b/gfx/pokemon/doduo/back.png
Binary files differ
diff --git a/gfx/pokemon/donphan/back.png b/gfx/pokemon/donphan/back.png
index 6be54286..a156f85b 100644
--- a/gfx/pokemon/donphan/back.png
+++ b/gfx/pokemon/donphan/back.png
Binary files differ
diff --git a/gfx/pokemon/dragonair/back.png b/gfx/pokemon/dragonair/back.png
index 81c446dd..9fc80da7 100644
--- a/gfx/pokemon/dragonair/back.png
+++ b/gfx/pokemon/dragonair/back.png
Binary files differ
diff --git a/gfx/pokemon/dragonite/back.png b/gfx/pokemon/dragonite/back.png
index 82960dc0..f267424e 100644
--- a/gfx/pokemon/dragonite/back.png
+++ b/gfx/pokemon/dragonite/back.png
Binary files differ
diff --git a/gfx/pokemon/dratini/back.png b/gfx/pokemon/dratini/back.png
index c5d7490f..81dd2a4a 100644
--- a/gfx/pokemon/dratini/back.png
+++ b/gfx/pokemon/dratini/back.png
Binary files differ
diff --git a/gfx/pokemon/drowzee/back.png b/gfx/pokemon/drowzee/back.png
index 2beaa18d..8186a952 100644
--- a/gfx/pokemon/drowzee/back.png
+++ b/gfx/pokemon/drowzee/back.png
Binary files differ
diff --git a/gfx/pokemon/dugtrio/back.png b/gfx/pokemon/dugtrio/back.png
index 0b1089aa..c1bca81b 100644
--- a/gfx/pokemon/dugtrio/back.png
+++ b/gfx/pokemon/dugtrio/back.png
Binary files differ
diff --git a/gfx/pokemon/dunsparce/back.png b/gfx/pokemon/dunsparce/back.png
index 46d9043f..075e088c 100644
--- a/gfx/pokemon/dunsparce/back.png
+++ b/gfx/pokemon/dunsparce/back.png
Binary files differ
diff --git a/gfx/pokemon/eevee/back.png b/gfx/pokemon/eevee/back.png
index 437d3b38..73e20b9c 100644
--- a/gfx/pokemon/eevee/back.png
+++ b/gfx/pokemon/eevee/back.png
Binary files differ
diff --git a/gfx/pokemon/ekans/back.png b/gfx/pokemon/ekans/back.png
index 3f4b3a66..0da5bc1c 100644
--- a/gfx/pokemon/ekans/back.png
+++ b/gfx/pokemon/ekans/back.png
Binary files differ
diff --git a/gfx/pokemon/electabuzz/back.png b/gfx/pokemon/electabuzz/back.png
index 196b7da0..73496522 100644
--- a/gfx/pokemon/electabuzz/back.png
+++ b/gfx/pokemon/electabuzz/back.png
Binary files differ
diff --git a/gfx/pokemon/electrode/back.png b/gfx/pokemon/electrode/back.png
index 6df66ee2..7166f81e 100644
--- a/gfx/pokemon/electrode/back.png
+++ b/gfx/pokemon/electrode/back.png
Binary files differ
diff --git a/gfx/pokemon/elekid/back.png b/gfx/pokemon/elekid/back.png
index 8920e3d4..8049ca5a 100644
--- a/gfx/pokemon/elekid/back.png
+++ b/gfx/pokemon/elekid/back.png
Binary files differ
diff --git a/gfx/pokemon/entei/back.png b/gfx/pokemon/entei/back.png
index c4c887fc..321f3795 100644
--- a/gfx/pokemon/entei/back.png
+++ b/gfx/pokemon/entei/back.png
Binary files differ
diff --git a/gfx/pokemon/espeon/back.png b/gfx/pokemon/espeon/back.png
index 28501518..4a70c403 100644
--- a/gfx/pokemon/espeon/back.png
+++ b/gfx/pokemon/espeon/back.png
Binary files differ
diff --git a/gfx/pokemon/exeggcute/back.png b/gfx/pokemon/exeggcute/back.png
index 1939fd8d..dea8ff4a 100644
--- a/gfx/pokemon/exeggcute/back.png
+++ b/gfx/pokemon/exeggcute/back.png
Binary files differ
diff --git a/gfx/pokemon/exeggutor/back.png b/gfx/pokemon/exeggutor/back.png
index 8aec57ff..db0d44b4 100644
--- a/gfx/pokemon/exeggutor/back.png
+++ b/gfx/pokemon/exeggutor/back.png
Binary files differ
diff --git a/gfx/pokemon/farfetch_d/back.png b/gfx/pokemon/farfetch_d/back.png
index 329afe7f..b7f1ce41 100644
--- a/gfx/pokemon/farfetch_d/back.png
+++ b/gfx/pokemon/farfetch_d/back.png
Binary files differ
diff --git a/gfx/pokemon/fearow/back.png b/gfx/pokemon/fearow/back.png
index 6496c9a4..1e88d2ad 100644
--- a/gfx/pokemon/fearow/back.png
+++ b/gfx/pokemon/fearow/back.png
Binary files differ
diff --git a/gfx/pokemon/feraligatr/back.png b/gfx/pokemon/feraligatr/back.png
index c53b52d3..276fc8d9 100644
--- a/gfx/pokemon/feraligatr/back.png
+++ b/gfx/pokemon/feraligatr/back.png
Binary files differ
diff --git a/gfx/pokemon/flaaffy/back.png b/gfx/pokemon/flaaffy/back.png
index b2a57c18..d6a29e8b 100644
--- a/gfx/pokemon/flaaffy/back.png
+++ b/gfx/pokemon/flaaffy/back.png
Binary files differ
diff --git a/gfx/pokemon/flareon/back.png b/gfx/pokemon/flareon/back.png
index 0b6afd16..4b68451c 100644
--- a/gfx/pokemon/flareon/back.png
+++ b/gfx/pokemon/flareon/back.png
Binary files differ
diff --git a/gfx/pokemon/forretress/back.png b/gfx/pokemon/forretress/back.png
index ba02ef7d..55854e00 100644
--- a/gfx/pokemon/forretress/back.png
+++ b/gfx/pokemon/forretress/back.png
Binary files differ
diff --git a/gfx/pokemon/furret/back.png b/gfx/pokemon/furret/back.png
index ec718694..906e6e7f 100644
--- a/gfx/pokemon/furret/back.png
+++ b/gfx/pokemon/furret/back.png
Binary files differ
diff --git a/gfx/pokemon/gastly/back.png b/gfx/pokemon/gastly/back.png
index 1494e35c..6147a3c4 100644
--- a/gfx/pokemon/gastly/back.png
+++ b/gfx/pokemon/gastly/back.png
Binary files differ
diff --git a/gfx/pokemon/gengar/back.png b/gfx/pokemon/gengar/back.png
index cfecb2db..5e190532 100644
--- a/gfx/pokemon/gengar/back.png
+++ b/gfx/pokemon/gengar/back.png
Binary files differ
diff --git a/gfx/pokemon/geodude/back.png b/gfx/pokemon/geodude/back.png
index 50bbe758..0b3acd0c 100644
--- a/gfx/pokemon/geodude/back.png
+++ b/gfx/pokemon/geodude/back.png
Binary files differ
diff --git a/gfx/pokemon/girafarig/back.png b/gfx/pokemon/girafarig/back.png
index 459f3d30..e5948243 100644
--- a/gfx/pokemon/girafarig/back.png
+++ b/gfx/pokemon/girafarig/back.png
Binary files differ
diff --git a/gfx/pokemon/gligar/back.png b/gfx/pokemon/gligar/back.png
index a0886ef4..64bcc503 100644
--- a/gfx/pokemon/gligar/back.png
+++ b/gfx/pokemon/gligar/back.png
Binary files differ
diff --git a/gfx/pokemon/gloom/back.png b/gfx/pokemon/gloom/back.png
index f6705a87..e7a93160 100644
--- a/gfx/pokemon/gloom/back.png
+++ b/gfx/pokemon/gloom/back.png
Binary files differ
diff --git a/gfx/pokemon/golbat/back.png b/gfx/pokemon/golbat/back.png
index abf7b8ef..3adbe0b4 100644
--- a/gfx/pokemon/golbat/back.png
+++ b/gfx/pokemon/golbat/back.png
Binary files differ
diff --git a/gfx/pokemon/goldeen/back.png b/gfx/pokemon/goldeen/back.png
index c403fcfb..7644dc34 100644
--- a/gfx/pokemon/goldeen/back.png
+++ b/gfx/pokemon/goldeen/back.png
Binary files differ
diff --git a/gfx/pokemon/golduck/back.png b/gfx/pokemon/golduck/back.png
index 9888fab3..ac66ec50 100644
--- a/gfx/pokemon/golduck/back.png
+++ b/gfx/pokemon/golduck/back.png
Binary files differ
diff --git a/gfx/pokemon/golem/back.png b/gfx/pokemon/golem/back.png
index 1a91f8c1..ecde892d 100644
--- a/gfx/pokemon/golem/back.png
+++ b/gfx/pokemon/golem/back.png
Binary files differ
diff --git a/gfx/pokemon/granbull/back.png b/gfx/pokemon/granbull/back.png
index 60eaa7d0..a08fe4f3 100644
--- a/gfx/pokemon/granbull/back.png
+++ b/gfx/pokemon/granbull/back.png
Binary files differ
diff --git a/gfx/pokemon/graveler/back.png b/gfx/pokemon/graveler/back.png
index 64bb1f9b..9ed5324b 100644
--- a/gfx/pokemon/graveler/back.png
+++ b/gfx/pokemon/graveler/back.png
Binary files differ
diff --git a/gfx/pokemon/grimer/back.png b/gfx/pokemon/grimer/back.png
index 410eba71..513e6dee 100644
--- a/gfx/pokemon/grimer/back.png
+++ b/gfx/pokemon/grimer/back.png
Binary files differ
diff --git a/gfx/pokemon/growlithe/back.png b/gfx/pokemon/growlithe/back.png
index 3c08be67..05ea21e7 100644
--- a/gfx/pokemon/growlithe/back.png
+++ b/gfx/pokemon/growlithe/back.png
Binary files differ
diff --git a/gfx/pokemon/gyarados/back.png b/gfx/pokemon/gyarados/back.png
index 6ee506c9..4c26c71c 100644
--- a/gfx/pokemon/gyarados/back.png
+++ b/gfx/pokemon/gyarados/back.png
Binary files differ
diff --git a/gfx/pokemon/haunter/back.png b/gfx/pokemon/haunter/back.png
index 2da5baad..204e1987 100644
--- a/gfx/pokemon/haunter/back.png
+++ b/gfx/pokemon/haunter/back.png
Binary files differ
diff --git a/gfx/pokemon/heracross/back.png b/gfx/pokemon/heracross/back.png
index 93370c3c..9b0e3e18 100644
--- a/gfx/pokemon/heracross/back.png
+++ b/gfx/pokemon/heracross/back.png
Binary files differ
diff --git a/gfx/pokemon/hitmonchan/back.png b/gfx/pokemon/hitmonchan/back.png
index c2c2be77..6a2e663e 100644
--- a/gfx/pokemon/hitmonchan/back.png
+++ b/gfx/pokemon/hitmonchan/back.png
Binary files differ
diff --git a/gfx/pokemon/hitmonlee/back.png b/gfx/pokemon/hitmonlee/back.png
index 6802fc42..9bc03d5e 100644
--- a/gfx/pokemon/hitmonlee/back.png
+++ b/gfx/pokemon/hitmonlee/back.png
Binary files differ
diff --git a/gfx/pokemon/hitmontop/back.png b/gfx/pokemon/hitmontop/back.png
index 92a71342..18817258 100644
--- a/gfx/pokemon/hitmontop/back.png
+++ b/gfx/pokemon/hitmontop/back.png
Binary files differ
diff --git a/gfx/pokemon/ho_oh/back.png b/gfx/pokemon/ho_oh/back.png
index 37c16359..c28d038d 100644
--- a/gfx/pokemon/ho_oh/back.png
+++ b/gfx/pokemon/ho_oh/back.png
Binary files differ
diff --git a/gfx/pokemon/hoothoot/back.png b/gfx/pokemon/hoothoot/back.png
index 66ce4a20..73247ff3 100644
--- a/gfx/pokemon/hoothoot/back.png
+++ b/gfx/pokemon/hoothoot/back.png
Binary files differ
diff --git a/gfx/pokemon/hoppip/back.png b/gfx/pokemon/hoppip/back.png
index 47f404e4..e4e99c16 100644
--- a/gfx/pokemon/hoppip/back.png
+++ b/gfx/pokemon/hoppip/back.png
Binary files differ
diff --git a/gfx/pokemon/horsea/back.png b/gfx/pokemon/horsea/back.png
index 56a07fe7..70c34e67 100644
--- a/gfx/pokemon/horsea/back.png
+++ b/gfx/pokemon/horsea/back.png
Binary files differ
diff --git a/gfx/pokemon/houndoom/back.png b/gfx/pokemon/houndoom/back.png
index 57a3e067..149f7824 100644
--- a/gfx/pokemon/houndoom/back.png
+++ b/gfx/pokemon/houndoom/back.png
Binary files differ
diff --git a/gfx/pokemon/houndour/back.png b/gfx/pokemon/houndour/back.png
index b517e449..9bad2fc5 100644
--- a/gfx/pokemon/houndour/back.png
+++ b/gfx/pokemon/houndour/back.png
Binary files differ
diff --git a/gfx/pokemon/hypno/back.png b/gfx/pokemon/hypno/back.png
index 18d1e209..a1615371 100644
--- a/gfx/pokemon/hypno/back.png
+++ b/gfx/pokemon/hypno/back.png
Binary files differ
diff --git a/gfx/pokemon/igglybuff/back.png b/gfx/pokemon/igglybuff/back.png
index 7aa91618..a494070f 100644
--- a/gfx/pokemon/igglybuff/back.png
+++ b/gfx/pokemon/igglybuff/back.png
Binary files differ
diff --git a/gfx/pokemon/ivysaur/back.png b/gfx/pokemon/ivysaur/back.png
index fdac3e63..5eabcc52 100644
--- a/gfx/pokemon/ivysaur/back.png
+++ b/gfx/pokemon/ivysaur/back.png
Binary files differ
diff --git a/gfx/pokemon/jigglypuff/back.png b/gfx/pokemon/jigglypuff/back.png
index af1477ec..9563cd91 100644
--- a/gfx/pokemon/jigglypuff/back.png
+++ b/gfx/pokemon/jigglypuff/back.png
Binary files differ
diff --git a/gfx/pokemon/jolteon/back.png b/gfx/pokemon/jolteon/back.png
index 63ecd9b3..0bf798eb 100644
--- a/gfx/pokemon/jolteon/back.png
+++ b/gfx/pokemon/jolteon/back.png
Binary files differ
diff --git a/gfx/pokemon/jumpluff/back.png b/gfx/pokemon/jumpluff/back.png
index 7cabe977..0755b782 100644
--- a/gfx/pokemon/jumpluff/back.png
+++ b/gfx/pokemon/jumpluff/back.png
Binary files differ
diff --git a/gfx/pokemon/jynx/back.png b/gfx/pokemon/jynx/back.png
index 2b5e9c14..88fbb22e 100644
--- a/gfx/pokemon/jynx/back.png
+++ b/gfx/pokemon/jynx/back.png
Binary files differ
diff --git a/gfx/pokemon/kabuto/back.png b/gfx/pokemon/kabuto/back.png
index e0033242..f15bedc7 100644
--- a/gfx/pokemon/kabuto/back.png
+++ b/gfx/pokemon/kabuto/back.png
Binary files differ
diff --git a/gfx/pokemon/kabutops/back.png b/gfx/pokemon/kabutops/back.png
index bf059f50..73c6308a 100644
--- a/gfx/pokemon/kabutops/back.png
+++ b/gfx/pokemon/kabutops/back.png
Binary files differ
diff --git a/gfx/pokemon/kadabra/back.png b/gfx/pokemon/kadabra/back.png
index e4eda926..20f615a8 100644
--- a/gfx/pokemon/kadabra/back.png
+++ b/gfx/pokemon/kadabra/back.png
Binary files differ
diff --git a/gfx/pokemon/kakuna/back.png b/gfx/pokemon/kakuna/back.png
index ab5059df..f32f1eac 100644
--- a/gfx/pokemon/kakuna/back.png
+++ b/gfx/pokemon/kakuna/back.png
Binary files differ
diff --git a/gfx/pokemon/kangaskhan/back.png b/gfx/pokemon/kangaskhan/back.png
index a0ccd723..258f6d8e 100644
--- a/gfx/pokemon/kangaskhan/back.png
+++ b/gfx/pokemon/kangaskhan/back.png
Binary files differ
diff --git a/gfx/pokemon/kingdra/back.png b/gfx/pokemon/kingdra/back.png
index 6d760b8e..7fe5e33d 100644
--- a/gfx/pokemon/kingdra/back.png
+++ b/gfx/pokemon/kingdra/back.png
Binary files differ
diff --git a/gfx/pokemon/kingler/back.png b/gfx/pokemon/kingler/back.png
index 1af033f8..02e05805 100644
--- a/gfx/pokemon/kingler/back.png
+++ b/gfx/pokemon/kingler/back.png
Binary files differ
diff --git a/gfx/pokemon/koffing/back.png b/gfx/pokemon/koffing/back.png
index 7ec182bb..fd156a89 100644
--- a/gfx/pokemon/koffing/back.png
+++ b/gfx/pokemon/koffing/back.png
Binary files differ
diff --git a/gfx/pokemon/krabby/back.png b/gfx/pokemon/krabby/back.png
index ce05e404..baf5a048 100644
--- a/gfx/pokemon/krabby/back.png
+++ b/gfx/pokemon/krabby/back.png
Binary files differ
diff --git a/gfx/pokemon/lanturn/back.png b/gfx/pokemon/lanturn/back.png
index c6ac945d..7d46b05b 100644
--- a/gfx/pokemon/lanturn/back.png
+++ b/gfx/pokemon/lanturn/back.png
Binary files differ
diff --git a/gfx/pokemon/lapras/back.png b/gfx/pokemon/lapras/back.png
index fed28209..9c17ce37 100644
--- a/gfx/pokemon/lapras/back.png
+++ b/gfx/pokemon/lapras/back.png
Binary files differ
diff --git a/gfx/pokemon/larvitar/back.png b/gfx/pokemon/larvitar/back.png
index 07fd2c24..84e51b20 100644
--- a/gfx/pokemon/larvitar/back.png
+++ b/gfx/pokemon/larvitar/back.png
Binary files differ
diff --git a/gfx/pokemon/ledian/back.png b/gfx/pokemon/ledian/back.png
index e8ae361f..9951dc03 100644
--- a/gfx/pokemon/ledian/back.png
+++ b/gfx/pokemon/ledian/back.png
Binary files differ
diff --git a/gfx/pokemon/ledyba/back.png b/gfx/pokemon/ledyba/back.png
index 86971bd7..c0cc066e 100644
--- a/gfx/pokemon/ledyba/back.png
+++ b/gfx/pokemon/ledyba/back.png
Binary files differ
diff --git a/gfx/pokemon/lickitung/back.png b/gfx/pokemon/lickitung/back.png
index ceaa02c1..dd6276d7 100644
--- a/gfx/pokemon/lickitung/back.png
+++ b/gfx/pokemon/lickitung/back.png
Binary files differ
diff --git a/gfx/pokemon/lugia/back.png b/gfx/pokemon/lugia/back.png
index ea0979f5..a46c6144 100644
--- a/gfx/pokemon/lugia/back.png
+++ b/gfx/pokemon/lugia/back.png
Binary files differ
diff --git a/gfx/pokemon/machamp/back.png b/gfx/pokemon/machamp/back.png
index 4b401727..9fd20fd7 100644
--- a/gfx/pokemon/machamp/back.png
+++ b/gfx/pokemon/machamp/back.png
Binary files differ
diff --git a/gfx/pokemon/machoke/back.png b/gfx/pokemon/machoke/back.png
index 1b96257c..a6f9c2c4 100644
--- a/gfx/pokemon/machoke/back.png
+++ b/gfx/pokemon/machoke/back.png
Binary files differ
diff --git a/gfx/pokemon/machop/back.png b/gfx/pokemon/machop/back.png
index 12856e03..e463bd45 100644
--- a/gfx/pokemon/machop/back.png
+++ b/gfx/pokemon/machop/back.png
Binary files differ
diff --git a/gfx/pokemon/magby/back.png b/gfx/pokemon/magby/back.png
index 0a96ff27..9d3aec36 100644
--- a/gfx/pokemon/magby/back.png
+++ b/gfx/pokemon/magby/back.png
Binary files differ
diff --git a/gfx/pokemon/magcargo/back.png b/gfx/pokemon/magcargo/back.png
index 6047c54d..c3179d10 100644
--- a/gfx/pokemon/magcargo/back.png
+++ b/gfx/pokemon/magcargo/back.png
Binary files differ
diff --git a/gfx/pokemon/magikarp/back.png b/gfx/pokemon/magikarp/back.png
index ce191de5..94efb9b9 100644
--- a/gfx/pokemon/magikarp/back.png
+++ b/gfx/pokemon/magikarp/back.png
Binary files differ
diff --git a/gfx/pokemon/magmar/back.png b/gfx/pokemon/magmar/back.png
index 74a5aa7a..e6fe59fb 100644
--- a/gfx/pokemon/magmar/back.png
+++ b/gfx/pokemon/magmar/back.png
Binary files differ
diff --git a/gfx/pokemon/magnemite/back.png b/gfx/pokemon/magnemite/back.png
index 27c6ccf4..c2f9170d 100644
--- a/gfx/pokemon/magnemite/back.png
+++ b/gfx/pokemon/magnemite/back.png
Binary files differ
diff --git a/gfx/pokemon/magneton/back.png b/gfx/pokemon/magneton/back.png
index b2adf35e..4e803e68 100644
--- a/gfx/pokemon/magneton/back.png
+++ b/gfx/pokemon/magneton/back.png
Binary files differ
diff --git a/gfx/pokemon/mankey/back.png b/gfx/pokemon/mankey/back.png
index c5d6b982..ba4901ea 100644
--- a/gfx/pokemon/mankey/back.png
+++ b/gfx/pokemon/mankey/back.png
Binary files differ
diff --git a/gfx/pokemon/mantine/back.png b/gfx/pokemon/mantine/back.png
index 60c503e5..698da832 100644
--- a/gfx/pokemon/mantine/back.png
+++ b/gfx/pokemon/mantine/back.png
Binary files differ
diff --git a/gfx/pokemon/mareep/back.png b/gfx/pokemon/mareep/back.png
index 82f1f0b1..f0a89696 100644
--- a/gfx/pokemon/mareep/back.png
+++ b/gfx/pokemon/mareep/back.png
Binary files differ
diff --git a/gfx/pokemon/marill/back.png b/gfx/pokemon/marill/back.png
index 54ce857e..59af13b3 100644
--- a/gfx/pokemon/marill/back.png
+++ b/gfx/pokemon/marill/back.png
Binary files differ
diff --git a/gfx/pokemon/marowak/back.png b/gfx/pokemon/marowak/back.png
index 7b3f42eb..be123465 100644
--- a/gfx/pokemon/marowak/back.png
+++ b/gfx/pokemon/marowak/back.png
Binary files differ
diff --git a/gfx/pokemon/meganium/back.png b/gfx/pokemon/meganium/back.png
index 29a7f177..1688601b 100644
--- a/gfx/pokemon/meganium/back.png
+++ b/gfx/pokemon/meganium/back.png
Binary files differ
diff --git a/gfx/pokemon/meowth/back.png b/gfx/pokemon/meowth/back.png
index f9c1cc59..c8a39942 100644
--- a/gfx/pokemon/meowth/back.png
+++ b/gfx/pokemon/meowth/back.png
Binary files differ
diff --git a/gfx/pokemon/metapod/back.png b/gfx/pokemon/metapod/back.png
index 459a32f5..7906fb6b 100644
--- a/gfx/pokemon/metapod/back.png
+++ b/gfx/pokemon/metapod/back.png
Binary files differ
diff --git a/gfx/pokemon/mew/back.png b/gfx/pokemon/mew/back.png
index e0cc4ed3..310328a3 100644
--- a/gfx/pokemon/mew/back.png
+++ b/gfx/pokemon/mew/back.png
Binary files differ
diff --git a/gfx/pokemon/mewtwo/back.png b/gfx/pokemon/mewtwo/back.png
index ab3cb616..57b378ba 100644
--- a/gfx/pokemon/mewtwo/back.png
+++ b/gfx/pokemon/mewtwo/back.png
Binary files differ
diff --git a/gfx/pokemon/miltank/back.png b/gfx/pokemon/miltank/back.png
index aeed8f47..07a4dc23 100644
--- a/gfx/pokemon/miltank/back.png
+++ b/gfx/pokemon/miltank/back.png
Binary files differ
diff --git a/gfx/pokemon/misdreavus/back.png b/gfx/pokemon/misdreavus/back.png
index d50b2384..890f1da2 100644
--- a/gfx/pokemon/misdreavus/back.png
+++ b/gfx/pokemon/misdreavus/back.png
Binary files differ
diff --git a/gfx/pokemon/moltres/back.png b/gfx/pokemon/moltres/back.png
index 0a250ecf..b8df5c69 100644
--- a/gfx/pokemon/moltres/back.png
+++ b/gfx/pokemon/moltres/back.png
Binary files differ
diff --git a/gfx/pokemon/mr__mime/back.png b/gfx/pokemon/mr__mime/back.png
index e72c4424..6deab192 100644
--- a/gfx/pokemon/mr__mime/back.png
+++ b/gfx/pokemon/mr__mime/back.png
Binary files differ
diff --git a/gfx/pokemon/muk/back.png b/gfx/pokemon/muk/back.png
index 4eed9a6c..e610da01 100644
--- a/gfx/pokemon/muk/back.png
+++ b/gfx/pokemon/muk/back.png
Binary files differ
diff --git a/gfx/pokemon/murkrow/back.png b/gfx/pokemon/murkrow/back.png
index 6abe317c..489de91b 100644
--- a/gfx/pokemon/murkrow/back.png
+++ b/gfx/pokemon/murkrow/back.png
Binary files differ
diff --git a/gfx/pokemon/natu/back.png b/gfx/pokemon/natu/back.png
index 5130d815..4fbe9605 100644
--- a/gfx/pokemon/natu/back.png
+++ b/gfx/pokemon/natu/back.png
Binary files differ
diff --git a/gfx/pokemon/nidoking/back.png b/gfx/pokemon/nidoking/back.png
index 05b304c3..009380c8 100644
--- a/gfx/pokemon/nidoking/back.png
+++ b/gfx/pokemon/nidoking/back.png
Binary files differ
diff --git a/gfx/pokemon/nidoqueen/back.png b/gfx/pokemon/nidoqueen/back.png
index da16efd2..ed43b1ff 100644
--- a/gfx/pokemon/nidoqueen/back.png
+++ b/gfx/pokemon/nidoqueen/back.png
Binary files differ
diff --git a/gfx/pokemon/nidoran_f/back.png b/gfx/pokemon/nidoran_f/back.png
index 50bc3899..f6cd672f 100644
--- a/gfx/pokemon/nidoran_f/back.png
+++ b/gfx/pokemon/nidoran_f/back.png
Binary files differ
diff --git a/gfx/pokemon/nidoran_m/back.png b/gfx/pokemon/nidoran_m/back.png
index 72d4d5bb..8fafe4e9 100644
--- a/gfx/pokemon/nidoran_m/back.png
+++ b/gfx/pokemon/nidoran_m/back.png
Binary files differ
diff --git a/gfx/pokemon/nidorina/back.png b/gfx/pokemon/nidorina/back.png
index 245b0054..e0a8ec12 100644
--- a/gfx/pokemon/nidorina/back.png
+++ b/gfx/pokemon/nidorina/back.png
Binary files differ
diff --git a/gfx/pokemon/nidorino/back.png b/gfx/pokemon/nidorino/back.png
index 9a556eb1..a98253f5 100644
--- a/gfx/pokemon/nidorino/back.png
+++ b/gfx/pokemon/nidorino/back.png
Binary files differ
diff --git a/gfx/pokemon/ninetales/back.png b/gfx/pokemon/ninetales/back.png
index 86033ea4..fb14317f 100644
--- a/gfx/pokemon/ninetales/back.png
+++ b/gfx/pokemon/ninetales/back.png
Binary files differ
diff --git a/gfx/pokemon/noctowl/back.png b/gfx/pokemon/noctowl/back.png
index 152decf6..6f723794 100644
--- a/gfx/pokemon/noctowl/back.png
+++ b/gfx/pokemon/noctowl/back.png
Binary files differ
diff --git a/gfx/pokemon/octillery/back.png b/gfx/pokemon/octillery/back.png
index 1c63b8bf..8717ea07 100644
--- a/gfx/pokemon/octillery/back.png
+++ b/gfx/pokemon/octillery/back.png
Binary files differ
diff --git a/gfx/pokemon/oddish/back.png b/gfx/pokemon/oddish/back.png
index 6e47be0d..3fc8641c 100644
--- a/gfx/pokemon/oddish/back.png
+++ b/gfx/pokemon/oddish/back.png
Binary files differ
diff --git a/gfx/pokemon/omanyte/back.png b/gfx/pokemon/omanyte/back.png
index fb1bbd40..1c2b934e 100644
--- a/gfx/pokemon/omanyte/back.png
+++ b/gfx/pokemon/omanyte/back.png
Binary files differ
diff --git a/gfx/pokemon/omastar/back.png b/gfx/pokemon/omastar/back.png
index 2b15a9b8..962f5666 100644
--- a/gfx/pokemon/omastar/back.png
+++ b/gfx/pokemon/omastar/back.png
Binary files differ
diff --git a/gfx/pokemon/onix/back.png b/gfx/pokemon/onix/back.png
index 2e0a6585..89deeb6e 100644
--- a/gfx/pokemon/onix/back.png
+++ b/gfx/pokemon/onix/back.png
Binary files differ
diff --git a/gfx/pokemon/paras/back.png b/gfx/pokemon/paras/back.png
index 7d4cc583..c638e027 100644
--- a/gfx/pokemon/paras/back.png
+++ b/gfx/pokemon/paras/back.png
Binary files differ
diff --git a/gfx/pokemon/parasect/back.png b/gfx/pokemon/parasect/back.png
index 75ac2460..c0707e7b 100644
--- a/gfx/pokemon/parasect/back.png
+++ b/gfx/pokemon/parasect/back.png
Binary files differ
diff --git a/gfx/pokemon/persian/back.png b/gfx/pokemon/persian/back.png
index e61e720f..476964b8 100644
--- a/gfx/pokemon/persian/back.png
+++ b/gfx/pokemon/persian/back.png
Binary files differ
diff --git a/gfx/pokemon/phanpy/back.png b/gfx/pokemon/phanpy/back.png
index 0bf7f11c..13570ee3 100644
--- a/gfx/pokemon/phanpy/back.png
+++ b/gfx/pokemon/phanpy/back.png
Binary files differ
diff --git a/gfx/pokemon/pichu/back.png b/gfx/pokemon/pichu/back.png
index c17213c8..628c1974 100644
--- a/gfx/pokemon/pichu/back.png
+++ b/gfx/pokemon/pichu/back.png
Binary files differ
diff --git a/gfx/pokemon/pidgeot/back.png b/gfx/pokemon/pidgeot/back.png
index caeca40c..7689031a 100644
--- a/gfx/pokemon/pidgeot/back.png
+++ b/gfx/pokemon/pidgeot/back.png
Binary files differ
diff --git a/gfx/pokemon/pidgeotto/back.png b/gfx/pokemon/pidgeotto/back.png
index bee1d332..63158d82 100644
--- a/gfx/pokemon/pidgeotto/back.png
+++ b/gfx/pokemon/pidgeotto/back.png
Binary files differ
diff --git a/gfx/pokemon/pidgey/back.png b/gfx/pokemon/pidgey/back.png
index 266218d9..0f476c92 100644
--- a/gfx/pokemon/pidgey/back.png
+++ b/gfx/pokemon/pidgey/back.png
Binary files differ
diff --git a/gfx/pokemon/pikachu/back.png b/gfx/pokemon/pikachu/back.png
index 80a506e7..5438e0e5 100644
--- a/gfx/pokemon/pikachu/back.png
+++ b/gfx/pokemon/pikachu/back.png
Binary files differ
diff --git a/gfx/pokemon/piloswine/back.png b/gfx/pokemon/piloswine/back.png
index 187ca788..58a39828 100644
--- a/gfx/pokemon/piloswine/back.png
+++ b/gfx/pokemon/piloswine/back.png
Binary files differ
diff --git a/gfx/pokemon/pineco/back.png b/gfx/pokemon/pineco/back.png
index ced411a6..29994a43 100644
--- a/gfx/pokemon/pineco/back.png
+++ b/gfx/pokemon/pineco/back.png
Binary files differ
diff --git a/gfx/pokemon/pinsir/back.png b/gfx/pokemon/pinsir/back.png
index caf215a8..d996c321 100644
--- a/gfx/pokemon/pinsir/back.png
+++ b/gfx/pokemon/pinsir/back.png
Binary files differ
diff --git a/gfx/pokemon/politoed/back.png b/gfx/pokemon/politoed/back.png
index 9ca47219..7fa21e76 100644
--- a/gfx/pokemon/politoed/back.png
+++ b/gfx/pokemon/politoed/back.png
Binary files differ
diff --git a/gfx/pokemon/poliwag/back.png b/gfx/pokemon/poliwag/back.png
index 4085a342..9d7adb36 100644
--- a/gfx/pokemon/poliwag/back.png
+++ b/gfx/pokemon/poliwag/back.png
Binary files differ
diff --git a/gfx/pokemon/poliwhirl/back.png b/gfx/pokemon/poliwhirl/back.png
index 8068d8a2..b8218595 100644
--- a/gfx/pokemon/poliwhirl/back.png
+++ b/gfx/pokemon/poliwhirl/back.png
Binary files differ
diff --git a/gfx/pokemon/poliwrath/back.png b/gfx/pokemon/poliwrath/back.png
index d8f38da3..c7a545a0 100644
--- a/gfx/pokemon/poliwrath/back.png
+++ b/gfx/pokemon/poliwrath/back.png
Binary files differ
diff --git a/gfx/pokemon/ponyta/back.png b/gfx/pokemon/ponyta/back.png
index 1688a6d2..8f6ccb41 100644
--- a/gfx/pokemon/ponyta/back.png
+++ b/gfx/pokemon/ponyta/back.png
Binary files differ
diff --git a/gfx/pokemon/porygon/back.png b/gfx/pokemon/porygon/back.png
index 0078215b..2712e910 100644
--- a/gfx/pokemon/porygon/back.png
+++ b/gfx/pokemon/porygon/back.png
Binary files differ
diff --git a/gfx/pokemon/porygon2/back.png b/gfx/pokemon/porygon2/back.png
index 68644696..a8d7ed4e 100644
--- a/gfx/pokemon/porygon2/back.png
+++ b/gfx/pokemon/porygon2/back.png
Binary files differ
diff --git a/gfx/pokemon/primeape/back.png b/gfx/pokemon/primeape/back.png
index ae4d9cac..0c984ec6 100644
--- a/gfx/pokemon/primeape/back.png
+++ b/gfx/pokemon/primeape/back.png
Binary files differ
diff --git a/gfx/pokemon/psyduck/back.png b/gfx/pokemon/psyduck/back.png
index 7c3d55d2..997514ec 100644
--- a/gfx/pokemon/psyduck/back.png
+++ b/gfx/pokemon/psyduck/back.png
Binary files differ
diff --git a/gfx/pokemon/pupitar/back.png b/gfx/pokemon/pupitar/back.png
index 0f5aff0b..42567e82 100644
--- a/gfx/pokemon/pupitar/back.png
+++ b/gfx/pokemon/pupitar/back.png
Binary files differ
diff --git a/gfx/pokemon/quagsire/back.png b/gfx/pokemon/quagsire/back.png
index 22f70793..4682660d 100644
--- a/gfx/pokemon/quagsire/back.png
+++ b/gfx/pokemon/quagsire/back.png
Binary files differ
diff --git a/gfx/pokemon/quilava/back.png b/gfx/pokemon/quilava/back.png
index 9c952768..79b50b9b 100644
--- a/gfx/pokemon/quilava/back.png
+++ b/gfx/pokemon/quilava/back.png
Binary files differ
diff --git a/gfx/pokemon/qwilfish/back.png b/gfx/pokemon/qwilfish/back.png
index dbec000f..d28116f6 100644
--- a/gfx/pokemon/qwilfish/back.png
+++ b/gfx/pokemon/qwilfish/back.png
Binary files differ
diff --git a/gfx/pokemon/raichu/back.png b/gfx/pokemon/raichu/back.png
index 2535d7f5..36a0df5f 100644
--- a/gfx/pokemon/raichu/back.png
+++ b/gfx/pokemon/raichu/back.png
Binary files differ
diff --git a/gfx/pokemon/raikou/back.png b/gfx/pokemon/raikou/back.png
index 3977749c..859cd731 100644
--- a/gfx/pokemon/raikou/back.png
+++ b/gfx/pokemon/raikou/back.png
Binary files differ
diff --git a/gfx/pokemon/rapidash/back.png b/gfx/pokemon/rapidash/back.png
index 74acf7df..3cb27e93 100644
--- a/gfx/pokemon/rapidash/back.png
+++ b/gfx/pokemon/rapidash/back.png
Binary files differ
diff --git a/gfx/pokemon/raticate/back.png b/gfx/pokemon/raticate/back.png
index cda9af96..496847c0 100644
--- a/gfx/pokemon/raticate/back.png
+++ b/gfx/pokemon/raticate/back.png
Binary files differ
diff --git a/gfx/pokemon/rattata/back.png b/gfx/pokemon/rattata/back.png
index a9ee3a80..8854422c 100644
--- a/gfx/pokemon/rattata/back.png
+++ b/gfx/pokemon/rattata/back.png
Binary files differ
diff --git a/gfx/pokemon/remoraid/back.png b/gfx/pokemon/remoraid/back.png
index 01c51417..4c968423 100644
--- a/gfx/pokemon/remoraid/back.png
+++ b/gfx/pokemon/remoraid/back.png
Binary files differ
diff --git a/gfx/pokemon/rhydon/back.png b/gfx/pokemon/rhydon/back.png
index 8135bcd1..4b6f8986 100644
--- a/gfx/pokemon/rhydon/back.png
+++ b/gfx/pokemon/rhydon/back.png
Binary files differ
diff --git a/gfx/pokemon/rhyhorn/back.png b/gfx/pokemon/rhyhorn/back.png
index 780d5ef4..da318e5e 100644
--- a/gfx/pokemon/rhyhorn/back.png
+++ b/gfx/pokemon/rhyhorn/back.png
Binary files differ
diff --git a/gfx/pokemon/sandshrew/back.png b/gfx/pokemon/sandshrew/back.png
index 62f11221..f611401c 100644
--- a/gfx/pokemon/sandshrew/back.png
+++ b/gfx/pokemon/sandshrew/back.png
Binary files differ
diff --git a/gfx/pokemon/sandslash/back.png b/gfx/pokemon/sandslash/back.png
index 8e21bfcb..8a52da93 100644
--- a/gfx/pokemon/sandslash/back.png
+++ b/gfx/pokemon/sandslash/back.png
Binary files differ
diff --git a/gfx/pokemon/scizor/back.png b/gfx/pokemon/scizor/back.png
index 0b7a7b20..53cef907 100644
--- a/gfx/pokemon/scizor/back.png
+++ b/gfx/pokemon/scizor/back.png
Binary files differ
diff --git a/gfx/pokemon/scyther/back.png b/gfx/pokemon/scyther/back.png
index 78efca04..6af48589 100644
--- a/gfx/pokemon/scyther/back.png
+++ b/gfx/pokemon/scyther/back.png
Binary files differ
diff --git a/gfx/pokemon/seadra/back.png b/gfx/pokemon/seadra/back.png
index 91106576..daad9728 100644
--- a/gfx/pokemon/seadra/back.png
+++ b/gfx/pokemon/seadra/back.png
Binary files differ
diff --git a/gfx/pokemon/seaking/back.png b/gfx/pokemon/seaking/back.png
index bec48df3..121608b9 100644
--- a/gfx/pokemon/seaking/back.png
+++ b/gfx/pokemon/seaking/back.png
Binary files differ
diff --git a/gfx/pokemon/seel/back.png b/gfx/pokemon/seel/back.png
index 745df02e..cb346abb 100644
--- a/gfx/pokemon/seel/back.png
+++ b/gfx/pokemon/seel/back.png
Binary files differ
diff --git a/gfx/pokemon/sentret/back.png b/gfx/pokemon/sentret/back.png
index e8225bca..ce452af4 100644
--- a/gfx/pokemon/sentret/back.png
+++ b/gfx/pokemon/sentret/back.png
Binary files differ
diff --git a/gfx/pokemon/shellder/back.png b/gfx/pokemon/shellder/back.png
index e0b3b7ef..19ff5066 100644
--- a/gfx/pokemon/shellder/back.png
+++ b/gfx/pokemon/shellder/back.png
Binary files differ
diff --git a/gfx/pokemon/shuckle/back.png b/gfx/pokemon/shuckle/back.png
index 4fc29bc4..8fc3c9ae 100644
--- a/gfx/pokemon/shuckle/back.png
+++ b/gfx/pokemon/shuckle/back.png
Binary files differ
diff --git a/gfx/pokemon/skarmory/back.png b/gfx/pokemon/skarmory/back.png
index db731130..42b2c151 100644
--- a/gfx/pokemon/skarmory/back.png
+++ b/gfx/pokemon/skarmory/back.png
Binary files differ
diff --git a/gfx/pokemon/skiploom/back.png b/gfx/pokemon/skiploom/back.png
index 93a0543c..ffe1de91 100644
--- a/gfx/pokemon/skiploom/back.png
+++ b/gfx/pokemon/skiploom/back.png
Binary files differ
diff --git a/gfx/pokemon/slowbro/back.png b/gfx/pokemon/slowbro/back.png
index 0c48c655..652b35e5 100644
--- a/gfx/pokemon/slowbro/back.png
+++ b/gfx/pokemon/slowbro/back.png
Binary files differ
diff --git a/gfx/pokemon/slowking/back.png b/gfx/pokemon/slowking/back.png
index b5421a56..a8e64958 100644
--- a/gfx/pokemon/slowking/back.png
+++ b/gfx/pokemon/slowking/back.png
Binary files differ
diff --git a/gfx/pokemon/slowpoke/back.png b/gfx/pokemon/slowpoke/back.png
index 0007efa6..d8975d1f 100644
--- a/gfx/pokemon/slowpoke/back.png
+++ b/gfx/pokemon/slowpoke/back.png
Binary files differ
diff --git a/gfx/pokemon/slugma/back.png b/gfx/pokemon/slugma/back.png
index d7fd2226..54d6433a 100644
--- a/gfx/pokemon/slugma/back.png
+++ b/gfx/pokemon/slugma/back.png
Binary files differ
diff --git a/gfx/pokemon/smeargle/back.png b/gfx/pokemon/smeargle/back.png
index 21a1feb6..22ba83c3 100644
--- a/gfx/pokemon/smeargle/back.png
+++ b/gfx/pokemon/smeargle/back.png
Binary files differ
diff --git a/gfx/pokemon/smoochum/back.png b/gfx/pokemon/smoochum/back.png
index 9d20d251..576b785c 100644
--- a/gfx/pokemon/smoochum/back.png
+++ b/gfx/pokemon/smoochum/back.png
Binary files differ
diff --git a/gfx/pokemon/sneasel/back.png b/gfx/pokemon/sneasel/back.png
index 3b4af081..399e5e25 100644
--- a/gfx/pokemon/sneasel/back.png
+++ b/gfx/pokemon/sneasel/back.png
Binary files differ
diff --git a/gfx/pokemon/snorlax/back.png b/gfx/pokemon/snorlax/back.png
index 22712e27..e810afc7 100644
--- a/gfx/pokemon/snorlax/back.png
+++ b/gfx/pokemon/snorlax/back.png
Binary files differ
diff --git a/gfx/pokemon/snubbull/back.png b/gfx/pokemon/snubbull/back.png
index 7ecc1510..2c963534 100644
--- a/gfx/pokemon/snubbull/back.png
+++ b/gfx/pokemon/snubbull/back.png
Binary files differ
diff --git a/gfx/pokemon/spearow/back.png b/gfx/pokemon/spearow/back.png
index 8af97abd..91fb0f2e 100644
--- a/gfx/pokemon/spearow/back.png
+++ b/gfx/pokemon/spearow/back.png
Binary files differ
diff --git a/gfx/pokemon/spinarak/back.png b/gfx/pokemon/spinarak/back.png
index fa58d38b..8ad85a64 100644
--- a/gfx/pokemon/spinarak/back.png
+++ b/gfx/pokemon/spinarak/back.png
Binary files differ
diff --git a/gfx/pokemon/squirtle/back.png b/gfx/pokemon/squirtle/back.png
index e963412d..83dd883d 100644
--- a/gfx/pokemon/squirtle/back.png
+++ b/gfx/pokemon/squirtle/back.png
Binary files differ
diff --git a/gfx/pokemon/stantler/back.png b/gfx/pokemon/stantler/back.png
index 657d8ab1..90e7b4a6 100644
--- a/gfx/pokemon/stantler/back.png
+++ b/gfx/pokemon/stantler/back.png
Binary files differ
diff --git a/gfx/pokemon/starmie/back.png b/gfx/pokemon/starmie/back.png
index 9202bc3f..f4e67e4f 100644
--- a/gfx/pokemon/starmie/back.png
+++ b/gfx/pokemon/starmie/back.png
Binary files differ
diff --git a/gfx/pokemon/staryu/back.png b/gfx/pokemon/staryu/back.png
index 0a1210e9..9cab9636 100644
--- a/gfx/pokemon/staryu/back.png
+++ b/gfx/pokemon/staryu/back.png
Binary files differ
diff --git a/gfx/pokemon/steelix/back.png b/gfx/pokemon/steelix/back.png
index b950c37f..6788dacd 100644
--- a/gfx/pokemon/steelix/back.png
+++ b/gfx/pokemon/steelix/back.png
Binary files differ
diff --git a/gfx/pokemon/sudowoodo/back.png b/gfx/pokemon/sudowoodo/back.png
index 1c832846..2d0f5ec9 100644
--- a/gfx/pokemon/sudowoodo/back.png
+++ b/gfx/pokemon/sudowoodo/back.png
Binary files differ
diff --git a/gfx/pokemon/suicune/back.png b/gfx/pokemon/suicune/back.png
index af482841..b0245605 100644
--- a/gfx/pokemon/suicune/back.png
+++ b/gfx/pokemon/suicune/back.png
Binary files differ
diff --git a/gfx/pokemon/sunflora/back.png b/gfx/pokemon/sunflora/back.png
index dc143c0d..e30eca3b 100644
--- a/gfx/pokemon/sunflora/back.png
+++ b/gfx/pokemon/sunflora/back.png
Binary files differ
diff --git a/gfx/pokemon/sunkern/back.png b/gfx/pokemon/sunkern/back.png
index f48c0ea1..d9697107 100644
--- a/gfx/pokemon/sunkern/back.png
+++ b/gfx/pokemon/sunkern/back.png
Binary files differ
diff --git a/gfx/pokemon/swinub/back.png b/gfx/pokemon/swinub/back.png
index 1ab8c9fa..1ca3211c 100644
--- a/gfx/pokemon/swinub/back.png
+++ b/gfx/pokemon/swinub/back.png
Binary files differ
diff --git a/gfx/pokemon/tangela/back.png b/gfx/pokemon/tangela/back.png
index 511b82cc..e7421f0b 100644
--- a/gfx/pokemon/tangela/back.png
+++ b/gfx/pokemon/tangela/back.png
Binary files differ
diff --git a/gfx/pokemon/tauros/back.png b/gfx/pokemon/tauros/back.png
index b1c322f3..bdb68011 100644
--- a/gfx/pokemon/tauros/back.png
+++ b/gfx/pokemon/tauros/back.png
Binary files differ
diff --git a/gfx/pokemon/teddiursa/back.png b/gfx/pokemon/teddiursa/back.png
index aeaad870..0d464031 100644
--- a/gfx/pokemon/teddiursa/back.png
+++ b/gfx/pokemon/teddiursa/back.png
Binary files differ
diff --git a/gfx/pokemon/tentacool/back.png b/gfx/pokemon/tentacool/back.png
index 0b896efe..7a772418 100644
--- a/gfx/pokemon/tentacool/back.png
+++ b/gfx/pokemon/tentacool/back.png
Binary files differ
diff --git a/gfx/pokemon/tentacruel/back.png b/gfx/pokemon/tentacruel/back.png
index 8672720c..4430f740 100644
--- a/gfx/pokemon/tentacruel/back.png
+++ b/gfx/pokemon/tentacruel/back.png
Binary files differ
diff --git a/gfx/pokemon/togepi/back.png b/gfx/pokemon/togepi/back.png
index 1a38a5b5..de168a5a 100644
--- a/gfx/pokemon/togepi/back.png
+++ b/gfx/pokemon/togepi/back.png
Binary files differ
diff --git a/gfx/pokemon/togetic/back.png b/gfx/pokemon/togetic/back.png
index 3ccbeb31..57af9699 100644
--- a/gfx/pokemon/togetic/back.png
+++ b/gfx/pokemon/togetic/back.png
Binary files differ
diff --git a/gfx/pokemon/totodile/back.png b/gfx/pokemon/totodile/back.png
index 79193f30..47f66b3f 100644
--- a/gfx/pokemon/totodile/back.png
+++ b/gfx/pokemon/totodile/back.png
Binary files differ
diff --git a/gfx/pokemon/typhlosion/back.png b/gfx/pokemon/typhlosion/back.png
index c97228c6..e3f53de8 100644
--- a/gfx/pokemon/typhlosion/back.png
+++ b/gfx/pokemon/typhlosion/back.png
Binary files differ
diff --git a/gfx/pokemon/tyranitar/back.png b/gfx/pokemon/tyranitar/back.png
index 988495ea..07f6d1b5 100644
--- a/gfx/pokemon/tyranitar/back.png
+++ b/gfx/pokemon/tyranitar/back.png
Binary files differ
diff --git a/gfx/pokemon/tyrogue/back.png b/gfx/pokemon/tyrogue/back.png
index ce86bbf0..e0f3e6b7 100644
--- a/gfx/pokemon/tyrogue/back.png
+++ b/gfx/pokemon/tyrogue/back.png
Binary files differ
diff --git a/gfx/pokemon/umbreon/back.png b/gfx/pokemon/umbreon/back.png
index 14b1352b..67a71a9d 100644
--- a/gfx/pokemon/umbreon/back.png
+++ b/gfx/pokemon/umbreon/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_a/back.png b/gfx/pokemon/unown_a/back.png
index 3377ea6a..b5ba9024 100644
--- a/gfx/pokemon/unown_a/back.png
+++ b/gfx/pokemon/unown_a/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_b/back.png b/gfx/pokemon/unown_b/back.png
index 7a6c7f36..094f0cdb 100644
--- a/gfx/pokemon/unown_b/back.png
+++ b/gfx/pokemon/unown_b/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_c/back.png b/gfx/pokemon/unown_c/back.png
index 75dfce56..5038e66c 100644
--- a/gfx/pokemon/unown_c/back.png
+++ b/gfx/pokemon/unown_c/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_d/back.png b/gfx/pokemon/unown_d/back.png
index 2718d07c..36f9779f 100644
--- a/gfx/pokemon/unown_d/back.png
+++ b/gfx/pokemon/unown_d/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_e/back.png b/gfx/pokemon/unown_e/back.png
index ff917062..e1e9702a 100644
--- a/gfx/pokemon/unown_e/back.png
+++ b/gfx/pokemon/unown_e/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_f/back.png b/gfx/pokemon/unown_f/back.png
index 981ff1bd..14823db0 100644
--- a/gfx/pokemon/unown_f/back.png
+++ b/gfx/pokemon/unown_f/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_g/back.png b/gfx/pokemon/unown_g/back.png
index 1f8a3a69..6fa590e1 100644
--- a/gfx/pokemon/unown_g/back.png
+++ b/gfx/pokemon/unown_g/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_h/back.png b/gfx/pokemon/unown_h/back.png
index a84dcd37..9e21d160 100644
--- a/gfx/pokemon/unown_h/back.png
+++ b/gfx/pokemon/unown_h/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_i/back.png b/gfx/pokemon/unown_i/back.png
index 234cd5b8..4d65fd58 100644
--- a/gfx/pokemon/unown_i/back.png
+++ b/gfx/pokemon/unown_i/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_j/back.png b/gfx/pokemon/unown_j/back.png
index 0bf77aba..2763acec 100644
--- a/gfx/pokemon/unown_j/back.png
+++ b/gfx/pokemon/unown_j/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_k/back.png b/gfx/pokemon/unown_k/back.png
index 1c5d6c6d..cfae947a 100644
--- a/gfx/pokemon/unown_k/back.png
+++ b/gfx/pokemon/unown_k/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_l/back.png b/gfx/pokemon/unown_l/back.png
index 5c248384..36e55a61 100644
--- a/gfx/pokemon/unown_l/back.png
+++ b/gfx/pokemon/unown_l/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_m/back.png b/gfx/pokemon/unown_m/back.png
index e0ea67fb..3530f986 100644
--- a/gfx/pokemon/unown_m/back.png
+++ b/gfx/pokemon/unown_m/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_n/back.png b/gfx/pokemon/unown_n/back.png
index 44b46381..60cc4cf8 100644
--- a/gfx/pokemon/unown_n/back.png
+++ b/gfx/pokemon/unown_n/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_o/back.png b/gfx/pokemon/unown_o/back.png
index aa784c37..673aa5d9 100644
--- a/gfx/pokemon/unown_o/back.png
+++ b/gfx/pokemon/unown_o/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_p/back.png b/gfx/pokemon/unown_p/back.png
index 2d3367b8..5bf272e9 100644
--- a/gfx/pokemon/unown_p/back.png
+++ b/gfx/pokemon/unown_p/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_q/back.png b/gfx/pokemon/unown_q/back.png
index 9441e82a..e3aca96e 100644
--- a/gfx/pokemon/unown_q/back.png
+++ b/gfx/pokemon/unown_q/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_r/back.png b/gfx/pokemon/unown_r/back.png
index 25ca17a0..2dc2feff 100644
--- a/gfx/pokemon/unown_r/back.png
+++ b/gfx/pokemon/unown_r/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_s/back.png b/gfx/pokemon/unown_s/back.png
index 22ddd006..aec13233 100644
--- a/gfx/pokemon/unown_s/back.png
+++ b/gfx/pokemon/unown_s/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_t/back.png b/gfx/pokemon/unown_t/back.png
index 00100552..f327dca0 100644
--- a/gfx/pokemon/unown_t/back.png
+++ b/gfx/pokemon/unown_t/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_u/back.png b/gfx/pokemon/unown_u/back.png
index f44e8e37..44a44322 100644
--- a/gfx/pokemon/unown_u/back.png
+++ b/gfx/pokemon/unown_u/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_v/back.png b/gfx/pokemon/unown_v/back.png
index 2f7b0876..8f752d6e 100644
--- a/gfx/pokemon/unown_v/back.png
+++ b/gfx/pokemon/unown_v/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_w/back.png b/gfx/pokemon/unown_w/back.png
index 0d314608..7e48a038 100644
--- a/gfx/pokemon/unown_w/back.png
+++ b/gfx/pokemon/unown_w/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_x/back.png b/gfx/pokemon/unown_x/back.png
index 425a37e6..878c1479 100644
--- a/gfx/pokemon/unown_x/back.png
+++ b/gfx/pokemon/unown_x/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_y/back.png b/gfx/pokemon/unown_y/back.png
index 3cb8670e..cc4045e1 100644
--- a/gfx/pokemon/unown_y/back.png
+++ b/gfx/pokemon/unown_y/back.png
Binary files differ
diff --git a/gfx/pokemon/unown_z/back.png b/gfx/pokemon/unown_z/back.png
index 5f97a8d0..573dd3b7 100644
--- a/gfx/pokemon/unown_z/back.png
+++ b/gfx/pokemon/unown_z/back.png
Binary files differ
diff --git a/gfx/pokemon/ursaring/back.png b/gfx/pokemon/ursaring/back.png
index b6bf0705..068659f0 100644
--- a/gfx/pokemon/ursaring/back.png
+++ b/gfx/pokemon/ursaring/back.png
Binary files differ
diff --git a/gfx/pokemon/vaporeon/back.png b/gfx/pokemon/vaporeon/back.png
index 660be3e8..735558cf 100644
--- a/gfx/pokemon/vaporeon/back.png
+++ b/gfx/pokemon/vaporeon/back.png
Binary files differ
diff --git a/gfx/pokemon/venomoth/back.png b/gfx/pokemon/venomoth/back.png
index 55b8ac0e..f1da1b08 100644
--- a/gfx/pokemon/venomoth/back.png
+++ b/gfx/pokemon/venomoth/back.png
Binary files differ
diff --git a/gfx/pokemon/venonat/back.png b/gfx/pokemon/venonat/back.png
index 3d584afe..e14166d9 100644
--- a/gfx/pokemon/venonat/back.png
+++ b/gfx/pokemon/venonat/back.png
Binary files differ
diff --git a/gfx/pokemon/venusaur/back.png b/gfx/pokemon/venusaur/back.png
index 4167d2b3..1555b59b 100644
--- a/gfx/pokemon/venusaur/back.png
+++ b/gfx/pokemon/venusaur/back.png
Binary files differ
diff --git a/gfx/pokemon/victreebel/back.png b/gfx/pokemon/victreebel/back.png
index 64a37781..8360d1d2 100644
--- a/gfx/pokemon/victreebel/back.png
+++ b/gfx/pokemon/victreebel/back.png
Binary files differ
diff --git a/gfx/pokemon/vileplume/back.png b/gfx/pokemon/vileplume/back.png
index fe22b6eb..4e0e9fbe 100644
--- a/gfx/pokemon/vileplume/back.png
+++ b/gfx/pokemon/vileplume/back.png
Binary files differ
diff --git a/gfx/pokemon/voltorb/back.png b/gfx/pokemon/voltorb/back.png
index 99a5c435..f196f26f 100644
--- a/gfx/pokemon/voltorb/back.png
+++ b/gfx/pokemon/voltorb/back.png
Binary files differ
diff --git a/gfx/pokemon/vulpix/back.png b/gfx/pokemon/vulpix/back.png
index 0bd3967a..82614a4d 100644
--- a/gfx/pokemon/vulpix/back.png
+++ b/gfx/pokemon/vulpix/back.png
Binary files differ
diff --git a/gfx/pokemon/wartortle/back.png b/gfx/pokemon/wartortle/back.png
index 6f6c1eb8..7af40fe9 100644
--- a/gfx/pokemon/wartortle/back.png
+++ b/gfx/pokemon/wartortle/back.png
Binary files differ
diff --git a/gfx/pokemon/weedle/back.png b/gfx/pokemon/weedle/back.png
index e2e880c8..95ff9c6e 100644
--- a/gfx/pokemon/weedle/back.png
+++ b/gfx/pokemon/weedle/back.png
Binary files differ
diff --git a/gfx/pokemon/weepinbell/back.png b/gfx/pokemon/weepinbell/back.png
index 3df4da80..cb20b0da 100644
--- a/gfx/pokemon/weepinbell/back.png
+++ b/gfx/pokemon/weepinbell/back.png
Binary files differ
diff --git a/gfx/pokemon/weezing/back.png b/gfx/pokemon/weezing/back.png
index 8a6435e5..21a2d8d9 100644
--- a/gfx/pokemon/weezing/back.png
+++ b/gfx/pokemon/weezing/back.png
Binary files differ
diff --git a/gfx/pokemon/wigglytuff/back.png b/gfx/pokemon/wigglytuff/back.png
index b5a56cb6..cc28922f 100644
--- a/gfx/pokemon/wigglytuff/back.png
+++ b/gfx/pokemon/wigglytuff/back.png
Binary files differ
diff --git a/gfx/pokemon/wobbuffet/back.png b/gfx/pokemon/wobbuffet/back.png
index 8f471515..961ca446 100644
--- a/gfx/pokemon/wobbuffet/back.png
+++ b/gfx/pokemon/wobbuffet/back.png
Binary files differ
diff --git a/gfx/pokemon/wooper/back.png b/gfx/pokemon/wooper/back.png
index 453646c0..a3881dc4 100644
--- a/gfx/pokemon/wooper/back.png
+++ b/gfx/pokemon/wooper/back.png
Binary files differ
diff --git a/gfx/pokemon/xatu/back.png b/gfx/pokemon/xatu/back.png
index 3a640713..94f56f87 100644
--- a/gfx/pokemon/xatu/back.png
+++ b/gfx/pokemon/xatu/back.png
Binary files differ
diff --git a/gfx/pokemon/yanma/back.png b/gfx/pokemon/yanma/back.png
index a5cf73bb..cc21b1a2 100644
--- a/gfx/pokemon/yanma/back.png
+++ b/gfx/pokemon/yanma/back.png
Binary files differ
diff --git a/gfx/pokemon/zapdos/back.png b/gfx/pokemon/zapdos/back.png
index 7917fa45..8b1b740e 100644
--- a/gfx/pokemon/zapdos/back.png
+++ b/gfx/pokemon/zapdos/back.png
Binary files differ
diff --git a/gfx/pokemon/zubat/back.png b/gfx/pokemon/zubat/back.png
index 0c9b5234..1d4afca6 100644
--- a/gfx/pokemon/zubat/back.png
+++ b/gfx/pokemon/zubat/back.png
Binary files differ
diff --git a/gfx/printer/hp.1bpp b/gfx/printer/hp.1bpp
new file mode 100644
index 00000000..6fa64b65
--- /dev/null
+++ b/gfx/printer/hp.1bpp
Binary files differ
diff --git a/gfx/printer/hp.png b/gfx/printer/hp.png
new file mode 100644
index 00000000..adf086ca
--- /dev/null
+++ b/gfx/printer/hp.png
Binary files differ
diff --git a/gfx/printer/lv.1bpp b/gfx/printer/lv.1bpp
new file mode 100644
index 00000000..d8dc7cb9
--- /dev/null
+++ b/gfx/printer/lv.1bpp
Binary files differ
diff --git a/gfx/printer/lv.png b/gfx/printer/lv.png
new file mode 100644
index 00000000..0d5c6620
--- /dev/null
+++ b/gfx/printer/lv.png
Binary files differ
diff --git a/gfx/sgb/gold_border.png b/gfx/sgb/gold_border.png
index ab03c950..f068910f 100644
--- a/gfx/sgb/gold_border.png
+++ b/gfx/sgb/gold_border.png
Binary files differ
diff --git a/gfx/sgb/silver_border.png b/gfx/sgb/silver_border.png
index a9d63b6e..f068910f 100644
--- a/gfx/sgb/silver_border.png
+++ b/gfx/sgb/silver_border.png
Binary files differ
diff --git a/gfx/tileset_palette_maps.asm b/gfx/tileset_palette_maps.asm
index bd42d59d..b1ac538a 100644
--- a/gfx/tileset_palette_maps.asm
+++ b/gfx/tileset_palette_maps.asm
@@ -1,13 +1,98 @@
tilepal: MACRO
+; used in gfx/tilesets/*_palette_map.asm
; pals
rept _NARG / 2
dn PAL_BG_\2, PAL_BG_\1
- shift
- shift
+ shift 2
endr
-endm
+ENDM
-INCLUDE "gfx/tilesets/palette_maps.asm"
+TilesetKantoPalMap:
+INCLUDE "gfx/tilesets/kanto_palette_map.asm"
-Unknown85d7:
- ds 26, $06
+Tileset0PalMap:
+TilesetJohtoPalMap:
+INCLUDE "gfx/tilesets/johto_palette_map.asm"
+
+TilesetJohtoModernPalMap:
+INCLUDE "gfx/tilesets/johto_modern_palette_map.asm"
+
+TilesetHousePalMap:
+INCLUDE "gfx/tilesets/house_palette_map.asm"
+
+TilesetPlayersHousePalMap:
+INCLUDE "gfx/tilesets/players_house_palette_map.asm"
+
+TilesetPokecenterPalMap:
+INCLUDE "gfx/tilesets/pokecenter_palette_map.asm"
+
+TilesetGatePalMap:
+INCLUDE "gfx/tilesets/gate_palette_map.asm"
+
+TilesetPortPalMap:
+INCLUDE "gfx/tilesets/port_palette_map.asm"
+
+TilesetLabPalMap:
+INCLUDE "gfx/tilesets/lab_palette_map.asm"
+
+TilesetFacilityPalMap:
+INCLUDE "gfx/tilesets/facility_palette_map.asm"
+
+TilesetMartPalMap:
+INCLUDE "gfx/tilesets/mart_palette_map.asm"
+
+TilesetMansionPalMap:
+INCLUDE "gfx/tilesets/mansion_palette_map.asm"
+
+TilesetGameCornerPalMap:
+INCLUDE "gfx/tilesets/game_corner_palette_map.asm"
+
+TilesetEliteFourRoomPalMap:
+INCLUDE "gfx/tilesets/elite_four_room_palette_map.asm"
+
+TilesetTraditionalHousePalMap:
+INCLUDE "gfx/tilesets/traditional_house_palette_map.asm"
+
+TilesetTowerPalMap:
+INCLUDE "gfx/tilesets/tower_palette_map.asm"
+
+TilesetCavePalMap:
+TilesetDarkCavePalMap:
+INCLUDE "gfx/tilesets/cave_palette_map.asm"
+
+TilesetParkPalMap:
+INCLUDE "gfx/tilesets/park_palette_map.asm"
+
+TilesetRuinsOfAlphPalMap:
+INCLUDE "gfx/tilesets/ruins_of_alph_palette_map.asm"
+
+TilesetRadioTowerPalMap:
+INCLUDE "gfx/tilesets/radio_tower_palette_map.asm"
+
+TilesetTrainStationPalMap:
+INCLUDE "gfx/tilesets/train_station_palette_map.asm"
+
+TilesetUndergroundPalMap:
+INCLUDE "gfx/tilesets/underground_palette_map.asm"
+
+TilesetChampionsRoomPalMap:
+INCLUDE "gfx/tilesets/champions_room_palette_map.asm"
+
+TilesetLighthousePalMap:
+INCLUDE "gfx/tilesets/lighthouse_palette_map.asm"
+
+TilesetPlayersRoomPalMap:
+INCLUDE "gfx/tilesets/players_room_palette_map.asm"
+
+UnusedMuseumPalMap:
+INCLUDE "gfx/tilesets/unused_museum_palette_map.asm"
+
+TilesetIcePathPalMap:
+INCLUDE "gfx/tilesets/ice_path_palette_map.asm"
+
+TilesetForestPalMap:
+INCLUDE "gfx/tilesets/forest_palette_map.asm"
+
+; referenced in engine/tilesets/map_palettes.asm
+MapGroupPalettes:
+ ds NUM_MAP_GROUPS, PAL_BG_ROOF
diff --git a/gfx/tilesets.asm b/gfx/tilesets.asm
new file mode 100644
index 00000000..bda2a5ee
--- /dev/null
+++ b/gfx/tilesets.asm
@@ -0,0 +1,281 @@
+INCLUDE "constants.asm"
+
+tilecoll: MACRO
+; used in data/tilesets/*_collision.asm
+ db COLL_\1, COLL_\2, COLL_\3, COLL_\4
+ENDM
+
+
+SECTION "Tileset Data 1", ROMX
+
+TilesetKantoMeta::
+INCBIN "data/tilesets/kanto_metatiles.bin"
+
+TilesetKantoColl::
+INCLUDE "data/tilesets/kanto_collision.asm"
+
+Tileset0GFX::
+TilesetJohtoGFX::
+INCBIN "gfx/tilesets/johto.2bpp.lz"
+
+Tileset0Meta::
+TilesetJohtoMeta::
+INCBIN "data/tilesets/johto_metatiles.bin"
+
+Tileset0Coll::
+TilesetJohtoColl::
+INCLUDE "data/tilesets/johto_collision.asm"
+
+TilesetJohtoModernGFX::
+INCBIN "gfx/tilesets/johto_modern.2bpp.lz"
+
+TilesetJohtoModernMeta::
+INCBIN "data/tilesets/johto_modern_metatiles.bin"
+
+TilesetJohtoModernColl::
+INCLUDE "data/tilesets/johto_modern_collision.asm"
+
+UnusedTilesetJohtoMeta::
+INCBIN "data/tilesets/unused_johto_metatiles.bin"
+
+UnusedTilesetJohtoColl::
+INCLUDE "data/tilesets/unused_johto_collision.asm"
+
+TilesetTraditionalHouseGFX::
+INCBIN "gfx/tilesets/traditional_house.2bpp.lz"
+
+TilesetTraditionalHouseMeta::
+INCBIN "data/tilesets/traditional_house_metatiles.bin"
+
+TilesetTraditionalHouseColl::
+INCLUDE "data/tilesets/traditional_house_collision.asm"
+
+
+SECTION "Tileset Data 2", ROMX
+
+TilesetGateGFX::
+INCBIN "gfx/tilesets/gate.2bpp.lz"
+
+TilesetGateMeta::
+INCBIN "data/tilesets/gate_metatiles.bin"
+
+TilesetGateColl::
+INCLUDE "data/tilesets/gate_collision.asm"
+
+TilesetPokecenterGFX::
+INCBIN "gfx/tilesets/pokecenter.2bpp.lz"
+
+TilesetPokecenterMeta::
+INCBIN "data/tilesets/pokecenter_metatiles.bin"
+
+TilesetPokecenterColl::
+INCLUDE "data/tilesets/pokecenter_collision.asm"
+
+TilesetPortGFX::
+INCBIN "gfx/tilesets/port.2bpp.lz"
+
+TilesetPortMeta::
+INCBIN "data/tilesets/port_metatiles.bin"
+
+TilesetPortColl::
+INCLUDE "data/tilesets/port_collision.asm"
+
+TilesetPlayersHouseGFX::
+INCBIN "gfx/tilesets/players_house.2bpp.lz"
+
+TilesetPlayersHouseMeta::
+INCBIN "data/tilesets/players_house_metatiles.bin"
+
+TilesetPlayersHouseColl::
+INCLUDE "data/tilesets/players_house_collision.asm"
+
+TilesetMansionGFX::
+INCBIN "gfx/tilesets/mansion.2bpp.lz"
+
+TilesetMansionMeta::
+INCBIN "data/tilesets/mansion_metatiles.bin"
+
+TilesetMansionColl::
+INCLUDE "data/tilesets/mansion_collision.asm"
+
+TilesetCaveGFX::
+INCBIN "gfx/tilesets/cave.2bpp.lz"
+
+TilesetCaveMeta::
+TilesetDarkCaveMeta::
+INCBIN "data/tilesets/cave_metatiles.bin"
+
+TilesetCaveColl::
+TilesetDarkCaveColl::
+INCLUDE "data/tilesets/cave_collision.asm"
+
+
+SECTION "Tileset Data 3", ROMX
+
+TilesetTowerGFX::
+INCBIN "gfx/tilesets/tower.2bpp.lz"
+
+TilesetTowerMeta::
+INCBIN "data/tilesets/tower_metatiles.bin"
+
+TilesetTowerColl::
+INCLUDE "data/tilesets/tower_collision.asm"
+
+TilesetLabGFX::
+INCBIN "gfx/tilesets/lab.2bpp.lz"
+
+TilesetLabMeta::
+INCBIN "data/tilesets/lab_metatiles.bin"
+
+TilesetLabColl::
+INCLUDE "data/tilesets/lab_collision.asm"
+
+TilesetFacilityGFX::
+INCBIN "gfx/tilesets/facility.2bpp.lz"
+
+TilesetFacilityMeta::
+INCBIN "data/tilesets/facility_metatiles.bin"
+
+TilesetFacilityColl::
+INCLUDE "data/tilesets/facility_collision.asm"
+
+TilesetMartGFX::
+INCBIN "gfx/tilesets/mart.2bpp.lz"
+
+TilesetMartMeta::
+INCBIN "data/tilesets/mart_metatiles.bin"
+
+TilesetMartColl::
+INCLUDE "data/tilesets/mart_collision.asm"
+
+TilesetGameCornerGFX::
+INCBIN "gfx/tilesets/game_corner.2bpp.lz"
+
+TilesetGameCornerMeta::
+INCBIN "data/tilesets/game_corner_metatiles.bin"
+
+TilesetGameCornerColl::
+INCLUDE "data/tilesets/game_corner_collision.asm"
+
+TilesetTrainStationGFX::
+INCBIN "gfx/tilesets/train_station.2bpp.lz"
+
+TilesetTrainStationMeta::
+INCBIN "data/tilesets/train_station_metatiles.bin"
+
+TilesetTrainStationColl::
+INCLUDE "data/tilesets/train_station_collision.asm"
+
+TilesetForestMeta::
+INCBIN "data/tilesets/forest_metatiles.bin"
+
+
+SECTION "Tileset Data 4", ROMX
+
+TilesetEliteFourRoomGFX::
+INCBIN "gfx/tilesets/elite_four_room.2bpp.lz"
+
+TilesetEliteFourRoomMeta::
+INCBIN "data/tilesets/elite_four_room_metatiles.bin"
+
+TilesetEliteFourRoomColl::
+INCLUDE "data/tilesets/elite_four_room_collision.asm"
+
+TilesetParkGFX::
+INCBIN "gfx/tilesets/park.2bpp.lz"
+
+TilesetParkMeta::
+INCBIN "data/tilesets/park_metatiles.bin"
+
+TilesetParkColl::
+INCLUDE "data/tilesets/park_collision.asm"
+
+TilesetRuinsOfAlphGFX::
+INCBIN "gfx/tilesets/ruins_of_alph.2bpp.lz"
+
+TilesetRuinsOfAlphMeta::
+INCBIN "data/tilesets/ruins_of_alph_metatiles.bin"
+
+TilesetRuinsOfAlphColl::
+INCLUDE "data/tilesets/ruins_of_alph_collision.asm"
+
+TilesetRadioTowerGFX::
+INCBIN "gfx/tilesets/radio_tower.2bpp.lz"
+
+TilesetRadioTowerMeta::
+INCBIN "data/tilesets/radio_tower_metatiles.bin"
+
+TilesetRadioTowerColl::
+INCLUDE "data/tilesets/radio_tower_collision.asm"
+
+TilesetUndergroundGFX::
+INCBIN "gfx/tilesets/underground.2bpp.lz"
+
+TilesetUndergroundMeta::
+INCBIN "data/tilesets/underground_metatiles.bin"
+
+TilesetUndergroundColl::
+INCLUDE "data/tilesets/underground_collision.asm"
+
+TilesetIcePathGFX::
+INCBIN "gfx/tilesets/ice_path.2bpp.lz"
+
+TilesetIcePathMeta::
+INCBIN "data/tilesets/ice_path_metatiles.bin"
+
+TilesetIcePathColl::
+INCLUDE "data/tilesets/ice_path_collision.asm"
+
+TilesetDarkCaveGFX::
+INCBIN "gfx/tilesets/dark_cave.2bpp.lz"
+
+TilesetForestGFX::
+INCBIN "gfx/tilesets/forest.2bpp.lz"
+
+
+SECTION "Tileset Data 5", ROMX
+
+TilesetChampionsRoomGFX::
+INCBIN "gfx/tilesets/champions_room.2bpp.lz"
+
+TilesetChampionsRoomMeta::
+INCBIN "data/tilesets/champions_room_metatiles.bin"
+
+TilesetChampionsRoomColl::
+INCLUDE "data/tilesets/champions_room_collision.asm"
+
+TilesetHouseGFX::
+INCBIN "gfx/tilesets/house.2bpp.lz"
+
+TilesetHouseMeta::
+INCBIN "data/tilesets/house_metatiles.bin"
+
+TilesetHouseColl::
+INCLUDE "data/tilesets/house_collision.asm"
+
+TilesetLighthouseGFX::
+INCBIN "gfx/tilesets/lighthouse.2bpp.lz"
+
+TilesetLighthouseMeta::
+INCBIN "data/tilesets/lighthouse_metatiles.bin"
+
+TilesetLighthouseColl::
+INCLUDE "data/tilesets/lighthouse_collision.asm"
+
+TilesetPlayersRoomGFX::
+INCBIN "gfx/tilesets/players_room.2bpp.lz"
+
+TilesetPlayersRoomMeta::
+INCBIN "data/tilesets/players_room_metatiles.bin"
+
+TilesetPlayersRoomColl::
+INCLUDE "data/tilesets/players_room_collision.asm"
+
+TilesetForestColl::
+INCLUDE "data/tilesets/forest_collision.asm"
+
+
+SECTION "Tileset Data 6", ROMX
+
+TilesetKantoGFX::
+INCBIN "gfx/tilesets/kanto.2bpp.lz"
diff --git a/gfx/tilesets/cave.2bpp.lz b/gfx/tilesets/cave.2bpp.lz
new file mode 100644
index 00000000..69069fb7
--- /dev/null
+++ b/gfx/tilesets/cave.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/cave.png b/gfx/tilesets/cave.png
new file mode 100644
index 00000000..fe15a740
--- /dev/null
+++ b/gfx/tilesets/cave.png
Binary files differ
diff --git a/gfx/tilesets/cave_palette_map.asm b/gfx/tilesets/cave_palette_map.asm
new file mode 100644
index 00000000..dd537d82
--- /dev/null
+++ b/gfx/tilesets/cave_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal BROWN, BROWN, GRAY, GRAY, GREEN, BROWN, BROWN, BROWN
+ tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, GRAY, GRAY, WATER, BROWN, BROWN, BROWN
+ tilepal GRAY, GRAY, YELLOW, YELLOW, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
+ tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY
+ tilepal WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
diff --git a/gfx/tilesets/champions_room.2bpp.lz b/gfx/tilesets/champions_room.2bpp.lz
new file mode 100644
index 00000000..1da1d3b9
--- /dev/null
+++ b/gfx/tilesets/champions_room.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/champions_room.png b/gfx/tilesets/champions_room.png
new file mode 100644
index 00000000..804da541
--- /dev/null
+++ b/gfx/tilesets/champions_room.png
Binary files differ
diff --git a/gfx/tilesets/champions_room_palette_map.asm b/gfx/tilesets/champions_room_palette_map.asm
new file mode 100644
index 00000000..698a5cc2
--- /dev/null
+++ b/gfx/tilesets/champions_room_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, GREEN, GREEN, GREEN, RED, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, RED, RED, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GREEN, GREEN, RED, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, RED, RED, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GREEN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GREEN, GREEN, YELLOW, RED, RED
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, RED, RED, RED, RED, RED
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, GRAY, RED, WATER, WATER, ROOF, GRAY, GRAY
+ tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, BROWN, BROWN
+ tilepal GRAY, GRAY, RED, WATER, WATER, ROOF, GRAY, GRAY
diff --git a/gfx/tilesets/dark_cave.2bpp.lz b/gfx/tilesets/dark_cave.2bpp.lz
new file mode 100644
index 00000000..50a5ab9a
--- /dev/null
+++ b/gfx/tilesets/dark_cave.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/dark_cave.png b/gfx/tilesets/dark_cave.png
new file mode 100644
index 00000000..1d0a91e5
--- /dev/null
+++ b/gfx/tilesets/dark_cave.png
Binary files differ
diff --git a/gfx/tilesets/elite_four_room.2bpp.lz b/gfx/tilesets/elite_four_room.2bpp.lz
new file mode 100644
index 00000000..6b45c769
--- /dev/null
+++ b/gfx/tilesets/elite_four_room.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/elite_four_room.png b/gfx/tilesets/elite_four_room.png
new file mode 100644
index 00000000..27f64afa
--- /dev/null
+++ b/gfx/tilesets/elite_four_room.png
Binary files differ
diff --git a/gfx/tilesets/elite_four_room_palette_map.asm b/gfx/tilesets/elite_four_room_palette_map.asm
new file mode 100644
index 00000000..b4b214ac
--- /dev/null
+++ b/gfx/tilesets/elite_four_room_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, ROOF, RED, RED, RED, ROOF, ROOF, GREEN
+ tilepal GREEN, GRAY, GREEN, GREEN, GREEN, GREEN, WATER, GREEN
+ tilepal GRAY, WATER, WATER, WATER, RED, ROOF, ROOF, BROWN
+ tilepal BROWN, RED, GRAY, GREEN, GREEN, GREEN, GREEN, GREEN
+ tilepal RED, RED, GRAY, GRAY, WATER, GRAY, GRAY, GRAY
+ tilepal GRAY, RED, GRAY, GRAY, GRAY, ROOF, GREEN, BROWN
+ tilepal RED, RED, GRAY, GRAY, WATER, GRAY, GRAY, GRAY
+ tilepal RED, WATER, GRAY, GRAY, GRAY, GRAY, RED, RED
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, BROWN, BROWN, BROWN
+ tilepal WATER, WATER, WATER, WATER, WATER, WATER, ROOF, ROOF
+ tilepal WATER, GREEN, GREEN, BROWN, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, WATER, RED, WATER, WATER, ROOF, ROOF
diff --git a/gfx/tilesets/facility.2bpp.lz b/gfx/tilesets/facility.2bpp.lz
new file mode 100644
index 00000000..584e54dd
--- /dev/null
+++ b/gfx/tilesets/facility.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/facility.png b/gfx/tilesets/facility.png
new file mode 100644
index 00000000..e2e50107
--- /dev/null
+++ b/gfx/tilesets/facility.png
Binary files differ
diff --git a/gfx/tilesets/facility_palette_map.asm b/gfx/tilesets/facility_palette_map.asm
new file mode 100644
index 00000000..e8e7b99e
--- /dev/null
+++ b/gfx/tilesets/facility_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, WATER, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, GRAY, GRAY, RED, RED, BROWN, BROWN
+ tilepal ROOF, ROOF, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
+ tilepal ROOF, ROOF, GRAY, GRAY, ROOF, ROOF, BROWN, BROWN
+ tilepal ROOF, ROOF, GREEN, WATER, WATER, WATER, RED, RED
+ tilepal BROWN, BROWN, BROWN, BROWN, GREEN, GREEN, BROWN, BROWN
+ tilepal ROOF, ROOF, GREEN, GREEN, RED, RED, GRAY, RED
+ tilepal RED, RED, BROWN, BROWN, GREEN, GREEN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, GREEN, GREEN, GRAY, BROWN, WATER
+ tilepal BROWN, BROWN, GRAY, BROWN, BROWN, BROWN, BROWN, GRAY
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, BROWN, ROOF
+ tilepal ROOF, ROOF, GRAY, BROWN, GRAY, GRAY, GRAY, GRAY
diff --git a/gfx/tilesets/flower/cgb_1.2bpp b/gfx/tilesets/flower/cgb_1.2bpp
new file mode 100644
index 00000000..ffe58b93
--- /dev/null
+++ b/gfx/tilesets/flower/cgb_1.2bpp
@@ -0,0 +1 @@
+ M-mLAHE0 \ No newline at end of file
diff --git a/gfx/tilesets/flower/cgb_1.png b/gfx/tilesets/flower/cgb_1.png
new file mode 100644
index 00000000..e3fd2867
--- /dev/null
+++ b/gfx/tilesets/flower/cgb_1.png
Binary files differ
diff --git a/gfx/tilesets/flower/cgb_2.2bpp b/gfx/tilesets/flower/cgb_2.2bpp
new file mode 100644
index 00000000..5cf6b583
--- /dev/null
+++ b/gfx/tilesets/flower/cgb_2.2bpp
@@ -0,0 +1 @@
+Y$Z%Zf%Z$E \ No newline at end of file
diff --git a/gfx/tilesets/flower/cgb_2.png b/gfx/tilesets/flower/cgb_2.png
new file mode 100644
index 00000000..901e34a1
--- /dev/null
+++ b/gfx/tilesets/flower/cgb_2.png
Binary files differ
diff --git a/gfx/tilesets/flower/dmg_1.2bpp b/gfx/tilesets/flower/dmg_1.2bpp
new file mode 100644
index 00000000..ec9e9c6d
--- /dev/null
+++ b/gfx/tilesets/flower/dmg_1.2bpp
@@ -0,0 +1 @@
+ A! a 1HE0 \ No newline at end of file
diff --git a/gfx/tilesets/flower/dmg_1.png b/gfx/tilesets/flower/dmg_1.png
new file mode 100644
index 00000000..428514af
--- /dev/null
+++ b/gfx/tilesets/flower/dmg_1.png
Binary files differ
diff --git a/gfx/tilesets/flower/dmg_2.2bpp b/gfx/tilesets/flower/dmg_2.2bpp
new file mode 100644
index 00000000..7bf87eab
--- /dev/null
+++ b/gfx/tilesets/flower/dmg_2.2bpp
@@ -0,0 +1 @@
+A$BBfZ$E \ No newline at end of file
diff --git a/gfx/tilesets/flower/dmg_2.png b/gfx/tilesets/flower/dmg_2.png
new file mode 100644
index 00000000..9a512501
--- /dev/null
+++ b/gfx/tilesets/flower/dmg_2.png
Binary files differ
diff --git a/gfx/tilesets/forest.2bpp.lz b/gfx/tilesets/forest.2bpp.lz
new file mode 100644
index 00000000..9d32ae8b
--- /dev/null
+++ b/gfx/tilesets/forest.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/forest.png b/gfx/tilesets/forest.png
new file mode 100644
index 00000000..55ce4d6e
--- /dev/null
+++ b/gfx/tilesets/forest.png
Binary files differ
diff --git a/gfx/tilesets/forest_palette_map.asm b/gfx/tilesets/forest_palette_map.asm
new file mode 100644
index 00000000..df069a60
--- /dev/null
+++ b/gfx/tilesets/forest_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, BROWN, BROWN, RED, YELLOW, GREEN, BROWN, YELLOW
+ tilepal YELLOW, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, GREEN
+ tilepal BROWN, BROWN, BROWN, RED, WATER, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, GREEN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
+ tilepal GREEN, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, GREEN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
+ tilepal GREEN, GREEN, GREEN, BROWN, GREEN, BROWN, BROWN, GREEN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
diff --git a/gfx/tilesets/game_corner.2bpp.lz b/gfx/tilesets/game_corner.2bpp.lz
new file mode 100644
index 00000000..0be25086
--- /dev/null
+++ b/gfx/tilesets/game_corner.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/game_corner.png b/gfx/tilesets/game_corner.png
new file mode 100644
index 00000000..74acad68
--- /dev/null
+++ b/gfx/tilesets/game_corner.png
Binary files differ
diff --git a/gfx/tilesets/game_corner_palette_map.asm b/gfx/tilesets/game_corner_palette_map.asm
new file mode 100644
index 00000000..87cec755
--- /dev/null
+++ b/gfx/tilesets/game_corner_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, RED, BROWN, RED, ROOF, ROOF, GREEN, GREEN
+ tilepal GREEN, GREEN, RED, RED, RED, RED, ROOF, BROWN
+ tilepal RED, RED, RED, RED, ROOF, ROOF, GRAY, GRAY
+ tilepal GRAY, GREEN, RED, RED, RED, RED, ROOF, ROOF
+ tilepal BROWN, BROWN, RED, RED, BROWN, BROWN, GRAY, GRAY
+ tilepal GRAY, GREEN, RED, RED, GREEN, GRAY, RED, RED
+ tilepal BROWN, BROWN, RED, RED, RED, RED, BROWN, BROWN
+ tilepal BROWN, BROWN, RED, RED, GREEN, ROOF, RED, RED
+ tilepal ROOF, ROOF, GRAY, GRAY, GRAY, GRAY, RED, RED
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, RED, RED
+ tilepal RED, GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED
+ tilepal GRAY, GRAY, GRAY, WATER, ROOF, ROOF, WATER, WATER
diff --git a/gfx/tilesets/gate.2bpp.lz b/gfx/tilesets/gate.2bpp.lz
new file mode 100644
index 00000000..4be719da
--- /dev/null
+++ b/gfx/tilesets/gate.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/gate.png b/gfx/tilesets/gate.png
new file mode 100644
index 00000000..a555fc68
--- /dev/null
+++ b/gfx/tilesets/gate.png
Binary files differ
diff --git a/gfx/tilesets/gate_palette_map.asm b/gfx/tilesets/gate_palette_map.asm
new file mode 100644
index 00000000..f08756a5
--- /dev/null
+++ b/gfx/tilesets/gate_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, GRAY, WATER, WATER, RED, GREEN, GREEN, GREEN
+ tilepal GREEN, GREEN, GRAY, GRAY, GRAY, GRAY, GREEN, GREEN
+ tilepal WATER, GRAY, WATER, WATER, RED, BROWN, BROWN, WATER
+ tilepal GREEN, GREEN, GRAY, GRAY, GRAY, GRAY, BROWN, WATER
+ tilepal GREEN, GREEN, GRAY, GRAY, GREEN, GREEN, WATER, WATER
+ tilepal RED, RED, GREEN, GREEN, GREEN, GREEN, GREEN, GREEN
+ tilepal GREEN, GREEN, GREEN, GREEN, GRAY, WATER, WATER, WATER
+ tilepal GREEN, GREEN, GREEN, GREEN, GREEN, GREEN, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, WATER, WATER
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, WATER, WATER, GRAY, GRAY
diff --git a/gfx/tilesets/house.2bpp.lz b/gfx/tilesets/house.2bpp.lz
new file mode 100644
index 00000000..774a7350
--- /dev/null
+++ b/gfx/tilesets/house.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/house.png b/gfx/tilesets/house.png
new file mode 100644
index 00000000..647cfca8
--- /dev/null
+++ b/gfx/tilesets/house.png
Binary files differ
diff --git a/gfx/tilesets/house_palette_map.asm b/gfx/tilesets/house_palette_map.asm
new file mode 100644
index 00000000..de450f05
--- /dev/null
+++ b/gfx/tilesets/house_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal WATER, RED, RED, RED, RED, BROWN, WATER, WATER
+ tilepal GREEN, GREEN, GREEN, GREEN, WATER, WATER, BROWN, BROWN
+ tilepal BROWN, BROWN, RED, RED, RED, BROWN, WATER, WATER
+ tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, BROWN, BROWN
+ tilepal GRAY, GRAY, BROWN, BROWN, WATER, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, YELLOW, GREEN, WATER, WATER, WATER, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, WATER, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, WATER, WATER, BROWN
+ tilepal GRAY, GRAY, BROWN, BROWN, WATER, WATER, BROWN, BROWN
+ tilepal GRAY, GRAY, WATER, GRAY, BROWN, BROWN, BROWN, WATER
+ tilepal RED, RED, BROWN, BROWN, GREEN, YELLOW, BROWN, BROWN
+ tilepal GRAY, GRAY, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
diff --git a/gfx/tilesets/ice_path.2bpp.lz b/gfx/tilesets/ice_path.2bpp.lz
new file mode 100644
index 00000000..4fc1be26
--- /dev/null
+++ b/gfx/tilesets/ice_path.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/ice_path.png b/gfx/tilesets/ice_path.png
new file mode 100644
index 00000000..82d30ece
--- /dev/null
+++ b/gfx/tilesets/ice_path.png
Binary files differ
diff --git a/gfx/tilesets/ice_path_palette_map.asm b/gfx/tilesets/ice_path_palette_map.asm
new file mode 100644
index 00000000..cf954ac7
--- /dev/null
+++ b/gfx/tilesets/ice_path_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, WATER, WATER
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, WATER, WATER
+ tilepal WATER, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
+ tilepal WATER, WATER, BROWN, BROWN, WATER, WATER, WATER, WATER
+ tilepal BROWN, WATER, WATER, WATER, WATER, WATER, GRAY, GRAY
+ tilepal WATER, WATER, BROWN, BROWN, GRAY, GRAY, WATER, WATER
+ tilepal YELLOW, YELLOW, YELLOW, YELLOW, GREEN, GRAY, GRAY, WATER
+ tilepal WATER, WATER, WATER, WATER, WATER, WATER, WATER, WATER
+ tilepal BROWN, BROWN, GRAY, GRAY, WATER, WATER, WATER, WATER
+ tilepal WATER, WATER, WATER, WATER, WATER, WATER, WATER, WATER
diff --git a/gfx/tilesets/johto.2bpp.lz b/gfx/tilesets/johto.2bpp.lz
new file mode 100644
index 00000000..227b53e6
--- /dev/null
+++ b/gfx/tilesets/johto.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/johto.png b/gfx/tilesets/johto.png
new file mode 100644
index 00000000..e6418f25
--- /dev/null
+++ b/gfx/tilesets/johto.png
Binary files differ
diff --git a/gfx/tilesets/johto_modern.2bpp.lz b/gfx/tilesets/johto_modern.2bpp.lz
new file mode 100644
index 00000000..9690ef0b
--- /dev/null
+++ b/gfx/tilesets/johto_modern.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/johto_modern.png b/gfx/tilesets/johto_modern.png
new file mode 100644
index 00000000..807bd543
--- /dev/null
+++ b/gfx/tilesets/johto_modern.png
Binary files differ
diff --git a/gfx/tilesets/johto_modern_palette_map.asm b/gfx/tilesets/johto_modern_palette_map.asm
new file mode 100644
index 00000000..2a0cedb7
--- /dev/null
+++ b/gfx/tilesets/johto_modern_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, BROWN, BROWN, RED, GREEN, GREEN, GRAY, ROOF
+ tilepal RED, RED, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, ROOF, GREEN, WATER, GREEN, BROWN, BROWN
+ tilepal RED, RED, BROWN, BROWN, BROWN, GRAY, GREEN, GREEN
+ tilepal GRAY, GRAY, BROWN, RED, RED, GRAY, YELLOW, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, RED
+ tilepal GRAY, BROWN, BROWN, GRAY, BROWN, GRAY, GRAY, YELLOW
+ tilepal YELLOW, BROWN, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
+ tilepal RED, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, WATER, GRAY, BROWN, BROWN, BROWN, GRAY, GRAY
+ tilepal GRAY, BROWN, BROWN, GRAY, BROWN, GRAY, GRAY, GRAY
+ tilepal WATER, GRAY, GRAY, GRAY, BROWN, BROWN, GRAY, GRAY
diff --git a/gfx/tilesets/johto_palette_map.asm b/gfx/tilesets/johto_palette_map.asm
new file mode 100644
index 00000000..5a82fc3a
--- /dev/null
+++ b/gfx/tilesets/johto_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, BROWN, BROWN, RED, GREEN, GREEN, GRAY, RED
+ tilepal RED, RED, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, ROOF, GREEN, WATER, GREEN, BROWN, BROWN
+ tilepal RED, RED, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN
+ tilepal BROWN, BROWN, BROWN, RED, RED, BROWN, YELLOW, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
+ tilepal BROWN, BROWN, WATER, WATER, BROWN, BROWN, BROWN, YELLOW
+ tilepal YELLOW, BROWN, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
+ tilepal RED, BROWN, WATER, WATER, BROWN, GREEN, BROWN, BROWN
+ tilepal BROWN, WATER, GRAY, BROWN, BROWN, BROWN, GRAY, GRAY
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal WATER, GRAY, GRAY, GRAY, BROWN, BROWN, GRAY, GRAY
diff --git a/gfx/tilesets/kanto.2bpp.lz b/gfx/tilesets/kanto.2bpp.lz
new file mode 100644
index 00000000..d925ee11
--- /dev/null
+++ b/gfx/tilesets/kanto.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/kanto.png b/gfx/tilesets/kanto.png
new file mode 100644
index 00000000..a3036406
--- /dev/null
+++ b/gfx/tilesets/kanto.png
Binary files differ
diff --git a/gfx/tilesets/kanto_palette_map.asm b/gfx/tilesets/kanto_palette_map.asm
new file mode 100644
index 00000000..d3fd2255
--- /dev/null
+++ b/gfx/tilesets/kanto_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, BROWN, BROWN, RED, BROWN, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, YELLOW, YELLOW, YELLOW, GRAY, BROWN, GRAY
+ tilepal GRAY, BROWN, ROOF, BROWN, WATER, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, GRAY, BROWN, BROWN, GRAY, BROWN, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, BROWN, ROOF, ROOF, BROWN
+ tilepal ROOF, ROOF, GRAY, GRAY, GREEN, GREEN, GREEN, GRAY
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal ROOF, GRAY, GRAY, GRAY, GRAY, GREEN, GREEN, GRAY
+ tilepal GREEN, GREEN, GRAY, GRAY, GRAY, GRAY, BROWN, BROWN
+ tilepal BROWN, BROWN, GRAY, BROWN, GRAY, GRAY, GRAY, RED
+ tilepal GREEN, GREEN, GREEN, ROOF, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, GRAY, BROWN, GRAY, GRAY, GRAY, GRAY
diff --git a/gfx/tilesets/lab.2bpp.lz b/gfx/tilesets/lab.2bpp.lz
new file mode 100644
index 00000000..a509d3b0
--- /dev/null
+++ b/gfx/tilesets/lab.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/lab.png b/gfx/tilesets/lab.png
new file mode 100644
index 00000000..19641aae
--- /dev/null
+++ b/gfx/tilesets/lab.png
Binary files differ
diff --git a/gfx/tilesets/lab_palette_map.asm b/gfx/tilesets/lab_palette_map.asm
new file mode 100644
index 00000000..91025ca8
--- /dev/null
+++ b/gfx/tilesets/lab_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, WATER, RED, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal WATER, WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, WATER, RED, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal WATER, WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal WATER, WATER, WATER, WATER, ROOF, BROWN, BROWN, BROWN
+ tilepal RED, RED, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN
+ tilepal WATER, WATER, WATER, WATER, RED, BROWN, BROWN, GRAY
+ tilepal RED, RED, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN
+ tilepal ROOF, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal ROOF, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
diff --git a/gfx/tilesets/lava/1.2bpp b/gfx/tilesets/lava/1.2bpp
new file mode 100644
index 00000000..d25f1bad
--- /dev/null
+++ b/gfx/tilesets/lava/1.2bpp
Binary files differ
diff --git a/gfx/tilesets/lava/1.png b/gfx/tilesets/lava/1.png
new file mode 100644
index 00000000..c5b500cc
--- /dev/null
+++ b/gfx/tilesets/lava/1.png
Binary files differ
diff --git a/gfx/tilesets/lava/2.2bpp b/gfx/tilesets/lava/2.2bpp
new file mode 100644
index 00000000..bdb3c8cf
--- /dev/null
+++ b/gfx/tilesets/lava/2.2bpp
Binary files differ
diff --git a/gfx/tilesets/lava/2.png b/gfx/tilesets/lava/2.png
new file mode 100644
index 00000000..1512e35a
--- /dev/null
+++ b/gfx/tilesets/lava/2.png
Binary files differ
diff --git a/gfx/tilesets/lava/3.2bpp b/gfx/tilesets/lava/3.2bpp
new file mode 100644
index 00000000..2016d2bd
--- /dev/null
+++ b/gfx/tilesets/lava/3.2bpp
Binary files differ
diff --git a/gfx/tilesets/lava/3.png b/gfx/tilesets/lava/3.png
new file mode 100644
index 00000000..449c2a31
--- /dev/null
+++ b/gfx/tilesets/lava/3.png
Binary files differ
diff --git a/gfx/tilesets/lava/4.2bpp b/gfx/tilesets/lava/4.2bpp
new file mode 100644
index 00000000..e0142c68
--- /dev/null
+++ b/gfx/tilesets/lava/4.2bpp
Binary files differ
diff --git a/gfx/tilesets/lava/4.png b/gfx/tilesets/lava/4.png
new file mode 100644
index 00000000..8e4c8e0e
--- /dev/null
+++ b/gfx/tilesets/lava/4.png
Binary files differ
diff --git a/gfx/tilesets/lighthouse.2bpp.lz b/gfx/tilesets/lighthouse.2bpp.lz
new file mode 100644
index 00000000..feabb439
--- /dev/null
+++ b/gfx/tilesets/lighthouse.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/lighthouse.png b/gfx/tilesets/lighthouse.png
new file mode 100644
index 00000000..f97ce251
--- /dev/null
+++ b/gfx/tilesets/lighthouse.png
Binary files differ
diff --git a/gfx/tilesets/lighthouse_palette_map.asm b/gfx/tilesets/lighthouse_palette_map.asm
new file mode 100644
index 00000000..f2cb5c8a
--- /dev/null
+++ b/gfx/tilesets/lighthouse_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, WATER, WATER, WATER, BROWN, WATER, WATER, RED
+ tilepal RED, RED, RED, BROWN, RED, RED, RED, RED
+ tilepal ROOF, WATER, ROOF, BROWN, RED, WATER, WATER, RED
+ tilepal RED, RED, RED, WATER, RED, RED, RED, RED
+ tilepal ROOF, ROOF, WATER, BROWN, RED, WATER, WATER, GRAY
+ tilepal GRAY, GRAY, GRAY, BROWN, RED, ROOF, GRAY, GRAY
+ tilepal ROOF, ROOF, WATER, WATER, RED, RED, BROWN, GRAY
+ tilepal GRAY, GRAY, GRAY, BROWN, BROWN, ROOF, BROWN, WATER
+ tilepal RED, RED, ROOF, ROOF, BROWN, BROWN, GRAY, GRAY
+ tilepal RED, RED, GRAY, GRAY, GREEN, GREEN, ROOF, ROOF
+ tilepal RED, RED, ROOF, ROOF, ROOF, ROOF, GRAY, GRAY
+ tilepal RED, RED, GREEN, GREEN, ROOF, ROOF, GRAY, GRAY
diff --git a/gfx/tilesets/mansion.2bpp.lz b/gfx/tilesets/mansion.2bpp.lz
new file mode 100644
index 00000000..1338c6cb
--- /dev/null
+++ b/gfx/tilesets/mansion.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/mansion.png b/gfx/tilesets/mansion.png
new file mode 100644
index 00000000..e2ebbe41
--- /dev/null
+++ b/gfx/tilesets/mansion.png
Binary files differ
diff --git a/gfx/tilesets/mansion_palette_map.asm b/gfx/tilesets/mansion_palette_map.asm
new file mode 100644
index 00000000..72bbe2e4
--- /dev/null
+++ b/gfx/tilesets/mansion_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, BROWN, WATER, ROOF, RED, ROOF, BROWN, BROWN
+ tilepal GRAY, GRAY, GRAY, GRAY, ROOF, ROOF, ROOF, ROOF
+ tilepal GRAY, RED, ROOF, ROOF, ROOF, ROOF, BROWN, BROWN
+ tilepal GRAY, GRAY, GRAY, GRAY, ROOF, ROOF, ROOF, ROOF
+ tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal RED, GRAY, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
+ tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, GRAY, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, BROWN, BROWN
+ tilepal BROWN, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, BROWN, BROWN
+ tilepal BROWN, GRAY, BROWN, BROWN, ROOF, ROOF, BROWN, BROWN
diff --git a/gfx/tilesets/mart.2bpp.lz b/gfx/tilesets/mart.2bpp.lz
new file mode 100644
index 00000000..7a2f1945
--- /dev/null
+++ b/gfx/tilesets/mart.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/mart.png b/gfx/tilesets/mart.png
new file mode 100644
index 00000000..b1e1483a
--- /dev/null
+++ b/gfx/tilesets/mart.png
Binary files differ
diff --git a/gfx/tilesets/mart_palette_map.asm b/gfx/tilesets/mart_palette_map.asm
new file mode 100644
index 00000000..30f7059a
--- /dev/null
+++ b/gfx/tilesets/mart_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, YELLOW, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GREEN, GREEN, WATER, RED, GRAY, GRAY, ROOF, ROOF
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal BROWN, BROWN, BROWN, RED, ROOF, ROOF, GRAY, YELLOW
+ tilepal GRAY, GRAY, RED, RED, RED, RED, WATER, WATER
+ tilepal WATER, WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, RED, RED, RED, RED, WATER, WATER
+ tilepal WATER, WATER, RED, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED, RED
+ tilepal GREEN, GRAY, GREEN, GREEN, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, RED, YELLOW, YELLOW, YELLOW, ROOF, ROOF
+ tilepal ROOF, ROOF, ROOF, ROOF, RED, RED, BROWN, BROWN
diff --git a/gfx/tilesets/palette_maps.asm b/gfx/tilesets/palette_maps.asm
deleted file mode 100755
index e6754e9a..00000000
--- a/gfx/tilesets/palette_maps.asm
+++ /dev/null
@@ -1,393 +0,0 @@
-TilesetKantoPalMap:
- tilepal GRAY, BROWN, BROWN, RED, BROWN, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, YELLOW, YELLOW, YELLOW, GRAY, BROWN, GRAY
- tilepal GRAY, BROWN, ROOF, BROWN, WATER, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, GRAY, BROWN, BROWN, GRAY, BROWN, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, BROWN, ROOF, ROOF, BROWN
- tilepal ROOF, ROOF, GRAY, GRAY, GREEN, GREEN, GREEN, GRAY
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal ROOF, GRAY, GRAY, GRAY, GRAY, GREEN, GREEN, GRAY
- tilepal GREEN, GREEN, GRAY, GRAY, GRAY, GRAY, BROWN, BROWN
- tilepal BROWN, BROWN, GRAY, BROWN, GRAY, GRAY, GRAY, RED
- tilepal GREEN, GREEN, GREEN, ROOF, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, GRAY, BROWN, GRAY, GRAY, GRAY, GRAY
-
-Tileset0PalMap:
-TilesetJohtoPalMap:
- tilepal GRAY, BROWN, BROWN, RED, GREEN, GREEN, GRAY, RED
- tilepal RED, RED, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, ROOF, GREEN, WATER, GREEN, BROWN, BROWN
- tilepal RED, RED, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN
- tilepal BROWN, BROWN, BROWN, RED, RED, BROWN, YELLOW, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
- tilepal BROWN, BROWN, WATER, WATER, BROWN, BROWN, BROWN, YELLOW
- tilepal YELLOW, BROWN, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
- tilepal RED, BROWN, WATER, WATER, BROWN, GREEN, BROWN, BROWN
- tilepal BROWN, WATER, GRAY, BROWN, BROWN, BROWN, GRAY, GRAY
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal WATER, GRAY, GRAY, GRAY, BROWN, BROWN, GRAY, GRAY
-
-TilesetJohtoModernPalMap:
- tilepal GRAY, BROWN, BROWN, RED, GREEN, GREEN, GRAY, ROOF
- tilepal RED, RED, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, ROOF, GREEN, WATER, GREEN, BROWN, BROWN
- tilepal RED, RED, BROWN, BROWN, BROWN, GRAY, GREEN, GREEN
- tilepal GRAY, GRAY, BROWN, RED, RED, GRAY, YELLOW, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, RED
- tilepal GRAY, BROWN, BROWN, GRAY, BROWN, GRAY, GRAY, YELLOW
- tilepal YELLOW, BROWN, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
- tilepal RED, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, WATER, GRAY, BROWN, BROWN, BROWN, GRAY, GRAY
- tilepal GRAY, BROWN, BROWN, GRAY, BROWN, GRAY, GRAY, GRAY
- tilepal WATER, GRAY, GRAY, GRAY, BROWN, BROWN, GRAY, GRAY
-
-TilesetHousePalMap:
- tilepal WATER, RED, RED, RED, RED, BROWN, WATER, WATER
- tilepal GREEN, GREEN, GREEN, GREEN, WATER, WATER, BROWN, BROWN
- tilepal BROWN, BROWN, RED, RED, RED, BROWN, WATER, WATER
- tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, BROWN, BROWN
- tilepal GRAY, GRAY, BROWN, BROWN, WATER, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, YELLOW, GREEN, WATER, WATER, WATER, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, WATER, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, WATER, WATER, BROWN
- tilepal GRAY, GRAY, BROWN, BROWN, WATER, WATER, BROWN, BROWN
- tilepal GRAY, GRAY, WATER, GRAY, BROWN, BROWN, BROWN, WATER
- tilepal RED, RED, BROWN, BROWN, GREEN, YELLOW, BROWN, BROWN
- tilepal GRAY, GRAY, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
-
-TilesetPlayersHousePalMap:
- tilepal GRAY, BROWN, BROWN, BROWN, RED, GREEN, WATER, WATER
- tilepal BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, RED, BROWN, WATER, WATER
- tilepal BROWN, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
- tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal GRAY, GRAY, GRAY, GRAY, WATER, WATER, BROWN, BROWN
- tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
- tilepal GRAY, GRAY, BROWN, BROWN, WATER, WATER, BROWN, BROWN
- tilepal BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
-
-TilesetPokecenterPalMap:
- tilepal GRAY, RED, GRAY, WATER, WATER, WATER, ROOF, ROOF
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, WATER, WATER, WATER
- tilepal GRAY, RED, RED, WATER, WATER, WATER, WATER, WATER
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GREEN, GREEN, GRAY
- tilepal GRAY, GRAY, RED, RED, WATER, WATER, GRAY, GRAY
- tilepal GRAY, GRAY, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, RED, RED, GRAY, WATER, WATER, WATER
- tilepal WATER, WATER, WATER, WATER, GRAY, GRAY, WATER, GRAY
- tilepal GRAY, GRAY, RED, RED, RED, RED, WATER, WATER
- tilepal YELLOW, YELLOW, GRAY, GRAY, GRAY, RED, RED, GRAY
- tilepal RED, RED, RED, RED, RED, RED, GRAY, GRAY
- tilepal YELLOW, YELLOW, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-
-TilesetGatePalMap:
- tilepal GRAY, GRAY, WATER, WATER, RED, GREEN, GREEN, GREEN
- tilepal GREEN, GREEN, GRAY, GRAY, GRAY, GRAY, GREEN, GREEN
- tilepal WATER, GRAY, WATER, WATER, RED, BROWN, BROWN, WATER
- tilepal GREEN, GREEN, GRAY, GRAY, GRAY, GRAY, BROWN, WATER
- tilepal GREEN, GREEN, GRAY, GRAY, GREEN, GREEN, WATER, WATER
- tilepal RED, RED, GREEN, GREEN, GREEN, GREEN, GREEN, GREEN
- tilepal GREEN, GREEN, GREEN, GREEN, GRAY, WATER, WATER, WATER
- tilepal GREEN, GREEN, GREEN, GREEN, GREEN, GREEN, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, WATER, WATER
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, WATER, WATER, GRAY, GRAY
-
-TilesetPortPalMap:
- tilepal GRAY, WATER, WATER, GRAY, GRAY, RED, BROWN, BROWN
- tilepal BROWN, BROWN, GRAY, GRAY, RED, RED, RED, BROWN
- tilepal ROOF, WATER, WATER, WATER, WATER, RED, BROWN, BROWN
- tilepal BROWN, BROWN, ROOF, WATER, RED, RED, GRAY, GRAY
- tilepal BROWN, BROWN, BROWN, ROOF, ROOF, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, ROOF, ROOF, RED, ROOF, ROOF, ROOF
- tilepal ROOF, GRAY, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
-
-TilesetLabPalMap:
- tilepal GRAY, WATER, RED, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal WATER, WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, WATER, RED, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal WATER, WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal WATER, WATER, WATER, WATER, ROOF, BROWN, BROWN, BROWN
- tilepal RED, RED, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN
- tilepal WATER, WATER, WATER, WATER, RED, BROWN, BROWN, GRAY
- tilepal RED, RED, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN
- tilepal ROOF, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal ROOF, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-
-TilesetFacilityPalMap:
- tilepal GRAY, WATER, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, GRAY, GRAY, RED, RED, BROWN, BROWN
- tilepal ROOF, ROOF, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
- tilepal ROOF, ROOF, GRAY, GRAY, ROOF, ROOF, BROWN, BROWN
- tilepal ROOF, ROOF, GREEN, WATER, WATER, WATER, RED, RED
- tilepal BROWN, BROWN, BROWN, BROWN, GREEN, GREEN, BROWN, BROWN
- tilepal ROOF, ROOF, GREEN, GREEN, RED, RED, GRAY, RED
- tilepal RED, RED, BROWN, BROWN, GREEN, GREEN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, GREEN, GREEN, GRAY, BROWN, WATER
- tilepal BROWN, BROWN, GRAY, BROWN, BROWN, BROWN, BROWN, GRAY
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, BROWN, ROOF
- tilepal ROOF, ROOF, GRAY, BROWN, GRAY, GRAY, GRAY, GRAY
-
-TilesetMartPalMap:
- tilepal GRAY, YELLOW, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GREEN, GREEN, WATER, RED, GRAY, GRAY, ROOF, ROOF
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal BROWN, BROWN, BROWN, RED, ROOF, ROOF, GRAY, YELLOW
- tilepal GRAY, GRAY, RED, RED, RED, RED, WATER, WATER
- tilepal WATER, WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, RED, RED, RED, RED, WATER, WATER
- tilepal WATER, WATER, RED, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED, RED
- tilepal GREEN, GRAY, GREEN, GREEN, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, RED, YELLOW, YELLOW, YELLOW, ROOF, ROOF
- tilepal ROOF, ROOF, ROOF, ROOF, RED, RED, BROWN, BROWN
-
-TilesetMansionPalMap:
- tilepal GRAY, BROWN, WATER, ROOF, RED, ROOF, BROWN, BROWN
- tilepal GRAY, GRAY, GRAY, GRAY, ROOF, ROOF, ROOF, ROOF
- tilepal GRAY, RED, ROOF, ROOF, ROOF, ROOF, BROWN, BROWN
- tilepal GRAY, GRAY, GRAY, GRAY, ROOF, ROOF, ROOF, ROOF
- tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal RED, GRAY, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
- tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, GRAY, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, BROWN, BROWN
- tilepal BROWN, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, BROWN, BROWN
- tilepal BROWN, GRAY, BROWN, BROWN, ROOF, ROOF, BROWN, BROWN
-
-TilesetGameCornerPalMap:
- tilepal GRAY, RED, BROWN, RED, ROOF, ROOF, GREEN, GREEN
- tilepal GREEN, GREEN, RED, RED, RED, RED, ROOF, BROWN
- tilepal RED, RED, RED, RED, ROOF, ROOF, GRAY, GRAY
- tilepal GRAY, GREEN, RED, RED, RED, RED, ROOF, ROOF
- tilepal BROWN, BROWN, RED, RED, BROWN, BROWN, GRAY, GRAY
- tilepal GRAY, GREEN, RED, RED, GREEN, GRAY, RED, RED
- tilepal BROWN, BROWN, RED, RED, RED, RED, BROWN, BROWN
- tilepal BROWN, BROWN, RED, RED, GREEN, ROOF, RED, RED
- tilepal ROOF, ROOF, GRAY, GRAY, GRAY, GRAY, RED, RED
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, RED, RED
- tilepal RED, GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED
- tilepal GRAY, GRAY, GRAY, WATER, ROOF, ROOF, WATER, WATER
-
-TilesetEliteFourRoomPalMap:
- tilepal GRAY, ROOF, RED, RED, RED, ROOF, ROOF, GREEN
- tilepal GREEN, GRAY, GREEN, GREEN, GREEN, GREEN, WATER, GREEN
- tilepal GRAY, WATER, WATER, WATER, RED, ROOF, ROOF, BROWN
- tilepal BROWN, RED, GRAY, GREEN, GREEN, GREEN, GREEN, GREEN
- tilepal RED, RED, GRAY, GRAY, WATER, GRAY, GRAY, GRAY
- tilepal GRAY, RED, GRAY, GRAY, GRAY, ROOF, GREEN, BROWN
- tilepal RED, RED, GRAY, GRAY, WATER, GRAY, GRAY, GRAY
- tilepal RED, WATER, GRAY, GRAY, GRAY, GRAY, RED, RED
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, BROWN, BROWN, BROWN
- tilepal WATER, WATER, WATER, WATER, WATER, WATER, ROOF, ROOF
- tilepal WATER, GREEN, GREEN, BROWN, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, WATER, RED, WATER, WATER, ROOF, ROOF
-
-TilesetTraditionalHousePalMap:
- tilepal GRAY, BROWN, WATER, WATER, RED, GRAY, GRAY, GRAY
- tilepal BROWN, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, WATER, WATER, RED, BROWN, GRAY, GRAY
- tilepal BROWN, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
- tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY
- tilepal GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, RED, GRAY
- tilepal GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, WATER, WATER
- tilepal BROWN, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, WATER, BROWN
-
-TilesetTowerPalMap:
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, RED
- tilepal RED, RED, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, RED
- tilepal RED, RED, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
- tilepal RED, RED, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
- tilepal RED, RED, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, YELLOW, YELLOW, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, YELLOW, YELLOW, YELLOW, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, YELLOW, YELLOW, YELLOW, BROWN, BROWN, BROWN
-
-TilesetCavePalMap:
-TilesetDarkCavePalMap:
- tilepal BROWN, BROWN, GRAY, GRAY, GREEN, BROWN, BROWN, BROWN
- tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, GRAY, GRAY, WATER, BROWN, BROWN, BROWN
- tilepal GRAY, GRAY, YELLOW, YELLOW, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
- tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY
- tilepal WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-
-TilesetParkPalMap:
- tilepal GRAY, GREEN, BROWN, RED, GREEN, BROWN, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GREEN, GREEN, GREEN, GREEN
- tilepal RED, RED, RED, GRAY, WATER, ROOF, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, BROWN, GREEN, GREEN, GREEN, GREEN
- tilepal RED, RED, RED, BROWN, BROWN, BROWN, BROWN, GRAY
- tilepal GRAY, GRAY, GRAY, BROWN, GREEN, BROWN, BROWN, GREEN
- tilepal RED, RED, RED, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, GREEN, GREEN, GREEN, BROWN, BROWN, GREEN
- tilepal BROWN, RED, BROWN, BROWN, GRAY, GRAY, GRAY, BROWN
- tilepal BROWN, BROWN, GREEN, GREEN, WATER, WATER, WATER, RED
- tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, BROWN
- tilepal BROWN, BROWN, GRAY, GRAY, WATER, WATER, WATER, GRAY
-
-TilesetRuinsOfAlphPalMap:
- tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal WATER, WATER, WATER, WATER, YELLOW, YELLOW, GRAY, GRAY
- tilepal YELLOW, YELLOW, BROWN, BROWN, YELLOW, YELLOW, YELLOW, YELLOW
- tilepal YELLOW, YELLOW, YELLOW, YELLOW, YELLOW, YELLOW, GRAY, GRAY
- tilepal YELLOW, YELLOW, YELLOW, YELLOW, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, RED, RED, RED, GRAY, GRAY, GRAY
- tilepal YELLOW, YELLOW, YELLOW, YELLOW, BROWN, BROWN, YELLOW, YELLOW
- tilepal YELLOW, YELLOW, RED, RED, RED, GRAY, GRAY, GRAY
- tilepal YELLOW, YELLOW, YELLOW, YELLOW, YELLOW, YELLOW, YELLOW, YELLOW
- tilepal YELLOW, YELLOW, YELLOW, YELLOW, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-
-TilesetRadioTowerPalMap:
- tilepal GRAY, RED, RED, WATER, WATER, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal WATER, WATER, RED, WATER, WATER, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal ROOF, ROOF, GRAY, GRAY, WATER, GRAY, GRAY, BROWN
- tilepal BROWN, ROOF, ROOF, GRAY, RED, RED, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, WATER, GRAY, GRAY, BROWN
- tilepal BROWN, GRAY, GRAY, GRAY, RED, RED, GRAY, GRAY
- tilepal GRAY, GRAY, BROWN, BROWN, GRAY, GRAY, GREEN, GREEN
- tilepal GREEN, GREEN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal RED, RED, WATER, WATER, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, RED, GRAY, GRAY, GRAY, GRAY
-
-TilesetTrainStationPalMap:
- tilepal GRAY, GRAY, GREEN, GREEN, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, GRAY
- tilepal GRAY, GRAY, GREEN, GREEN, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, GRAY
- tilepal GRAY, GREEN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal YELLOW, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, GRAY, GRAY
- tilepal YELLOW, YELLOW, YELLOW, YELLOW, WATER, WATER, WATER, WATER
- tilepal BROWN, BROWN, GRAY, GRAY, GREEN, GREEN, WATER, WATER
- tilepal WATER, GREEN, GREEN, WATER, BROWN, BROWN, BROWN, GREEN
- tilepal BROWN, BROWN, GRAY, GRAY, GREEN, GREEN, WATER, WATER
-
-TilesetUndergroundPalMap:
- tilepal GRAY, GRAY, RED, WATER, WATER, WATER, WATER, RED
- tilepal RED, GRAY, WATER, WATER, WATER, WATER, GRAY, GRAY
- tilepal GRAY, RED, RED, WATER, WATER, WATER, WATER, RED
- tilepal RED, GRAY, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
- tilepal BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GREEN, GREEN
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, BROWN, BROWN
- tilepal GRAY, GRAY, GRAY, BROWN, BROWN, YELLOW, YELLOW, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, BROWN, BROWN, YELLOW, YELLOW, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-
-TilesetChampionsRoomPalMap:
- tilepal GRAY, GREEN, GREEN, GREEN, RED, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, RED, RED, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GREEN, GREEN, RED, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, RED, RED, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GREEN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GREEN, GREEN, YELLOW, RED, RED
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, RED, RED, RED, RED, RED
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, GRAY, RED, WATER, WATER, ROOF, GRAY, GRAY
- tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, BROWN, BROWN
- tilepal GRAY, GRAY, RED, WATER, WATER, ROOF, GRAY, GRAY
-
-TilesetLighthousePalMap:
- tilepal GRAY, WATER, WATER, WATER, BROWN, WATER, WATER, RED
- tilepal RED, RED, RED, BROWN, RED, RED, RED, RED
- tilepal ROOF, WATER, ROOF, BROWN, RED, WATER, WATER, RED
- tilepal RED, RED, RED, WATER, RED, RED, RED, RED
- tilepal ROOF, ROOF, WATER, BROWN, RED, WATER, WATER, GRAY
- tilepal GRAY, GRAY, GRAY, BROWN, RED, ROOF, GRAY, GRAY
- tilepal ROOF, ROOF, WATER, WATER, RED, RED, BROWN, GRAY
- tilepal GRAY, GRAY, GRAY, BROWN, BROWN, ROOF, BROWN, WATER
- tilepal RED, RED, ROOF, ROOF, BROWN, BROWN, GRAY, GRAY
- tilepal RED, RED, GRAY, GRAY, GREEN, GREEN, ROOF, ROOF
- tilepal RED, RED, ROOF, ROOF, ROOF, ROOF, GRAY, GRAY
- tilepal RED, RED, GREEN, GREEN, ROOF, ROOF, GRAY, GRAY
-
-TilesetPlayersRoomPalMap:
- tilepal BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GREEN
- tilepal GREEN, RED, RED, GRAY, GRAY, RED, RED, RED
- tilepal BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GREEN
- tilepal GREEN, RED, RED, GRAY, GRAY, WATER, RED, RED
- tilepal BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GREEN
- tilepal GREEN, ROOF, ROOF, GRAY, GRAY, YELLOW, RED, RED
- tilepal BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GREEN
- tilepal GREEN, ROOF, ROOF, WATER, WATER, GREEN, RED, RED
- tilepal GRAY, GRAY, GRAY, GRAY, BROWN, BROWN, BROWN, GREEN
- tilepal GREEN, YELLOW, YELLOW, WATER, WATER, BROWN, YELLOW, YELLOW
- tilepal GRAY, GRAY, GRAY, GRAY, BROWN, BROWN, BROWN, GREEN
- tilepal GREEN, YELLOW, YELLOW, GRAY, GRAY, BROWN, YELLOW, YELLOW
-
-UnusedMuseumPalMap:
- tilepal WATER, RED, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
- tilepal BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
- tilepal BROWN, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
- tilepal ROOF, BROWN, BROWN, BROWN, ROOF, ROOF, ROOF, ROOF
- tilepal ROOF, ROOF, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
- tilepal ROOF, GRAY, ROOF, BROWN, ROOF, ROOF, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, ROOF
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
- tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-
-TilesetIcePathPalMap:
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, WATER, WATER
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, WATER, WATER
- tilepal WATER, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
- tilepal WATER, WATER, BROWN, BROWN, WATER, WATER, WATER, WATER
- tilepal BROWN, WATER, WATER, WATER, WATER, WATER, GRAY, GRAY
- tilepal WATER, WATER, BROWN, BROWN, GRAY, GRAY, WATER, WATER
- tilepal YELLOW, YELLOW, YELLOW, YELLOW, GREEN, GRAY, GRAY, WATER
- tilepal WATER, WATER, WATER, WATER, WATER, WATER, WATER, WATER
- tilepal BROWN, BROWN, GRAY, GRAY, WATER, WATER, WATER, WATER
- tilepal WATER, WATER, WATER, WATER, WATER, WATER, WATER, WATER
-
-TilesetForestPalMap:
- tilepal GRAY, BROWN, BROWN, RED, YELLOW, GREEN, BROWN, YELLOW
- tilepal YELLOW, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, GREEN
- tilepal BROWN, BROWN, BROWN, RED, WATER, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, GREEN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
- tilepal GREEN, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, GREEN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
- tilepal GREEN, GREEN, GREEN, BROWN, GREEN, BROWN, BROWN, GREEN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
- tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
diff --git a/gfx/tilesets/park.2bpp.lz b/gfx/tilesets/park.2bpp.lz
new file mode 100644
index 00000000..71469128
--- /dev/null
+++ b/gfx/tilesets/park.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/park.png b/gfx/tilesets/park.png
new file mode 100644
index 00000000..e21338f2
--- /dev/null
+++ b/gfx/tilesets/park.png
Binary files differ
diff --git a/gfx/tilesets/park_palette_map.asm b/gfx/tilesets/park_palette_map.asm
new file mode 100644
index 00000000..179a9cfb
--- /dev/null
+++ b/gfx/tilesets/park_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, GREEN, BROWN, RED, GREEN, BROWN, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GREEN, GREEN, GREEN, GREEN
+ tilepal RED, RED, RED, GRAY, WATER, ROOF, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, BROWN, GREEN, GREEN, GREEN, GREEN
+ tilepal RED, RED, RED, BROWN, BROWN, BROWN, BROWN, GRAY
+ tilepal GRAY, GRAY, GRAY, BROWN, GREEN, BROWN, BROWN, GREEN
+ tilepal RED, RED, RED, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, GREEN, GREEN, GREEN, BROWN, BROWN, GREEN
+ tilepal BROWN, RED, BROWN, BROWN, GRAY, GRAY, GRAY, BROWN
+ tilepal BROWN, BROWN, GREEN, GREEN, WATER, WATER, WATER, RED
+ tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, BROWN
+ tilepal BROWN, BROWN, GRAY, GRAY, WATER, WATER, WATER, GRAY
diff --git a/gfx/tilesets/players_house.2bpp.lz b/gfx/tilesets/players_house.2bpp.lz
new file mode 100644
index 00000000..17c64de6
--- /dev/null
+++ b/gfx/tilesets/players_house.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/players_house.png b/gfx/tilesets/players_house.png
new file mode 100644
index 00000000..76e47078
--- /dev/null
+++ b/gfx/tilesets/players_house.png
Binary files differ
diff --git a/gfx/tilesets/players_house_palette_map.asm b/gfx/tilesets/players_house_palette_map.asm
new file mode 100644
index 00000000..08c684f2
--- /dev/null
+++ b/gfx/tilesets/players_house_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, BROWN, BROWN, BROWN, RED, GREEN, WATER, WATER
+ tilepal BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, RED, BROWN, WATER, WATER
+ tilepal BROWN, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
+ tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal GRAY, GRAY, GRAY, GRAY, WATER, WATER, BROWN, BROWN
+ tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
+ tilepal GRAY, GRAY, BROWN, BROWN, WATER, WATER, BROWN, BROWN
+ tilepal BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
diff --git a/gfx/tilesets/players_room.2bpp.lz b/gfx/tilesets/players_room.2bpp.lz
new file mode 100644
index 00000000..b458a501
--- /dev/null
+++ b/gfx/tilesets/players_room.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/players_room.png b/gfx/tilesets/players_room.png
new file mode 100644
index 00000000..a0f268eb
--- /dev/null
+++ b/gfx/tilesets/players_room.png
Binary files differ
diff --git a/gfx/tilesets/players_room_palette_map.asm b/gfx/tilesets/players_room_palette_map.asm
new file mode 100644
index 00000000..642d01e1
--- /dev/null
+++ b/gfx/tilesets/players_room_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GREEN
+ tilepal GREEN, RED, RED, GRAY, GRAY, RED, RED, RED
+ tilepal BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GREEN
+ tilepal GREEN, RED, RED, GRAY, GRAY, WATER, RED, RED
+ tilepal BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GREEN
+ tilepal GREEN, ROOF, ROOF, GRAY, GRAY, YELLOW, RED, RED
+ tilepal BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GREEN
+ tilepal GREEN, ROOF, ROOF, WATER, WATER, GREEN, RED, RED
+ tilepal GRAY, GRAY, GRAY, GRAY, BROWN, BROWN, BROWN, GREEN
+ tilepal GREEN, YELLOW, YELLOW, WATER, WATER, BROWN, YELLOW, YELLOW
+ tilepal GRAY, GRAY, GRAY, GRAY, BROWN, BROWN, BROWN, GREEN
+ tilepal GREEN, YELLOW, YELLOW, GRAY, GRAY, BROWN, YELLOW, YELLOW
diff --git a/gfx/tilesets/pokecenter.2bpp.lz b/gfx/tilesets/pokecenter.2bpp.lz
new file mode 100644
index 00000000..ae3dd86f
--- /dev/null
+++ b/gfx/tilesets/pokecenter.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/pokecenter.png b/gfx/tilesets/pokecenter.png
new file mode 100644
index 00000000..98b9cc5d
--- /dev/null
+++ b/gfx/tilesets/pokecenter.png
Binary files differ
diff --git a/gfx/tilesets/pokecenter_palette_map.asm b/gfx/tilesets/pokecenter_palette_map.asm
new file mode 100644
index 00000000..753d5a23
--- /dev/null
+++ b/gfx/tilesets/pokecenter_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, RED, GRAY, WATER, WATER, WATER, ROOF, ROOF
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, WATER, WATER, WATER
+ tilepal GRAY, RED, RED, WATER, WATER, WATER, WATER, WATER
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GREEN, GREEN, GRAY
+ tilepal GRAY, GRAY, RED, RED, WATER, WATER, GRAY, GRAY
+ tilepal GRAY, GRAY, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, RED, RED, GRAY, WATER, WATER, WATER
+ tilepal WATER, WATER, WATER, WATER, GRAY, GRAY, WATER, GRAY
+ tilepal GRAY, GRAY, RED, RED, RED, RED, WATER, WATER
+ tilepal YELLOW, YELLOW, GRAY, GRAY, GRAY, RED, RED, GRAY
+ tilepal RED, RED, RED, RED, RED, RED, GRAY, GRAY
+ tilepal YELLOW, YELLOW, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
diff --git a/gfx/tilesets/port.2bpp.lz b/gfx/tilesets/port.2bpp.lz
new file mode 100644
index 00000000..96dd2e59
--- /dev/null
+++ b/gfx/tilesets/port.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/port.png b/gfx/tilesets/port.png
new file mode 100644
index 00000000..3e05e0da
--- /dev/null
+++ b/gfx/tilesets/port.png
Binary files differ
diff --git a/gfx/tilesets/port_palette_map.asm b/gfx/tilesets/port_palette_map.asm
new file mode 100644
index 00000000..bb973659
--- /dev/null
+++ b/gfx/tilesets/port_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, WATER, WATER, GRAY, GRAY, RED, BROWN, BROWN
+ tilepal BROWN, BROWN, GRAY, GRAY, RED, RED, RED, BROWN
+ tilepal ROOF, WATER, WATER, WATER, WATER, RED, BROWN, BROWN
+ tilepal BROWN, BROWN, ROOF, WATER, RED, RED, GRAY, GRAY
+ tilepal BROWN, BROWN, BROWN, ROOF, ROOF, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, ROOF, ROOF, RED, ROOF, ROOF, ROOF
+ tilepal ROOF, GRAY, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
diff --git a/gfx/tilesets/radio_tower.2bpp.lz b/gfx/tilesets/radio_tower.2bpp.lz
new file mode 100644
index 00000000..caa08aa4
--- /dev/null
+++ b/gfx/tilesets/radio_tower.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/radio_tower.png b/gfx/tilesets/radio_tower.png
new file mode 100644
index 00000000..a1244723
--- /dev/null
+++ b/gfx/tilesets/radio_tower.png
Binary files differ
diff --git a/gfx/tilesets/radio_tower_palette_map.asm b/gfx/tilesets/radio_tower_palette_map.asm
new file mode 100644
index 00000000..88ae154c
--- /dev/null
+++ b/gfx/tilesets/radio_tower_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, RED, RED, WATER, WATER, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal WATER, WATER, RED, WATER, WATER, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal ROOF, ROOF, GRAY, GRAY, WATER, GRAY, GRAY, BROWN
+ tilepal BROWN, ROOF, ROOF, GRAY, RED, RED, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, WATER, GRAY, GRAY, BROWN
+ tilepal BROWN, GRAY, GRAY, GRAY, RED, RED, GRAY, GRAY
+ tilepal GRAY, GRAY, BROWN, BROWN, GRAY, GRAY, GREEN, GREEN
+ tilepal GREEN, GREEN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal RED, RED, WATER, WATER, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, RED, GRAY, GRAY, GRAY, GRAY
diff --git a/gfx/tilesets/roofs/azalea.2bpp b/gfx/tilesets/roofs/azalea.2bpp
new file mode 100644
index 00000000..67db7f99
--- /dev/null
+++ b/gfx/tilesets/roofs/azalea.2bpp
Binary files differ
diff --git a/gfx/tilesets/roofs/azalea.png b/gfx/tilesets/roofs/azalea.png
new file mode 100644
index 00000000..b97b8787
--- /dev/null
+++ b/gfx/tilesets/roofs/azalea.png
Binary files differ
diff --git a/gfx/tilesets/roofs/goldenrod.2bpp b/gfx/tilesets/roofs/goldenrod.2bpp
new file mode 100644
index 00000000..87590db9
--- /dev/null
+++ b/gfx/tilesets/roofs/goldenrod.2bpp
Binary files differ
diff --git a/gfx/tilesets/roofs/goldenrod.png b/gfx/tilesets/roofs/goldenrod.png
new file mode 100644
index 00000000..25bf7104
--- /dev/null
+++ b/gfx/tilesets/roofs/goldenrod.png
Binary files differ
diff --git a/gfx/tilesets/roofs/new_bark.2bpp b/gfx/tilesets/roofs/new_bark.2bpp
new file mode 100644
index 00000000..51650e2e
--- /dev/null
+++ b/gfx/tilesets/roofs/new_bark.2bpp
Binary files differ
diff --git a/gfx/tilesets/roofs/new_bark.png b/gfx/tilesets/roofs/new_bark.png
new file mode 100644
index 00000000..1aa48fb8
--- /dev/null
+++ b/gfx/tilesets/roofs/new_bark.png
Binary files differ
diff --git a/gfx/tilesets/roofs/olivine.2bpp b/gfx/tilesets/roofs/olivine.2bpp
new file mode 100644
index 00000000..1d88fac5
--- /dev/null
+++ b/gfx/tilesets/roofs/olivine.2bpp
Binary files differ
diff --git a/gfx/tilesets/roofs/olivine.png b/gfx/tilesets/roofs/olivine.png
new file mode 100644
index 00000000..14bc411a
--- /dev/null
+++ b/gfx/tilesets/roofs/olivine.png
Binary files differ
diff --git a/gfx/tilesets/roofs/violet.2bpp b/gfx/tilesets/roofs/violet.2bpp
new file mode 100644
index 00000000..eea01d2f
--- /dev/null
+++ b/gfx/tilesets/roofs/violet.2bpp
Binary files differ
diff --git a/gfx/tilesets/roofs/violet.png b/gfx/tilesets/roofs/violet.png
new file mode 100644
index 00000000..1d68754f
--- /dev/null
+++ b/gfx/tilesets/roofs/violet.png
Binary files differ
diff --git a/gfx/tilesets/ruins_of_alph.2bpp.lz b/gfx/tilesets/ruins_of_alph.2bpp.lz
new file mode 100644
index 00000000..58bb839a
--- /dev/null
+++ b/gfx/tilesets/ruins_of_alph.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/ruins_of_alph.png b/gfx/tilesets/ruins_of_alph.png
new file mode 100644
index 00000000..14e5af4d
--- /dev/null
+++ b/gfx/tilesets/ruins_of_alph.png
Binary files differ
diff --git a/gfx/tilesets/ruins_of_alph_palette_map.asm b/gfx/tilesets/ruins_of_alph_palette_map.asm
new file mode 100644
index 00000000..c844d1fd
--- /dev/null
+++ b/gfx/tilesets/ruins_of_alph_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal WATER, WATER, WATER, WATER, YELLOW, YELLOW, GRAY, GRAY
+ tilepal YELLOW, YELLOW, BROWN, BROWN, YELLOW, YELLOW, YELLOW, YELLOW
+ tilepal YELLOW, YELLOW, YELLOW, YELLOW, YELLOW, YELLOW, GRAY, GRAY
+ tilepal YELLOW, YELLOW, YELLOW, YELLOW, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, RED, RED, RED, GRAY, GRAY, GRAY
+ tilepal YELLOW, YELLOW, YELLOW, YELLOW, BROWN, BROWN, YELLOW, YELLOW
+ tilepal YELLOW, YELLOW, RED, RED, RED, GRAY, GRAY, GRAY
+ tilepal YELLOW, YELLOW, YELLOW, YELLOW, YELLOW, YELLOW, YELLOW, YELLOW
+ tilepal YELLOW, YELLOW, YELLOW, YELLOW, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
diff --git a/gfx/tilesets/tower-pillar/1.2bpp b/gfx/tilesets/tower-pillar/1.2bpp
new file mode 100644
index 00000000..3bb46c95
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/1.2bpp
@@ -0,0 +1 @@
+__?//????_ Oo \ No newline at end of file
diff --git a/gfx/tilesets/tower-pillar/1.png b/gfx/tilesets/tower-pillar/1.png
new file mode 100644
index 00000000..c22fb2a1
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/1.png
Binary files differ
diff --git a/gfx/tilesets/tower-pillar/10.2bpp b/gfx/tilesets/tower-pillar/10.2bpp
new file mode 100644
index 00000000..a1af10a5
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/10.2bpp
@@ -0,0 +1 @@
+?____WWWUu \ No newline at end of file
diff --git a/gfx/tilesets/tower-pillar/10.png b/gfx/tilesets/tower-pillar/10.png
new file mode 100644
index 00000000..01dbe1af
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/10.png
Binary files differ
diff --git a/gfx/tilesets/tower-pillar/2.2bpp b/gfx/tilesets/tower-pillar/2.2bpp
new file mode 100644
index 00000000..08d8cfd7
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/2.2bpp
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/gfx/tilesets/tower-pillar/2.png b/gfx/tilesets/tower-pillar/2.png
new file mode 100644
index 00000000..76fae403
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/2.png
Binary files differ
diff --git a/gfx/tilesets/tower-pillar/3.2bpp b/gfx/tilesets/tower-pillar/3.2bpp
new file mode 100644
index 00000000..e4bb79a4
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/3.2bpp
@@ -0,0 +1 @@
+__?//????_ Oo \ No newline at end of file
diff --git a/gfx/tilesets/tower-pillar/3.png b/gfx/tilesets/tower-pillar/3.png
new file mode 100644
index 00000000..80ce4657
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/3.png
Binary files differ
diff --git a/gfx/tilesets/tower-pillar/4.2bpp b/gfx/tilesets/tower-pillar/4.2bpp
new file mode 100644
index 00000000..08897f1d
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/4.2bpp
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/gfx/tilesets/tower-pillar/4.png b/gfx/tilesets/tower-pillar/4.png
new file mode 100644
index 00000000..9d523c4b
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/4.png
Binary files differ
diff --git a/gfx/tilesets/tower-pillar/5.2bpp b/gfx/tilesets/tower-pillar/5.2bpp
new file mode 100644
index 00000000..f66926ba
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/5.2bpp
@@ -0,0 +1 @@
+__?/oW [ \ No newline at end of file
diff --git a/gfx/tilesets/tower-pillar/5.png b/gfx/tilesets/tower-pillar/5.png
new file mode 100644
index 00000000..b7796c8d
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/5.png
Binary files differ
diff --git a/gfx/tilesets/tower-pillar/6.2bpp b/gfx/tilesets/tower-pillar/6.2bpp
new file mode 100644
index 00000000..5021b1c1
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/6.2bpp
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/gfx/tilesets/tower-pillar/6.png b/gfx/tilesets/tower-pillar/6.png
new file mode 100644
index 00000000..0ca0e593
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/6.png
Binary files differ
diff --git a/gfx/tilesets/tower-pillar/7.2bpp b/gfx/tilesets/tower-pillar/7.2bpp
new file mode 100644
index 00000000..59d6876a
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/7.2bpp
@@ -0,0 +1 @@
+ݠ߀ \ No newline at end of file
diff --git a/gfx/tilesets/tower-pillar/7.png b/gfx/tilesets/tower-pillar/7.png
new file mode 100644
index 00000000..3aa4b4e9
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/7.png
Binary files differ
diff --git a/gfx/tilesets/tower-pillar/8.2bpp b/gfx/tilesets/tower-pillar/8.2bpp
new file mode 100644
index 00000000..bb22068b
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/8.2bpp
@@ -0,0 +1 @@
+??__//  \ No newline at end of file
diff --git a/gfx/tilesets/tower-pillar/8.png b/gfx/tilesets/tower-pillar/8.png
new file mode 100644
index 00000000..e8147561
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/8.png
Binary files differ
diff --git a/gfx/tilesets/tower-pillar/9.2bpp b/gfx/tilesets/tower-pillar/9.2bpp
new file mode 100644
index 00000000..1c206fb7
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/9.2bpp
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/gfx/tilesets/tower-pillar/9.png b/gfx/tilesets/tower-pillar/9.png
new file mode 100644
index 00000000..da74607b
--- /dev/null
+++ b/gfx/tilesets/tower-pillar/9.png
Binary files differ
diff --git a/gfx/tilesets/tower.2bpp.lz b/gfx/tilesets/tower.2bpp.lz
new file mode 100644
index 00000000..c3b32c40
--- /dev/null
+++ b/gfx/tilesets/tower.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/tower.png b/gfx/tilesets/tower.png
new file mode 100644
index 00000000..ab59fa8f
--- /dev/null
+++ b/gfx/tilesets/tower.png
Binary files differ
diff --git a/gfx/tilesets/tower_palette_map.asm b/gfx/tilesets/tower_palette_map.asm
new file mode 100644
index 00000000..905e8aa7
--- /dev/null
+++ b/gfx/tilesets/tower_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, RED
+ tilepal RED, RED, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, RED
+ tilepal RED, RED, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
+ tilepal RED, RED, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
+ tilepal RED, RED, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, YELLOW, YELLOW, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, YELLOW, YELLOW, YELLOW, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, YELLOW, YELLOW, YELLOW, BROWN, BROWN, BROWN
diff --git a/gfx/tilesets/traditional_house.2bpp.lz b/gfx/tilesets/traditional_house.2bpp.lz
new file mode 100644
index 00000000..47bfaaf1
--- /dev/null
+++ b/gfx/tilesets/traditional_house.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/traditional_house.png b/gfx/tilesets/traditional_house.png
new file mode 100644
index 00000000..5537f63c
--- /dev/null
+++ b/gfx/tilesets/traditional_house.png
Binary files differ
diff --git a/gfx/tilesets/traditional_house_palette_map.asm b/gfx/tilesets/traditional_house_palette_map.asm
new file mode 100644
index 00000000..d10cc91d
--- /dev/null
+++ b/gfx/tilesets/traditional_house_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, BROWN, WATER, WATER, RED, GRAY, GRAY, GRAY
+ tilepal BROWN, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, WATER, WATER, RED, BROWN, GRAY, GRAY
+ tilepal BROWN, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
+ tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, GRAY
+ tilepal GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, RED, GRAY
+ tilepal GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, WATER, WATER
+ tilepal BROWN, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, BROWN
+ tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, WATER, BROWN
diff --git a/gfx/tilesets/train_station.2bpp.lz b/gfx/tilesets/train_station.2bpp.lz
new file mode 100644
index 00000000..ec10f74a
--- /dev/null
+++ b/gfx/tilesets/train_station.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/train_station.png b/gfx/tilesets/train_station.png
new file mode 100644
index 00000000..47a4ee0f
--- /dev/null
+++ b/gfx/tilesets/train_station.png
Binary files differ
diff --git a/gfx/tilesets/train_station_palette_map.asm b/gfx/tilesets/train_station_palette_map.asm
new file mode 100644
index 00000000..840e343a
--- /dev/null
+++ b/gfx/tilesets/train_station_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, GRAY, GREEN, GREEN, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, GRAY
+ tilepal GRAY, GRAY, GREEN, GREEN, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, GRAY
+ tilepal GRAY, GREEN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal YELLOW, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, GRAY, GRAY
+ tilepal YELLOW, YELLOW, YELLOW, YELLOW, WATER, WATER, WATER, WATER
+ tilepal BROWN, BROWN, GRAY, GRAY, GREEN, GREEN, WATER, WATER
+ tilepal WATER, GREEN, GREEN, WATER, BROWN, BROWN, BROWN, GREEN
+ tilepal BROWN, BROWN, GRAY, GRAY, GREEN, GREEN, WATER, WATER
diff --git a/gfx/tilesets/underground.2bpp.lz b/gfx/tilesets/underground.2bpp.lz
new file mode 100644
index 00000000..9efbce39
--- /dev/null
+++ b/gfx/tilesets/underground.2bpp.lz
Binary files differ
diff --git a/gfx/tilesets/underground.png b/gfx/tilesets/underground.png
new file mode 100644
index 00000000..62b01581
--- /dev/null
+++ b/gfx/tilesets/underground.png
Binary files differ
diff --git a/gfx/tilesets/underground_palette_map.asm b/gfx/tilesets/underground_palette_map.asm
new file mode 100644
index 00000000..0661f40c
--- /dev/null
+++ b/gfx/tilesets/underground_palette_map.asm
@@ -0,0 +1,12 @@
+ tilepal GRAY, GRAY, RED, WATER, WATER, WATER, WATER, RED
+ tilepal RED, GRAY, WATER, WATER, WATER, WATER, GRAY, GRAY
+ tilepal GRAY, RED, RED, WATER, WATER, WATER, WATER, RED
+ tilepal RED, GRAY, BROWN, BROWN, BROWN, BROWN, GREEN, GREEN
+ tilepal BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GREEN, GREEN
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, BROWN, BROWN
+ tilepal GRAY, GRAY, GRAY, BROWN, BROWN, YELLOW, YELLOW, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, BROWN, BROWN, YELLOW, YELLOW, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
diff --git a/gfx/tilesets/unused_museum_palette_map.asm b/gfx/tilesets/unused_museum_palette_map.asm
new file mode 100644
index 00000000..ae6baa3e
--- /dev/null
+++ b/gfx/tilesets/unused_museum_palette_map.asm
@@ -0,0 +1,15 @@
+; Matches pokered's "gate" tileset (notable for its Pewter Museum tiles)
+; https://tcrf.net/Pok%C3%A9mon_Gold_and_Silver#Unused_Tile_Palette_Assignment_Data
+
+ tilepal WATER, RED, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
+ tilepal BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
+ tilepal BROWN, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
+ tilepal ROOF, BROWN, BROWN, BROWN, ROOF, ROOF, ROOF, ROOF
+ tilepal ROOF, ROOF, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
+ tilepal ROOF, GRAY, ROOF, BROWN, ROOF, ROOF, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, ROOF
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
diff --git a/gfx/tilesets/water/water.2bpp b/gfx/tilesets/water/water.2bpp
new file mode 100644
index 00000000..a6e9f6ac
--- /dev/null
+++ b/gfx/tilesets/water/water.2bpp
Binary files differ
diff --git a/gfx/tilesets/water/water.png b/gfx/tilesets/water/water.png
new file mode 100644
index 00000000..0aa2640c
--- /dev/null
+++ b/gfx/tilesets/water/water.png
Binary files differ
diff --git a/gfx/tilesets/whirlpool/1.2bpp b/gfx/tilesets/whirlpool/1.2bpp
new file mode 100644
index 00000000..0a58c6b2
--- /dev/null
+++ b/gfx/tilesets/whirlpool/1.2bpp
Binary files differ
diff --git a/gfx/tilesets/whirlpool/1.png b/gfx/tilesets/whirlpool/1.png
new file mode 100644
index 00000000..4641dbc0
--- /dev/null
+++ b/gfx/tilesets/whirlpool/1.png
Binary files differ
diff --git a/gfx/tilesets/whirlpool/2.2bpp b/gfx/tilesets/whirlpool/2.2bpp
new file mode 100644
index 00000000..e1f841cf
--- /dev/null
+++ b/gfx/tilesets/whirlpool/2.2bpp
Binary files differ
diff --git a/gfx/tilesets/whirlpool/2.png b/gfx/tilesets/whirlpool/2.png
new file mode 100644
index 00000000..ce542405
--- /dev/null
+++ b/gfx/tilesets/whirlpool/2.png
Binary files differ
diff --git a/gfx/tilesets/whirlpool/3.2bpp b/gfx/tilesets/whirlpool/3.2bpp
new file mode 100644
index 00000000..9cdec833
--- /dev/null
+++ b/gfx/tilesets/whirlpool/3.2bpp
Binary files differ
diff --git a/gfx/tilesets/whirlpool/3.png b/gfx/tilesets/whirlpool/3.png
new file mode 100644
index 00000000..55b62944
--- /dev/null
+++ b/gfx/tilesets/whirlpool/3.png
Binary files differ
diff --git a/gfx/tilesets/whirlpool/4.2bpp b/gfx/tilesets/whirlpool/4.2bpp
new file mode 100644
index 00000000..414acce0
--- /dev/null
+++ b/gfx/tilesets/whirlpool/4.2bpp
Binary files differ
diff --git a/gfx/tilesets/whirlpool/4.png b/gfx/tilesets/whirlpool/4.png
new file mode 100644
index 00000000..2175c595
--- /dev/null
+++ b/gfx/tilesets/whirlpool/4.png
Binary files differ
diff --git a/gfx/unknown/gfx_17079.png b/gfx/unknown/gfx_17079.png
deleted file mode 100644
index 1c3a43f3..00000000
--- a/gfx/unknown/gfx_17079.png
+++ /dev/null
Binary files differ
diff --git a/layout.link b/layout.link
index a527bdb5..d9a33677 100644
--- a/layout.link
+++ b/layout.link
@@ -40,12 +40,15 @@ ROMX $04
ROMX $05
"bank5"
ROMX $06
- "bank6"
+ "Tileset Data 1"
ROMX $07
- "bank7"
+ "Roofs"
+ "Tileset Data 2"
"Extra Songs 1"
ROMX $08
- "bank8"
+ "Clock Reset"
+ "Tileset Data 3"
+ "Catch Tutorial"
"Egg Moves"
ROMX $09
"bank9"
@@ -54,7 +57,7 @@ ROMX $0a
ROMX $0b
"bankB"
ROMX $0c
- "bankC"
+ "Tileset Data 4"
ROMX $0d
"Effect Commands"
ROMX $0e
@@ -133,7 +136,7 @@ ROMX $36
"Font Inversed"
ROMX $37
"Map Blocks 3"
- "bank37_2"
+ "Tileset Data 5"
ROMX $38
"bank38"
ROMX $39
@@ -152,7 +155,7 @@ ROMX $3d
ROMX $3e
"bank3e"
ROMX $3f
- "bank3f"
+ "bank3F"
ROMX $40
"Standard Scripts"
ROMX $41
@@ -243,6 +246,8 @@ ROMX $6e
"Item Descriptions"
ROMX $70
"bank70"
+ "Tileset Data 6"
+ "bank70_2"
ROMX $7f
org $7df8
"Stadium Data"
diff --git a/main.asm b/main.asm
index 126e6bfa..66eca040 100644
--- a/main.asm
+++ b/main.asm
@@ -96,138 +96,23 @@ INCLUDE "engine/events/mom.asm"
INCLUDE "engine/events/daycare.asm"
INCLUDE "engine/events/print_unown.asm"
INCLUDE "engine/events/print_photo.asm"
-INCLUDE "unknown/bank05_704d.asm"
+INCLUDE "engine/link/mystery_gift_gfx.asm"
INCLUDE "engine/pokemon/breeding.asm"
-SECTION "bank6", ROMX
-
-TilesetKantoMeta::
- dr $18000, $18800
-TilesetKantoColl::
- dr $18800, $18a00
-Tileset0GFX::
-TilesetJohtoGFX::
- dr $18a00, $19006
-
-Tileset0Meta::
-TilesetJohtoMeta::
- dr $19006, $19806
-Tileset0Coll::
-TilesetJohtoColl::
- dr $19806, $19a06
-TilesetJohtoModernGFX::
- dr $19a06, $1a00c
-
-TilesetJohtoModernMeta::
- dr $1a00c, $1a80c
-TilesetJohtoModernColl::
- dr $1a80c, $1b40c
-
-TilesetTraditionalHouseGFX::
- dr $1b40c, $1b8bc
-TilesetTraditionalHouseMeta::
- dr $1b8bc, $1bcbc
-TilesetTraditionalHouseColl::
- dr $1bcbc, $1bdbc
-
-
-SECTION "bank7", ROMX
-
-LoadMapGroupRoof::
- dr $1c000, $1c30c
-TilesetGateGFX::
- dr $1c30c, $1c70c
-TilesetGateMeta::
- dr $1c70c, $1cb0c
-TilesetGateColl::
- dr $1cb0c, $1cc0c
-TilesetPokecenterGFX::
- dr $1cc0c, $1d03c
-
-TilesetPokecenterMeta::
- dr $1d03c, $1d43c
-TilesetPokecenterColl::
- dr $1d43c, $1d53c
-TilesetPortGFX::
- dr $1d53c, $1d94c
-TilesetPortMeta::
- dr $1d94c, $1dd4c
-TilesetPortColl::
- dr $1dd4c, $1de4c
-TilesetPlayersHouseGFX::
- dr $1de4c, $1e22c
-
-TilesetPlayersHouseMeta::
- dr $1e22c, $1e62c
-TilesetPlayersHouseColl::
- dr $1e62c, $1e72c
-TilesetMansionGFX::
- dr $1e72c, $1eabc
-TilesetMansionMeta::
- dr $1eabc, $1eebc
-TilesetMansionColl::
- dr $1eebc, $1efbc
-TilesetCaveGFX::
- dr $1efbc, $1f34c
-
-TilesetCaveMeta::
-TilesetDarkCaveMeta::
- dr $1f34c, $1f74c
-TilesetCaveColl::
-TilesetDarkCaveColl::
- dr $1f74c, $1f84c
-
-
-SECTION "bank8", ROMX
-
-RestartClock_GetWraparoundTime::
- dr $20000, $20021
-RestartClock::
- dr $20021, $20181
-TilesetTowerGFX::
- dr $20181, $205b1
-TilesetTowerMeta::
- dr $205b1, $209b1
-TilesetTowerColl::
- dr $209b1, $20ab1
-TilesetLabGFX::
- dr $20ab1, $20e81
-TilesetLabMeta::
- dr $20e81, $21281
-
-TilesetLabColl::
- dr $21281, $21381
-TilesetFacilityGFX::
- dr $21381, $217a1
-TilesetFacilityMeta::
- dr $217a1, $21ba1
-TilesetFacilityColl::
- dr $21ba1, $21ca1
-TilesetMartGFX::
- dr $21ca1, $22051
-
-TilesetMartMeta::
- dr $22051, $22451
-TilesetMartColl::
- dr $22451, $22551
-TilesetGameCornerGFX::
- dr $22551, $22951
-TilesetGameCornerMeta::
- dr $22951, $22d51
-TilesetGameCornerColl::
- dr $22d51, $22e51
-TilesetTrainStationGFX::
- dr $22e51, $231f1
-
-TilesetTrainStationMeta::
- dr $231f1, $235f1
-TilesetTrainStationColl::
- dr $235f1, $236f1
-TilesetForestMeta::
- dr $236f1, $23971
-CatchTutorial::
- dr $23971, $239fe
+SECTION "Roofs", ROMX
+
+INCLUDE "engine/tilesets/mapgroup_roofs.asm"
+
+
+SECTION "Clock Reset", ROMX
+
+INCLUDE "engine/rtc/restart_clock.asm"
+
+
+SECTION "Catch Tutorial", ROMX
+
+INCLUDE "engine/events/catch_tutorial.asm"
SECTION "bank9", ROMX
@@ -271,53 +156,6 @@ INCLUDE "engine/pokemon/print_move_description.asm"
INCLUDE "engine/events/pokerus/pokerus.asm"
-SECTION "bankC", ROMX
-
-TilesetEliteFourRoomGFX::
- dr $30000, $304e0
-TilesetEliteFourRoomMeta::
- dr $304e0, $308e0
-TilesetEliteFourRoomColl::
- dr $308e0, $309e0
-TilesetParkGFX::
- dr $309e0, $30e40
-TilesetParkMeta::
- dr $30e40, $31240
-
-TilesetParkColl::
- dr $31240, $31340
-TilesetRuinsOfAlphGFX::
- dr $31340, $31670
-TilesetRuinsOfAlphMeta::
- dr $31670, $31a70
-TilesetRuinsOfAlphColl::
- dr $31a70, $31b70
-TilesetRadioTowerGFX::
- dr $31b70, $31fc0
-TilesetRadioTowerMeta::
- dr $31fc0, $323c0
-
-TilesetRadioTowerColl::
- dr $323c0, $324c0
-TilesetUndergroundGFX::
- dr $324c0, $32890
-TilesetUndergroundMeta::
- dr $32890, $32c90
-TilesetUndergroundColl::
- dr $32c90, $32d90
-TilesetIcePathGFX::
- dr $32d90, $331d0
-
-TilesetIcePathMeta::
- dr $331d0, $335d0
-TilesetIcePathColl::
- dr $335d0, $336d0
-TilesetDarkCaveGFX::
- dr $336d0, $33a10
-TilesetForestGFX::
- dr $33a10, $33d81
-
-
SECTION "Effect Commands", ROMX
INCLUDE "engine/battle/effect_commands.asm"
@@ -403,7 +241,8 @@ HallOfFame::
RedCredits::
dr $86446, $86632
_HallOfFamePC::
- dr $86632, $87bfd
+ dr $86632, $87b65
+INCLUDE "data/credits_strings_pointers.asm"
SECTION "bank23", ROMX
@@ -598,36 +437,6 @@ FontInversed:
INCBIN "gfx/font/font_inversed.1bpp"
-SECTION "bank37_2", ROMX
-
-TilesetChampionsRoomGFX::
- dr $dd773, $ddc33
-TilesetChampionsRoomMeta::
- dr $ddc33, $de033
-TilesetChampionsRoomColl::
- dr $de033, $de133
-TilesetHouseGFX::
- dr $de133, $de5d3
-TilesetHouseMeta::
- dr $de5d3, $de9d3
-TilesetHouseColl::
- dr $de9d3, $dead3
-TilesetLighthouseGFX::
- dr $dead3, $deed3
-TilesetLighthouseMeta::
- dr $deed3, $df2d3
-TilesetLighthouseColl::
- dr $df2d3, $df3d3
-TilesetPlayersRoomGFX::
- dr $df3d3, $df893
-TilesetPlayersRoomMeta::
- dr $df893, $dfc93
-TilesetPlayersRoomColl::
- dr $dfc93, $dfd93
-TilesetForestColl::
- dr $dfd93, $dfe93
-
-
SECTION "bank38", ROMX
ret
@@ -706,7 +515,9 @@ LoadHPBar::
StatsScreen_LoadFont::
dr $f80a6, $f80d9
LoadStatsScreenPageTilesGFX::
- dr $f80d9, $f8bb2
+ dr $f80d9, $f8aa2
+StatsScreenPageTilesGFX::
+ dr $f8aa2, $f8bb2
EnemyHPBarBorderGFX::
dr $f8bb2, $f8bd2
HPExpBarBorderGFX::
@@ -721,8 +532,7 @@ Footprints::
UnownFont::
dr $fb30e, $fb4be
-TileCollisionTable::
- dr $fb4be, $fb5be
+INCLUDE "data/collision_permissions.asm"
Shrink1Pic::
dr $fb5be, $fb64e
Shrink2Pic::
@@ -769,59 +579,13 @@ DoBadgeTypeBoosts::
dr $fbf2b, $fbf93
-SECTION "bank3f", ROMX
+SECTION "bank3F", ROMX
- nop
-DummyPredef3A::
- ret
- ret
-_AnimateTileset::
- dr $fc003, $fc01e
-Tileset0Anim::
-TilesetJohtoModernAnim::
-TilesetKantoAnim::
-TilesetParkAnim::
-TilesetForestAnim::
- dr $fc01e, $fc04a
-TilesetJohtoAnim::
- dr $fc04a, $fc0d6
-TilesetPortAnim::
- dr $fc0d6, $fc106
-TilesetEliteFourRoomAnim::
- dr $fc106, $fc18e
-TilesetCaveAnim::
-TilesetDarkCaveAnim::
- dr $fc18e, $fc1da
-TilesetIcePathAnim::
- dr $fc1da, $fc226
-TilesetTowerAnim::
- dr $fc226, $fc28e
-TilesetHouseAnim::
-TilesetPlayersHouseAnim::
-TilesetPokecenterAnim::
-TilesetGateAnim::
-TilesetLabAnim::
-TilesetFacilityAnim::
-TilesetMartAnim::
-TilesetMansionAnim::
-TilesetGameCornerAnim::
-TilesetTraditionalHouseAnim::
-TilesetTrainStationAnim::
-TilesetChampionsRoomAnim::
-TilesetLighthouseAnim::
-TilesetPlayersRoomAnim::
-TilesetRuinsOfAlphAnim::
-TilesetRadioTowerAnim::
-TilesetUndergroundAnim::
- dr $fc28e, $fc9ae
-NPCTrade::
- dr $fc9ae, $fcd87
-MomTriesToBuySomething::
- dr $fcd87, $fcf6a
-StagePartyDataForMysteryGift::
- dr $fcf6a, $fcfb2
-InitMysteryGiftLayout::
- dr $fcfb2, $fde20
+INCLUDE "engine/tilesets/tileset_anims.asm"
+INCLUDE "engine/events/npc_trade.asm"
+INCLUDE "engine/events/mom_phone.asm"
+INCLUDE "engine/link/mystery_gift_3.asm"
+INCLUDE "engine/menus/debug.asm"
SECTION "Standard Scripts", ROMX
@@ -867,40 +631,20 @@ INCLUDE "data/items/descriptions.asm"
SECTION "bank70", ROMX
-PrintPage1::
- dr $1c0000, $1c0407
-TilesetKantoGFX::
- dr $1c0407, $1c0a1f
-PrintHoursMins::
- dr $1c0a1f, $1c0a66
-UpdateTimePredef::
- dr $1c0a66, $1c0a7a
-StubbedGetFrontpic::
- ret
-LoadSGBPokedexGFX::
- dr $1c0a7b, $1c0a85
-LoadSGBPokedexGFX2::
- dr $1c0a85, $1c0c36
-LoadQuestionMarkPic::
- dr $1c0c36, $1c0cd0
-DrawPokedexListWindow::
- dr $1c0cd0, $1c0d30
-DrawPokedexSearchResultsWindow::
- dr $1c0d30, $1c0da6
-DrawDexEntryScreenRightEdge::
- dr $1c0da6, $1c0de9
-_DudeAutoInput_A::
- dr $1c0de9, $1c0dee
-_DudeAutoInput_RightA::
- dr $1c0dee, $1c0df3
-_DudeAutoInput_DownA::
- dr $1c0df3, $1c0e24
-TownMap_ConvertLineBreakCharacters::
- dr $1c0e24, $1c0e43
-PokegearGFX::
- dr $1c0e43, $1c1127
-CreditsStrings::
- dr $1c1127, $1c168c
+INCLUDE "engine/printer/print_party.asm"
+
+
+SECTION "bank70_2", ROMX
+
+INCLUDE "engine/rtc/print_hours_mins.asm"
+INCLUDE "engine/pokedex/pokedex_3.asm"
+INCLUDE "engine/events/catch_tutorial_input.asm"
+INCLUDE "engine/pokegear/townmap_convertlinebreakcharacters.asm"
+
+PokegearGFX:
+INCBIN "gfx/pokegear/pokegear.2bpp.lz"
+
+INCLUDE "data/credits_strings.asm"
SECTION "Stadium Data", ROMX
diff --git a/tools/gfx.py b/tools/gfx.py
index ff0802c7..ba3e3d3d 100644
--- a/tools/gfx.py
+++ b/tools/gfx.py
@@ -93,12 +93,12 @@ def filepath_rules(filepath):
# args['animate'] = True
# startswith to handle back_gold / back_silver
elif name.startswith('back'):
- args['pal_file'] = os.path.join(filedir, 'shiny.pal')
+ args['pal_file'] = os.path.join(filedir, 'normal.pal')
args['pic'] = True
elif 'gfx/trainers' in filedir:
trainer_name = filedir.split('/')[-1]
- args['pal_file'] = os.path.join(filedir, trainer_name + '.pal')
+ args['pal_file'] = os.path.join(filedir, name + '.pal')
args['pic'] = True
elif 'gfx/battle' in filedir:
@@ -107,6 +107,10 @@ def filepath_rules(filepath):
elif name == 'balls':
args['width'] = 32
+ elif 'gfx/debug' in filedir:
+ if name == 'color_test':
+ args['width'] = 176
+
elif 'gfx/font' in filedir:
if name == 'font_inversed':
args['width'] = 128
@@ -148,7 +152,6 @@ def filepath_rules(filepath):
elif 'gfx/overworld' in filedir:
if name == 'heal_machine':
args['width'] = 8
- args['pal_file'] = os.path.join(filedir, name + '.pal')
elif name in overworld_px8:
args['width'] = 8
elif name in overworld_px16:
@@ -165,16 +168,36 @@ def filepath_rules(filepath):
args['pic_dimensions'] = 6, 6
elif 'gfx/pokedex' in filedir:
- if name in ['slowpoke', 'pokedex']:
+ if name in ['slowpoke', 'pokedex', 'pokedex_sgb']:
args['width'] = 128
+ elif name == 'question_mark':
+ args['width'] = 56
+ args['pic_dimensions'] = 7, 7
+
elif 'gfx/pokegear' in filedir:
if name == 'pokegear_sprites':
args['width'] = 16
+ elif name == 'pokegear':
+ args['width'] = 128
+
+ elif 'gfx/mystery_gift' in filedir:
+ if name == 'mystery_gift':
+ args['width'] = 128
+ args['rows'] = [(0, 15), (0, 15), (0, 2)]
+ elif name == 'mystery_gift_2':
+ args['width'] = 128
+ # TODO: this is incomplete
+ elif name == 'question_mark':
+ args['width'] = 40
+ args['rows'] = [(1, 4), (0, 0), (0, 0), (2, 3), (2, 1)]
+ elif name == 'border':
+ args['width'] = 56
+
elif 'gfx/sgb' in filedir:
args['width'] = 128
- args['pal_file'] = os.path.join(filedir, name + '.pal')
+ #args['pal_file'] = os.path.join(filedir, name + '.pal')
elif 'gfx/slots' in filedir:
if name == 'slots_1':
@@ -194,6 +217,13 @@ def filepath_rules(filepath):
else:
args['width'] = 16
+ elif 'gfx/tilesets' in filedir:
+ if filedir != 'gfx/tilesets':
+ args['width'] = 8
+ else:
+ args['width'] = 128
+ args['tileset'] = True
+
elif 'gfx/trainer_card' in filedir:
if name in ['badges', 'trainer_card']:
args['width'] = 16
@@ -217,18 +247,9 @@ def filepath_rules(filepath):
elif name == 'game_boy':
args['width'] = 56
- elif 'gfx/unknown' in filedir:
- if name == 'gfx_170f1':
- args['width'] = 128
- elif name == 'gfx_17079':
- args['width'] = 16
-
elif os.path.join(filedir, name) in pics:
args['pic'] = True
- elif filedir == 'gfx/tilesets':
- args['tileset'] = True
-
if args.get('pal_file'):
if os.path.exists(args['pal_file']):
args['palout'] = args['pal_file']
diff --git a/tools/pokemontools/gfx.py b/tools/pokemontools/gfx.py
index f3e3ed53..f4f2ae3e 100644
--- a/tools/pokemontools/gfx.py
+++ b/tools/pokemontools/gfx.py
@@ -394,9 +394,9 @@ def export_2bpp_to_png(filein, fileout=None, pal_file=None, height=0, width=0, t
}
arguments.update(read_filename_arguments(filein))
- if pal_file == None:
- if os.path.exists(os.path.splitext(fileout)[0]+'.pal'):
- arguments['pal_file'] = os.path.splitext(fileout)[0]+'.pal'
+ #if pal_file == None:
+ # if os.path.exists(os.path.splitext(fileout)[0]+'.pal'):
+ # arguments['pal_file'] = os.path.splitext(fileout)[0]+'.pal'
result = convert_2bpp_to_png(image, **arguments)
width, height, palette, greyscale, bitdepth, px_map = result
diff --git a/tools/unused_sources.sh b/tools/unused_sources.sh
index 24fbc27d..68ae5a96 100755
--- a/tools/unused_sources.sh
+++ b/tools/unused_sources.sh
@@ -5,7 +5,7 @@
toplevel='audio.asm data/text/common.asm data/pokemon/dex_entries.asm wram.asm
main.asm home.asm gfx/sprites.asm gfx/pics_gold.asm gfx/pics_silver.asm
data/maps/map_data.asm engine/overworld/events.asm rgbdscheck.asm
-data/pokemon/egg_moves.asm data/pokemon/evos_attacks.asm'
+data/pokemon/egg_moves.asm data/pokemon/evos_attacks.asm gfx/tilesets.asm'
for asm in $toplevel; do
echo "$asm"
diff --git a/unknown/bank05_704d.asm b/unknown/bank05_704d.asm
deleted file mode 100644
index 612db8ef..00000000
--- a/unknown/bank05_704d.asm
+++ /dev/null
@@ -1,30 +0,0 @@
-Function1704d:
- ld hl, UnknownGFX17079
- ld de, vTiles2 tile $20
- ld a, BANK(UnknownGFX17079)
- ld bc, wBGMapBufferEnd - wBGMapBuffer
- call FarCopyBytesDouble
- ld hl, vTiles2 tile $20
- ld bc, wBGMapBufferEnd - wBGMapBuffer
-.loop:
- ld [hl], $ff
- inc hl
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .loop
- ret
-
-Function1706b:
- ld hl, UnknownGFX170f1
- ld de, vTiles2 tile $2f
- ld a, BANK(UnknownGFX170f1)
- ld bc, 14 tiles
- jp FarCopyBytes
-
-UnknownGFX17079:
-INCBIN "gfx/unknown/gfx_17079.2bpp"
-
-UnknownGFX170f1:
-INCBIN "gfx/unknown/gfx_170f1.2bpp"
diff --git a/wram.asm b/wram.asm
index 949d0425..8d64f3c5 100644
--- a/wram.asm
+++ b/wram.asm
@@ -971,22 +971,7 @@ wAttrmap:: ; ccd9
ds SCREEN_WIDTH * SCREEN_HEIGHT
wAttrmapEnd::
-wce41:: ds 1 ; ce41
-wce42:: ds 1 ; ce42
-wce43:: ds 1 ; ce43
-wce44:: ds 1 ; ce44
-wce45:: ds 1 ; ce45
-wce46:: ds 1 ; ce46
-wce47:: ds 1 ; ce47
-wce48:: ds 1 ; ce48
-wce49:: ds 1 ; ce49
-wce4a:: ds 1 ; ce4a
-wce4b:: ds 1 ; ce4b
-wce4c:: ds 1 ; ce4c
-wce4d:: ds 1 ; ce4d
-wce4e:: ds 1 ; ce4e
-wce4f:: ds 1 ; ce4f
-wce50:: ds 1 ; ce50
+wTileAnimBuffer:: ds 1 tiles ; ce41
wOtherPlayerLinkMode:: db ; ce51
wOtherPlayerLinkAction:: ; ce52
@@ -1482,7 +1467,7 @@ ENDU ; cf40
wPlaceBallsX:: db ; cf40
wPlaceBallsY:: db ; cf41
-wcf42:: ds 1 ; cf42
+wTileAnimationTimer:: db ; cf42
; palette backups?
wBGP:: db
@@ -2008,15 +1993,16 @@ wStartMinute:: db ; d1de
wStartSecond:: db ; d1df
wRTC:: ds 4 ; d1e0
-wd1e4:: ds 1 ; d1e4
-wd1e5:: ds 1 ; d1e5
-wd1e6:: ds 1 ; d1e6
-wd1e7:: ds 1 ; d1e7
+wDSTBackupDay:: db ; d1e4
+wDSTBackupHours:: db ; d1e5
+wDSTBackupMinutes:: db ; d1e6
+wDSTBackupSeconds:: db ; d1e7
+
wDST:: ; d1e8
; bit 7: dst
db
-wd1e9:: ds 1 ; d1e9
+ ds 1
wGameTimeCap:: db ; d1ea
wGameTimeHours:: dw ; d1eb
@@ -2155,7 +2141,7 @@ wRegisteredItem:: db ; d681
wPlayerState:: db ; d682
wHallOfFameCount:: dw
-wd685:: ds 1 ; d685
+wTradeFlags:: flag_array NUM_NPC_TRADES ; d685
wd686:: ds 1 ; d686
wd687:: ds 1 ; d687
wd688:: ds 1 ; d688
@@ -2524,7 +2510,7 @@ wDecoBigDoll:: db ; d960
; Items bought from Mom
wWhichMomItem:: db ; d961
-wd962:: ds 1 ; d962
+wWhichMomItemSet:: db ; d962
wMomItemTriggerBalance:: ds 3 ; d963
wDailyResetTimer:: dw ; d966