summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Harding <33dannye@gmail.com>2021-02-18 15:33:25 -0600
committerGitHub <noreply@github.com>2021-02-18 15:33:25 -0600
commit9183d47cdb013347a5b178d4fbc93201554599cb (patch)
tree66690db82e4c23a9527c85201e9feda1d09255fb /src
parent8522988917b7ddb35d2bd13576d99da4906de97c (diff)
parent4f69ff28ca7c3ef6b8890d66edd625de9b062f51 (diff)
Merge pull request #99 from ElectroDeoxys/master
Decompression stuff
Diffstat (limited to 'src')
-rw-r--r--src/constants/map_constants.asm20
-rw-r--r--src/constants/tilemap_constants.asm16
-rw-r--r--src/constants/tileset_constants.asm174
-rw-r--r--src/data/map_headers.asm68
-rw-r--r--src/data/maps/map4.bin1
-rw-r--r--src/data/maps/map5.bin1
-rw-r--r--src/data/maps/map52.binbin13 -> 0 bytes
-rw-r--r--src/data/maps/map53.binbin18 -> 0 bytes
-rw-r--r--src/data/maps/map56.binbin7 -> 0 bytes
-rw-r--r--src/data/maps/map57.binbin11 -> 0 bytes
-rw-r--r--src/data/maps/map8.bin1
-rw-r--r--src/data/maps/map9.bin1
-rw-r--r--src/data/maps/permissions/challenge_hall.binbin0 -> 47 bytes
-rw-r--r--src/data/maps/permissions/challenge_hall_cgb.binbin0 -> 47 bytes
-rw-r--r--src/data/maps/permissions/challenge_hall_entrance.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/challenge_hall_entrance_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/club_lobby.binbin0 -> 28 bytes
-rw-r--r--src/data/maps/permissions/club_lobby_cgb.binbin0 -> 28 bytes
-rw-r--r--src/data/maps/permissions/deck_machine_room.binbin0 -> 24 bytes
-rw-r--r--src/data/maps/permissions/deck_machine_room_cgb.binbin0 -> 24 bytes
-rw-r--r--src/data/maps/permissions/fighting_club.binbin0 -> 17 bytes
-rw-r--r--src/data/maps/permissions/fighting_club_cgb.binbin0 -> 17 bytes
-rw-r--r--src/data/maps/permissions/fighting_club_entrance.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/fighting_club_entrance_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/fire_club.binbin0 -> 28 bytes
-rw-r--r--src/data/maps/permissions/fire_club_cgb.binbin0 -> 28 bytes
-rw-r--r--src/data/maps/permissions/fire_club_entrance.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/fire_club_entrance_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/grass_club.binbin0 -> 36 bytes
-rw-r--r--src/data/maps/permissions/grass_club_cgb.binbin0 -> 36 bytes
-rw-r--r--src/data/maps/permissions/grass_club_entrance.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/grass_club_entrance_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/hall_of_honor.binbin0 -> 24 bytes
-rw-r--r--src/data/maps/permissions/hall_of_honor_cgb.binbin0 -> 24 bytes
-rw-r--r--src/data/maps/permissions/ishihara.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/ishihara_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/lightning_club.binbin0 -> 34 bytes
-rw-r--r--src/data/maps/permissions/lightning_club_cgb.binbin0 -> 34 bytes
-rw-r--r--src/data/maps/permissions/lightning_club_entrance.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/lightning_club_entrance_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/mason_laboratory.binbin0 -> 29 bytes
-rw-r--r--src/data/maps/permissions/mason_laboratory_cgb.binbin0 -> 29 bytes
-rw-r--r--src/data/maps/permissions/pokemon_dome.binbin0 -> 33 bytes
-rw-r--r--src/data/maps/permissions/pokemon_dome_cgb.binbin0 -> 33 bytes
-rw-r--r--src/data/maps/permissions/pokemon_dome_entrance.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/pokemon_dome_entrance_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/psychic_club.binbin0 -> 31 bytes
-rw-r--r--src/data/maps/permissions/psychic_club_cgb.binbin0 -> 31 bytes
-rw-r--r--src/data/maps/permissions/psychic_club_entrance.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/psychic_club_entrance_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/rock_club.binbin0 -> 33 bytes
-rw-r--r--src/data/maps/permissions/rock_club_cgb.binbin0 -> 33 bytes
-rw-r--r--src/data/maps/permissions/rock_club_entrance.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/rock_club_entrance_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/science_club.binbin0 -> 31 bytes
-rw-r--r--src/data/maps/permissions/science_club_cgb.binbin0 -> 31 bytes
-rw-r--r--src/data/maps/permissions/science_club_entrance.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/science_club_entrance_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/unknown1.bin1
-rw-r--r--src/data/maps/permissions/unknown1_cgb.bin1
-rw-r--r--src/data/maps/permissions/unknown_2.bin1
-rw-r--r--src/data/maps/permissions/unknown_2_cgb.bin1
-rw-r--r--src/data/maps/permissions/unknown_3.binbin0 -> 3 bytes
-rw-r--r--src/data/maps/permissions/unknown_3_cgb.binbin0 -> 3 bytes
-rw-r--r--src/data/maps/permissions/unknown_4.binbin0 -> 3 bytes
-rw-r--r--src/data/maps/permissions/unknown_4_cgb.binbin0 -> 3 bytes
-rw-r--r--src/data/maps/permissions/water_club.binbin0 -> 36 bytes
-rw-r--r--src/data/maps/permissions/water_club_cgb.binbin0 -> 36 bytes
-rw-r--r--src/data/maps/permissions/water_club_entrance.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/permissions/water_club_entrance_cgb.binbin0 -> 20 bytes
-rw-r--r--src/data/maps/tiles/aerodactyl_intro.bin (renamed from src/data/maps/map76.bin)0
-rw-r--r--src/data/maps/tiles/aerodactyl_intro_cgb.bin (renamed from src/data/maps/map89.bin)bin141 -> 141 bytes
-rw-r--r--src/data/maps/tiles/card_pop.bin (renamed from src/data/maps/map61.bin)bin249 -> 249 bytes
-rw-r--r--src/data/maps/tiles/card_pop_cgb.bin (renamed from src/data/maps/map60.bin)bin254 -> 254 bytes
-rw-r--r--src/data/maps/tiles/challenge_hall.bin (renamed from src/data/maps/map48.bin)bin409 -> 362 bytes
-rw-r--r--src/data/maps/tiles/challenge_hall_cgb.bin (renamed from src/data/maps/map49.bin)bin594 -> 547 bytes
-rw-r--r--src/data/maps/tiles/challenge_hall_entrance.bin (renamed from src/data/maps/map28.bin)bin174 -> 154 bytes
-rw-r--r--src/data/maps/tiles/challenge_hall_entrance_cgb.bin (renamed from src/data/maps/map29.bin)bin254 -> 234 bytes
-rw-r--r--src/data/maps/tiles/charizard_intro.bin (renamed from src/data/maps/map78.bin)0
-rw-r--r--src/data/maps/tiles/charizard_intro_cgb.bin (renamed from src/data/maps/map85.bin)bin158 -> 158 bytes
-rw-r--r--src/data/maps/tiles/club_lobby.bin (renamed from src/data/maps/map30.bin)bin284 -> 256 bytes
-rw-r--r--src/data/maps/tiles/club_lobby_cgb.bin (renamed from src/data/maps/map31.bin)bin401 -> 373 bytes
-rw-r--r--src/data/maps/tiles/colosseum.bin (renamed from src/data/maps/map80.bin)0
-rw-r--r--src/data/maps/tiles/colosseum_cgb.bin (renamed from src/data/maps/map77.bin)bin129 -> 129 bytes
-rw-r--r--src/data/maps/tiles/companies.bin (renamed from src/data/maps/map105.bin)bin95 -> 95 bytes
-rw-r--r--src/data/maps/tiles/copyright.bin (renamed from src/data/maps/map102.bin)bin82 -> 82 bytes
-rw-r--r--src/data/maps/tiles/copyright_cgb.bin (renamed from src/data/maps/map103.bin)bin129 -> 129 bytes
-rw-r--r--src/data/maps/tiles/deck_machine_room.bin (renamed from src/data/maps/map6.bin)bin192 -> 168 bytes
-rw-r--r--src/data/maps/tiles/deck_machine_room_cgb.bin (renamed from src/data/maps/map7.bin)bin339 -> 315 bytes
-rw-r--r--src/data/maps/tiles/evolution.bin (renamed from src/data/maps/map82.bin)0
-rw-r--r--src/data/maps/tiles/evolution_cgb.bin (renamed from src/data/maps/map79.bin)bin127 -> 127 bytes
-rw-r--r--src/data/maps/tiles/fighting_club.bin (renamed from src/data/maps/map32.bin)bin172 -> 155 bytes
-rw-r--r--src/data/maps/tiles/fighting_club_cgb.bin (renamed from src/data/maps/map33.bin)bin252 -> 235 bytes
-rw-r--r--src/data/maps/tiles/fighting_club_entrance.bin (renamed from src/data/maps/map12.bin)bin197 -> 177 bytes
-rw-r--r--src/data/maps/tiles/fighting_club_entrance_cgb.bin (renamed from src/data/maps/map13.bin)bin280 -> 260 bytes
-rw-r--r--src/data/maps/tiles/fighting_medal.bin (renamed from src/data/maps/map67.bin)0
-rw-r--r--src/data/maps/tiles/fire_club.bin (renamed from src/data/maps/map46.bin)bin214 -> 186 bytes
-rw-r--r--src/data/maps/tiles/fire_club_cgb.bin (renamed from src/data/maps/map47.bin)bin383 -> 355 bytes
-rw-r--r--src/data/maps/tiles/fire_club_entrance.bin (renamed from src/data/maps/map26.bin)bin197 -> 177 bytes
-rw-r--r--src/data/maps/tiles/fire_club_entrance_cgb.bin (renamed from src/data/maps/map27.bin)bin280 -> 260 bytes
-rw-r--r--src/data/maps/tiles/fire_medal.bin (renamed from src/data/maps/map64.bin)0
-rw-r--r--src/data/maps/tiles/gameboy_link.bin (renamed from src/data/maps/map71.bin)bin133 -> 133 bytes
-rw-r--r--src/data/maps/tiles/gameboy_link_cgb.bin (renamed from src/data/maps/map70.bin)bin190 -> 190 bytes
-rw-r--r--src/data/maps/tiles/gameboy_link_connecting.bin (renamed from src/data/maps/map73.bin)bin151 -> 151 bytes
-rw-r--r--src/data/maps/tiles/gameboy_link_connecting_cgb.bin (renamed from src/data/maps/map72.bin)bin218 -> 218 bytes
-rw-r--r--src/data/maps/tiles/gameboy_printer.bin (renamed from src/data/maps/map75.bin)bin141 -> 141 bytes
-rw-r--r--src/data/maps/tiles/gameboy_printer_cgb.bin (renamed from src/data/maps/map74.bin)bin209 -> 209 bytes
-rw-r--r--src/data/maps/tiles/grass_club.bin (renamed from src/data/maps/map40.bin)bin421 -> 385 bytes
-rw-r--r--src/data/maps/tiles/grass_club_cgb.bin (renamed from src/data/maps/map41.bin)bin662 -> 626 bytes
-rw-r--r--src/data/maps/tiles/grass_club_entrance.bin (renamed from src/data/maps/map20.bin)bin197 -> 177 bytes
-rw-r--r--src/data/maps/tiles/grass_club_entrance_cgb.bin (renamed from src/data/maps/map21.bin)bin280 -> 260 bytes
-rw-r--r--src/data/maps/tiles/grass_medal.bin (renamed from src/data/maps/map62.bin)0
-rw-r--r--src/data/maps/tiles/hall_of_honor.bin (renamed from src/data/maps/map58.bin)bin269 -> 245 bytes
-rw-r--r--src/data/maps/tiles/hall_of_honor_cgb.bin (renamed from src/data/maps/map59.bin)bin387 -> 363 bytes
-rw-r--r--src/data/maps/tiles/ishihara.bin (renamed from src/data/maps/map10.bin)bin189 -> 169 bytes
-rw-r--r--src/data/maps/tiles/ishihara_cgb.bin (renamed from src/data/maps/map11.bin)bin271 -> 251 bytes
-rw-r--r--src/data/maps/tiles/japanese_title_screen.bin (renamed from src/data/maps/map90.bin)bin144 -> 144 bytes
-rw-r--r--src/data/maps/tiles/japanese_title_screen_2.bin (renamed from src/data/maps/map95.bin)bin337 -> 337 bytes
-rw-r--r--src/data/maps/tiles/japanese_title_screen_2_cgb.bin (renamed from src/data/maps/map96.bin)bin493 -> 493 bytes
-rw-r--r--src/data/maps/tiles/japanese_title_screen_cgb.bin (renamed from src/data/maps/map91.bin)bin185 -> 185 bytes
-rw-r--r--src/data/maps/tiles/laboratory.bin (renamed from src/data/maps/map84.bin)0
-rw-r--r--src/data/maps/tiles/laboratory_cgb.bin (renamed from src/data/maps/map83.bin)bin121 -> 121 bytes
-rw-r--r--src/data/maps/tiles/lightning_club.bin (renamed from src/data/maps/map38.bin)bin371 -> 337 bytes
-rw-r--r--src/data/maps/tiles/lightning_club_cgb.bin (renamed from src/data/maps/map39.bin)bin502 -> 468 bytes
-rw-r--r--src/data/maps/tiles/lightning_club_entrance.bin (renamed from src/data/maps/map18.bin)bin197 -> 177 bytes
-rw-r--r--src/data/maps/tiles/lightning_club_entrance_cgb.bin (renamed from src/data/maps/map19.bin)bin280 -> 260 bytes
-rw-r--r--src/data/maps/tiles/lightning_medal.bin (renamed from src/data/maps/map66.bin)0
-rw-r--r--src/data/maps/tiles/mason_laboratory.bin (renamed from src/data/maps/map2.bin)bin278 -> 249 bytes
-rw-r--r--src/data/maps/tiles/mason_laboratory_cgb.bin (renamed from src/data/maps/map3.bin)bin414 -> 385 bytes
-rw-r--r--src/data/maps/tiles/mystery.bin (renamed from src/data/maps/map86.bin)0
-rw-r--r--src/data/maps/tiles/mystery_cgb.bin (renamed from src/data/maps/map81.bin)bin124 -> 124 bytes
-rw-r--r--src/data/maps/tiles/nintendo.bin (renamed from src/data/maps/map104.bin)bin67 -> 67 bytes
-rw-r--r--src/data/maps/tiles/opponent.bin (renamed from src/data/maps/map99.bin)0
-rw-r--r--src/data/maps/tiles/overworld_map.bin (renamed from src/data/maps/map0.bin)bin258 -> 258 bytes
-rw-r--r--src/data/maps/tiles/overworld_map_cgb.bin (renamed from src/data/maps/map1.bin)bin492 -> 492 bytes
-rw-r--r--src/data/maps/tiles/player.bin (renamed from src/data/maps/map98.bin)0
-rw-r--r--src/data/maps/tiles/pokemon_dome.bin (renamed from src/data/maps/map54.bin)bin389 -> 356 bytes
-rw-r--r--src/data/maps/tiles/pokemon_dome_cgb.bin (renamed from src/data/maps/map55.bin)bin612 -> 579 bytes
-rw-r--r--src/data/maps/tiles/pokemon_dome_entrance.bin (renamed from src/data/maps/map50.bin)bin191 -> 171 bytes
-rw-r--r--src/data/maps/tiles/pokemon_dome_entrance_cgb.bin (renamed from src/data/maps/map51.bin)bin284 -> 264 bytes
-rw-r--r--src/data/maps/tiles/psychic_club.bin (renamed from src/data/maps/map42.bin)bin247 -> 216 bytes
-rw-r--r--src/data/maps/tiles/psychic_club_cgb.bin (renamed from src/data/maps/map43.bin)bin394 -> 363 bytes
-rw-r--r--src/data/maps/tiles/psychic_club_entrance.bin (renamed from src/data/maps/map22.bin)bin197 -> 177 bytes
-rw-r--r--src/data/maps/tiles/psychic_club_entrance_cgb.bin (renamed from src/data/maps/map23.bin)bin280 -> 260 bytes
-rw-r--r--src/data/maps/tiles/psychic_medal.bin (renamed from src/data/maps/map69.bin)0
-rw-r--r--src/data/maps/tiles/rock_club.bin (renamed from src/data/maps/map34.bin)bin324 -> 291 bytes
-rw-r--r--src/data/maps/tiles/rock_club_cgb.bin (renamed from src/data/maps/map35.bin)bin534 -> 501 bytes
-rw-r--r--src/data/maps/tiles/rock_club_entrance.bin (renamed from src/data/maps/map14.bin)bin197 -> 177 bytes
-rw-r--r--src/data/maps/tiles/rock_club_entrance_cgb.bin (renamed from src/data/maps/map15.bin)bin280 -> 260 bytes
-rw-r--r--src/data/maps/tiles/rock_medal.bin (renamed from src/data/maps/map68.bin)0
-rw-r--r--src/data/maps/tiles/science_club.bin (renamed from src/data/maps/map44.bin)bin282 -> 251 bytes
-rw-r--r--src/data/maps/tiles/science_club_cgb.bin (renamed from src/data/maps/map45.bin)bin404 -> 373 bytes
-rw-r--r--src/data/maps/tiles/science_club_entrance.bin (renamed from src/data/maps/map24.bin)bin197 -> 177 bytes
-rw-r--r--src/data/maps/tiles/science_club_entrance_cgb.bin (renamed from src/data/maps/map25.bin)bin280 -> 260 bytes
-rw-r--r--src/data/maps/tiles/science_medal.bin (renamed from src/data/maps/map63.bin)0
-rw-r--r--src/data/maps/tiles/scyther_intro.bin (renamed from src/data/maps/map88.bin)0
-rw-r--r--src/data/maps/tiles/scyther_intro_cgb.bin (renamed from src/data/maps/map87.bin)bin150 -> 150 bytes
-rw-r--r--src/data/maps/tiles/solid_tiles_1.bin (renamed from src/data/maps/map92.bin)bin137 -> 137 bytes
-rw-r--r--src/data/maps/tiles/solid_tiles_2.bin (renamed from src/data/maps/map93.bin)bin163 -> 163 bytes
-rw-r--r--src/data/maps/tiles/solid_tiles_3.bin (renamed from src/data/maps/map94.bin)bin138 -> 138 bytes
-rw-r--r--src/data/maps/tiles/solid_tiles_4.bin (renamed from src/data/maps/map97.bin)0
-rw-r--r--src/data/maps/tiles/title_screen.bin (renamed from src/data/maps/map100.bin)bin288 -> 288 bytes
-rw-r--r--src/data/maps/tiles/title_screen_cgb.bin (renamed from src/data/maps/map101.bin)bin354 -> 354 bytes
-rw-r--r--src/data/maps/tiles/unknown1.bin1
-rw-r--r--src/data/maps/tiles/unknown1_cgb.bin1
-rw-r--r--src/data/maps/tiles/unknown_2.bin1
-rw-r--r--src/data/maps/tiles/unknown_2_cgb.bin1
-rw-r--r--src/data/maps/tiles/unknown_3.binbin0 -> 10 bytes
-rw-r--r--src/data/maps/tiles/unknown_3_cgb.binbin0 -> 15 bytes
-rw-r--r--src/data/maps/tiles/unknown_4.bin1
-rw-r--r--src/data/maps/tiles/unknown_4_cgb.bin1
-rw-r--r--src/data/maps/tiles/water_club.bin (renamed from src/data/maps/map36.bin)bin387 -> 351 bytes
-rw-r--r--src/data/maps/tiles/water_club_cgb.bin (renamed from src/data/maps/map37.bin)bin558 -> 522 bytes
-rw-r--r--src/data/maps/tiles/water_club_entrance.bin (renamed from src/data/maps/map16.bin)bin197 -> 177 bytes
-rw-r--r--src/data/maps/tiles/water_club_entrance_cgb.bin (renamed from src/data/maps/map17.bin)bin280 -> 260 bytes
-rw-r--r--src/data/maps/tiles/water_medal.bin (renamed from src/data/maps/map65.bin)0
-rw-r--r--src/data/sgb_data/aerodactyl_intro_pals.binbin0 -> 35 bytes
-rw-r--r--src/data/sgb_data/card_pop_pals.binbin0 -> 43 bytes
-rw-r--r--src/data/sgb_data/charizard_intro_pals.binbin0 -> 35 bytes
-rw-r--r--src/data/sgb_data/colosseum_booster_pals.binbin0 -> 35 bytes
-rw-r--r--src/data/sgb_data/evolution_booster_pals.binbin0 -> 35 bytes
-rw-r--r--src/data/sgb_data/gameboy_link_pals.binbin0 -> 46 bytes
-rw-r--r--src/data/sgb_data/gameboy_printer_pals.binbin0 -> 44 bytes
-rw-r--r--src/data/sgb_data/laboratory_booster_pals.binbin0 -> 35 bytes
-rw-r--r--src/data/sgb_data/map_pals_1.binbin0 -> 34 bytes
-rw-r--r--src/data/sgb_data/map_pals_10.binbin0 -> 34 bytes
-rw-r--r--src/data/sgb_data/map_pals_2.binbin0 -> 34 bytes
-rw-r--r--src/data/sgb_data/map_pals_3.binbin0 -> 33 bytes
-rw-r--r--src/data/sgb_data/map_pals_4.binbin0 -> 33 bytes
-rw-r--r--src/data/sgb_data/map_pals_5.binbin0 -> 33 bytes
-rw-r--r--src/data/sgb_data/map_pals_6.binbin0 -> 34 bytes
-rw-r--r--src/data/sgb_data/map_pals_7.binbin0 -> 34 bytes
-rw-r--r--src/data/sgb_data/map_pals_8.binbin0 -> 33 bytes
-rw-r--r--src/data/sgb_data/map_pals_9.binbin0 -> 34 bytes
-rw-r--r--src/data/sgb_data/mystery_booster_pals.binbin0 -> 35 bytes
-rw-r--r--src/data/sgb_data/scyther_intro_pals.binbin0 -> 35 bytes
-rw-r--r--src/data/sgb_data/title_screen_pals.binbin0 -> 46 bytes
-rw-r--r--src/engine/bank03.asm48
-rw-r--r--src/engine/bank04.asm2
-rw-r--r--src/engine/bank05.asm3
-rw-r--r--src/engine/bank1c.asm116
-rw-r--r--src/engine/bank20.asm778
-rw-r--r--src/engine/home.asm121
-rw-r--r--src/gfx.asm534
-rw-r--r--src/gfx/titlescreen/japanese_title_screen.png (renamed from src/gfx/titlescreen/titlescreen1.png)bin909 -> 909 bytes
-rw-r--r--src/gfx/titlescreen/japanese_title_screen_2.png (renamed from src/gfx/titlescreen/titlescreen3.png)bin2572 -> 2572 bytes
-rw-r--r--src/gfx/titlescreen/japanese_title_screen_2_cgb.png (renamed from src/gfx/titlescreen/titlescreen4.png)bin3602 -> 3602 bytes
-rw-r--r--src/gfx/titlescreen/japanese_title_screen_cgb.png (renamed from src/gfx/titlescreen/titlescreen2.png)bin950 -> 950 bytes
-rw-r--r--src/gfx/titlescreen/title_screen.png (renamed from src/gfx/titlescreen/titlescreen5.png)bin2007 -> 2007 bytes
-rw-r--r--src/gfx/titlescreen/title_screen_cgb.png (renamed from src/gfx/titlescreen/titlescreen6.png)bin2005 -> 2005 bytes
-rw-r--r--src/sram.asm4
-rw-r--r--src/wram.asm59
212 files changed, 1047 insertions, 910 deletions
diff --git a/src/constants/map_constants.asm b/src/constants/map_constants.asm
index 84656c4..be5ee7d 100644
--- a/src/constants/map_constants.asm
+++ b/src/constants/map_constants.asm
@@ -68,13 +68,13 @@ MAP_SCRIPT_CLOSE_TEXTBOX EQU $0e
; map palettes for use in SGB mode
const_def 1
- const MAP_SGB_PALETTE_1 ; $1
- const MAP_SGB_PALETTE_2 ; $2
- const MAP_SGB_PALETTE_3 ; $3
- const MAP_SGB_PALETTE_4 ; $4
- const MAP_SGB_PALETTE_5 ; $5
- const MAP_SGB_PALETTE_6 ; $6
- const MAP_SGB_PALETTE_7 ; $7
- const MAP_SGB_PALETTE_8 ; $8
- const MAP_SGB_PALETTE_9 ; $9
- const MAP_SGB_PALETTE_10 ; $a
+ const MAP_SGB_PALS_1 ; $1
+ const MAP_SGB_PALS_2 ; $2
+ const MAP_SGB_PALS_3 ; $3
+ const MAP_SGB_PALS_4 ; $4
+ const MAP_SGB_PALS_5 ; $5
+ const MAP_SGB_PALS_6 ; $6
+ const MAP_SGB_PALS_7 ; $7
+ const MAP_SGB_PALS_8 ; $8
+ const MAP_SGB_PALS_9 ; $9
+ const MAP_SGB_PALS_10 ; $a
diff --git a/src/constants/tilemap_constants.asm b/src/constants/tilemap_constants.asm
index 19761fa..4a64930 100644
--- a/src/constants/tilemap_constants.asm
+++ b/src/constants/tilemap_constants.asm
@@ -3,12 +3,12 @@
const TILEMAP_OVERWORLD_MAP_CGB ; $01
const TILEMAP_MASON_LABORATORY ; $02
const TILEMAP_MASON_LABORATORY_CGB ; $03
- const TILEMAP_UNUSED_1 ; $04
- const TILEMAP_UNUSED_2 ; $05
+ const TILEMAP_UNKNOWN_1 ; $04
+ const TILEMAP_UNKNOWN_1_CGB ; $05
const TILEMAP_DECK_MACHINE_ROOM ; $06
const TILEMAP_DECK_MACHINE_ROOM_CGB ; $07
- const TILEMAP_UNUSED_3 ; $08
- const TILEMAP_UNUSED_4 ; $09
+ const TILEMAP_UNKNOWN_2 ; $08
+ const TILEMAP_UNKNOWN_2_CGB ; $09
const TILEMAP_ISHIHARA ; $0a
const TILEMAP_ISHIHARA_CGB ; $0b
const TILEMAP_FIGHTING_CLUB_ENTRANCE ; $0c
@@ -51,12 +51,12 @@
const TILEMAP_CHALLENGE_HALL_CGB ; $31
const TILEMAP_POKEMON_DOME_ENTRANCE ; $32
const TILEMAP_POKEMON_DOME_ENTRANCE_CGB ; $33
- const TILEMAP_UNUSED_5 ; $34
- const TILEMAP_UNUSED_6 ; $35
+ const TILEMAP_UNKNOWN_3 ; $34
+ const TILEMAP_UNKNOWN_3_CGB ; $35
const TILEMAP_POKEMON_DOME ; $36
const TILEMAP_POKEMON_DOME_CGB ; $37
- const TILEMAP_UNUSED_7 ; $38
- const TILEMAP_UNUSED_8 ; $39
+ const TILEMAP_UNKNOWN_4 ; $38
+ const TILEMAP_UNKNOWN_4_CGB ; $39
const TILEMAP_HALL_OF_HONOR ; $3a
const TILEMAP_HALL_OF_HONOR_CGB ; $3b
const TILEMAP_CARD_POP_CGB ; $3c
diff --git a/src/constants/tileset_constants.asm b/src/constants/tileset_constants.asm
index 6319263..ecac689 100644
--- a/src/constants/tileset_constants.asm
+++ b/src/constants/tileset_constants.asm
@@ -1,88 +1,88 @@
const_def
- const TILESET_OVERWORLD_MAP ; $00
- const TILESET_MASON_LABORATORY ; $01
- const TILESET_ISHIHARA ; $02
- const TILESET_CLUB_ENTRANCE ; $03
- const TILESET_CLUB_LOBBY ; $04
- const TILESET_FIGHTING_CLUB ; $05
- const TILESET_ROCK_CLUB ; $06
- const TILESET_WATER_CLUB ; $07
- const TILESET_LIGHTNING_CLUB ; $08
- const TILESET_GRASS_CLUB ; $09
- const TILESET_PSYCHIC_CLUB ; $0a
- const TILESET_SCIENCE_CLUB ; $0b
- const TILESET_FIRE_CLUB ; $0c
- const TILESET_CHALLENGE_HALL ; $0d
- const TILESET_POKEMON_DOME_ENTRANCE ; $0e
- const TILESET_POKEMON_DOME ; $0f
- const TILESET_HALL_OF_HONOR ; $10
- const TILESET_CARD_POP ; $11
- const TILESET_MEDAL ; $12
- const TILESET_GAMEBOY_LINK ; $13
- const TILESET_GAMEBOY_PRINTER ; $14
- const TILESET_COLOSSEUM_1 ; $15
- const TILESET_COLOSSEUM_2 ; $16
- const TILESET_EVOLUTION_1 ; $17
- const TILESET_EVOLUTION_2 ; $18
- const TILESET_MYSTERY_1 ; $19
- const TILESET_MYSTERY_2 ; $1a
- const TILESET_LABORATORY_1 ; $1b
- const TILESET_LABORATORY_2 ; $1c
- const TILESET_CHARIZARD_INTRO_1 ; $1d
- const TILESET_CHARIZARD_INTRO_2 ; $1e
- const TILESET_SCYTHER_INTRO_1 ; $1f
- const TILESET_SCYTHER_INTRO_2 ; $20
- const TILESET_AERODACTYL_INTRO_1 ; $21
- const TILESET_AERODACTYL_INTRO_2 ; $22
- const TILESET_TITLE_SCREEN_1 ; $23
- const TILESET_TITLE_SCREEN_2 ; $24
- const TILESET_SOLID_TILES_1 ; $25
- const TILESET_TITLE_SCREEN_3 ; $26
- const TILESET_TITLE_SCREEN_4 ; $27
- const TILESET_SOLID_TILES_2 ; $28
- const TILESET_PLAYER ; $29
- const TILESET_RONALD ; $2a
- const TILESET_TITLE_SCREEN_5 ; $2b
- const TILESET_TITLE_SCREEN_6 ; $2c
- const TILESET_COPYRIGHT ; $2d
- const TILESET_NINTENDO ; $2e
- const TILESET_COMPANIES ; $2f
- const TILESET_SAM ; $30
- const TILESET_IMAKUNI ; $31
- const TILESET_NIKKI ; $32
- const TILESET_RICK ; $33
- const TILESET_KEN ; $34
- const TILESET_AMY ; $35
- const TILESET_ISAAC ; $36
- const TILESET_MITCH ; $37
- const TILESET_GENE ; $38
- const TILESET_MURRAY ; $39
- const TILESET_COURTNEY ; $3a
- const TILESET_STEVE ; $3b
- const TILESET_JACK ; $3c
- const TILESET_ROD ; $3d
- const TILESET_JOSEPH ; $3e
- const TILESET_DAVID ; $3f
- const TILESET_ERIK ; $40
- const TILESET_JOHN ; $41
- const TILESET_ADAM ; $42
- const TILESET_JONATHAN ; $43
- const TILESET_JOSHUA ; $44
- const TILESET_NICHOLAS ; $45
- const TILESET_BRANDON ; $46
- const TILESET_MATTHEW ; $47
- const TILESET_RYAN ; $48
- const TILESET_ANDREW ; $49
- const TILESET_CHRIS ; $4a
- const TILESET_MICHAEL ; $4b
- const TILESET_DANIEL ; $4c
- const TILESET_ROBERT ; $4d
- const TILESET_BRITTANY ; $4e
- const TILESET_KRISTIN ; $4f
- const TILESET_HEATHER ; $50
- const TILESET_SARA ; $51
- const TILESET_AMANDA ; $52
- const TILESET_JENNIFER ; $53
- const TILESET_JESSICA ; $54
- const TILESET_STEPHANIE ; $55
- const TILESET_AARON ; $56
+ const TILESET_OVERWORLD_MAP ; $00
+ const TILESET_MASON_LABORATORY ; $01
+ const TILESET_ISHIHARA ; $02
+ const TILESET_CLUB_ENTRANCE ; $03
+ const TILESET_CLUB_LOBBY ; $04
+ const TILESET_FIGHTING_CLUB ; $05
+ const TILESET_ROCK_CLUB ; $06
+ const TILESET_WATER_CLUB ; $07
+ const TILESET_LIGHTNING_CLUB ; $08
+ const TILESET_GRASS_CLUB ; $09
+ const TILESET_PSYCHIC_CLUB ; $0a
+ const TILESET_SCIENCE_CLUB ; $0b
+ const TILESET_FIRE_CLUB ; $0c
+ const TILESET_CHALLENGE_HALL ; $0d
+ const TILESET_POKEMON_DOME_ENTRANCE ; $0e
+ const TILESET_POKEMON_DOME ; $0f
+ const TILESET_HALL_OF_HONOR ; $10
+ const TILESET_CARD_POP ; $11
+ const TILESET_MEDAL ; $12
+ const TILESET_GAMEBOY_LINK ; $13
+ const TILESET_GAMEBOY_PRINTER ; $14
+ const TILESET_COLOSSEUM_1 ; $15
+ const TILESET_COLOSSEUM_2 ; $16
+ const TILESET_EVOLUTION_1 ; $17
+ const TILESET_EVOLUTION_2 ; $18
+ const TILESET_MYSTERY_1 ; $19
+ const TILESET_MYSTERY_2 ; $1a
+ const TILESET_LABORATORY_1 ; $1b
+ const TILESET_LABORATORY_2 ; $1c
+ const TILESET_CHARIZARD_INTRO_1 ; $1d
+ const TILESET_CHARIZARD_INTRO_2 ; $1e
+ const TILESET_SCYTHER_INTRO_1 ; $1f
+ const TILESET_SCYTHER_INTRO_2 ; $20
+ const TILESET_AERODACTYL_INTRO_1 ; $21
+ const TILESET_AERODACTYL_INTRO_2 ; $22
+ const TILESET_JAPANESE_TITLE_SCREEN ; $23
+ const TILESET_JAPANESE_TITLE_SCREEN_CGB ; $24
+ const TILESET_SOLID_TILES_1 ; $25
+ const TILESET_JAPANESE_TITLE_SCREEN_2 ; $26
+ const TILESET_JAPANESE_TITLE_SCREEN_2_CGB ; $27
+ const TILESET_SOLID_TILES_2 ; $28
+ const TILESET_PLAYER ; $29
+ const TILESET_RONALD ; $2a
+ const TILESET_TITLE_SCREEN ; $2b
+ const TILESET_TITLE_SCREEN_CGB ; $2c
+ const TILESET_COPYRIGHT ; $2d
+ const TILESET_NINTENDO ; $2e
+ const TILESET_COMPANIES ; $2f
+ const TILESET_SAM ; $30
+ const TILESET_IMAKUNI ; $31
+ const TILESET_NIKKI ; $32
+ const TILESET_RICK ; $33
+ const TILESET_KEN ; $34
+ const TILESET_AMY ; $35
+ const TILESET_ISAAC ; $36
+ const TILESET_MITCH ; $37
+ const TILESET_GENE ; $38
+ const TILESET_MURRAY ; $39
+ const TILESET_COURTNEY ; $3a
+ const TILESET_STEVE ; $3b
+ const TILESET_JACK ; $3c
+ const TILESET_ROD ; $3d
+ const TILESET_JOSEPH ; $3e
+ const TILESET_DAVID ; $3f
+ const TILESET_ERIK ; $40
+ const TILESET_JOHN ; $41
+ const TILESET_ADAM ; $42
+ const TILESET_JONATHAN ; $43
+ const TILESET_JOSHUA ; $44
+ const TILESET_NICHOLAS ; $45
+ const TILESET_BRANDON ; $46
+ const TILESET_MATTHEW ; $47
+ const TILESET_RYAN ; $48
+ const TILESET_ANDREW ; $49
+ const TILESET_CHRIS ; $4a
+ const TILESET_MICHAEL ; $4b
+ const TILESET_DANIEL ; $4c
+ const TILESET_ROBERT ; $4d
+ const TILESET_BRITTANY ; $4e
+ const TILESET_KRISTIN ; $4f
+ const TILESET_HEATHER ; $50
+ const TILESET_SARA ; $51
+ const TILESET_AMANDA ; $52
+ const TILESET_JENNIFER ; $53
+ const TILESET_JESSICA ; $54
+ const TILESET_STEPHANIE ; $55
+ const TILESET_AARON ; $56
diff --git a/src/data/map_headers.asm b/src/data/map_headers.asm
index cf91df2..01b67c8 100644
--- a/src/data/map_headers.asm
+++ b/src/data/map_headers.asm
@@ -1,37 +1,37 @@
; TODO: figure out the rest of the data for each map
; related to the table at 20:4e5d
MapHeaders: ; 1c374 (7:4374)
- db TILEMAP_OVERWORLD_MAP, TILEMAP_OVERWORLD_MAP_CGB, $00, MAP_SGB_PALETTE_1, $01, MUSIC_OVERWORLD ; OVERWORLD_MAP
- db TILEMAP_MASON_LABORATORY, TILEMAP_MASON_LABORATORY_CGB, $00, MAP_SGB_PALETTE_2, $02, MUSIC_OVERWORLD ; MASON_LABORATORY
- db TILEMAP_DECK_MACHINE_ROOM, TILEMAP_DECK_MACHINE_ROOM_CGB, $00, MAP_SGB_PALETTE_2, $02, MUSIC_OVERWORLD ; DECK_MACHINE_ROOM
- db TILEMAP_ISHIHARA, TILEMAP_ISHIHARA_CGB, $00, MAP_SGB_PALETTE_3, $03, MUSIC_OVERWORLD ; ISHIHARAS_HOUSE
- db TILEMAP_FIGHTING_CLUB_ENTRANCE, TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALETTE_3, $04, MUSIC_OVERWORLD ; FIGHTING_CLUB_ENTRANCE
- db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALETTE_3, $0c, MUSIC_OVERWORLD ; FIGHTING_CLUB_LOBBY
- db TILEMAP_FIGHTING_CLUB, TILEMAP_FIGHTING_CLUB_CGB, $00, MAP_SGB_PALETTE_4, $0d, MUSIC_CLUB_3 ; FIGHTING_CLUB
- db TILEMAP_ROCK_CLUB_ENTRANCE, TILEMAP_ROCK_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALETTE_3, $05, MUSIC_OVERWORLD ; ROCK_CLUB_ENTRANCE
- db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALETTE_3, $0c, MUSIC_OVERWORLD ; ROCK_CLUB_LOBBY
- db TILEMAP_ROCK_CLUB, TILEMAP_ROCK_CLUB_CGB, $00, MAP_SGB_PALETTE_4, $0e, MUSIC_CLUB_2 ; ROCK_CLUB
- db TILEMAP_WATER_CLUB_ENTRANCE, TILEMAP_WATER_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALETTE_3, $06, MUSIC_OVERWORLD ; WATER_CLUB_ENTRANCE
- db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALETTE_3, $0c, MUSIC_OVERWORLD ; WATER_CLUB_LOBBY
- db TILEMAP_WATER_CLUB, TILEMAP_WATER_CLUB_CGB, $00, MAP_SGB_PALETTE_2, $0f, MUSIC_CLUB_2 ; WATER_CLUB
- db TILEMAP_LIGHTNING_CLUB_ENTRANCE, TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALETTE_3, $07, MUSIC_OVERWORLD ; LIGHTNING_CLUB_ENTRANCE
- db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALETTE_3, $0c, MUSIC_OVERWORLD ; LIGHTNING_CLUB_LOBBY
- db TILEMAP_LIGHTNING_CLUB, TILEMAP_LIGHTNING_CLUB_CGB, $00, MAP_SGB_PALETTE_5, $10, MUSIC_CLUB_1 ; LIGHTNING_CLUB
- db TILEMAP_GRASS_CLUB_ENTRANCE, TILEMAP_GRASS_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALETTE_3, $08, MUSIC_OVERWORLD ; GRASS_CLUB_ENTRANCE
- db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALETTE_3, $0c, MUSIC_OVERWORLD ; GRASS_CLUB_LOBBY
- db TILEMAP_GRASS_CLUB, TILEMAP_GRASS_CLUB_CGB, $00, MAP_SGB_PALETTE_6, $11, MUSIC_CLUB_1 ; GRASS_CLUB
- db TILEMAP_PSYCHIC_CLUB_ENTRANCE, TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALETTE_3, $09, MUSIC_OVERWORLD ; PSYCHIC_CLUB_ENTRANCE
- db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALETTE_3, $0c, MUSIC_OVERWORLD ; PSYCHIC_CLUB_LOBBY
- db TILEMAP_PSYCHIC_CLUB, TILEMAP_PSYCHIC_CLUB_CGB, $00, MAP_SGB_PALETTE_7, $12, MUSIC_CLUB_2 ; PSYCHIC_CLUB
- db TILEMAP_SCIENCE_CLUB_ENTRANCE, TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALETTE_3, $0a, MUSIC_OVERWORLD ; SCIENCE_CLUB_ENTRANCE
- db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALETTE_3, $0c, MUSIC_OVERWORLD ; SCIENCE_CLUB_LOBBY
- db TILEMAP_SCIENCE_CLUB, TILEMAP_SCIENCE_CLUB_CGB, $00, MAP_SGB_PALETTE_6, $13, MUSIC_CLUB_3 ; SCIENCE_CLUB
- db TILEMAP_FIRE_CLUB_ENTRANCE, TILEMAP_FIRE_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALETTE_3, $0b, MUSIC_OVERWORLD ; FIRE_CLUB_ENTRANCE
- db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALETTE_3, $0c, MUSIC_OVERWORLD ; FIRE_CLUB_LOBBY
- db TILEMAP_FIRE_CLUB, TILEMAP_FIRE_CLUB_CGB, $00, MAP_SGB_PALETTE_8, $14, MUSIC_CLUB_3 ; FIRE_CLUB
- db TILEMAP_CHALLENGE_HALL_ENTRANCE, TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB, $00, MAP_SGB_PALETTE_3, $04, MUSIC_OVERWORLD ; CHALLENGE_HALL_ENTRANCE
- db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALETTE_3, $0c, MUSIC_OVERWORLD ; CHALLENGE_HALL_LOBBY
- db TILEMAP_CHALLENGE_HALL, TILEMAP_CHALLENGE_HALL_CGB, $00, MAP_SGB_PALETTE_9, $15, MUSIC_OVERWORLD ; CHALLENGE_HALL
- db TILEMAP_POKEMON_DOME_ENTRANCE, TILEMAP_POKEMON_DOME_ENTRANCE_CGB, $00, MAP_SGB_PALETTE_10, $16, MUSIC_OVERWORLD ; POKEMON_DOME_ENTRANCE
- db TILEMAP_POKEMON_DOME, TILEMAP_POKEMON_DOME_CGB, $00, MAP_SGB_PALETTE_10, $17, MUSIC_POKEMON_DOME ; POKEMON_DOME
- db TILEMAP_HALL_OF_HONOR, TILEMAP_HALL_OF_HONOR_CGB, $00, MAP_SGB_PALETTE_10, $18, MUSIC_HALL_OF_HONOR ; HALL_OF_HONOR
+ db TILEMAP_OVERWORLD_MAP, TILEMAP_OVERWORLD_MAP_CGB, $00, MAP_SGB_PALS_1, $01, MUSIC_OVERWORLD ; OVERWORLD_MAP
+ db TILEMAP_MASON_LABORATORY, TILEMAP_MASON_LABORATORY_CGB, $00, MAP_SGB_PALS_2, $02, MUSIC_OVERWORLD ; MASON_LABORATORY
+ db TILEMAP_DECK_MACHINE_ROOM, TILEMAP_DECK_MACHINE_ROOM_CGB, $00, MAP_SGB_PALS_2, $02, MUSIC_OVERWORLD ; DECK_MACHINE_ROOM
+ db TILEMAP_ISHIHARA, TILEMAP_ISHIHARA_CGB, $00, MAP_SGB_PALS_3, $03, MUSIC_OVERWORLD ; ISHIHARAS_HOUSE
+ db TILEMAP_FIGHTING_CLUB_ENTRANCE, TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALS_3, $04, MUSIC_OVERWORLD ; FIGHTING_CLUB_ENTRANCE
+ db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALS_3, $0c, MUSIC_OVERWORLD ; FIGHTING_CLUB_LOBBY
+ db TILEMAP_FIGHTING_CLUB, TILEMAP_FIGHTING_CLUB_CGB, $00, MAP_SGB_PALS_4, $0d, MUSIC_CLUB_3 ; FIGHTING_CLUB
+ db TILEMAP_ROCK_CLUB_ENTRANCE, TILEMAP_ROCK_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALS_3, $05, MUSIC_OVERWORLD ; ROCK_CLUB_ENTRANCE
+ db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALS_3, $0c, MUSIC_OVERWORLD ; ROCK_CLUB_LOBBY
+ db TILEMAP_ROCK_CLUB, TILEMAP_ROCK_CLUB_CGB, $00, MAP_SGB_PALS_4, $0e, MUSIC_CLUB_2 ; ROCK_CLUB
+ db TILEMAP_WATER_CLUB_ENTRANCE, TILEMAP_WATER_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALS_3, $06, MUSIC_OVERWORLD ; WATER_CLUB_ENTRANCE
+ db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALS_3, $0c, MUSIC_OVERWORLD ; WATER_CLUB_LOBBY
+ db TILEMAP_WATER_CLUB, TILEMAP_WATER_CLUB_CGB, $00, MAP_SGB_PALS_2, $0f, MUSIC_CLUB_2 ; WATER_CLUB
+ db TILEMAP_LIGHTNING_CLUB_ENTRANCE, TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALS_3, $07, MUSIC_OVERWORLD ; LIGHTNING_CLUB_ENTRANCE
+ db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALS_3, $0c, MUSIC_OVERWORLD ; LIGHTNING_CLUB_LOBBY
+ db TILEMAP_LIGHTNING_CLUB, TILEMAP_LIGHTNING_CLUB_CGB, $00, MAP_SGB_PALS_5, $10, MUSIC_CLUB_1 ; LIGHTNING_CLUB
+ db TILEMAP_GRASS_CLUB_ENTRANCE, TILEMAP_GRASS_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALS_3, $08, MUSIC_OVERWORLD ; GRASS_CLUB_ENTRANCE
+ db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALS_3, $0c, MUSIC_OVERWORLD ; GRASS_CLUB_LOBBY
+ db TILEMAP_GRASS_CLUB, TILEMAP_GRASS_CLUB_CGB, $00, MAP_SGB_PALS_6, $11, MUSIC_CLUB_1 ; GRASS_CLUB
+ db TILEMAP_PSYCHIC_CLUB_ENTRANCE, TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALS_3, $09, MUSIC_OVERWORLD ; PSYCHIC_CLUB_ENTRANCE
+ db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALS_3, $0c, MUSIC_OVERWORLD ; PSYCHIC_CLUB_LOBBY
+ db TILEMAP_PSYCHIC_CLUB, TILEMAP_PSYCHIC_CLUB_CGB, $00, MAP_SGB_PALS_7, $12, MUSIC_CLUB_2 ; PSYCHIC_CLUB
+ db TILEMAP_SCIENCE_CLUB_ENTRANCE, TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALS_3, $0a, MUSIC_OVERWORLD ; SCIENCE_CLUB_ENTRANCE
+ db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALS_3, $0c, MUSIC_OVERWORLD ; SCIENCE_CLUB_LOBBY
+ db TILEMAP_SCIENCE_CLUB, TILEMAP_SCIENCE_CLUB_CGB, $00, MAP_SGB_PALS_6, $13, MUSIC_CLUB_3 ; SCIENCE_CLUB
+ db TILEMAP_FIRE_CLUB_ENTRANCE, TILEMAP_FIRE_CLUB_ENTRANCE_CGB, $00, MAP_SGB_PALS_3, $0b, MUSIC_OVERWORLD ; FIRE_CLUB_ENTRANCE
+ db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALS_3, $0c, MUSIC_OVERWORLD ; FIRE_CLUB_LOBBY
+ db TILEMAP_FIRE_CLUB, TILEMAP_FIRE_CLUB_CGB, $00, MAP_SGB_PALS_8, $14, MUSIC_CLUB_3 ; FIRE_CLUB
+ db TILEMAP_CHALLENGE_HALL_ENTRANCE, TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB, $00, MAP_SGB_PALS_3, $04, MUSIC_OVERWORLD ; CHALLENGE_HALL_ENTRANCE
+ db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, MAP_SGB_PALS_3, $0c, MUSIC_OVERWORLD ; CHALLENGE_HALL_LOBBY
+ db TILEMAP_CHALLENGE_HALL, TILEMAP_CHALLENGE_HALL_CGB, $00, MAP_SGB_PALS_9, $15, MUSIC_OVERWORLD ; CHALLENGE_HALL
+ db TILEMAP_POKEMON_DOME_ENTRANCE, TILEMAP_POKEMON_DOME_ENTRANCE_CGB, $00, MAP_SGB_PALS_10, $16, MUSIC_OVERWORLD ; POKEMON_DOME_ENTRANCE
+ db TILEMAP_POKEMON_DOME, TILEMAP_POKEMON_DOME_CGB, $00, MAP_SGB_PALS_10, $17, MUSIC_POKEMON_DOME ; POKEMON_DOME
+ db TILEMAP_HALL_OF_HONOR, TILEMAP_HALL_OF_HONOR_CGB, $00, MAP_SGB_PALS_10, $18, MUSIC_HALL_OF_HONOR ; HALL_OF_HONOR
diff --git a/src/data/maps/map4.bin b/src/data/maps/map4.bin
deleted file mode 100644
index 744b347..0000000
--- a/src/data/maps/map4.bin
+++ /dev/null
@@ -1 +0,0 @@
- \ No newline at end of file
diff --git a/src/data/maps/map5.bin b/src/data/maps/map5.bin
deleted file mode 100644
index 1397e15..0000000
--- a/src/data/maps/map5.bin
+++ /dev/null
@@ -1 +0,0 @@
-} !  \ No newline at end of file
diff --git a/src/data/maps/map52.bin b/src/data/maps/map52.bin
deleted file mode 100644
index b8ae26f..0000000
--- a/src/data/maps/map52.bin
+++ /dev/null
Binary files differ
diff --git a/src/data/maps/map53.bin b/src/data/maps/map53.bin
deleted file mode 100644
index bfff297..0000000
--- a/src/data/maps/map53.bin
+++ /dev/null
Binary files differ
diff --git a/src/data/maps/map56.bin b/src/data/maps/map56.bin
deleted file mode 100644
index b4249e2..0000000
--- a/src/data/maps/map56.bin
+++ /dev/null
Binary files differ
diff --git a/src/data/maps/map57.bin b/src/data/maps/map57.bin
deleted file mode 100644
index be748b7..0000000
--- a/src/data/maps/map57.bin
+++ /dev/null
Binary files differ
diff --git a/src/data/maps/map8.bin b/src/data/maps/map8.bin
deleted file mode 100644
index aa8d5e5..0000000
--- a/src/data/maps/map8.bin
+++ /dev/null
@@ -1 +0,0 @@
- \ No newline at end of file
diff --git a/src/data/maps/map9.bin b/src/data/maps/map9.bin
deleted file mode 100644
index 288b905..0000000
--- a/src/data/maps/map9.bin
+++ /dev/null
@@ -1 +0,0 @@
- \ No newline at end of file
diff --git a/src/data/maps/permissions/challenge_hall.bin b/src/data/maps/permissions/challenge_hall.bin
new file mode 100644
index 0000000..ab54f1c
--- /dev/null
+++ b/src/data/maps/permissions/challenge_hall.bin
Binary files differ
diff --git a/src/data/maps/permissions/challenge_hall_cgb.bin b/src/data/maps/permissions/challenge_hall_cgb.bin
new file mode 100644
index 0000000..ab54f1c
--- /dev/null
+++ b/src/data/maps/permissions/challenge_hall_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/challenge_hall_entrance.bin b/src/data/maps/permissions/challenge_hall_entrance.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/challenge_hall_entrance.bin
Binary files differ
diff --git a/src/data/maps/permissions/challenge_hall_entrance_cgb.bin b/src/data/maps/permissions/challenge_hall_entrance_cgb.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/challenge_hall_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/club_lobby.bin b/src/data/maps/permissions/club_lobby.bin
new file mode 100644
index 0000000..f79c177
--- /dev/null
+++ b/src/data/maps/permissions/club_lobby.bin
Binary files differ
diff --git a/src/data/maps/permissions/club_lobby_cgb.bin b/src/data/maps/permissions/club_lobby_cgb.bin
new file mode 100644
index 0000000..f79c177
--- /dev/null
+++ b/src/data/maps/permissions/club_lobby_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/deck_machine_room.bin b/src/data/maps/permissions/deck_machine_room.bin
new file mode 100644
index 0000000..d1c4beb
--- /dev/null
+++ b/src/data/maps/permissions/deck_machine_room.bin
Binary files differ
diff --git a/src/data/maps/permissions/deck_machine_room_cgb.bin b/src/data/maps/permissions/deck_machine_room_cgb.bin
new file mode 100644
index 0000000..d1c4beb
--- /dev/null
+++ b/src/data/maps/permissions/deck_machine_room_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/fighting_club.bin b/src/data/maps/permissions/fighting_club.bin
new file mode 100644
index 0000000..2b3f72f
--- /dev/null
+++ b/src/data/maps/permissions/fighting_club.bin
Binary files differ
diff --git a/src/data/maps/permissions/fighting_club_cgb.bin b/src/data/maps/permissions/fighting_club_cgb.bin
new file mode 100644
index 0000000..2b3f72f
--- /dev/null
+++ b/src/data/maps/permissions/fighting_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/fighting_club_entrance.bin b/src/data/maps/permissions/fighting_club_entrance.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/fighting_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/permissions/fighting_club_entrance_cgb.bin b/src/data/maps/permissions/fighting_club_entrance_cgb.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/fighting_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/fire_club.bin b/src/data/maps/permissions/fire_club.bin
new file mode 100644
index 0000000..e2b6e52
--- /dev/null
+++ b/src/data/maps/permissions/fire_club.bin
Binary files differ
diff --git a/src/data/maps/permissions/fire_club_cgb.bin b/src/data/maps/permissions/fire_club_cgb.bin
new file mode 100644
index 0000000..e2b6e52
--- /dev/null
+++ b/src/data/maps/permissions/fire_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/fire_club_entrance.bin b/src/data/maps/permissions/fire_club_entrance.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/fire_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/permissions/fire_club_entrance_cgb.bin b/src/data/maps/permissions/fire_club_entrance_cgb.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/fire_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/grass_club.bin b/src/data/maps/permissions/grass_club.bin
new file mode 100644
index 0000000..dbe8ade
--- /dev/null
+++ b/src/data/maps/permissions/grass_club.bin
Binary files differ
diff --git a/src/data/maps/permissions/grass_club_cgb.bin b/src/data/maps/permissions/grass_club_cgb.bin
new file mode 100644
index 0000000..dbe8ade
--- /dev/null
+++ b/src/data/maps/permissions/grass_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/grass_club_entrance.bin b/src/data/maps/permissions/grass_club_entrance.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/grass_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/permissions/grass_club_entrance_cgb.bin b/src/data/maps/permissions/grass_club_entrance_cgb.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/grass_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/hall_of_honor.bin b/src/data/maps/permissions/hall_of_honor.bin
new file mode 100644
index 0000000..a59ca31
--- /dev/null
+++ b/src/data/maps/permissions/hall_of_honor.bin
Binary files differ
diff --git a/src/data/maps/permissions/hall_of_honor_cgb.bin b/src/data/maps/permissions/hall_of_honor_cgb.bin
new file mode 100644
index 0000000..a59ca31
--- /dev/null
+++ b/src/data/maps/permissions/hall_of_honor_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/ishihara.bin b/src/data/maps/permissions/ishihara.bin
new file mode 100644
index 0000000..c1b17c2
--- /dev/null
+++ b/src/data/maps/permissions/ishihara.bin
Binary files differ
diff --git a/src/data/maps/permissions/ishihara_cgb.bin b/src/data/maps/permissions/ishihara_cgb.bin
new file mode 100644
index 0000000..c1b17c2
--- /dev/null
+++ b/src/data/maps/permissions/ishihara_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/lightning_club.bin b/src/data/maps/permissions/lightning_club.bin
new file mode 100644
index 0000000..20d4b9f
--- /dev/null
+++ b/src/data/maps/permissions/lightning_club.bin
Binary files differ
diff --git a/src/data/maps/permissions/lightning_club_cgb.bin b/src/data/maps/permissions/lightning_club_cgb.bin
new file mode 100644
index 0000000..20d4b9f
--- /dev/null
+++ b/src/data/maps/permissions/lightning_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/lightning_club_entrance.bin b/src/data/maps/permissions/lightning_club_entrance.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/lightning_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/permissions/lightning_club_entrance_cgb.bin b/src/data/maps/permissions/lightning_club_entrance_cgb.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/lightning_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/mason_laboratory.bin b/src/data/maps/permissions/mason_laboratory.bin
new file mode 100644
index 0000000..e19760c
--- /dev/null
+++ b/src/data/maps/permissions/mason_laboratory.bin
Binary files differ
diff --git a/src/data/maps/permissions/mason_laboratory_cgb.bin b/src/data/maps/permissions/mason_laboratory_cgb.bin
new file mode 100644
index 0000000..e19760c
--- /dev/null
+++ b/src/data/maps/permissions/mason_laboratory_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/pokemon_dome.bin b/src/data/maps/permissions/pokemon_dome.bin
new file mode 100644
index 0000000..4640de5
--- /dev/null
+++ b/src/data/maps/permissions/pokemon_dome.bin
Binary files differ
diff --git a/src/data/maps/permissions/pokemon_dome_cgb.bin b/src/data/maps/permissions/pokemon_dome_cgb.bin
new file mode 100644
index 0000000..4640de5
--- /dev/null
+++ b/src/data/maps/permissions/pokemon_dome_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/pokemon_dome_entrance.bin b/src/data/maps/permissions/pokemon_dome_entrance.bin
new file mode 100644
index 0000000..f5fab0c
--- /dev/null
+++ b/src/data/maps/permissions/pokemon_dome_entrance.bin
Binary files differ
diff --git a/src/data/maps/permissions/pokemon_dome_entrance_cgb.bin b/src/data/maps/permissions/pokemon_dome_entrance_cgb.bin
new file mode 100644
index 0000000..f5fab0c
--- /dev/null
+++ b/src/data/maps/permissions/pokemon_dome_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/psychic_club.bin b/src/data/maps/permissions/psychic_club.bin
new file mode 100644
index 0000000..60ec1cb
--- /dev/null
+++ b/src/data/maps/permissions/psychic_club.bin
Binary files differ
diff --git a/src/data/maps/permissions/psychic_club_cgb.bin b/src/data/maps/permissions/psychic_club_cgb.bin
new file mode 100644
index 0000000..60ec1cb
--- /dev/null
+++ b/src/data/maps/permissions/psychic_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/psychic_club_entrance.bin b/src/data/maps/permissions/psychic_club_entrance.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/psychic_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/permissions/psychic_club_entrance_cgb.bin b/src/data/maps/permissions/psychic_club_entrance_cgb.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/psychic_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/rock_club.bin b/src/data/maps/permissions/rock_club.bin
new file mode 100644
index 0000000..6797704
--- /dev/null
+++ b/src/data/maps/permissions/rock_club.bin
Binary files differ
diff --git a/src/data/maps/permissions/rock_club_cgb.bin b/src/data/maps/permissions/rock_club_cgb.bin
new file mode 100644
index 0000000..6797704
--- /dev/null
+++ b/src/data/maps/permissions/rock_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/rock_club_entrance.bin b/src/data/maps/permissions/rock_club_entrance.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/rock_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/permissions/rock_club_entrance_cgb.bin b/src/data/maps/permissions/rock_club_entrance_cgb.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/rock_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/science_club.bin b/src/data/maps/permissions/science_club.bin
new file mode 100644
index 0000000..66ccc02
--- /dev/null
+++ b/src/data/maps/permissions/science_club.bin
Binary files differ
diff --git a/src/data/maps/permissions/science_club_cgb.bin b/src/data/maps/permissions/science_club_cgb.bin
new file mode 100644
index 0000000..66ccc02
--- /dev/null
+++ b/src/data/maps/permissions/science_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/science_club_entrance.bin b/src/data/maps/permissions/science_club_entrance.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/science_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/permissions/science_club_entrance_cgb.bin b/src/data/maps/permissions/science_club_entrance_cgb.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/science_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/unknown1.bin b/src/data/maps/permissions/unknown1.bin
new file mode 100644
index 0000000..26b782d
--- /dev/null
+++ b/src/data/maps/permissions/unknown1.bin
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/src/data/maps/permissions/unknown1_cgb.bin b/src/data/maps/permissions/unknown1_cgb.bin
new file mode 100644
index 0000000..26b782d
--- /dev/null
+++ b/src/data/maps/permissions/unknown1_cgb.bin
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/src/data/maps/permissions/unknown_2.bin b/src/data/maps/permissions/unknown_2.bin
new file mode 100644
index 0000000..7f65eeb
--- /dev/null
+++ b/src/data/maps/permissions/unknown_2.bin
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/src/data/maps/permissions/unknown_2_cgb.bin b/src/data/maps/permissions/unknown_2_cgb.bin
new file mode 100644
index 0000000..7f65eeb
--- /dev/null
+++ b/src/data/maps/permissions/unknown_2_cgb.bin
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/src/data/maps/permissions/unknown_3.bin b/src/data/maps/permissions/unknown_3.bin
new file mode 100644
index 0000000..10bc8da
--- /dev/null
+++ b/src/data/maps/permissions/unknown_3.bin
Binary files differ
diff --git a/src/data/maps/permissions/unknown_3_cgb.bin b/src/data/maps/permissions/unknown_3_cgb.bin
new file mode 100644
index 0000000..10bc8da
--- /dev/null
+++ b/src/data/maps/permissions/unknown_3_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/unknown_4.bin b/src/data/maps/permissions/unknown_4.bin
new file mode 100644
index 0000000..10bc8da
--- /dev/null
+++ b/src/data/maps/permissions/unknown_4.bin
Binary files differ
diff --git a/src/data/maps/permissions/unknown_4_cgb.bin b/src/data/maps/permissions/unknown_4_cgb.bin
new file mode 100644
index 0000000..10bc8da
--- /dev/null
+++ b/src/data/maps/permissions/unknown_4_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/water_club.bin b/src/data/maps/permissions/water_club.bin
new file mode 100644
index 0000000..ca1332d
--- /dev/null
+++ b/src/data/maps/permissions/water_club.bin
Binary files differ
diff --git a/src/data/maps/permissions/water_club_cgb.bin b/src/data/maps/permissions/water_club_cgb.bin
new file mode 100644
index 0000000..ca1332d
--- /dev/null
+++ b/src/data/maps/permissions/water_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/water_club_entrance.bin b/src/data/maps/permissions/water_club_entrance.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/water_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/permissions/water_club_entrance_cgb.bin b/src/data/maps/permissions/water_club_entrance_cgb.bin
new file mode 100644
index 0000000..76a9ae1
--- /dev/null
+++ b/src/data/maps/permissions/water_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map76.bin b/src/data/maps/tiles/aerodactyl_intro.bin
index 0380a45..0380a45 100644
--- a/src/data/maps/map76.bin
+++ b/src/data/maps/tiles/aerodactyl_intro.bin
diff --git a/src/data/maps/map89.bin b/src/data/maps/tiles/aerodactyl_intro_cgb.bin
index 2071453..2071453 100644
--- a/src/data/maps/map89.bin
+++ b/src/data/maps/tiles/aerodactyl_intro_cgb.bin
Binary files differ
diff --git a/src/data/maps/map61.bin b/src/data/maps/tiles/card_pop.bin
index e29cc7b..e29cc7b 100644
--- a/src/data/maps/map61.bin
+++ b/src/data/maps/tiles/card_pop.bin
Binary files differ
diff --git a/src/data/maps/map60.bin b/src/data/maps/tiles/card_pop_cgb.bin
index 5dcb25e..5dcb25e 100644
--- a/src/data/maps/map60.bin
+++ b/src/data/maps/tiles/card_pop_cgb.bin
Binary files differ
diff --git a/src/data/maps/map48.bin b/src/data/maps/tiles/challenge_hall.bin
index 5085c83..6143f36 100644
--- a/src/data/maps/map48.bin
+++ b/src/data/maps/tiles/challenge_hall.bin
Binary files differ
diff --git a/src/data/maps/map49.bin b/src/data/maps/tiles/challenge_hall_cgb.bin
index c5ae1b9..55a8d57 100644
--- a/src/data/maps/map49.bin
+++ b/src/data/maps/tiles/challenge_hall_cgb.bin
Binary files differ
diff --git a/src/data/maps/map28.bin b/src/data/maps/tiles/challenge_hall_entrance.bin
index 557c897..d7c7485 100644
--- a/src/data/maps/map28.bin
+++ b/src/data/maps/tiles/challenge_hall_entrance.bin
Binary files differ
diff --git a/src/data/maps/map29.bin b/src/data/maps/tiles/challenge_hall_entrance_cgb.bin
index b70e041..dba4a85 100644
--- a/src/data/maps/map29.bin
+++ b/src/data/maps/tiles/challenge_hall_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map78.bin b/src/data/maps/tiles/charizard_intro.bin
index 0380a45..0380a45 100644
--- a/src/data/maps/map78.bin
+++ b/src/data/maps/tiles/charizard_intro.bin
diff --git a/src/data/maps/map85.bin b/src/data/maps/tiles/charizard_intro_cgb.bin
index 37fa470..37fa470 100644
--- a/src/data/maps/map85.bin
+++ b/src/data/maps/tiles/charizard_intro_cgb.bin
Binary files differ
diff --git a/src/data/maps/map30.bin b/src/data/maps/tiles/club_lobby.bin
index ce1d02c..98fdcc5 100644
--- a/src/data/maps/map30.bin
+++ b/src/data/maps/tiles/club_lobby.bin
Binary files differ
diff --git a/src/data/maps/map31.bin b/src/data/maps/tiles/club_lobby_cgb.bin
index d0e5fcd..ccc9148 100644
--- a/src/data/maps/map31.bin
+++ b/src/data/maps/tiles/club_lobby_cgb.bin
Binary files differ
diff --git a/src/data/maps/map80.bin b/src/data/maps/tiles/colosseum.bin
index 0380a45..0380a45 100644
--- a/src/data/maps/map80.bin
+++ b/src/data/maps/tiles/colosseum.bin
diff --git a/src/data/maps/map77.bin b/src/data/maps/tiles/colosseum_cgb.bin
index ac2e677..ac2e677 100644
--- a/src/data/maps/map77.bin
+++ b/src/data/maps/tiles/colosseum_cgb.bin
Binary files differ
diff --git a/src/data/maps/map105.bin b/src/data/maps/tiles/companies.bin
index 057d4e0..057d4e0 100644
--- a/src/data/maps/map105.bin
+++ b/src/data/maps/tiles/companies.bin
Binary files differ
diff --git a/src/data/maps/map102.bin b/src/data/maps/tiles/copyright.bin
index 0a7e308..0a7e308 100644
--- a/src/data/maps/map102.bin
+++ b/src/data/maps/tiles/copyright.bin
Binary files differ
diff --git a/src/data/maps/map103.bin b/src/data/maps/tiles/copyright_cgb.bin
index 68219ed..68219ed 100644
--- a/src/data/maps/map103.bin
+++ b/src/data/maps/tiles/copyright_cgb.bin
Binary files differ
diff --git a/src/data/maps/map6.bin b/src/data/maps/tiles/deck_machine_room.bin
index e2270c7..a15b274 100644
--- a/src/data/maps/map6.bin
+++ b/src/data/maps/tiles/deck_machine_room.bin
Binary files differ
diff --git a/src/data/maps/map7.bin b/src/data/maps/tiles/deck_machine_room_cgb.bin
index 7662b6e..0c742a4 100644
--- a/src/data/maps/map7.bin
+++ b/src/data/maps/tiles/deck_machine_room_cgb.bin
Binary files differ
diff --git a/src/data/maps/map82.bin b/src/data/maps/tiles/evolution.bin
index 0380a45..0380a45 100644
--- a/src/data/maps/map82.bin
+++ b/src/data/maps/tiles/evolution.bin
diff --git a/src/data/maps/map79.bin b/src/data/maps/tiles/evolution_cgb.bin
index 4b03152..4b03152 100644
--- a/src/data/maps/map79.bin
+++ b/src/data/maps/tiles/evolution_cgb.bin
Binary files differ
diff --git a/src/data/maps/map32.bin b/src/data/maps/tiles/fighting_club.bin
index 609fa1e..8fb7d0b 100644
--- a/src/data/maps/map32.bin
+++ b/src/data/maps/tiles/fighting_club.bin
Binary files differ
diff --git a/src/data/maps/map33.bin b/src/data/maps/tiles/fighting_club_cgb.bin
index 025b820..5200d3e 100644
--- a/src/data/maps/map33.bin
+++ b/src/data/maps/tiles/fighting_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/map12.bin b/src/data/maps/tiles/fighting_club_entrance.bin
index 491cb07..8f02d94 100644
--- a/src/data/maps/map12.bin
+++ b/src/data/maps/tiles/fighting_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/map13.bin b/src/data/maps/tiles/fighting_club_entrance_cgb.bin
index 69479ba..f7ede66 100644
--- a/src/data/maps/map13.bin
+++ b/src/data/maps/tiles/fighting_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map67.bin b/src/data/maps/tiles/fighting_medal.bin
index e5d5767..e5d5767 100644
--- a/src/data/maps/map67.bin
+++ b/src/data/maps/tiles/fighting_medal.bin
diff --git a/src/data/maps/map46.bin b/src/data/maps/tiles/fire_club.bin
index 9bc01f8..a88c6a6 100644
--- a/src/data/maps/map46.bin
+++ b/src/data/maps/tiles/fire_club.bin
Binary files differ
diff --git a/src/data/maps/map47.bin b/src/data/maps/tiles/fire_club_cgb.bin
index 085c680..c52b24c 100644
--- a/src/data/maps/map47.bin
+++ b/src/data/maps/tiles/fire_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/map26.bin b/src/data/maps/tiles/fire_club_entrance.bin
index 5a37965..75293ca 100644
--- a/src/data/maps/map26.bin
+++ b/src/data/maps/tiles/fire_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/map27.bin b/src/data/maps/tiles/fire_club_entrance_cgb.bin
index f18ad28..9c7288e 100644
--- a/src/data/maps/map27.bin
+++ b/src/data/maps/tiles/fire_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map64.bin b/src/data/maps/tiles/fire_medal.bin
index 5f97f41..5f97f41 100644
--- a/src/data/maps/map64.bin
+++ b/src/data/maps/tiles/fire_medal.bin
diff --git a/src/data/maps/map71.bin b/src/data/maps/tiles/gameboy_link.bin
index 8845640..8845640 100644
--- a/src/data/maps/map71.bin
+++ b/src/data/maps/tiles/gameboy_link.bin
Binary files differ
diff --git a/src/data/maps/map70.bin b/src/data/maps/tiles/gameboy_link_cgb.bin
index 0ac3803..0ac3803 100644
--- a/src/data/maps/map70.bin
+++ b/src/data/maps/tiles/gameboy_link_cgb.bin
Binary files differ
diff --git a/src/data/maps/map73.bin b/src/data/maps/tiles/gameboy_link_connecting.bin
index d3bb103..d3bb103 100644
--- a/src/data/maps/map73.bin
+++ b/src/data/maps/tiles/gameboy_link_connecting.bin
Binary files differ
diff --git a/src/data/maps/map72.bin b/src/data/maps/tiles/gameboy_link_connecting_cgb.bin
index 0102181..0102181 100644
--- a/src/data/maps/map72.bin
+++ b/src/data/maps/tiles/gameboy_link_connecting_cgb.bin
Binary files differ
diff --git a/src/data/maps/map75.bin b/src/data/maps/tiles/gameboy_printer.bin
index bbb8abd..bbb8abd 100644
--- a/src/data/maps/map75.bin
+++ b/src/data/maps/tiles/gameboy_printer.bin
Binary files differ
diff --git a/src/data/maps/map74.bin b/src/data/maps/tiles/gameboy_printer_cgb.bin
index 52f8e24..52f8e24 100644
--- a/src/data/maps/map74.bin
+++ b/src/data/maps/tiles/gameboy_printer_cgb.bin
Binary files differ
diff --git a/src/data/maps/map40.bin b/src/data/maps/tiles/grass_club.bin
index 37db1fa..f5c5d44 100644
--- a/src/data/maps/map40.bin
+++ b/src/data/maps/tiles/grass_club.bin
Binary files differ
diff --git a/src/data/maps/map41.bin b/src/data/maps/tiles/grass_club_cgb.bin
index c13065e..b34559a 100644
--- a/src/data/maps/map41.bin
+++ b/src/data/maps/tiles/grass_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/map20.bin b/src/data/maps/tiles/grass_club_entrance.bin
index 0454487..e649de4 100644
--- a/src/data/maps/map20.bin
+++ b/src/data/maps/tiles/grass_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/map21.bin b/src/data/maps/tiles/grass_club_entrance_cgb.bin
index 6e9c407..6d7a662 100644
--- a/src/data/maps/map21.bin
+++ b/src/data/maps/tiles/grass_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map62.bin b/src/data/maps/tiles/grass_medal.bin
index 11d47bd..11d47bd 100644
--- a/src/data/maps/map62.bin
+++ b/src/data/maps/tiles/grass_medal.bin
diff --git a/src/data/maps/map58.bin b/src/data/maps/tiles/hall_of_honor.bin
index 00625d0..0ad5a03 100644
--- a/src/data/maps/map58.bin
+++ b/src/data/maps/tiles/hall_of_honor.bin
Binary files differ
diff --git a/src/data/maps/map59.bin b/src/data/maps/tiles/hall_of_honor_cgb.bin
index 3873084..cc23172 100644
--- a/src/data/maps/map59.bin
+++ b/src/data/maps/tiles/hall_of_honor_cgb.bin
Binary files differ
diff --git a/src/data/maps/map10.bin b/src/data/maps/tiles/ishihara.bin
index 570de49..f0451d4 100644
--- a/src/data/maps/map10.bin
+++ b/src/data/maps/tiles/ishihara.bin
Binary files differ
diff --git a/src/data/maps/map11.bin b/src/data/maps/tiles/ishihara_cgb.bin
index 23e8c35..9342887 100644
--- a/src/data/maps/map11.bin
+++ b/src/data/maps/tiles/ishihara_cgb.bin
Binary files differ
diff --git a/src/data/maps/map90.bin b/src/data/maps/tiles/japanese_title_screen.bin
index 23b8711..23b8711 100644
--- a/src/data/maps/map90.bin
+++ b/src/data/maps/tiles/japanese_title_screen.bin
Binary files differ
diff --git a/src/data/maps/map95.bin b/src/data/maps/tiles/japanese_title_screen_2.bin
index 943bedf..943bedf 100644
--- a/src/data/maps/map95.bin
+++ b/src/data/maps/tiles/japanese_title_screen_2.bin
Binary files differ
diff --git a/src/data/maps/map96.bin b/src/data/maps/tiles/japanese_title_screen_2_cgb.bin
index 99debbf..99debbf 100644
--- a/src/data/maps/map96.bin
+++ b/src/data/maps/tiles/japanese_title_screen_2_cgb.bin
Binary files differ
diff --git a/src/data/maps/map91.bin b/src/data/maps/tiles/japanese_title_screen_cgb.bin
index 723a7c6..723a7c6 100644
--- a/src/data/maps/map91.bin
+++ b/src/data/maps/tiles/japanese_title_screen_cgb.bin
Binary files differ
diff --git a/src/data/maps/map84.bin b/src/data/maps/tiles/laboratory.bin
index 0380a45..0380a45 100644
--- a/src/data/maps/map84.bin
+++ b/src/data/maps/tiles/laboratory.bin
diff --git a/src/data/maps/map83.bin b/src/data/maps/tiles/laboratory_cgb.bin
index cc72903..cc72903 100644
--- a/src/data/maps/map83.bin
+++ b/src/data/maps/tiles/laboratory_cgb.bin
Binary files differ
diff --git a/src/data/maps/map38.bin b/src/data/maps/tiles/lightning_club.bin
index 779b893..8b139e3 100644
--- a/src/data/maps/map38.bin
+++ b/src/data/maps/tiles/lightning_club.bin
Binary files differ
diff --git a/src/data/maps/map39.bin b/src/data/maps/tiles/lightning_club_cgb.bin
index 104acd7..a4cb5bb 100644
--- a/src/data/maps/map39.bin
+++ b/src/data/maps/tiles/lightning_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/map18.bin b/src/data/maps/tiles/lightning_club_entrance.bin
index 1b5f7e2..04df604 100644
--- a/src/data/maps/map18.bin
+++ b/src/data/maps/tiles/lightning_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/map19.bin b/src/data/maps/tiles/lightning_club_entrance_cgb.bin
index 41fd5e3..b0238f2 100644
--- a/src/data/maps/map19.bin
+++ b/src/data/maps/tiles/lightning_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map66.bin b/src/data/maps/tiles/lightning_medal.bin
index b498b94..b498b94 100644
--- a/src/data/maps/map66.bin
+++ b/src/data/maps/tiles/lightning_medal.bin
diff --git a/src/data/maps/map2.bin b/src/data/maps/tiles/mason_laboratory.bin
index b575bb2..734080b 100644
--- a/src/data/maps/map2.bin
+++ b/src/data/maps/tiles/mason_laboratory.bin
Binary files differ
diff --git a/src/data/maps/map3.bin b/src/data/maps/tiles/mason_laboratory_cgb.bin
index ceaa540..b0ba43e 100644
--- a/src/data/maps/map3.bin
+++ b/src/data/maps/tiles/mason_laboratory_cgb.bin
Binary files differ
diff --git a/src/data/maps/map86.bin b/src/data/maps/tiles/mystery.bin
index 0380a45..0380a45 100644
--- a/src/data/maps/map86.bin
+++ b/src/data/maps/tiles/mystery.bin
diff --git a/src/data/maps/map81.bin b/src/data/maps/tiles/mystery_cgb.bin
index 9480551..9480551 100644
--- a/src/data/maps/map81.bin
+++ b/src/data/maps/tiles/mystery_cgb.bin
Binary files differ
diff --git a/src/data/maps/map104.bin b/src/data/maps/tiles/nintendo.bin
index b931d87..b931d87 100644
--- a/src/data/maps/map104.bin
+++ b/src/data/maps/tiles/nintendo.bin
Binary files differ
diff --git a/src/data/maps/map99.bin b/src/data/maps/tiles/opponent.bin
index 8cc4af6..8cc4af6 100644
--- a/src/data/maps/map99.bin
+++ b/src/data/maps/tiles/opponent.bin
diff --git a/src/data/maps/map0.bin b/src/data/maps/tiles/overworld_map.bin
index cf2a9ed..cf2a9ed 100644
--- a/src/data/maps/map0.bin
+++ b/src/data/maps/tiles/overworld_map.bin
Binary files differ
diff --git a/src/data/maps/map1.bin b/src/data/maps/tiles/overworld_map_cgb.bin
index 38543ff..38543ff 100644
--- a/src/data/maps/map1.bin
+++ b/src/data/maps/tiles/overworld_map_cgb.bin
Binary files differ
diff --git a/src/data/maps/map98.bin b/src/data/maps/tiles/player.bin
index 4f89d54..4f89d54 100644
--- a/src/data/maps/map98.bin
+++ b/src/data/maps/tiles/player.bin
diff --git a/src/data/maps/map54.bin b/src/data/maps/tiles/pokemon_dome.bin
index 7b7fef6..61d5d04 100644
--- a/src/data/maps/map54.bin
+++ b/src/data/maps/tiles/pokemon_dome.bin
Binary files differ
diff --git a/src/data/maps/map55.bin b/src/data/maps/tiles/pokemon_dome_cgb.bin
index ae652ec..6d87cca 100644
--- a/src/data/maps/map55.bin
+++ b/src/data/maps/tiles/pokemon_dome_cgb.bin
Binary files differ
diff --git a/src/data/maps/map50.bin b/src/data/maps/tiles/pokemon_dome_entrance.bin
index c34e10e..a73c81d 100644
--- a/src/data/maps/map50.bin
+++ b/src/data/maps/tiles/pokemon_dome_entrance.bin
Binary files differ
diff --git a/src/data/maps/map51.bin b/src/data/maps/tiles/pokemon_dome_entrance_cgb.bin
index 81a2263..9f6b55c 100644
--- a/src/data/maps/map51.bin
+++ b/src/data/maps/tiles/pokemon_dome_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map42.bin b/src/data/maps/tiles/psychic_club.bin
index 21b5993..7905f36 100644
--- a/src/data/maps/map42.bin
+++ b/src/data/maps/tiles/psychic_club.bin
Binary files differ
diff --git a/src/data/maps/map43.bin b/src/data/maps/tiles/psychic_club_cgb.bin
index 50e18a9..520c720 100644
--- a/src/data/maps/map43.bin
+++ b/src/data/maps/tiles/psychic_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/map22.bin b/src/data/maps/tiles/psychic_club_entrance.bin
index c7951e0..77818c3 100644
--- a/src/data/maps/map22.bin
+++ b/src/data/maps/tiles/psychic_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/map23.bin b/src/data/maps/tiles/psychic_club_entrance_cgb.bin
index 9bef429..fa6b887 100644
--- a/src/data/maps/map23.bin
+++ b/src/data/maps/tiles/psychic_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map69.bin b/src/data/maps/tiles/psychic_medal.bin
index 69d45ef..69d45ef 100644
--- a/src/data/maps/map69.bin
+++ b/src/data/maps/tiles/psychic_medal.bin
diff --git a/src/data/maps/map34.bin b/src/data/maps/tiles/rock_club.bin
index de03a48..677c220 100644
--- a/src/data/maps/map34.bin
+++ b/src/data/maps/tiles/rock_club.bin
Binary files differ
diff --git a/src/data/maps/map35.bin b/src/data/maps/tiles/rock_club_cgb.bin
index a178ac3..5d363d1 100644
--- a/src/data/maps/map35.bin
+++ b/src/data/maps/tiles/rock_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/map14.bin b/src/data/maps/tiles/rock_club_entrance.bin
index aa1c6bc..2ae25f2 100644
--- a/src/data/maps/map14.bin
+++ b/src/data/maps/tiles/rock_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/map15.bin b/src/data/maps/tiles/rock_club_entrance_cgb.bin
index eb8fc6b..122ff90 100644
--- a/src/data/maps/map15.bin
+++ b/src/data/maps/tiles/rock_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map68.bin b/src/data/maps/tiles/rock_medal.bin
index 8b74ef4..8b74ef4 100644
--- a/src/data/maps/map68.bin
+++ b/src/data/maps/tiles/rock_medal.bin
diff --git a/src/data/maps/map44.bin b/src/data/maps/tiles/science_club.bin
index 81c2cd1..52fc61d 100644
--- a/src/data/maps/map44.bin
+++ b/src/data/maps/tiles/science_club.bin
Binary files differ
diff --git a/src/data/maps/map45.bin b/src/data/maps/tiles/science_club_cgb.bin
index 6e44d7a..fd0abd5 100644
--- a/src/data/maps/map45.bin
+++ b/src/data/maps/tiles/science_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/map24.bin b/src/data/maps/tiles/science_club_entrance.bin
index c3bbf87..8363779 100644
--- a/src/data/maps/map24.bin
+++ b/src/data/maps/tiles/science_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/map25.bin b/src/data/maps/tiles/science_club_entrance_cgb.bin
index 9b66ad4..6a0d0b6 100644
--- a/src/data/maps/map25.bin
+++ b/src/data/maps/tiles/science_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map63.bin b/src/data/maps/tiles/science_medal.bin
index 237f5fe..237f5fe 100644
--- a/src/data/maps/map63.bin
+++ b/src/data/maps/tiles/science_medal.bin
diff --git a/src/data/maps/map88.bin b/src/data/maps/tiles/scyther_intro.bin
index 0380a45..0380a45 100644
--- a/src/data/maps/map88.bin
+++ b/src/data/maps/tiles/scyther_intro.bin
diff --git a/src/data/maps/map87.bin b/src/data/maps/tiles/scyther_intro_cgb.bin
index 065a4c5..065a4c5 100644
--- a/src/data/maps/map87.bin
+++ b/src/data/maps/tiles/scyther_intro_cgb.bin
Binary files differ
diff --git a/src/data/maps/map92.bin b/src/data/maps/tiles/solid_tiles_1.bin
index e33651c..e33651c 100644
--- a/src/data/maps/map92.bin
+++ b/src/data/maps/tiles/solid_tiles_1.bin
Binary files differ
diff --git a/src/data/maps/map93.bin b/src/data/maps/tiles/solid_tiles_2.bin
index 8bef537..8bef537 100644
--- a/src/data/maps/map93.bin
+++ b/src/data/maps/tiles/solid_tiles_2.bin
Binary files differ
diff --git a/src/data/maps/map94.bin b/src/data/maps/tiles/solid_tiles_3.bin
index d314a97..d314a97 100644
--- a/src/data/maps/map94.bin
+++ b/src/data/maps/tiles/solid_tiles_3.bin
Binary files differ
diff --git a/src/data/maps/map97.bin b/src/data/maps/tiles/solid_tiles_4.bin
index 7d0c714..7d0c714 100644
--- a/src/data/maps/map97.bin
+++ b/src/data/maps/tiles/solid_tiles_4.bin
diff --git a/src/data/maps/map100.bin b/src/data/maps/tiles/title_screen.bin
index cc9e675..cc9e675 100644
--- a/src/data/maps/map100.bin
+++ b/src/data/maps/tiles/title_screen.bin
Binary files differ
diff --git a/src/data/maps/map101.bin b/src/data/maps/tiles/title_screen_cgb.bin
index 15ff322..15ff322 100644
--- a/src/data/maps/map101.bin
+++ b/src/data/maps/tiles/title_screen_cgb.bin
Binary files differ
diff --git a/src/data/maps/tiles/unknown1.bin b/src/data/maps/tiles/unknown1.bin
new file mode 100644
index 0000000..1793914
--- /dev/null
+++ b/src/data/maps/tiles/unknown1.bin
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/src/data/maps/tiles/unknown1_cgb.bin b/src/data/maps/tiles/unknown1_cgb.bin
new file mode 100644
index 0000000..2a021bb
--- /dev/null
+++ b/src/data/maps/tiles/unknown1_cgb.bin
@@ -0,0 +1 @@
+} ! \ No newline at end of file
diff --git a/src/data/maps/tiles/unknown_2.bin b/src/data/maps/tiles/unknown_2.bin
new file mode 100644
index 0000000..7fb778f
--- /dev/null
+++ b/src/data/maps/tiles/unknown_2.bin
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/src/data/maps/tiles/unknown_2_cgb.bin b/src/data/maps/tiles/unknown_2_cgb.bin
new file mode 100644
index 0000000..ccd413f
--- /dev/null
+++ b/src/data/maps/tiles/unknown_2_cgb.bin
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/src/data/maps/tiles/unknown_3.bin b/src/data/maps/tiles/unknown_3.bin
new file mode 100644
index 0000000..b861de6
--- /dev/null
+++ b/src/data/maps/tiles/unknown_3.bin
Binary files differ
diff --git a/src/data/maps/tiles/unknown_3_cgb.bin b/src/data/maps/tiles/unknown_3_cgb.bin
new file mode 100644
index 0000000..f621932
--- /dev/null
+++ b/src/data/maps/tiles/unknown_3_cgb.bin
Binary files differ
diff --git a/src/data/maps/tiles/unknown_4.bin b/src/data/maps/tiles/unknown_4.bin
new file mode 100644
index 0000000..e5fa7a6
--- /dev/null
+++ b/src/data/maps/tiles/unknown_4.bin
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/src/data/maps/tiles/unknown_4_cgb.bin b/src/data/maps/tiles/unknown_4_cgb.bin
new file mode 100644
index 0000000..89b40ac
--- /dev/null
+++ b/src/data/maps/tiles/unknown_4_cgb.bin
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/src/data/maps/map36.bin b/src/data/maps/tiles/water_club.bin
index 759a82e..2d47a07 100644
--- a/src/data/maps/map36.bin
+++ b/src/data/maps/tiles/water_club.bin
Binary files differ
diff --git a/src/data/maps/map37.bin b/src/data/maps/tiles/water_club_cgb.bin
index fc1588d..8b64298 100644
--- a/src/data/maps/map37.bin
+++ b/src/data/maps/tiles/water_club_cgb.bin
Binary files differ
diff --git a/src/data/maps/map16.bin b/src/data/maps/tiles/water_club_entrance.bin
index 6725ce2..6c647b3 100644
--- a/src/data/maps/map16.bin
+++ b/src/data/maps/tiles/water_club_entrance.bin
Binary files differ
diff --git a/src/data/maps/map17.bin b/src/data/maps/tiles/water_club_entrance_cgb.bin
index 2202009..d7cbd88 100644
--- a/src/data/maps/map17.bin
+++ b/src/data/maps/tiles/water_club_entrance_cgb.bin
Binary files differ
diff --git a/src/data/maps/map65.bin b/src/data/maps/tiles/water_medal.bin
index 598efd3..598efd3 100644
--- a/src/data/maps/map65.bin
+++ b/src/data/maps/tiles/water_medal.bin
diff --git a/src/data/sgb_data/aerodactyl_intro_pals.bin b/src/data/sgb_data/aerodactyl_intro_pals.bin
new file mode 100644
index 0000000..81f53ff
--- /dev/null
+++ b/src/data/sgb_data/aerodactyl_intro_pals.bin
Binary files differ
diff --git a/src/data/sgb_data/card_pop_pals.bin b/src/data/sgb_data/card_pop_pals.bin
new file mode 100644
index 0000000..1cae5fe
--- /dev/null
+++ b/src/data/sgb_data/card_pop_pals.bin
Binary files differ
diff --git a/src/data/sgb_data/charizard_intro_pals.bin b/src/data/sgb_data/charizard_intro_pals.bin
new file mode 100644
index 0000000..b3bc55a
--- /dev/null
+++ b/src/data/sgb_data/charizard_intro_pals.bin
Binary files differ
diff --git a/src/data/sgb_data/colosseum_booster_pals.bin b/src/data/sgb_data/colosseum_booster_pals.bin
new file mode 100644
index 0000000..5b42426
--- /dev/null
+++ b/src/data/sgb_data/colosseum_booster_pals.bin
Binary files differ
diff --git a/src/data/sgb_data/evolution_booster_pals.bin b/src/data/sgb_data/evolution_booster_pals.bin
new file mode 100644
index 0000000..7c4d31d
--- /dev/null
+++ b/src/data/sgb_data/evolution_booster_pals.bin
Binary files differ
diff --git a/src/data/sgb_data/gameboy_link_pals.bin b/src/data/sgb_data/gameboy_link_pals.bin
new file mode 100644
index 0000000..1a097e4
--- /dev/null
+++ b/src/data/sgb_data/gameboy_link_pals.bin
Binary files differ
diff --git a/src/data/sgb_data/gameboy_printer_pals.bin b/src/data/sgb_data/gameboy_printer_pals.bin
new file mode 100644
index 0000000..7475429
--- /dev/null
+++ b/src/data/sgb_data/gameboy_printer_pals.bin
Binary files differ
diff --git a/src/data/sgb_data/laboratory_booster_pals.bin b/src/data/sgb_data/laboratory_booster_pals.bin
new file mode 100644
index 0000000..a89ff66
--- /dev/null
+++ b/src/data/sgb_data/laboratory_booster_pals.bin
Binary files differ
diff --git a/src/data/sgb_data/map_pals_1.bin b/src/data/sgb_data/map_pals_1.bin
new file mode 100644
index 0000000..3fc62ba
--- /dev/null
+++ b/src/data/sgb_data/map_pals_1.bin
Binary files differ
diff --git a/src/data/sgb_data/map_pals_10.bin b/src/data/sgb_data/map_pals_10.bin
new file mode 100644
index 0000000..8864b19
--- /dev/null
+++ b/src/data/sgb_data/map_pals_10.bin
Binary files differ
diff --git a/src/data/sgb_data/map_pals_2.bin b/src/data/sgb_data/map_pals_2.bin
new file mode 100644
index 0000000..b13d54b
--- /dev/null
+++ b/src/data/sgb_data/map_pals_2.bin
Binary files differ
diff --git a/src/data/sgb_data/map_pals_3.bin b/src/data/sgb_data/map_pals_3.bin
new file mode 100644
index 0000000..2f7f104
--- /dev/null
+++ b/src/data/sgb_data/map_pals_3.bin
Binary files differ
diff --git a/src/data/sgb_data/map_pals_4.bin b/src/data/sgb_data/map_pals_4.bin
new file mode 100644
index 0000000..334a8a7
--- /dev/null
+++ b/src/data/sgb_data/map_pals_4.bin
Binary files differ
diff --git a/src/data/sgb_data/map_pals_5.bin b/src/data/sgb_data/map_pals_5.bin
new file mode 100644
index 0000000..d37ad71
--- /dev/null
+++ b/src/data/sgb_data/map_pals_5.bin
Binary files differ
diff --git a/src/data/sgb_data/map_pals_6.bin b/src/data/sgb_data/map_pals_6.bin
new file mode 100644
index 0000000..2c79bd3
--- /dev/null
+++ b/src/data/sgb_data/map_pals_6.bin
Binary files differ
diff --git a/src/data/sgb_data/map_pals_7.bin b/src/data/sgb_data/map_pals_7.bin
new file mode 100644
index 0000000..73c3d8b
--- /dev/null
+++ b/src/data/sgb_data/map_pals_7.bin
Binary files differ
diff --git a/src/data/sgb_data/map_pals_8.bin b/src/data/sgb_data/map_pals_8.bin
new file mode 100644
index 0000000..0349fca
--- /dev/null
+++ b/src/data/sgb_data/map_pals_8.bin
Binary files differ
diff --git a/src/data/sgb_data/map_pals_9.bin b/src/data/sgb_data/map_pals_9.bin
new file mode 100644
index 0000000..7804d5a
--- /dev/null
+++ b/src/data/sgb_data/map_pals_9.bin
Binary files differ
diff --git a/src/data/sgb_data/mystery_booster_pals.bin b/src/data/sgb_data/mystery_booster_pals.bin
new file mode 100644
index 0000000..2cc6efe
--- /dev/null
+++ b/src/data/sgb_data/mystery_booster_pals.bin
Binary files differ
diff --git a/src/data/sgb_data/scyther_intro_pals.bin b/src/data/sgb_data/scyther_intro_pals.bin
new file mode 100644
index 0000000..3b9634d
--- /dev/null
+++ b/src/data/sgb_data/scyther_intro_pals.bin
Binary files differ
diff --git a/src/data/sgb_data/title_screen_pals.bin b/src/data/sgb_data/title_screen_pals.bin
new file mode 100644
index 0000000..be1e506
--- /dev/null
+++ b/src/data/sgb_data/title_screen_pals.bin
Binary files differ
diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm
index 3657fb5..c29f75a 100644
--- a/src/engine/bank03.asm
+++ b/src/engine/bank03.asm
@@ -468,58 +468,67 @@ Func_c36a: ; c36a (3:436a)
.asm_c379
ret
-Func_c37a: ; c37a (3:437a)
+; loads in wPermissionMap the permissions
+; of the map, which has its compressed permission data
+; pointed by wBGMapPermissionDataPtr
+LoadPermissionMap: ; c37a (3:437a)
push hl
push bc
- ld hl, wBoosterViableCardList
+ ld hl, wPermissionMap
push hl
- ld a, $80
+ ld a, $80 ; impassable and untalkable
ld c, $00
-.asm_c384
+.loop_map
ld [hli], a
dec c
- jr nz, .asm_c384
+ jr nz, .loop_map
pop hl
- call Func_c38f
+ call DecompressPermissionMap
pop bc
pop hl
ret
-Func_c38f: ; c38f (3:438f)
+; decompresses permission data pointed by wBGMapPermissionDataPtr
+; hl = address to write to
+DecompressPermissionMap: ; c38f (3:438f)
push hl
push bc
- ld a, [wd23a]
+ ld a, [wBGMapPermissionDataPtr]
ld e, a
- ld a, [wd23a + 1]
+ ld a, [wBGMapPermissionDataPtr + 1]
ld d, a
or e
jr z, .skip
+; permissions are applied to 2x2 square tiles
+; so the data is half the width and height
+; of the actual tile map
push hl
- ld b, HIGH(wc000)
+ ld b, HIGH(wDecompressionSecondaryBuffer)
call InitDataDecompression
ld a, [wd23d]
ld [wTempPointerBank], a
ld a, [wBGMapHeight]
inc a
srl a
- ld b, a
+ ld b, a ; (height + 1) / 2
ld a, [wBGMapWidth]
inc a
srl a
- ld c, a
+ ld c, a ; (width + 1) / 2
pop de
-.asm_c3b7
+
+.loop
push bc
- ld b, $00
+ ld b, 0 ; one row (with width in c)
call DecompressDataFromBank
- ld hl, $10
+ ld hl, $10 ; next row
add hl, de
ld d, h
ld e, l
pop bc
dec b
- jr nz, .asm_c3b7
+ jr nz, .loop
.skip
pop bc
@@ -596,11 +605,12 @@ Func_c41c: ; c41c (3:441c)
ret
Func_c430: ; c430 (3:4430)
+; update wSCXBuffer
push bc
ld a, [wd237]
sla a
sla a
- sla a
+ sla a ; *8
ld b, a
ld a, [wSCXBuffer]
cp $b1
@@ -613,10 +623,12 @@ Func_c430: ; c430 (3:4430)
ld a, b
.asm_c449
ld [wSCXBuffer], a
+
+; update wSCYBuffer
ld a, [wd238]
sla a
sla a
- sla a
+ sla a ; *8
ld b, a
ld a, [wSCYBuffer]
cp $b9
diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm
index ccde0ac..90f04c3 100644
--- a/src/engine/bank04.asm
+++ b/src/engine/bank04.asm
@@ -2990,7 +2990,7 @@ _LoadScene: ; 12c7f (4:6c7f)
ld [wCurTilemap], a
pop bc
push bc
- farcall Func_8007e ; load tilemap
+ farcall LoadTilemap_ToVRAM
pop bc ; base x,y
call LoadScene_LoadSGBPacket
ld a, [hli]
diff --git a/src/engine/bank05.asm b/src/engine/bank05.asm
index 81964a9..e22a88c 100644
--- a/src/engine/bank05.asm
+++ b/src/engine/bank05.asm
@@ -7279,6 +7279,3 @@ HandleLegendaryArticunoEnergyScoring: ; 175bd (5:75bd)
.articuno_deck
call ScoreLegendaryArticunoCards
ret
-
-Func_175c9: ; 175c9 (5:75c9)
- INCROM $175c9, $18000
diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm
index 1408f18..2207d2e 100644
--- a/src/engine/bank1c.asm
+++ b/src/engine/bank1c.asm
@@ -260,7 +260,7 @@ Func_701e9: ; 701e9 (1c:41e9)
push bc
ld e, l
ld d, h
- ld b, HIGH(wc000)
+ ld b, HIGH(wDecompressionSecondaryBuffer)
call InitDataDecompression
pop bc
pop de
@@ -377,17 +377,17 @@ SetSGB2AndSGB3MapPalette: ; 7036a (1c:436a)
ret
.pal_data_pointers
- dw $722f ; unused
- dw $722f ; MAP_SGB_PALETTE_1
- dw $7253 ; MAP_SGB_PALETTE_2
- dw $7277 ; MAP_SGB_PALETTE_3
- dw $729a ; MAP_SGB_PALETTE_4
- dw $72bd ; MAP_SGB_PALETTE_5
- dw $72e0 ; MAP_SGB_PALETTE_6
- dw $7304 ; MAP_SGB_PALETTE_7
- dw $7328 ; MAP_SGB_PALETTE_8
- dw $734b ; MAP_SGB_PALETTE_9
- dw $736f ; MAP_SGB_PALETTE_10
+ dw SGBData_MapPals1 ; unused
+ dw SGBData_MapPals1 ; MAP_SGB_PALS_1
+ dw SGBData_MapPals2 ; MAP_SGB_PALS_2
+ dw SGBData_MapPals3 ; MAP_SGB_PALS_3
+ dw SGBData_MapPals4 ; MAP_SGB_PALS_4
+ dw SGBData_MapPals5 ; MAP_SGB_PALS_5
+ dw SGBData_MapPals6 ; MAP_SGB_PALS_6
+ dw SGBData_MapPals7 ; MAP_SGB_PALS_7
+ dw SGBData_MapPals8 ; MAP_SGB_PALS_8
+ dw SGBData_MapPals9 ; MAP_SGB_PALS_9
+ dw SGBData_MapPals10 ; MAP_SGB_PALS_10
; 0x703cb
Func_703cb: ; 703cb (1c:43cb)
@@ -429,7 +429,7 @@ DecompressSGBPalette: ; 70403 (1c:4403)
push bc
ld e, l
ld d, h
- ld b, HIGH(wc000)
+ ld b, HIGH(wDecompressionSecondaryBuffer)
call InitDataDecompression
pop bc
ld de, wDecompressionBuffer
@@ -502,48 +502,92 @@ Func_704c7: ; 704c7 (1c:44c7)
ret
; 0x704d3
- INCROM $704d3, $73393
+ INCROM $704d3, $7322f
+
+SGBData_MapPals1: ; 7322f (1c:722f)
+ dw $20 ; length
+ INCBIN "data/sgb_data/map_pals_1.bin"
+
+SGBData_MapPals2: ; 73253 (1c:7253)
+ dw $20 ; length
+ INCBIN "data/sgb_data/map_pals_2.bin"
+
+SGBData_MapPals3: ; 73277 (1c:7277)
+ dw $20 ; length
+ INCBIN "data/sgb_data/map_pals_3.bin"
+
+SGBData_MapPals4: ; 7329a (1c:729a)
+ dw $20 ; length
+ INCBIN "data/sgb_data/map_pals_4.bin"
+
+SGBData_MapPals5: ; 732bd (1c:72bd)
+ dw $20 ; length
+ INCBIN "data/sgb_data/map_pals_5.bin"
+
+SGBData_MapPals6: ; 732e0 (1c:72e0)
+ dw $20 ; length
+ INCBIN "data/sgb_data/map_pals_6.bin"
+
+SGBData_MapPals7: ; 73304 (1c:7304)
+ dw $20 ; length
+ INCBIN "data/sgb_data/map_pals_7.bin"
+
+SGBData_MapPals8: ; 73328 (1c:7328)
+ dw $20 ; length
+ INCBIN "data/sgb_data/map_pals_8.bin"
+
+SGBData_MapPals9: ; 7334b (1c:734b)
+ dw $20 ; length
+ INCBIN "data/sgb_data/map_pals_9.bin"
+
+SGBData_MapPals10: ; 7336f (1c:736f)
+ dw $20 ; length
+ INCBIN "data/sgb_data/map_pals_10.bin"
SGBData_CharizardIntro: ; 73393 (1c:7393)
- dw $20 ; width
- INCROM $73395, $733b8
+ dw $20 ; length
+ INCBIN "data/sgb_data/charizard_intro_pals.bin"
SGBData_ScytherIntro: ; 733b8 (1c:73b8)
- dw $20 ; width
- INCROM $733ba, $733dd
+ dw $20 ; length
+ INCBIN "data/sgb_data/scyther_intro_pals.bin"
SGBData_AerodactylIntro: ; 733dd (1c:73dd)
- dw $20 ; width
- INCROM $733df, $73402
+ dw $20 ; length
+ INCBIN "data/sgb_data/aerodactyl_intro_pals.bin"
SGBData_ColosseumBooster: ; 73402 (1c:7402)
- dw $20 ; width
- INCROM $73404, $73427
+ dw $20 ; length
+ INCBIN "data/sgb_data/colosseum_booster_pals.bin"
SGBData_EvolutionBooster: ; 73427 (1c:7427)
- dw $20 ; width
- INCROM $73429, $7344c
+ dw $20 ; length
+ INCBIN "data/sgb_data/evolution_booster_pals.bin"
SGBData_MysteryBooster: ; 7344c (1c:744c)
- dw $20 ; width
- INCROM $7344e, $73471
+ dw $20 ; length
+ INCBIN "data/sgb_data/mystery_booster_pals.bin"
SGBData_LaboratoryBooster: ; 73471 (1c:7471)
- dw $20 ; width
- INCROM $73473, $73aa8
+ dw $20 ; length
+ INCBIN "data/sgb_data/laboratory_booster_pals.bin"
+
+ INCROM $73496, $73aa8
SGBData_GameBoyLink: ; 73aa8 (1c:7aa8)
- dw $40 ; width
- INCROM $73aaa, $73ad8
+ dw $40 ; length
+ INCBIN "data/sgb_data/gameboy_link_pals.bin"
SGBData_CardPop: ; 73ad8 (1c:7ad8)
- dw $40 ; width
- INCROM $73ada, $73b05
+ dw $40 ; length
+ INCBIN "data/sgb_data/card_pop_pals.bin"
SGBData_GameBoyPrinter: ; 73b05 (1c:7b05)
- dw $40 ; width
- INCROM $73b07, $73b33
+ dw $40 ; length
+ INCBIN "data/sgb_data/gameboy_printer_pals.bin"
SGBData_TitleScreen: ; 73b33 (1c:7b33)
- dw $40 ; width
- INCROM $73b35, $74000
+ dw $40 ; length
+ INCBIN "data/sgb_data/title_screen_pals.bin"
+
+ INCROM $73b63, $74000
diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm
index 0d79171..8460836 100644
--- a/src/engine/bank20.asm
+++ b/src/engine/bank20.asm
@@ -3,9 +3,9 @@ Func_80000: ; 80000 (20:4000)
xor a
ld [wTextBoxFrameType], a
call Func_8003d
- farcall Func_c37a
+ farcall LoadPermissionMap
farcall Func_c9c7
- call Func_801a1
+ call SafelyCopyBGMapFromSRAMToVRAM
farcall Func_c3ff
ld a, [wCurMap]
cp OVERWORLD_MAP
@@ -18,9 +18,9 @@ Func_80000: ; 80000 (20:4000)
Func_80028: ; 80028 (20:4028)
call ClearSRAMBGMaps
ld bc, $0000
- call Func_80077
+ call LoadTilemap_ToSRAM
farcall Func_c9c7
- call Func_801a1
+ call SafelyCopyBGMapFromSRAMToVRAM
farcall Func_c3ee
ret
; 0x8003d
@@ -28,15 +28,18 @@ Func_80028: ; 80028 (20:4028)
Func_8003d: ; 8003d (20:403d)
farcall LoadMapHeader
farcall SetSGB2AndSGB3MapPalette
- ld bc, $0
- call Func_80077
- ld a, $80
- ld [wd4ca], a
- xor a
+
+ lb bc, 0, 0
+ call LoadTilemap_ToSRAM
+
+ ld a, LOW(v0Tiles1 / TILE_SIZE)
+ ld [wVRAMTileOffset], a
+ xor a ; VRAM0
ld [wd4cb], a
call LoadTilesetGfx
- xor a
- ld [wd4ca], a
+
+ xor a ; LOW(v0Tiles2 / TILE_SIZE)
+ ld [wVRAMTileOffset], a
ld a, [wd291]
ld [wd4cb], a
ld a, [wd28f]
@@ -51,17 +54,21 @@ Func_8003d: ; 8003d (20:403d)
ret
; 0x80077
-Func_80077: ; 80077 (20:4077)
+LoadTilemap_ToSRAM: ; 80077 (20:4077)
ld a, TRUE
ld [wWriteBGMapToSRAM], a
- jr Func_80082
+ jr LoadTilemap
-Func_8007e: ; 8007e (20:407e)
- xor a
+LoadTilemap_ToVRAM: ; 8007e (20:407e)
+ xor a ; FALSE
ld [wWriteBGMapToSRAM], a
; fallthrough
-Func_80082: ; 80082 (20:4082)
+; loads the BG map corresponding to wCurTilemap
+; either loads them in VRAM or SRAM,
+; depending on wWriteBGMapToSRAM
+; bc = starting coordinates
+LoadTilemap: ; 80082 (20:4082)
push hl
push bc
push de
@@ -78,7 +85,7 @@ Func_80082: ; 80082 (20:4082)
; store header data
ld de, wDecompressionBuffer
- ld bc, $0006 ; header + 1st instruction
+ ld bc, $6 ; header + 1st instruction
call CopyBankedDataToDE
ld l, e
ld h, d
@@ -87,52 +94,59 @@ Func_80082: ; 80082 (20:4082)
ld a, [hli]
ld [wBGMapHeight], a
ld a, [hli]
- ld [wd23a], a
+ ld [wBGMapPermissionDataPtr], a
ld a, [hli]
- ld [wd23a + 1], a
+ ld [wBGMapPermissionDataPtr + 1], a
ld a, [hli]
- ld [wd23c], a
-
- call Func_800bd
+ ld [wBGMapCGBMode], a
+ call .InitAndDecompressBGMap
pop de
pop bc
pop hl
ret
-Func_800bd: ; 800bd (20:40bd)
+; prepares the pointers for decompressing BG Map
+; and calls InitDataDecompression
+; then decompresses the data
+.InitAndDecompressBGMap ; 800bd (20:40bd)
push hl
push bc
push de
ld a, [wTempPointer]
- add $05
+ add $5 ; header
ld e, a
ld a, [wTempPointer + 1]
- adc $00
+ adc 0
ld d, a
- ld b, HIGH(wc000)
+ ld b, HIGH(wDecompressionSecondaryBuffer)
call InitDataDecompression
ld a, [wVRAMPointer]
ld e, a
ld a, [wVRAMPointer + 1]
ld d, a
- call Func_800e0
+ call .Decompress
pop de
pop bc
pop hl
ret
-Func_800e0: ; 800e0 (20:40e0)
-; if wd23c != 0, then use double wBGMapWidth
+; wTempBank:wTempPointer = source of compressed data
+; wVRAMPointer = destination of decompressed data
+.Decompress ; 800e0 (20:40e0)
+; if wBGMapCGBMode is true, then use double wBGMapWidth
+; since one "width" length goes to VRAM0
+; and the other "width" length goes to VRAM1
push hl
ld hl, wd28e
ld a, [wBGMapWidth]
ld [hl], a
- ld a, [wd23c]
+ ld a, [wBGMapCGBMode]
or a
- jr z, .asm_800f0
+ jr z, .skip_doubling_width
sla [hl]
-.asm_800f0
+.skip_doubling_width
+; clear wDecompressionBuffer
ld c, $40
ld hl, wDecompressionBuffer
xor a
@@ -153,6 +167,7 @@ Func_800e0: ; 800e0 (20:40e0)
ld de, wDecompressionBuffer
call DecompressDataFromBank
+ ; copy to VRAM0
ld a, [wBGMapWidth]
ld b, a
pop de
@@ -164,17 +179,18 @@ Func_800e0: ; 800e0 (20:40e0)
jr nz, .next_row
; cgb only
+ ; copy the second "half" to VRAM1
call BankswitchVRAM1
ld a, [wBGMapWidth]
ld c, a
- ld b, $00
+ ld b, $0
ld hl, wDecompressionBuffer
add hl, bc
pop de
push de
ld a, [wBGMapWidth]
ld b, a
- call Func_80148
+ call Func_80148 ; adds some wd291 offset to tiles
call CopyBGDataToVRAMOrSRAM
call BankswitchVRAM0
@@ -195,7 +211,7 @@ Func_80148: ; 80148 (20:4148)
ld a, [wd291]
or a
ret z
- ld a, [wd23c]
+ ld a, [wBGMapCGBMode]
or a
jr z, .asm_80162
@@ -231,7 +247,7 @@ Func_80148: ; 80148 (20:4148)
; to either VRAM or SRAM, depending on wWriteBGMapToSRAM
; de is the target address in VRAM,
; if SRAM is the target address to copy,
-; copies data to s0BGMap or s1BGMap
+; copies data to sBGMap0 or sBGMap1
; for VRAM0 or VRAM1 respectively
CopyBGDataToVRAMOrSRAM: ; 8016e (20:416e)
ld a, [wWriteBGMapToSRAM]
@@ -247,11 +263,11 @@ CopyBGDataToVRAMOrSRAM: ; 8016e (20:416e)
ld a, BANK("SRAM1")
call BankswitchSRAM
push hl
- ld hl, s0BGMap - v0BGMap0
+ ld hl, sBGMap0 - v0BGMap0
ldh a, [hBankVRAM]
or a
jr z, .got_pointer
- ld hl, s1BGMap - v1BGMap0
+ ld hl, sBGMap1 - v1BGMap0
.got_pointer
add hl, de
ld e, l
@@ -271,18 +287,21 @@ CopyBGDataToVRAMOrSRAM: ; 8016e (20:416e)
pop hl
ret
-Func_801a1: ; 801a1 (20:41a1)
+; safely copies $20 bytes at a time
+; sBGMap0 -> v0BGMap0
+; sBGMap1 -> v0BGMap1 (if in CGB)
+SafelyCopyBGMapFromSRAMToVRAM: ; 801a1 (20:41a1)
push hl
push bc
push de
ldh a, [hBankSRAM]
push af
- ld a, $1
+ ld a, BANK("SRAM1")
call BankswitchSRAM
- ld hl, v0End
+ ld hl, sBGMap0
ld de, v0BGMap0
ld c, $20
-.asm_801b4
+.loop
push bc
push hl
push de
@@ -290,30 +309,30 @@ Func_801a1: ; 801a1 (20:41a1)
call SafeCopyDataHLtoDE
ld a, [wConsole]
cp CONSOLE_CGB
- jr nz, .asm_801d6
+ jr nz, .skip_vram1
pop de
pop hl
push hl
push de
- ld bc, $0400
+ ld bc, sBGMap1 - sBGMap0 ; $400
add hl, bc
call BankswitchVRAM1
ld b, $20
call SafeCopyDataHLtoDE
call BankswitchVRAM0
+.skip_vram1
-.asm_801d6
pop hl
- ld de, $0020
+ ld de, $20
add hl, de
ld e, l
ld d, h
pop hl
- ld bc, $0020
+ ld bc, $20
add hl, bc
pop bc
dec c
- jr nz, .asm_801b4
+ jr nz, .loop
pop af
call BankswitchSRAM
call DisableSRAM
@@ -322,16 +341,16 @@ Func_801a1: ; 801a1 (20:41a1)
pop hl
ret
-; clears s0BGMap and s1BGMap
+; clears sBGMap0 and sBGMap1
ClearSRAMBGMaps: ; 801f1 (20:41f1)
push hl
push bc
ldh a, [hBankSRAM]
push af
- ld a, BANK(s0BGMap) ; SRAM 1
+ ld a, BANK(sBGMap0) ; SRAM 1
call BankswitchSRAM
- ld hl, s0BGMap
- ld bc, $800 ; s0BGMap + s1BGMap
+ ld hl, sBGMap0
+ ld bc, $800 ; sBGMap0 + sBGMap1
xor a
call FillMemoryWithA
pop af
@@ -651,28 +670,30 @@ Func_803b9: ; 803b9 (20:43b9)
ret
; 0x803c9
+; a = palette index to load
Func_803c9: ; 803c9 (20:43c9)
push hl
push bc
push de
- call CopyPaletteDataToBuffer
+ call LoadPaletteDataToBuffer
ld hl, wLoadedPalData
ld a, [hli]
or a
- jr z, .asm_803dc
+ jr z, .skip_bgp
ld a, [hli]
push hl
call SetBGP
pop hl
-.asm_803dc
+.skip_bgp
+
ld a, [hli]
or a
- jr z, .asm_803e8
+ jr z, .skip_pal
ld c, a
ld a, [wd4cb]
ld b, a
call LoadPaletteDataFromHL
-.asm_803e8
+.skip_pal
pop de
pop bc
pop hl
@@ -733,7 +754,7 @@ LoadPaletteData: ; 80418 (20:4418)
push hl
push bc
push de
- call CopyPaletteDataToBuffer
+ call LoadPaletteDataToBuffer
ld hl, wLoadedPalData
ld a, [hli] ; number palettes
@@ -786,7 +807,7 @@ LoadPaletteData: ; 80418 (20:4418)
; 0x80456
; copies palette data of index in a to wLoadedPalData
-CopyPaletteDataToBuffer: ; 80456 (20:4456)
+LoadPaletteDataToBuffer: ; 80456 (20:4456)
push hl
push bc
push de
@@ -1161,9 +1182,9 @@ Func_80baa: ; 80baa (20:4baa)
push af
ld a, [wBGMapHeight]
push af
- ld a, [wd23a]
+ ld a, [wBGMapPermissionDataPtr]
push af
- ld a, [wd23a + 1]
+ ld a, [wBGMapPermissionDataPtr + 1]
push af
ld b, $0
@@ -1194,7 +1215,7 @@ Func_80baa: ; 80baa (20:4baa)
ld a, [hl]
ld [wCurTilemap], a
push bc
- farcall Func_80082 ; unnecessary farcall
+ farcall LoadTilemap ; unnecessary farcall
pop bc
srl b
ld a, c
@@ -1204,13 +1225,13 @@ Func_80baa: ; 80baa (20:4baa)
add b
ld c, a
ld b, $0
- ld hl, wBoosterViableCardList
+ ld hl, wPermissionMap
add hl, bc
- farcall Func_c38f
+ farcall DecompressPermissionMap
pop af
- ld [wd23a + 1], a
+ ld [wBGMapPermissionDataPtr + 1], a
pop af
- ld [wd23a], a
+ ld [wBGMapPermissionDataPtr], a
pop af
ld [wBGMapHeight], a
pop af
@@ -1238,27 +1259,27 @@ Func_80baa: ; 80baa (20:4baa)
dw .data_11
.data_1
- db $16, $00, TILEMAP_UNUSED_5, TILEMAP_UNUSED_6
+ db $16, $00, TILEMAP_UNKNOWN_3, TILEMAP_UNKNOWN_3_CGB
.data_2
- db $0e, $00, TILEMAP_UNUSED_7, TILEMAP_UNUSED_8
+ db $0e, $00, TILEMAP_UNKNOWN_4, TILEMAP_UNKNOWN_4_CGB
.data_3
- db $06, $02, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+ db $06, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
.data_4
- db $0a, $02, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+ db $0a, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
.data_5
- db $0e, $02, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+ db $0e, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
.data_6
- db $12, $02, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+ db $12, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
.data_7
- db $0e, $0a, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+ db $0e, $0a, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
.data_8
- db $12, $0a, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+ db $12, $0a, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
.data_9
- db $0e, $12, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+ db $0e, $12, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
.data_10
- db $12, $12, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+ db $12, $12, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
.data_11
- db $0a, $00, TILEMAP_UNUSED_1, TILEMAP_UNUSED_2
+ db $0a, $00, TILEMAP_UNKNOWN_1, TILEMAP_UNKNOWN_1_CGB
INCROM $80c63, $80e5a
@@ -1284,112 +1305,112 @@ tilemap: MACRO
ENDM
Tilemaps: ; 80e67 (20:4e67)
- tilemap OverworldMapTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP
- tilemap OverworldMapCGBTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP_CGB
- tilemap MasonLaboratoryTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY
- tilemap MasonLaboratoryCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY_CGB
- tilemap Unused1Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNUSED_1
- tilemap Unused2Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNUSED_2
- tilemap DeckMachineRoomTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM
- tilemap DeckMachineRoomCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM_CGB
- tilemap Unused3Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNUSED_3
- tilemap Unused4Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNUSED_4
- tilemap IshiharaTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA
- tilemap IshiharaCGBTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA_CGB
- tilemap FightingClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE
- tilemap FightingClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB
- tilemap RockClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE
- tilemap RockClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE_CGB
- tilemap WaterClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE
- tilemap WaterClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE_CGB
- tilemap LightningClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE
- tilemap LightningClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB
- tilemap GrassClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE
- tilemap GrassClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE_CGB
- tilemap PsychicClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE
- tilemap PsychicClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB
- tilemap ScienceClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE
- tilemap ScienceClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB
- tilemap FireClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE
- tilemap FireClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE_CGB
- tilemap ChallengeHallEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE
- tilemap ChallengeHallEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB
- tilemap ClubLobbyTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY
- tilemap ClubLobbyCGBTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY_CGB
- tilemap FightingClubTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB
- tilemap FightingClubCGBTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB_CGB
- tilemap RockClubTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB
- tilemap RockClubCGBTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB_CGB
- tilemap WaterClubTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB
- tilemap WaterClubCGBTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB_CGB
- tilemap LightningClubTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB
- tilemap LightningClubCGBTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB_CGB
- tilemap GrassClubTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB
- tilemap GrassClubCGBTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB_CGB
- tilemap PsychicClubTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB
- tilemap PsychicClubCGBTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB_CGB
- tilemap ScienceClubTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB
- tilemap ScienceClubCGBTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB_CGB
- tilemap FireClubTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB
- tilemap FireClubCGBTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB_CGB
- tilemap ChallengeHallTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL
- tilemap ChallengeHallCGBTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL_CGB
- tilemap PokemonDomeEntranceTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE
- tilemap PokemonDomeEntranceCGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE_CGB
- tilemap Unused5Tilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_UNUSED_5
- tilemap Unused6Tilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_UNUSED_6
- tilemap PokemonDomeTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME
- tilemap PokemonDomeGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME_CGB
- tilemap Unused7Tilemap, TILESET_POKEMON_DOME ; TILEMAP_UNUSED_7
- tilemap Unused8Tilemap, TILESET_POKEMON_DOME ; TILEMAP_UNUSED_8
- tilemap HallOfHonorTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR
- tilemap HallOfHonorCGBTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR_CGB
- tilemap CardPopCGBTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP_CGB
- tilemap CardPopTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP
- tilemap GrassMedalTilemap, TILESET_MEDAL ; TILEMAP_GRASS_MEDAL
- tilemap ScienceMedalTilemap, TILESET_MEDAL ; TILEMAP_SCIENCE_MEDAL
- tilemap FireMedalTilemap, TILESET_MEDAL ; TILEMAP_FIRE_MEDAL
- tilemap WaterMedalTilemap, TILESET_MEDAL ; TILEMAP_WATER_MEDAL
- tilemap LightningMedalTilemap, TILESET_MEDAL ; TILEMAP_LIGHTNING_MEDAL
- tilemap FightingMedalTilemap, TILESET_MEDAL ; TILEMAP_FIGHTING_MEDAL
- tilemap RockMedalTilemap, TILESET_MEDAL ; TILEMAP_ROCK_MEDAL
- tilemap PsychicMedalTilemap, TILESET_MEDAL ; TILEMAP_PSYCHIC_MEDAL
- tilemap GameBoyLinkCGBTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CGB
- tilemap GameBoyLinkTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK
- tilemap GameBoyLinkConnectingCGBTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CONNECTING_CGB
- tilemap GameBoyLinkConnectingTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CONNECTING
- tilemap GameBoyPrinterCGBTilemap, TILESET_GAMEBOY_PRINTER ; TILEMAP_GAMEBOY_PRINTER_CGB
- tilemap GameBoyPrinterTilemap, TILESET_GAMEBOY_PRINTER ; TILEMAP_GAMEBOY_PRINTER
- tilemap ColosseumTilemap, TILESET_COLOSSEUM_1 ; TILEMAP_COLOSSEUM
- tilemap ColosseumCGBTilemap, TILESET_COLOSSEUM_2 ; TILEMAP_COLOSSEUM_CGB
- tilemap EvolutionTilemap, TILESET_EVOLUTION_1 ; TILEMAP_EVOLUTION
- tilemap EvolutionCGBTilemap, TILESET_EVOLUTION_2 ; TILEMAP_EVOLUTION_CGB
- tilemap MysteryTilemap, TILESET_MYSTERY_1 ; TILEMAP_MYSTERY
- tilemap MysteryCGBTilemap, TILESET_MYSTERY_2 ; TILEMAP_MYSTERY_CGB
- tilemap LaboratoryTilemap, TILESET_LABORATORY_1 ; TILEMAP_LABORATORY
- tilemap LaboratoryCGBTilemap, TILESET_LABORATORY_2 ; TILEMAP_LABORATORY_CGB
- tilemap CharizardIntroTilemap, TILESET_CHARIZARD_INTRO_1 ; TILEMAP_CHARIZARD_INTRO
- tilemap CharizardIntroCGBTilemap, TILESET_CHARIZARD_INTRO_2 ; TILEMAP_CHARIZARD_INTRO_CGB
- tilemap ScytherIntroTilemap, TILESET_SCYTHER_INTRO_1 ; TILEMAP_SCYTHER_INTRO
- tilemap ScytherIntroCGBTilemap, TILESET_SCYTHER_INTRO_2 ; TILEMAP_SCYTHER_INTRO_CGB
- tilemap AerodactylIntroTilemap, TILESET_AERODACTYL_INTRO_1 ; TILEMAP_AERODACTYL_INTRO
- tilemap AerodactylIntroCGBTilemap, TILESET_AERODACTYL_INTRO_2 ; TILEMAP_AERODACTYL_INTRO_CGB
- tilemap TitleScreen1Tilemap, TILESET_TITLE_SCREEN_1 ; TILEMAP_JAPANESE_TITLE_SCREEN
- tilemap TitleScreen2Tilemap, TILESET_TITLE_SCREEN_2 ; TILEMAP_JAPANESE_TITLE_SCREEN_CGB
- tilemap SolidTiles1Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_1
- tilemap SolidTiles2Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_2
- tilemap SolidTiles3Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_3
- tilemap TitleScreen3Tilemap, TILESET_TITLE_SCREEN_3 ; TILEMAP_JAPANESE_TITLE_SCREEN_2
- tilemap TitleScreen4Tilemap, TILESET_TITLE_SCREEN_4 ; TILEMAP_JAPANESE_TITLE_SCREEN_2_CGB
- tilemap SolidTiles4Tilemap, TILESET_SOLID_TILES_2 ; TILEMAP_SOLID_TILES_4
- tilemap PlayerTilemap, TILESET_PLAYER ; TILEMAP_PLAYER
- tilemap OpponentTilemap, TILESET_RONALD ; TILEMAP_OPPONENT
- tilemap TitleScreen5Tilemap, TILESET_TITLE_SCREEN_5 ; TILEMAP_TITLE_SCREEN
- tilemap TitleScreen6Tilemap, TILESET_TITLE_SCREEN_6 ; TILEMAP_TITLE_SCREEN_CGB
- tilemap CopyrightTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT
- tilemap CopyrightCGBTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT_CGB
- tilemap NintendoTilemap, TILESET_NINTENDO ; TILEMAP_NINTENDO
- tilemap CompaniesTilemap, TILESET_COMPANIES ; TILEMAP_COMPANIES
+ tilemap OverworldMapTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP
+ tilemap OverworldMapCGBTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP_CGB
+ tilemap MasonLaboratoryTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY
+ tilemap MasonLaboratoryCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY_CGB
+ tilemap Unknown1Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_1
+ tilemap Unknown1CGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_1_CGB
+ tilemap DeckMachineRoomTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM
+ tilemap DeckMachineRoomCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM_CGB
+ tilemap Unknown2Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_2
+ tilemap Unknown2CGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_2_CGB
+ tilemap IshiharaTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA
+ tilemap IshiharaCGBTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA_CGB
+ tilemap FightingClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE
+ tilemap FightingClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB
+ tilemap RockClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE
+ tilemap RockClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE_CGB
+ tilemap WaterClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE
+ tilemap WaterClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE_CGB
+ tilemap LightningClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE
+ tilemap LightningClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB
+ tilemap GrassClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE
+ tilemap GrassClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE_CGB
+ tilemap PsychicClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE
+ tilemap PsychicClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB
+ tilemap ScienceClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE
+ tilemap ScienceClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB
+ tilemap FireClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE
+ tilemap FireClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE_CGB
+ tilemap ChallengeHallEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE
+ tilemap ChallengeHallEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB
+ tilemap ClubLobbyTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY
+ tilemap ClubLobbyCGBTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY_CGB
+ tilemap FightingClubTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB
+ tilemap FightingClubCGBTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB_CGB
+ tilemap RockClubTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB
+ tilemap RockClubCGBTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB_CGB
+ tilemap WaterClubTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB
+ tilemap WaterClubCGBTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB_CGB
+ tilemap LightningClubTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB
+ tilemap LightningClubCGBTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB_CGB
+ tilemap GrassClubTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB
+ tilemap GrassClubCGBTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB_CGB
+ tilemap PsychicClubTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB
+ tilemap PsychicClubCGBTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB_CGB
+ tilemap ScienceClubTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB
+ tilemap ScienceClubCGBTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB_CGB
+ tilemap FireClubTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB
+ tilemap FireClubCGBTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB_CGB
+ tilemap ChallengeHallTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL
+ tilemap ChallengeHallCGBTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL_CGB
+ tilemap PokemonDomeEntranceTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE
+ tilemap PokemonDomeEntranceCGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE_CGB
+ tilemap Unknown3Tilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_UNKNOWN_3
+ tilemap Unknown3CGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_UNKNOWN_3_CGB
+ tilemap PokemonDomeTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME
+ tilemap PokemonDomeCGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME_CGB
+ tilemap Unknown4Tilemap, TILESET_POKEMON_DOME ; TILEMAP_UNKNOWN_4
+ tilemap Unknown4CGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_UNKNOWN_4_CGB
+ tilemap HallOfHonorTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR
+ tilemap HallOfHonorCGBTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR_CGB
+ tilemap CardPopCGBTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP_CGB
+ tilemap CardPopTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP
+ tilemap GrassMedalTilemap, TILESET_MEDAL ; TILEMAP_GRASS_MEDAL
+ tilemap ScienceMedalTilemap, TILESET_MEDAL ; TILEMAP_SCIENCE_MEDAL
+ tilemap FireMedalTilemap, TILESET_MEDAL ; TILEMAP_FIRE_MEDAL
+ tilemap WaterMedalTilemap, TILESET_MEDAL ; TILEMAP_WATER_MEDAL
+ tilemap LightningMedalTilemap, TILESET_MEDAL ; TILEMAP_LIGHTNING_MEDAL
+ tilemap FightingMedalTilemap, TILESET_MEDAL ; TILEMAP_FIGHTING_MEDAL
+ tilemap RockMedalTilemap, TILESET_MEDAL ; TILEMAP_ROCK_MEDAL
+ tilemap PsychicMedalTilemap, TILESET_MEDAL ; TILEMAP_PSYCHIC_MEDAL
+ tilemap GameBoyLinkCGBTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CGB
+ tilemap GameBoyLinkTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK
+ tilemap GameBoyLinkConnectingCGBTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CONNECTING_CGB
+ tilemap GameBoyLinkConnectingTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CONNECTING
+ tilemap GameBoyPrinterCGBTilemap, TILESET_GAMEBOY_PRINTER ; TILEMAP_GAMEBOY_PRINTER_CGB
+ tilemap GameBoyPrinterTilemap, TILESET_GAMEBOY_PRINTER ; TILEMAP_GAMEBOY_PRINTER
+ tilemap ColosseumTilemap, TILESET_COLOSSEUM_1 ; TILEMAP_COLOSSEUM
+ tilemap ColosseumCGBTilemap, TILESET_COLOSSEUM_2 ; TILEMAP_COLOSSEUM_CGB
+ tilemap EvolutionTilemap, TILESET_EVOLUTION_1 ; TILEMAP_EVOLUTION
+ tilemap EvolutionCGBTilemap, TILESET_EVOLUTION_2 ; TILEMAP_EVOLUTION_CGB
+ tilemap MysteryTilemap, TILESET_MYSTERY_1 ; TILEMAP_MYSTERY
+ tilemap MysteryCGBTilemap, TILESET_MYSTERY_2 ; TILEMAP_MYSTERY_CGB
+ tilemap LaboratoryTilemap, TILESET_LABORATORY_1 ; TILEMAP_LABORATORY
+ tilemap LaboratoryCGBTilemap, TILESET_LABORATORY_2 ; TILEMAP_LABORATORY_CGB
+ tilemap CharizardIntroTilemap, TILESET_CHARIZARD_INTRO_1 ; TILEMAP_CHARIZARD_INTRO
+ tilemap CharizardIntroCGBTilemap, TILESET_CHARIZARD_INTRO_2 ; TILEMAP_CHARIZARD_INTRO_CGB
+ tilemap ScytherIntroTilemap, TILESET_SCYTHER_INTRO_1 ; TILEMAP_SCYTHER_INTRO
+ tilemap ScytherIntroCGBTilemap, TILESET_SCYTHER_INTRO_2 ; TILEMAP_SCYTHER_INTRO_CGB
+ tilemap AerodactylIntroTilemap, TILESET_AERODACTYL_INTRO_1 ; TILEMAP_AERODACTYL_INTRO
+ tilemap AerodactylIntroCGBTilemap, TILESET_AERODACTYL_INTRO_2 ; TILEMAP_AERODACTYL_INTRO_CGB
+ tilemap JapaneseTitleScreenTilemap, TILESET_JAPANESE_TITLE_SCREEN ; TILEMAP_JAPANESE_TITLE_SCREEN
+ tilemap JapaneseTitleScreenCGBTilemap, TILESET_JAPANESE_TITLE_SCREEN_CGB ; TILEMAP_JAPANESE_TITLE_SCREEN_CGB
+ tilemap SolidTiles1Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_1
+ tilemap SolidTiles2Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_2
+ tilemap SolidTiles3Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_3
+ tilemap JapaneseTitleScreen2Tilemap, TILESET_JAPANESE_TITLE_SCREEN_2 ; TILEMAP_JAPANESE_TITLE_SCREEN_2
+ tilemap JapaneseTitleScreen2CGBTilemap, TILESET_JAPANESE_TITLE_SCREEN_2_CGB ; TILEMAP_JAPANESE_TITLE_SCREEN_2_CGB
+ tilemap SolidTiles4Tilemap, TILESET_SOLID_TILES_2 ; TILEMAP_SOLID_TILES_4
+ tilemap PlayerTilemap, TILESET_PLAYER ; TILEMAP_PLAYER
+ tilemap OpponentTilemap, TILESET_RONALD ; TILEMAP_OPPONENT
+ tilemap TitleScreenTilemap, TILESET_TITLE_SCREEN ; TILEMAP_TITLE_SCREEN
+ tilemap TitleScreenCGBTilemap, TILESET_TITLE_SCREEN_CGB ; TILEMAP_TITLE_SCREEN_CGB
+ tilemap CopyrightTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT
+ tilemap CopyrightCGBTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT_CGB
+ tilemap NintendoTilemap, TILESET_NINTENDO ; TILEMAP_NINTENDO
+ tilemap CompaniesTilemap, TILESET_COMPANIES ; TILEMAP_COMPANIES
; \1 = pointer
; \2 = number of tiles
@@ -1434,16 +1455,16 @@ Tilesets: ; 8100f (20:500f)
tileset ScytherIntro2Gfx, 96 ; TILESET_SCYTHER_INTRO_2
tileset AerodactylIntro1Gfx, 96 ; TILESET_AERODACTYL_INTRO_1
tileset AerodactylIntro2Gfx, 96 ; TILESET_AERODACTYL_INTRO_2
- tileset Titlescreen1Gfx, 97 ; TILESET_TITLE_SCREEN_1
- tileset Titlescreen2Gfx, 97 ; TILESET_TITLE_SCREEN_2
+ tileset JapaneseTitleScreenGfx, 97 ; TILESET_JAPANESE_TITLE_SCREEN
+ tileset JapaneseTitleScreenCGBGfx, 97 ; TILESET_JAPANESE_TITLE_SCREEN_CGB
tileset SolidTiles1, 4 ; TILESET_SOLID_TILES_1
- tileset Titlescreen3Gfx, 244 ; TILESET_TITLE_SCREEN_3
- tileset Titlescreen4Gfx, 59 ; TILESET_TITLE_SCREEN_4
+ tileset JapaneseTitleScreen2Gfx, 244 ; TILESET_JAPANESE_TITLE_SCREEN_2
+ tileset JapaneseTitleScreen2CGBGfx, 59 ; TILESET_JAPANESE_TITLE_SCREEN_2_CGB
tileset SolidTiles2, 4 ; TILESET_SOLID_TILES_2
tileset PlayerGfx, 36 ; TILESET_PLAYER
tileset RonaldGfx, 36 ; TILESET_RONALD
- tileset Titlescreen5Gfx, 220 ; TILESET_TITLE_SCREEN_5
- tileset Titlescreen6Gfx, 212 ; TILESET_TITLE_SCREEN_6
+ tileset TitleScreenGfx, 220 ; TILESET_TITLE_SCREEN
+ tileset TitleScreenCGBGfx, 212 ; TILESET_TITLE_SCREEN_CGB
tileset CopyrightGfx, 36 ; TILESET_COPYRIGHT
tileset NintendoGfx, 24 ; TILESET_NINTENDO
tileset CompaniesGfx, 49 ; TILESET_COMPANIES
@@ -2009,330 +2030,365 @@ MapDataPointers_81697: ; 81697 (20:5697)
OverworldMapTilemap:: ; 8191b (20:591b)
db $14 ; width
db $12 ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map0.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/overworld_map.bin"
OverworldMapCGBTilemap:: ; 81a22 (20:5a22)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map1.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/overworld_map_cgb.bin"
MasonLaboratoryTilemap:: ; 81c13 (20:5c13)
db $1c ; width
db $1e ; height
- dw $5d11
- db $00
-
- INCBIN "data/maps/map2.bin"
+ dw MasonLaboratoryPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/mason_laboratory.bin"
+MasonLaboratoryPermissions:
+ INCBIN "data/maps/permissions/mason_laboratory.bin"
MasonLaboratoryCGBTilemap:: ; 81d2e (20:5d2e)
db $1c ; width
db $1e ; height
- dw $5eb4
- db $01
+ dw MasonLaboratoryCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/mason_laboratory_cgb.bin"
+MasonLaboratoryCGBPermissions:
+ INCBIN "data/maps/permissions/mason_laboratory_cgb.bin"
- INCBIN "data/maps/map3.bin"
-
-Unused1Tilemap:: ; 81ed1 (20:5ed1)
+Unknown1Tilemap:: ; 81ed1 (20:5ed1)
db $04 ; width
db $06 ; height
- dw $5ef0
- db $00
-
- INCBIN "data/maps/map4.bin"
+ dw Unknown1Permissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/unknown1.bin"
+Unknown1Permissions:
+ INCBIN "data/maps/permissions/unknown1.bin"
-Unused2Tilemap:: ; 81ef5 (20:5ef5)
+Unknown1CGBTilemap:: ; 81ef5 (20:5ef5)
db $04 ; width
db $06 ; height
- dw $5f21
- db $01
-
- INCBIN "data/maps/map5.bin"
+ dw Unknown1CGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/unknown1_cgb.bin"
+Unknown1CGBPermissions:
+ INCBIN "data/maps/permissions/unknown1_cgb.bin"
DeckMachineRoomTilemap:: ; 81f26 (20:5f26)
db $18 ; width
db $1e ; height
- dw $5fd3
- db $00
-
- INCBIN "data/maps/map6.bin"
+ dw DeckMachineRoomPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/deck_machine_room.bin"
+DeckMachineRoomPermissions:
+ INCBIN "data/maps/permissions/deck_machine_room.bin"
DeckMachineRoomCGBTilemap:: ; 81feb (20:5feb)
db $18 ; width
db $1e ; height
- dw $612b
- db $01
+ dw DeckMachineRoomCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/deck_machine_room_cgb.bin"
+DeckMachineRoomCGBPermissions:
+ INCBIN "data/maps/permissions/deck_machine_room_cgb.bin"
- INCBIN "data/maps/map7.bin"
-
-Unused3Tilemap:: ; 82143 (20:6143)
+Unknown2Tilemap:: ; 82143 (20:6143)
db $04 ; width
db $01 ; height
- dw $614d
- db $00
-
- INCBIN "data/maps/map8.bin"
+ dw Unknown2Permissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/unknown_2.bin"
+Unknown2Permissions:
+ INCBIN "data/maps/permissions/unknown_2.bin"
-Unused4Tilemap:: ; 82150 (20:6150)
+Unknown2CGBTilemap:: ; 82150 (20:6150)
db $04 ; width
db $01 ; height
- dw $615d
- db $01
-
- INCBIN "data/maps/map9.bin"
+ dw Unknown2CGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/unknown_2_cgb.bin"
+Unknown2CGBPermissions:
+ INCBIN "data/maps/permissions/unknown_2_cgb.bin"
IshiharaTilemap:: ; 82160 (20:6160)
db $14 ; width
db $18 ; height
- dw $620e
- db $00
-
- INCBIN "data/maps/map10.bin"
+ dw IshiharaPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/ishihara.bin"
+IshiharaPermissions:
+ INCBIN "data/maps/permissions/ishihara.bin"
IshiharaCGBTilemap:: ; 82222 (20:6222)
db $14 ; width
db $18 ; height
- dw $6322
- db $01
-
- INCBIN "data/maps/map11.bin"
+ dw IshiharaCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/ishihara_cgb.bin"
+IshiharaCGBPermissions:
+ INCBIN "data/maps/permissions/ishihara_cgb.bin"
FightingClubEntranceTilemap:: ; 82336 (20:6336)
db $14 ; width
db $12 ; height
- dw $63ec
- db $00
-
- INCBIN "data/maps/map12.bin"
+ dw FightingClubEntrancePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/fighting_club_entrance.bin"
+FightingClubEntrancePermissions:
+ INCBIN "data/maps/permissions/fighting_club_entrance.bin"
FightingClubEntranceCGBTilemap:: ; 82400 (20:6400)
db $14 ; width
db $12 ; height
- dw $6509
- db $01
-
- INCBIN "data/maps/map13.bin"
+ dw FightingClubEntranceCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/fighting_club_entrance_cgb.bin"
+FightingClubEntranceCGBPermissions:
+ INCBIN "data/maps/permissions/fighting_club_entrance_cgb.bin"
RockClubEntranceTilemap:: ; 8251d (20:651d)
db $14 ; width
db $12 ; height
- dw $65d3
- db $00
-
- INCBIN "data/maps/map14.bin"
+ dw RockClubEntrancePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/rock_club_entrance.bin"
+RockClubEntrancePermissions:
+ INCBIN "data/maps/permissions/rock_club_entrance.bin"
RockClubEntranceCGBTilemap:: ; 825e7 (20:65e7)
db $14 ; width
db $12 ; height
- dw $66f0
- db $01
-
- INCBIN "data/maps/map15.bin"
+ dw RockClubEntranceCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/rock_club_entrance_cgb.bin"
+RockClubEntranceCGBPermissions:
+ INCBIN "data/maps/permissions/rock_club_entrance_cgb.bin"
WaterClubEntranceTilemap:: ; 82704 (20:6704)
db $14 ; width
db $12 ; height
- dw $67ba
- db $00
-
- INCBIN "data/maps/map16.bin"
+ dw WaterClubEntrancePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/water_club_entrance.bin"
+WaterClubEntrancePermissions:
+ INCBIN "data/maps/permissions/water_club_entrance.bin"
WaterClubEntranceCGBTilemap:: ; 827ce (20:67ce)
db $14 ; width
db $12 ; height
- dw $68d7
- db $01
-
- INCBIN "data/maps/map17.bin"
+ dw WaterClubEntranceCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/water_club_entrance_cgb.bin"
+WaterClubEntranceCGBPermissions:
+ INCBIN "data/maps/permissions/water_club_entrance_cgb.bin"
LightningClubEntranceTilemap:: ; 828eb (20:68eb)
db $14 ; width
db $12 ; height
- dw $69a1
- db $00
-
- INCBIN "data/maps/map18.bin"
+ dw LightningClubEntrancePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/lightning_club_entrance.bin"
+LightningClubEntrancePermissions:
+ INCBIN "data/maps/permissions/lightning_club_entrance.bin"
LightningClubEntranceCGBTilemap:: ; 829b5 (20:69b5)
db $14 ; width
db $12 ; height
- dw $6abe
- db $01
-
- INCBIN "data/maps/map19.bin"
+ dw LightningClubEntranceCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/lightning_club_entrance_cgb.bin"
+LightningClubEntranceCGBPermissions:
+ INCBIN "data/maps/permissions/lightning_club_entrance_cgb.bin"
GrassClubEntranceTilemap:: ; 82ad2 (20:6ad2)
db $14 ; width
db $12 ; height
- dw $6b88
- db $00
-
- INCBIN "data/maps/map20.bin"
+ dw GrassClubEntrancePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/grass_club_entrance.bin"
+GrassClubEntrancePermissions:
+ INCBIN "data/maps/permissions/grass_club_entrance.bin"
GrassClubEntranceCGBTilemap:: ; 82b9c (20:6b9c)
db $14 ; width
db $12 ; height
- dw $6ca5
- db $01
-
- INCBIN "data/maps/map21.bin"
+ dw GrassClubEntranceCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/grass_club_entrance_cgb.bin"
+GrassClubEntranceCGBPermissions:
+ INCBIN "data/maps/permissions/grass_club_entrance_cgb.bin"
PsychicClubEntranceTilemap:: ; 82cb9 (20:6cb9)
db $14 ; width
db $12 ; height
- dw $6d6f
- db $00
-
- INCBIN "data/maps/map22.bin"
+ dw PsychicClubEntrancePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/psychic_club_entrance.bin"
+PsychicClubEntrancePermissions:
+ INCBIN "data/maps/permissions/psychic_club_entrance.bin"
PsychicClubEntranceCGBTilemap:: ; 82d83 (20:6d83)
db $14 ; width
db $12 ; height
- dw $6e8c
- db $01
-
- INCBIN "data/maps/map23.bin"
+ dw PsychicClubEntranceCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/psychic_club_entrance_cgb.bin"
+PsychicClubEntranceCGBPermissions:
+ INCBIN "data/maps/permissions/psychic_club_entrance_cgb.bin"
ScienceClubEntranceTilemap:: ; 82ea0 (20:6ea0)
db $14 ; width
db $12 ; height
- dw $6f56
- db $00
-
- INCBIN "data/maps/map24.bin"
+ dw ScienceClubEntrancePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/science_club_entrance.bin"
+ScienceClubEntrancePermissions:
+ INCBIN "data/maps/permissions/science_club_entrance.bin"
ScienceClubEntranceCGBTilemap:: ; 82f6a (20:6f6a)
db $14 ; width
db $12 ; height
- dw $7073
- db $01
-
- INCBIN "data/maps/map25.bin"
+ dw ScienceClubEntranceCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/science_club_entrance_cgb.bin"
+ScienceClubEntranceCGBPermissions:
+ INCBIN "data/maps/permissions/science_club_entrance_cgb.bin"
FireClubEntranceTilemap:: ; 83087 (20:7087)
db $14 ; width
db $12 ; height
- dw $713d
- db $00
-
- INCBIN "data/maps/map26.bin"
+ dw FireClubEntrancePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/fire_club_entrance.bin"
+FireClubEntrancePermissions:
+ INCBIN "data/maps/permissions/fire_club_entrance.bin"
FireClubEntranceCGBTilemap:: ; 83151 (20:7151)
db $14 ; width
db $12 ; height
- dw $725a
- db $01
-
- INCBIN "data/maps/map27.bin"
+ dw FireClubEntranceCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/fire_club_entrance_cgb.bin"
+FireClubEntranceCGBPermissions:
+ INCBIN "data/maps/permissions/fire_club_entrance_cgb.bin"
ChallengeHallEntranceTilemap:: ; 8326e (20:726e)
db $14 ; width
db $12 ; height
- dw $730d
- db $00
-
- INCBIN "data/maps/map28.bin"
+ dw ChallengeHallEntrancePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/challenge_hall_entrance.bin"
+ChallengeHallEntrancePermissions:
+ INCBIN "data/maps/permissions/challenge_hall_entrance.bin"
ChallengeHallEntranceCGBTilemap:: ; 83321 (20:7321)
db $14 ; width
db $12 ; height
- dw $7410
- db $01
-
- INCBIN "data/maps/map29.bin"
+ dw ChallengeHallEntranceCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/challenge_hall_entrance_cgb.bin"
+ChallengeHallEntranceCGBPermissions:
+ INCBIN "data/maps/permissions/challenge_hall_entrance_cgb.bin"
ClubLobbyTilemap:: ; 83424 (20:7424)
db $1c ; width
db $1a ; height
- dw $7529
- db $00
-
- INCBIN "data/maps/map30.bin"
+ dw ClubLobbyPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/club_lobby.bin"
+ClubLobbyPermissions:
+ INCBIN "data/maps/permissions/club_lobby.bin"
ClubLobbyCGBTilemap:: ; 83545 (20:7545)
db $1c ; width
db $1a ; height
- dw $76bf
- db $01
-
- INCBIN "data/maps/map31.bin"
+ dw ClubLobbyCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/club_lobby_cgb.bin"
+ClubLobbyCGBPermissions:
+ INCBIN "data/maps/permissions/club_lobby_cgb.bin"
FightingClubTilemap:: ; 836db (20:76db)
db $18 ; width
db $12 ; height
- dw $777b
- db $00
-
- INCBIN "data/maps/map32.bin"
+ dw FightingClubPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/fighting_club.bin"
+FightingClubPermissions:
+ INCBIN "data/maps/permissions/fighting_club.bin"
FightingClubCGBTilemap:: ; 8378c (20:778c)
db $18 ; width
db $12 ; height
- dw $787c
- db $01
-
- INCBIN "data/maps/map33.bin"
+ dw FightingClubCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/fighting_club_cgb.bin"
+FightingClubCGBPermissions:
+ INCBIN "data/maps/permissions/fighting_club_cgb.bin"
RockClubTilemap:: ; 8388d (20:788d)
db $1c ; width
db $1e ; height
- dw $79b5
- db $00
-
- INCBIN "data/maps/map34.bin"
+ dw RockClubPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/rock_club.bin"
+RockClubPermissions:
+ INCBIN "data/maps/permissions/rock_club.bin"
RockClubCGBTilemap:: ; 839d6 (20:79d6)
db $1c ; width
db $1e ; height
- dw $7bd0
- db $01
-
- INCBIN "data/maps/map35.bin"
+ dw RockClubCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/rock_club_cgb.bin"
+RockClubCGBPermissions:
+ INCBIN "data/maps/permissions/rock_club_cgb.bin"
-Unused5Tilemap:: ; 83bf1 (20:7bf1)
+Unknown3Tilemap:: ; 83bf1 (20:7bf1)
db $04 ; width
db $03 ; height
- dw $7c00
- db $00
+ dw Unknown3Permissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/unknown_3.bin"
+Unknown3Permissions:
+ INCBIN "data/maps/permissions/unknown_3.bin"
- INCBIN "data/maps/map52.bin"
-
-Unused6Tilemap:: ; 83c03 (20:7c03)
+Unknown3CGBTilemap:: ; 83c03 (20:7c03)
db $04 ; width
db $03 ; height
- dw $7c17
- db $01
-
- INCBIN "data/maps/map53.bin"
+ dw Unknown3CGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/unknown_3_cgb.bin"
+Unknown3CGBPermissions:
+ INCBIN "data/maps/permissions/unknown_3_cgb.bin"
-Unused7Tilemap:: ; 83c1a (20:7c1a)
+Unknown4Tilemap:: ; 83c1a (20:7c1a)
db $04 ; width
db $03 ; height
- dw $7c23
- db $00
+ dw Unknown4Permissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/unknown_4.bin"
+Unknown4Permissions:
+ INCBIN "data/maps/permissions/unknown_4.bin"
- INCBIN "data/maps/map56.bin"
-
-Unused8Tilemap:: ; 83c26 (20:7c26)
+Unknown4CGBTilemap:: ; 83c26 (20:7c26)
db $04 ; width
db $03 ; height
- dw $7c33
- db $01
-
- INCBIN "data/maps/map57.bin"
+ dw Unknown4CGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/unknown_4_cgb.bin"
+Unknown4CGBPermissions:
+ INCBIN "data/maps/permissions/unknown_4_cgb.bin"
GrassMedalTilemap:: ; 83c36 (20:7c36)
db $03 ; width
db $03 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map62.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/grass_medal.bin"
AnimData1:: ; 83c4c (20:7c4c)
frame_table AnimFrameTable0
diff --git a/src/engine/home.asm b/src/engine/home.asm
index c23b544..5a8c822 100644
--- a/src/engine/home.asm
+++ b/src/engine/home.asm
@@ -1534,33 +1534,31 @@ UpdateRNGSources: ; 089b (0:089b)
pop hl
ret
-; initilizes variables used to decompress
-; data in DecompressData
-; de points to the source of compressed data
-; b is used as the HIGH byte of the
-; WRAM address to write to ($100 bytes of buffer space)
+; initilizes variables used to decompress data in DecompressData
+; de = source of compressed data
+; b = HIGH byte of secondary buffer ($100 bytes of buffer space)
; also clears this $100 byte space
InitDataDecompression: ; 08bf (0:08bf)
- ld hl, wcad6
+ ld hl, wDecompSourcePosPtr
ld [hl], e
inc hl
ld [hl], d
- ld hl, wcad8
- ld [hl], $1
+ ld hl, wDecompNumCommandBitsLeft
+ ld [hl], 1
inc hl
xor a
- ld [hli], a ; wcad9
- ld [hli], a ; wcada
- ld [hli], a ; wcadb
- ld [hli], a ; wcadc
- ld [hl], b ; wcadd
+ ld [hli], a ; wDecompCommandByte
+ ld [hli], a ; wDecompRepeatModeToggle
+ ld [hli], a ; wDecompRepeatLengths
+ ld [hli], a ; wDecompNumBytesToRepeat
+ ld [hl], b ; wDecompSecondaryBufferPtrHigh
inc hl
- ld [hli], a ; wcade
- ld [hl], $ef ; wcadf
+ ld [hli], a ; wDecompRepeatSeqOffset
+ ld [hl], LOW(wDecompressionSecondaryBufferStart) ; wDecompSecondaryBufferPtrLow
; clear buffer
ld h, b
- ld l, LOW(wc000)
+ ld l, LOW(wDecompressionSecondaryBuffer)
xor a
.loop
ld [hl], a
@@ -1570,7 +1568,7 @@ InitDataDecompression: ; 08bf (0:08bf)
; decompresses data
; uses values initialized by InitDataDecompression
-; wcad6 holds the pointer for compressed source
+; wDecompSourcePosPtr holds the pointer for compressed source
; input:
; bc = row width
; de = buffer to place decompressed data
@@ -1591,99 +1589,110 @@ DecompressData: ; 08de (0:08de)
pop hl
ret
-; instructions start with a byte stored in wcad9
-; its bits are read from higher to lower bit
-; wcad8 stores the current bit being read
-; bit set:
-; - 1 byte read and copied literally
-; bit not set:
-; - 2 bytes read WW XY ZZ, byte in pos WW
-; copied (X + 1) times, then in pos ZZ
-; copied (Y + 1) times
+; decompression works as follows:
+; first a command byte is read that will dictate how the
+; following bytes will be copied
+; the position will then move to the next byte (0xXY), and
+; the command byte's bits are read from higher to lower bit
+; - if command bit is set, then copy 0xXY to buffer;
+; - if command bit is not set, then decompression enters "repeat mode,"
+; which means it stores 0xXY in memory as number of bytes to repeat
+; from a given offset. This offset is in the next byte in the data,
+; 0xZZ, which tells the offset to start repeating. A toggle is switched
+; each time the algorithm hits "repeat mode":
+; - if off -> on it reads 0xXY and stores it,
+; then repeats (0x0X + 2) bytes from the offset starting at 0xZZ;
+; - if on -> off, then the data only provides the offset,
+; and the previous byte read for number of bytes to repeat, 0xXY, is reused
+; in which case (0x0Y + 2) bytes are repeated starting from the offset.
.Decompress: ; 08ef (0:08ef)
- ld hl, wcadc
+ ld hl, wDecompNumBytesToRepeat
ld a, [hl]
or a
- jr z, .read_instruction
+ jr z, .read_command
-; still repeating byte
+; still repeating sequence
dec [hl]
inc hl
.repeat_byte
- ld b, [hl] ; wcadd
+ ld b, [hl] ; wDecompSecondaryBufferPtrHigh
inc hl
- ld c, [hl] ; wcade
+ ld c, [hl] ; wDecompRepeatSeqOffset
inc [hl]
inc hl
ld a, [bc]
- ld c, [hl] ; wcadf
+ ld c, [hl] ; wDecompSecondaryBufferPtrLow
inc [hl]
ld [bc], a
ret
-.read_instruction
- ld hl, wcad6
+.read_command
+ ld hl, wDecompSourcePosPtr
ld c, [hl]
inc hl
ld b, [hl]
- inc hl ; wcad8
+ inc hl ; wDecompNumCommandBitsLeft
dec [hl]
- inc hl ; wcad9
- jr nz, .asm_914
- dec hl ; wcad8
- ld [hl], $8 ; number of bits
- inc hl ; wcad9
+ inc hl ; wDecompCommandByte
+ jr nz, .read_command_bit
+ dec hl ; wDecompNumCommandBitsLeft
+ ld [hl], 8 ; number of bits
+ inc hl ; wDecompCommandByte
ld a, [bc]
inc bc
ld [hl], a
-.asm_914
+.read_command_bit
rl [hl]
ld a, [bc]
inc bc
- jr nc, .asm_92a
+ jr nc, .repeat_command
; copy 1 byte literally
- ld hl, wcad6
+ ld hl, wDecompSourcePosPtr
ld [hl], c
inc hl
ld [hl], b
- ld hl, wcadd
+ ld hl, wDecompSecondaryBufferPtrHigh
ld b, [hl]
inc hl
inc hl
- ld c, [hl] ; wcadf
+ ld c, [hl] ; wDecompSecondaryBufferPtrLow
inc [hl]
ld [bc], a
ret
-.asm_92a
- ld [wcade], a
- ld hl, wcada
+.repeat_command
+ ld [wDecompRepeatSeqOffset], a ; save the offset to repeat from
+ ld hl, wDecompRepeatModeToggle
bit 0, [hl]
- jr nz, .asm_94a
+ jr nz, .repeat_mode_toggle_on
set 0, [hl]
inc hl
+; read byte for num of bytes to read
+; and use its higher nybble
ld a, [bc]
inc bc
- ld [hli], a ; wcadb
+ ld [hli], a ; wDecompRepeatLengths
swap a
-.asm_93c
+.get_sequence_len
and $f
inc a ; number of times to repeat
- ld [hli], a ; wcadc
+ ld [hli], a ; wDecompNumBytesToRepeat
push hl
- ld hl, wcad6
+ ld hl, wDecompSourcePosPtr
ld [hl], c
inc hl
ld [hl], b
pop hl
jr .repeat_byte
-.asm_94a
+.repeat_mode_toggle_on
+; get the previous byte (num of bytes to repeat)
+; and use its lower nybble
res 0, [hl]
inc hl
- ld a, [hli] ; wcadb
- jr .asm_93c
+ ld a, [hli] ; wDecompRepeatLengths
+ jr .get_sequence_len
; set attributes for [hl] sprites starting from wOAM + [wOAMOffset] / 4
; return carry if reached end of wOAM before finishing
diff --git a/src/gfx.asm b/src/gfx.asm
index 903cbad..e9016be 100644
--- a/src/gfx.asm
+++ b/src/gfx.asm
@@ -46,523 +46,497 @@ SECTION "Gfx 3", ROMX
WaterClubTilemap:: ; 84000 (21:4000)
db $1c ; width
db $20 ; height
- dw $4164
- db $00
-
- INCBIN "data/maps/map36.bin"
+ dw WaterClubPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/water_club.bin"
+WaterClubPermissions:
+ INCBIN "data/maps/permissions/water_club.bin"
WaterClubCGBTilemap:: ; 84188 (21:4188)
db $1c ; width
db $20 ; height
- dw $4397
- db $01
-
- INCBIN "data/maps/map37.bin"
+ dw WaterClubCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/water_club_cgb.bin"
+WaterClubCGBPermissions:
+ INCBIN "data/maps/permissions/water_club_cgb.bin"
LightningClubTilemap:: ; 843bb (21:43bb)
db $1c ; width
db $20 ; height
- dw $4511
- db $00
-
- INCBIN "data/maps/map38.bin"
+ dw LightningClubPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/lightning_club.bin"
+LightningClubPermissions:
+ INCBIN "data/maps/permissions/lightning_club.bin"
LightningClubCGBTilemap:: ; 84533 (21:4533)
db $1c ; width
db $20 ; height
- dw $470c
- db $01
-
- INCBIN "data/maps/map39.bin"
+ dw LightningClubCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/lightning_club_cgb.bin"
+LightningClubCGBPermissions:
+ INCBIN "data/maps/permissions/lightning_club_cgb.bin"
GrassClubTilemap:: ; 8472e (21:472e)
db $1c ; width
db $20 ; height
- dw $48b4
- db $00
-
- INCBIN "data/maps/map40.bin"
+ dw GrassClubPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/grass_club.bin"
+GrassClubPermissions:
+ INCBIN "data/maps/permissions/grass_club.bin"
GrassClubCGBTilemap:: ; 848d8 (21:48d8)
db $1c ; width
db $20 ; height
- dw $4b4f
- db $01
-
- INCBIN "data/maps/map41.bin"
+ dw GrassClubCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/grass_club_cgb.bin"
+GrassClubCGBPermissions:
+ INCBIN "data/maps/permissions/grass_club_cgb.bin"
PsychicClubTilemap:: ; 84b73 (21:4b73)
db $1c ; width
db $1c ; height
- dw $4c50
- db $00
-
- INCBIN "data/maps/map42.bin"
+ dw PsychicClubPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/psychic_club.bin"
+PsychicClubPermissions:
+ INCBIN "data/maps/permissions/psychic_club.bin"
PsychicClubCGBTilemap:: ; 84c6f (21:4c6f)
db $1c ; width
db $1c ; height
- dw $4ddf
- db $01
-
- INCBIN "data/maps/map43.bin"
+ dw PsychicClubCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/psychic_club_cgb.bin"
+PsychicClubCGBPermissions:
+ INCBIN "data/maps/permissions/psychic_club_cgb.bin"
ScienceClubTilemap:: ; 84dfe (21:4dfe)
db $1c ; width
db $20 ; height
- dw $4efe
- db $00
-
- INCBIN "data/maps/map44.bin"
+ dw ScienceClubPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/science_club.bin"
+ScienceClubPermissions:
+ INCBIN "data/maps/permissions/science_club.bin"
ScienceClubCGBTilemap:: ; 84f1d (21:4f1d)
db $1c ; width
db $20 ; height
- dw $5097
- db $01
-
- INCBIN "data/maps/map45.bin"
+ dw ScienceClubCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/science_club_cgb.bin"
+ScienceClubCGBPermissions:
+ INCBIN "data/maps/permissions/science_club_cgb.bin"
FireClubTilemap:: ; 850b6 (21:50b6)
db $1c ; width
db $20 ; height
- dw $5175
- db $00
-
- INCBIN "data/maps/map46.bin"
+ dw FireClubPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/fire_club.bin"
+FireClubPermissions:
+ INCBIN "data/maps/permissions/fire_club.bin"
FireClubCGBTilemap:: ; 85191 (21:5191)
db $1c ; width
db $20 ; height
- dw $52f9
- db $01
-
- INCBIN "data/maps/map47.bin"
+ dw FireClubCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/fire_club_cgb.bin"
+FireClubCGBPermissions:
+ INCBIN "data/maps/permissions/fire_club_cgb.bin"
ChallengeHallTilemap:: ; 85315 (21:5315)
db $20 ; width
db $20 ; height
- dw $5484
- db $00
-
- INCBIN "data/maps/map48.bin"
+ dw ChallengeHallPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/challenge_hall.bin"
+ChallengeHallPermissions:
+ INCBIN "data/maps/permissions/challenge_hall.bin"
ChallengeHallCGBTilemap:: ; 854b3 (21:54b3)
db $20 ; width
db $20 ; height
- dw $56db
- db $01
-
- INCBIN "data/maps/map49.bin"
+ dw ChallengeHallCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/challenge_hall_cgb.bin"
+ChallengeHallCGBPermissions:
+ INCBIN "data/maps/permissions/challenge_hall_cgb.bin"
PokemonDomeEntranceTilemap:: ; 8570a (21:570a)
db $20 ; width
db $12 ; height
- dw $57ba
- db $00
-
- INCBIN "data/maps/map50.bin"
+ dw PokemonDomeEntrancePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/pokemon_dome_entrance.bin"
+PokemonDomeEntrancePermissions:
+ INCBIN "data/maps/permissions/pokemon_dome_entrance.bin"
PokemonDomeEntranceCGBTilemap:: ; 857ce (21:57ce)
db $20 ; width
db $12 ; height
- dw $58db
- db $01
-
- INCBIN "data/maps/map51.bin"
+ dw PokemonDomeEntranceCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/pokemon_dome_entrance_cgb.bin"
+PokemonDomeEntranceCGBPermissions:
+ INCBIN "data/maps/permissions/pokemon_dome_entrance_cgb.bin"
PokemonDomeTilemap:: ; 858ef (21:58ef)
db $20 ; width
db $20 ; height
- dw $5a58
- db $00
-
- INCBIN "data/maps/map54.bin"
+ dw PokemonDomePermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/pokemon_dome.bin"
+PokemonDomePermissions:
+ INCBIN "data/maps/permissions/pokemon_dome.bin"
-PokemonDomeGBTilemap:: ; 85a79 (21:5a79)
+PokemonDomeCGBTilemap:: ; 85a79 (21:5a79)
db $20 ; width
db $20 ; height
- dw $5cc1
- db $01
-
- INCBIN "data/maps/map55.bin"
+ dw PokemonDomeCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/pokemon_dome_cgb.bin"
+PokemonDomeCGBPermissions:
+ INCBIN "data/maps/permissions/pokemon_dome_cgb.bin"
HallOfHonorTilemap:: ; 85ce2 (21:5ce2)
db $18 ; width
db $1a ; height
- dw $5ddc
- db $00
-
- INCBIN "data/maps/map58.bin"
+ dw HallOfHonorPermissions
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/hall_of_honor.bin"
+HallOfHonorPermissions:
+ INCBIN "data/maps/permissions/hall_of_honor.bin"
HallOfHonorCGBTilemap:: ; 85df4 (21:5df4)
db $18 ; width
db $1a ; height
- dw $5f64
- db $01
-
- INCBIN "data/maps/map59.bin"
+ dw HallOfHonorCGBPermissions
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/hall_of_honor_cgb.bin"
+HallOfHonorCGBPermissions:
+ INCBIN "data/maps/permissions/hall_of_honor_cgb.bin"
CardPopCGBTilemap:: ; 85f7c (21:5f7c)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map60.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/card_pop_cgb.bin"
CardPopTilemap:: ; 8607f (21:607f)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map61.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/card_pop.bin"
ScienceMedalTilemap:: ; 8617d (21:617d)
db $03 ; width
db $03 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map63.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/science_medal.bin"
FireMedalTilemap:: ; 86193 (21:6193)
db $03 ; width
db $03 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map64.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/fire_medal.bin"
WaterMedalTilemap:: ; 861a9 (21:61a9)
db $03 ; width
db $03 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map65.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/water_medal.bin"
LightningMedalTilemap:: ; 861bf (21:61bf)
db $03 ; width
db $03 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map66.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/lightning_medal.bin"
FightingMedalTilemap:: ; 861d5 (21:61d5)
db $03 ; width
db $03 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map67.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/fighting_medal.bin"
RockMedalTilemap:: ; 861eb (21:61eb)
db $03 ; width
db $03 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map68.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/rock_medal.bin"
PsychicMedalTilemap:: ; 86201 (21:6201)
db $03 ; width
db $03 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map69.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/psychic_medal.bin"
GameBoyLinkCGBTilemap:: ; 86217 (21:6217)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map70.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/gameboy_link_cgb.bin"
GameBoyLinkTilemap:: ; 862da (21:62da)
db $14 ; width
db $12 ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map71.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/gameboy_link.bin"
GameBoyLinkConnectingCGBTilemap:: ; 86364 (21:6364)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map72.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/gameboy_link_connecting_cgb.bin"
GameBoyLinkConnectingTilemap:: ; 86443 (21:6443)
db $14 ; width
db $12 ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map73.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/gameboy_link_connecting.bin"
GameBoyPrinterCGBTilemap:: ; 864df (21:64df)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map74.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/gameboy_printer_cgb.bin"
GameBoyPrinterTilemap:: ; 865b5 (21:65b5)
db $14 ; width
db $12 ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map75.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/gameboy_printer.bin"
ColosseumTilemap:: ; 86647 (21:6647)
db $08 ; width
db $0c ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map76.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/colosseum.bin"
ColosseumCGBTilemap:: ; 866b8 (21:66b8)
db $08 ; width
db $0c ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map77.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/colosseum_cgb.bin"
EvolutionTilemap:: ; 8673e (21:673e)
db $08 ; width
db $0c ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map78.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/evolution.bin"
EvolutionCGBTilemap:: ; 867af (21:67af)
db $08 ; width
db $0c ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map79.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/evolution_cgb.bin"
MysteryTilemap:: ; 86833 (21:6833)
db $08 ; width
db $0c ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map80.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/mystery.bin"
MysteryCGBTilemap:: ; 868a4 (21:68a4)
db $08 ; width
db $0c ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map81.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/mystery_cgb.bin"
LaboratoryTilemap:: ; 86925 (21:6925)
db $08 ; width
db $0c ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map82.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/laboratory.bin"
LaboratoryCGBTilemap:: ; 86996 (21:6996)
db $08 ; width
db $0c ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map83.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/laboratory_cgb.bin"
CharizardIntroTilemap:: ; 86a14 (21:6a14)
db $08 ; width
db $0c ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map84.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/charizard_intro.bin"
CharizardIntroCGBTilemap:: ; 86a85 (21:6a85)
db $08 ; width
db $0c ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map85.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/charizard_intro_cgb.bin"
ScytherIntroTilemap:: ; 86b28 (21:6b28)
db $08 ; width
db $0c ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map86.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/scyther_intro.bin"
ScytherIntroCGBTilemap:: ; 86b99 (21:6b99)
db $08 ; width
db $0c ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map87.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/scyther_intro_cgb.bin"
AerodactylIntroTilemap:: ; 86c34 (21:6c34)
db $08 ; width
db $0c ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map88.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/aerodactyl_intro.bin"
AerodactylIntroCGBTilemap:: ; 86ca5 (21:6ca5)
db $08 ; width
db $0c ; height
- dw $0000
- db $01
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/aerodactyl_intro_cgb.bin"
- INCBIN "data/maps/map89.bin"
-
-TitleScreen1Tilemap:: ; 86d37 (21:6d37)
+JapaneseTitleScreenTilemap:: ; 86d37 (21:6d37)
db $14 ; width
db $12 ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map90.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/japanese_title_screen.bin"
-TitleScreen2Tilemap:: ; 86dcc (21:6dcc)
+JapaneseTitleScreenCGBTilemap:: ; 86dcc (21:6dcc)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map91.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/japanese_title_screen_cgb.bin"
SolidTiles1Tilemap:: ; 86e8a (21:6e8a)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map92.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/solid_tiles_1.bin"
SolidTiles2Tilemap:: ; 86f18 (21:6f18)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map93.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/solid_tiles_2.bin"
SolidTiles3Tilemap:: ; 86fc0 (21:6fc0)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map94.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/solid_tiles_3.bin"
-TitleScreen3Tilemap:: ; 8704f (21:704f)
+JapaneseTitleScreen2Tilemap:: ; 8704f (21:704f)
db $14 ; width
db $12 ; height
- dw $0000
- db $00
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/japanese_title_screen_2.bin"
- INCBIN "data/maps/map95.bin"
-
-TitleScreen4Tilemap:: ; 871a5 (21:71a5)
+JapaneseTitleScreen2CGBTilemap:: ; 871a5 (21:71a5)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map96.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/japanese_title_screen_2_cgb.bin"
SolidTiles4Tilemap:: ; 87397 (21:7397)
db $08 ; width
db $04 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map97.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/solid_tiles_4.bin"
PlayerTilemap:: ; 873b7 (21:73b7)
db $06 ; width
db $06 ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map98.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/player.bin"
OpponentTilemap:: ; 873e5 (21:73e5)
db $06 ; width
db $06 ; height
- dw $0000
- db $00
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/opponent.bin"
- INCBIN "data/maps/map99.bin"
-
-TitleScreen5Tilemap:: ; 87413 (21:7413)
+TitleScreenTilemap:: ; 87413 (21:7413)
db $14 ; width
db $12 ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map100.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/title_screen.bin"
-TitleScreen6Tilemap:: ; 87538 (21:7538)
+TitleScreenCGBTilemap:: ; 87538 (21:7538)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map101.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/title_screen_cgb.bin"
CopyrightTilemap:: ; 8769f (21:769f)
db $14 ; width
db $12 ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map102.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/copyright.bin"
CopyrightCGBTilemap:: ; 876f6 (21:76f6)
db $14 ; width
db $12 ; height
- dw $0000
- db $01
-
- INCBIN "data/maps/map103.bin"
+ dw NULL
+ db TRUE ; cgb mode
+ INCBIN "data/maps/tiles/copyright_cgb.bin"
NintendoTilemap:: ; 8777c (21:777c)
db $14 ; width
db $12 ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map104.bin"
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/nintendo.bin"
CompaniesTilemap:: ; 877c4 (21:77c4)
db $14 ; width
db $12 ; height
- dw $0000
- db $00
-
- INCBIN "data/maps/map105.bin"
-
+ dw NULL
+ db FALSE ; cgb mode
+ INCBIN "data/maps/tiles/companies.bin"
IshiharaTilesetGfx:: ; 87828 (21:7828)
dw 77
@@ -813,13 +787,13 @@ AerodactylIntro2Gfx:: ; 9696e (25:696e)
dw 96
INCBIN "gfx/titlescreen/booster_packs/aerodactylintro2.2bpp"
-Titlescreen1Gfx:: ; 96f70 (25:6f70)
+JapaneseTitleScreenGfx:: ; 96f70 (25:6f70)
dw 97
- INCBIN "gfx/titlescreen/titlescreen1.2bpp"
+ INCBIN "gfx/titlescreen/japanese_title_screen.2bpp"
-Titlescreen2Gfx:: ; 97582 (25:7582)
+JapaneseTitleScreenCGBGfx:: ; 97582 (25:7582)
dw 97
- INCBIN "gfx/titlescreen/titlescreen2.2bpp"
+ INCBIN "gfx/titlescreen/japanese_title_screen_cgb.2bpp"
CompaniesGfx:: ; 97b94 (25:7b94)
dw 49
@@ -837,21 +811,21 @@ AnimData5:: ; 97fe8 (25:7fe8)
SECTION "Gfx 8", ROMX
-Titlescreen3Gfx:: ; 98000 (26:4000)
+JapaneseTitleScreen2Gfx:: ; 98000 (26:4000)
dw 244
- INCBIN "gfx/titlescreen/titlescreen3.2bpp"
+ INCBIN "gfx/titlescreen/japanese_title_screen_2.2bpp"
-Titlescreen4Gfx:: ; 98f42 (26:4f42)
+JapaneseTitleScreen2CGBGfx:: ; 98f42 (26:4f42)
dw 315
- INCBIN "gfx/titlescreen/titlescreen4.2bpp"
+ INCBIN "gfx/titlescreen/japanese_title_screen_2_cgb.2bpp"
-Titlescreen5Gfx:: ; 9a2f4 (26:62f4)
+TitleScreenGfx:: ; 9a2f4 (26:62f4)
dw 220
- INCBIN "gfx/titlescreen/titlescreen5.2bpp"
+ INCBIN "gfx/titlescreen/title_screen.2bpp"
-Titlescreen6Gfx:: ; 9b0b6 (26:70b6)
+TitleScreenCGBGfx:: ; 9b0b6 (26:70b6)
dw 212
- INCBIN "gfx/titlescreen/titlescreen6.2bpp"
+ INCBIN "gfx/titlescreen/title_screen_cgb.2bpp"
OWDrMasonGfx:: ; 9bdf8 (26:7df8)
dw $14
diff --git a/src/gfx/titlescreen/titlescreen1.png b/src/gfx/titlescreen/japanese_title_screen.png
index 82b39e5..82b39e5 100644
--- a/src/gfx/titlescreen/titlescreen1.png
+++ b/src/gfx/titlescreen/japanese_title_screen.png
Binary files differ
diff --git a/src/gfx/titlescreen/titlescreen3.png b/src/gfx/titlescreen/japanese_title_screen_2.png
index adddee4..adddee4 100644
--- a/src/gfx/titlescreen/titlescreen3.png
+++ b/src/gfx/titlescreen/japanese_title_screen_2.png
Binary files differ
diff --git a/src/gfx/titlescreen/titlescreen4.png b/src/gfx/titlescreen/japanese_title_screen_2_cgb.png
index 1d3cb92..1d3cb92 100644
--- a/src/gfx/titlescreen/titlescreen4.png
+++ b/src/gfx/titlescreen/japanese_title_screen_2_cgb.png
Binary files differ
diff --git a/src/gfx/titlescreen/titlescreen2.png b/src/gfx/titlescreen/japanese_title_screen_cgb.png
index f54b7c3..f54b7c3 100644
--- a/src/gfx/titlescreen/titlescreen2.png
+++ b/src/gfx/titlescreen/japanese_title_screen_cgb.png
Binary files differ
diff --git a/src/gfx/titlescreen/titlescreen5.png b/src/gfx/titlescreen/title_screen.png
index 3cb6ab3..3cb6ab3 100644
--- a/src/gfx/titlescreen/titlescreen5.png
+++ b/src/gfx/titlescreen/title_screen.png
Binary files differ
diff --git a/src/gfx/titlescreen/titlescreen6.png b/src/gfx/titlescreen/title_screen_cgb.png
index 4f0dbe8..4f0dbe8 100644
--- a/src/gfx/titlescreen/titlescreen6.png
+++ b/src/gfx/titlescreen/title_screen_cgb.png
Binary files differ
diff --git a/src/sram.asm b/src/sram.asm
index f8d77fb..f2ffbf2 100644
--- a/src/sram.asm
+++ b/src/sram.asm
@@ -200,9 +200,9 @@ sba68:: ; ba68
SECTION "SRAM1", SRAM
; from VRAM0
-s0BGMap:: ds $400 ; a000
+sBGMap0:: ds $400 ; a000
; from VRAM1
-s1BGMap:: ds $400 ; a400
+sBGMap1:: ds $400 ; a400
SECTION "SRAM2", SRAM
diff --git a/src/wram.asm b/src/wram.asm
index 85c839b..15910e7 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -15,6 +15,22 @@ NEXTU
wc000:: ; c000
ds $100
+NEXTU
+
+; aside from wDecompressionBuffer, which stores the
+; de facto final decompressed data after decompression,
+; this buffer stores a secondary buffer that is used
+; for "lookbacks" when repeating byte sequences.
+; actually starts in the middle of the buffer,
+; at wDecompressionSecondaryBufferStart, then wraps back up
+; to wDecompressionSecondaryBuffer.
+; this is used so that $00 can be "looked back", since anything
+; before $ef is initialized to 0 when starting decompression.
+wDecompressionSecondaryBuffer:: ; c000
+ ds $ef
+wDecompressionSecondaryBufferStart:: ; ; c0ef
+ ds $11
+
ENDU
ds $100
@@ -543,30 +559,48 @@ wDoFrameFunction:: ; cad3
wcad5:: ; cad5
ds $1
-wcad6:: ; cad6
+; pointer to keep track of where
+; in the source data we are while
+; running the decompression algorithm
+wDecompSourcePosPtr:: ; cad6
ds $2
-wcad8:: ; cad8
+; number of bits that are still left
+; to read from the current command byte
+wDecompNumCommandBitsLeft:: ; cad8
ds $1
-wcad9:: ; cad9
+; command byte from which to read the bits
+; to decompress source data
+wDecompCommandByte:: ; cad9
ds $1
-wcada:: ; cada
+; if bit 7 is changed from off to on, then
+; decompression routine will read next two bytes
+; for repeating previous sequence (length, offset)
+; if it changes from on to off, then the routine
+; will only read one byte, and reuse previous length byte
+wDecompRepeatModeToggle:: ; cada
ds $1
-wcadb:: ; cadb
+; stores in both nybbles the length of the
+; sequences to copy in decompression
+; the high nybble is used first, then the low nybble
+; for a subsequent sequence repition
+wDecompRepeatLengths:: ; cadb
ds $1
-wcadc:: ; cadc
+wDecompNumBytesToRepeat:: ; cadc
ds $1
-wcadd:: ; cadd
+wDecompSecondaryBufferPtrHigh:: ; cadd
ds $1
-wcade:: ; cade
+; offset to repeat byte from decompressed data
+wDecompRepeatSeqOffset:: ; cade
ds $1
+wDecompSecondaryBufferPtrLow:: ; cadf
ds $1
wTempSGBPacket:: ; cae0
@@ -2133,10 +2167,15 @@ wd238:: ; d238
wCurTileset:: ; d239
ds $1
-wd23a:: ; d23a
+; pointer to compressed data
+; of the current map's permission map
+wBGMapPermissionDataPtr:: ; d23a
ds $2
-wd23c:: ; d23c
+; whether the BG Map is in CGB mode
+; this means half of the width is for
+; VRAM0 and the other half is for VRAM1
+wBGMapCGBMode:: ; d23c
ds $1
wd23d:: ; d23d