summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes1
-rw-r--r--INSTALL.md178
-rw-r--r--Makefile140
-rw-r--r--README.md30
-rw-r--r--audio.asm173
-rw-r--r--battle/anim_commands.asm1549
-rw-r--r--battle/anim_gfx.asm42
-rw-r--r--battle/anim_objects.asm5092
-rw-r--r--battle/anims.asm5310
-rw-r--r--battle/bg_effects.asm2938
-rw-r--r--battle/core.asm9479
-rw-r--r--battle/effect_command_pointers.asm5
-rw-r--r--battle/effect_commands.asm511
-rw-r--r--battle/effects/foresight.asm24
-rw-r--r--battle/effects/metronome.asm62
-rw-r--r--battle/effects/mirror_move.asm53
-rw-r--r--battle/effects/nightmare.asm39
-rw-r--r--battle/effects/perish_song.asm41
-rw-r--r--battle/effects/rollout.asm97
-rw-r--r--battle/effects/sandstorm.asm20
-rw-r--r--battle/effects/thief.asm117
-rw-r--r--constants.asm82
-rw-r--r--constants/animation_constants.asm63
-rw-r--r--constants/battle_constants.asm4
-rw-r--r--constants/gfx_constants.asm40
-rw-r--r--constants/landmark_constants.asm103
-rw-r--r--constants/map_constants.asm17
-rw-r--r--constants/move_constants.asm510
-rw-r--r--constants/pokemon_constants.asm506
-rw-r--r--constants/script_constants.asm1
-rw-r--r--constants/wram_constants.asm71
-rw-r--r--contents.asm131
-rw-r--r--engine/color.asm10
-rw-r--r--engine/credits.asm896
-rw-r--r--engine/credits_crystal.asm6
-rw-r--r--engine/engine_flags.asm54
-rw-r--r--engine/events.asm15
-rw-r--r--engine/events_2.asm3
-rw-r--r--engine/facings.asm269
-rw-r--r--engine/fruit_trees.asm18
-rw-r--r--engine/landmarks.asm720
-rw-r--r--engine/movement.asm38
-rw-r--r--engine/scripting.asm12
-rw-r--r--engine/scripting_crystal.asm4
-rw-r--r--engine/std_scripts.asm594
-rw-r--r--event/name_rater.asm24
-rw-r--r--event/poke_seer.asm452
m---------extras0
-rw-r--r--gbhw.asm9
-rw-r--r--gfx/battle/minimize.2bppbin0 -> 16 bytes
-rw-r--r--gfx/credits/theend.2bppbin0 -> 256 bytes
-rw-r--r--gfx/misc/fast_ship.2bppbin0 -> 128 bytes
-rw-r--r--gfx/misc/gbc_only.lzbin0 -> 1350 bytes
-rw-r--r--gfx/mobile/havewant.2bppbin0 -> 2304 bytes
-rw-r--r--gfx/mobile/hp.1bppbin0 -> 8 bytes
-rw-r--r--gfx/mobile/lv.1bppbin0 -> 8 bytes
-rw-r--r--gfx/mobile/pokemon_news.2bppbin0 -> 1152 bytes
-rw-r--r--gfx/mobile/select.2bppbin0 -> 512 bytes
-rw-r--r--gfx/pics.asm798
-rw-r--r--gfx/pics/001/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/001/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/002/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/002/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/003/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/003/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/004/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/004/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/005/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/005/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/006/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/006/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/007/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/007/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/008/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/008/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/009/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/009/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/010/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/010/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/011/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/011/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/012/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/012/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/013/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/013/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/014/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/014/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/015/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/015/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/016/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/016/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/017/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/017/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/018/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/018/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/019/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/019/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/020/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/020/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/021/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/021/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/022/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/022/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/023/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/023/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/024/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/024/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/025/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/025/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/026/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/026/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/027/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/027/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/028/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/028/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/029/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/029/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/030/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/030/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/031/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/031/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/032/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/032/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/033/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/033/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/034/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/034/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/035/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/035/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/036/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/036/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/037/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/037/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/038/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/038/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/039/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/039/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/040/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/040/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/041/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/041/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/042/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/042/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/043/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/043/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/044/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/044/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/045/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/045/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/046/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/046/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/047/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/047/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/048/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/048/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/049/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/049/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/050/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/050/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/051/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/051/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/052/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/052/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/053/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/053/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/054/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/054/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/055/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/055/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/056/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/056/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/057/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/057/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/058/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/058/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/059/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/059/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/060/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/060/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/061/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/061/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/062/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/062/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/063/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/063/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/064/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/064/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/065/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/065/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/066/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/066/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/067/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/067/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/068/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/068/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/069/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/069/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/070/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/070/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/071/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/071/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/072/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/072/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/073/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/073/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/074/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/074/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/075/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/075/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/076/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/076/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/077/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/077/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/078/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/078/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/079/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/079/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/080/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/080/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/081/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/081/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/082/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/082/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/083/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/083/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/084/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/084/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/085/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/085/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/086/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/086/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/087/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/087/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/088/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/088/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/089/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/089/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/090/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/090/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/091/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/091/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/092/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/092/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/093/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/093/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/094/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/094/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/095/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/095/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/096/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/096/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/097/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/097/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/098/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/098/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/099/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/099/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/100/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/100/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/101/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/101/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/102/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/102/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/103/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/103/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/104/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/104/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/105/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/105/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/106/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/106/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/107/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/107/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/108/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/108/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/109/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/109/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/110/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/110/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/111/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/111/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/112/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/112/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/113/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/113/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/114/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/114/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/115/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/115/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/116/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/116/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/117/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/117/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/118/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/118/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/119/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/119/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/120/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/120/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/121/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/121/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/122/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/122/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/123/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/123/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/124/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/124/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/125/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/125/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/126/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/126/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/127/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/127/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/128/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/128/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/129/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/129/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/130/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/130/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/131/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/131/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/132/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/132/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/133/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/133/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/134/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/134/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/135/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/135/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/136/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/136/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/137/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/137/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/138/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/138/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/139/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/139/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/140/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/140/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/141/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/141/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/142/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/142/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/143/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/143/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/144/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/144/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/145/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/145/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/146/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/146/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/147/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/147/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/148/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/148/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/149/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/149/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/150/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/150/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/151/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/151/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/152/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/152/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/153/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/153/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/154/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/154/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/155/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/155/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/156/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/156/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/157/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/157/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/158/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/158/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/159/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/159/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/160/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/160/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/161/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/161/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/162/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/162/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/163/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/163/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/164/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/164/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/165/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/165/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/166/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/166/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/167/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/167/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/168/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/168/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/169/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/169/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/170/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/170/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/171/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/171/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/172/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/172/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/173/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/173/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/174/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/174/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/175/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/175/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/176/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/176/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/177/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/177/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/178/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/178/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/179/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/179/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/180/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/180/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/181/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/181/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/182/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/182/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/183/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/183/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/184/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/184/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/185/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/185/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/186/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/186/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/187/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/187/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/188/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/188/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/189/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/189/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/190/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/190/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/191/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/191/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/192/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/192/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/193/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/193/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/194/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/194/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/195/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/195/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/196/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/196/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/197/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/197/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/198/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/198/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/199/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/199/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/200/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/200/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/201/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/201/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/202/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/202/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/203/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/203/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/204/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/204/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/205/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/205/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/206/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/206/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/207/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/207/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/208/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/208/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/209/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/209/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/210/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/210/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/211/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/211/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/212/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/212/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/213/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/213/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/214/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/214/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/215/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/215/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/216/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/216/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/217/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/217/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/218/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/218/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/219/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/219/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/220/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/220/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/221/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/221/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/222/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/222/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/223/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/223/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/224/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/224/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/225/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/225/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/226/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/226/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/227/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/227/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/228/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/228/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/229/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/229/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/230/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/230/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/231/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/231/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/232/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/232/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/233/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/233/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/234/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/234/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/235/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/235/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/236/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/236/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/237/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/237/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/238/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/238/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/239/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/239/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/240/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/240/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/241/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/241/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/242/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/242/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/243/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/243/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/244/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/244/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/245/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/245/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/246/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/246/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/247/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/247/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/248/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/248/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/249/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/249/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/250/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/250/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/251/normal.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/251/shiny.palbin8 -> 34 bytes
-rw-r--r--gfx/pics/anim_pointers.asm1
-rw-r--r--gfx/pics/animation.asm1029
-rw-r--r--gfx/pics/bitmask_pointers.asm1
-rw-r--r--gfx/pics/extra_pointers.asm1
-rw-r--r--gfx/pics/frame_pointers.asm1
-rw-r--r--gfx/pics/palette_pointers.asm1004
-rw-r--r--gfx/pics/unown_anim_pointers.asm1
-rw-r--r--gfx/pics/unown_bitmask_pointers.asm1
-rw-r--r--gfx/pics/unown_extra_pointers.asm1
-rw-r--r--gfx/pics/unown_frame_pointers.asm2
-rw-r--r--gfx/stats/shiny.2bpp1
-rw-r--r--gfx/trainers/000.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/001.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/002.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/003.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/004.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/005.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/006.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/007.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/008.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/009.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/010.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/011.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/012.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/013.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/014.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/015.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/016.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/017.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/018.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/019.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/020.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/021.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/022.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/023.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/024.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/025.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/026.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/027.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/028.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/029.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/030.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/031.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/032.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/033.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/034.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/035.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/036.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/037.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/038.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/039.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/040.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/041.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/042.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/043.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/044.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/045.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/046.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/047.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/048.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/049.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/050.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/051.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/052.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/053.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/054.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/055.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/056.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/057.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/058.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/059.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/060.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/061.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/062.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/063.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/064.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/065.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/066.palbin8 -> 34 bytes
-rw-r--r--gfx/trainers/palette_pointers.asm134
-rw-r--r--home.asm3408
-rw-r--r--home/joypad.asm8
-rw-r--r--home/map.asm66
-rw-r--r--home/menu.asm21
-rw-r--r--home/movement.asm221
-rw-r--r--home/text.asm4
-rw-r--r--home/tilemap.asm219
-rw-r--r--home/time.asm2
-rw-r--r--includes.asm1
-rwxr-xr-xinit.sh21
-rw-r--r--items/item_effects.asm16
-rw-r--r--macros.asm18
-rw-r--r--main.asm30163
-rw-r--r--maps.asm511
-rw-r--r--maps/BattleTowerBattleRoom.asm9
-rw-r--r--maps/BattleTowerHallway.asm2
-rw-r--r--maps/PokeSeersHouse.asm6
-rw-r--r--maps/map_headers.asm776
-rw-r--r--maps_crystal.asm5
-rw-r--r--misc/crystal_misc.asm824
-rw-r--r--misc/gbc_only.asm150
-rw-r--r--preprocessor.py22
-rw-r--r--prequeue.py25
-rw-r--r--scan_includes.py31
-rw-r--r--stats/egg_moves_crystal.asm4
-rw-r--r--stats/evos_attacks_crystal.asm4
-rw-r--r--stats/pokedex/entries.asm24
-rw-r--r--stats/pokedex/entries_crystal.asm5
-rw-r--r--tilesets/dark.palbin64 -> 512 bytes
-rw-r--r--tilesets/data_2.asm4
-rw-r--r--tilesets/data_4.asm8
-rw-r--r--tilesets/data_7.asm2
-rw-r--r--tilesets/day.palbin64 -> 512 bytes
-rw-r--r--tilesets/morn.palbin64 -> 512 bytes
-rw-r--r--tilesets/nite.palbin64 -> 512 bytes
-rw-r--r--tilesets/palette_maps.asm4
-rw-r--r--tilesets/roofs.asm56
-rw-r--r--tilesets/unused_30_collision.binbin0 -> 512 bytes
-rw-r--r--tilesets/unused_30_metatiles.binbin0 -> 2048 bytes
-rw-r--r--trainers/trainer_pointers.asm1
-rw-r--r--wram.asm89
681 files changed, 38654 insertions, 31604 deletions
diff --git a/.gitattributes b/.gitattributes
index cb0117340..f84c0ae6a 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -6,7 +6,6 @@
*.lz diff=hex
*.2bpp diff=hex
*.1bpp diff=hex
-*.pal diff=hex
*.bin diff=hex
*.blk diff=hex
diff --git a/INSTALL.md b/INSTALL.md
index 6e2ea4bb4..065a649b9 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,184 +1,40 @@
# Getting Started
-Assembling **pokecrystal.gbc** requires a certain **Pokemon Crystal** rom:
+Assembling **pokecrystal.gbc** requires a certain **Pokémon Crystal** rom:
-```
-Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
-md5: 9f2922b235a5eeb78d65594e82ef5dde
-```
+ Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
+ md5: 9f2922b235a5eeb78d65594e82ef5dde
-Save it as **baserom.gbc** in the repository.
-
-Feel free to ask us on
-**[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)**
-if something goes wrong.
-
-# Windows
-
-If you're on Windows and can't install Linux, **Cygwin** is a great alternative.
-
-
-## Installing Cygwin
-
-Cygwin provides a virtual Linux environment on Windows systems. Just get **setup.exe**.
-
-**http://cygwin.com/install.html**
-
-During the install:
-
-* Keep the defaults.
-* Most mirrors are molasses. Use **http://mirrors.kernel.org**.
-* From the package selection, pick:
- * **wget**
- * **make**
- * **git**
- * **python**
- * **python-setuptools**
- * **unzip**
-
-## Using Cygwin
-
-Launch the **Cygwin terminal**.
-Maybe you know your way around the Linux terminal ( **bash** ).
-If not, a crash course:
-```bash
-# list files in current directory
-ls
-
-# show current directory
-pwd
-
-# change directory
-cd /away/we/go
-```
-
-## Getting up and running
-
-We need three things to assemble the source into a rom.
-
-1. **rgbds**
-2. a **pokecrystal** repository
-3. a **base rom**
-
-We use **rgbds** to spit out a Game Boy rom from source.
-```bash
-cd /usr/local/bin
-wget http://iimarck.us/etc/rgbds-20130811.zip
-unzip -j rgbds-20130811.zip
-rm rgbds-20130811.zip
-```
-
-The **pokecrystal** repository contains the source files used to create the rom.
-```bash
-cd ~
-git clone https://github.com/kanzure/pokecrystal
-cd pokecrystal
-
-# install python requirements
-easy_install pip
-pip install -r requirements.txt
-```
-
-Not everything is included in the source yet.
-Missing patches are copied from a **base rom** (not included).
-
-```
-Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
-md5: 9f2922b235a5eeb78d65594e82ef5dde
-```
-
-Name it **baserom.gbc**.
-
-**pokecrystal** only compiles with the use of a git submodule. To activate the submodule type:
-
-```
-git submodule init
-git submodule update
-```
-
-Now you should be able to build **pokecrystal.gbc** for the first time.
-
-This compiles a new rom from the source code, with any patches filled in from the base rom.
-
-```bash
-make
-```
-
-This ought to take **between 3 and 15 seconds**, depending on your computer.
-
-If the last line is `cmp baserom.gbc pokecrystal.gbc`, the build was successful!
-
-Your first build processes every source file at once.
-After that, **only modified source files have to be processed again**,
-so compiling again should be a few seconds faster.
# Linux
-```bash
-sudo apt-get install make gcc bison git python python-setuptools
-sudo easy_install pip
+Linux dependencies. OSX users already have these after installing Xcode.
-# install rgbds
-git clone git://github.com/bentley/rgbds.git
-cd rgbds
-make
-sudo make install
+ sudo apt-get install make gcc bison git python python-setuptools
-cd ..
-# download pokecrystal
-git clone git://github.com/kanzure/pokecrystal.git
-cd pokecrystal
+Set up the **pokecrystal** repository:
-# grab extras/ which is required for compiling
-git submodule init
-git submodule update
+ git clone git://github.com/kanzure/pokecrystal.git
+ cd pokecrystal
-# install python requirements
-pip install -r extras/requirements.txt
+ ./init.sh
-# use hexdump to diff binary files
-git config diff.hex.textconv hexdump
-```
+Copy the Pokémon Crystal rom to this directory. Name it **baserom.gbc**.
-Put your base rom in the pokecrystal repository. Name it **baserom.gbc**.
-
-To compile the rom from source:
-```bash
-make
-```
-
-That will take between 3 and 15 seconds, depending on your computer.
-If you see `cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful! Rejoice!
-
-
-# Now what?
-
-**[pokecrystal.asm](https://github.com/kanzure/pokecrystal/blob/master/pokecrystal.asm)** is a good starting point.
-The structure of the source is laid out here.
-
-
-* Other **make targets** that may come in handy:
-
- * `make clean` deletes any preprocessed source files (.tx), rgbds object files and pokecrystal.gbc.
- * `make pngs` decompresses any **lz** files in gfx/ and then exports any graphics files to **png**.
- * `make lzs` does the reverse. This is already part of the build process, so **modified pngs will automatically be converted to 2bpp and lz-compressed** without any additional work.
+Now you should be able to build **pokecrystal.gbc** for the first time.
+ make
-* **Can't find something?**
-Anyone can add to the source. There's lots to be uncovered.
+Your first build may take about 30 seconds. Subsequent builds are much faster (2-10 seconds).
-* **Do your own thing!**
-The asm source is hack-friendly, and the supplementary scripts in extras/ can be used for other projects.
-We'll be happy to answer any **questions** on
-**[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)**.
+# OSX
+Download and install **Xcode**. Then follow the Linux instructions.
-Other **make targets** that may come in handy:
-`make clean` deletes any preprocessed source files (.tx), rgbds object files and pokecrystal.gbc, in case something goes wrong.
+# Windows
-`make pngs` decompresses any **lz** files in gfx/ and then exports any graphics files to **png**.
+Not yet.
-`make lzs` does the reverse. This is already part of the build process, so **modified pngs will automatically be converted to 2bpp and lz-compressed** without any additional work.
diff --git a/Makefile b/Makefile
index 7723602c8..406b3ac96 100644
--- a/Makefile
+++ b/Makefile
@@ -1,88 +1,120 @@
PYTHON := python
-.SUFFIXES: .asm .tx .o .gbc .png .2bpp .lz
-.PHONY: all clean pngs gfx
+POKEMONTOOLS := extras/pokemontools
+.SUFFIXES: .asm .tx .o .gbc .png .2bpp .1bpp .lz .pal .bin
+.PHONY: all clean crystal pngs
.SECONDEXPANSION:
-TEXTFILES := $(shell find ./ -type f -name '*.asm' | grep -v globals.asm)
TEXTQUEUE :=
CRYSTAL_OBJS := \
wram.o \
main.o \
+home.o \
+audio.o \
+maps_crystal.o \
engine/events.o \
engine/scripting_crystal.o \
engine/events_2.o \
+engine/credits_crystal.o \
stats/egg_moves_crystal.o \
-stats/evos_attacks_crystal.o
+stats/evos_attacks_crystal.o \
+stats/pokedex/entries_crystal.o \
+misc/crystal_misc.o \
+gfx/pics.o
OBJS := $(CRYSTAL_OBJS)
ROMS := pokecrystal.gbc
-PNGS := $(shell find gfx/ -type f -name '*.png')
-LZS := $(shell find gfx/ -type f -name '*.lz')
-_2BPPS := $(shell find gfx/ -type f -name '*.2bpp')
-_1BPPS := $(shell find gfx/ -type f -name '*.1bpp')
+ALL_DEPENDENCIES :=
# generate a list of dependencies for each object file
-$(shell \
- $(foreach obj, $(OBJS), \
- $(eval OBJ_$(obj:.o=) := \
- $(shell $(PYTHON) scan_includes.py $(obj:.o=.asm) | sed s/globals.asm//g)) \
- ) \
-)
-
-all: baserom.gbc globals.asm $(ROMS)
- cmp baserom.gbc pokecrystal.gbc
+$(shell $(foreach obj, $(OBJS), \
+ $(eval $(obj:.o=)_DEPENDENCIES := $(shell $(PYTHON) $(POKEMONTOOLS)/scan_includes.py $(obj:.o=.asm) | sed s/globals.asm//g)) \
+))
+$(shell $(foreach obj, $(OBJS), \
+ $(eval ALL_DEPENDENCIES += $($(obj:.o=)_DEPENDENCIES)) \
+))
+
+
+all: $(ROMS)
+
+crystal: pokecrystal.gbc
+
clean:
rm -f $(ROMS)
rm -f $(OBJS)
- rm -f globals.asm globals.tx
- @echo 'Removing preprocessed .tx files...'
- @rm -f $(TEXTFILES:.asm=.tx)
+ rm -f globals.asm
+ find -iname '*.tx' -exec rm {} +
-baserom.gbc:
+baserom.gbc: ;
@echo "Wait! Need baserom.gbc first. Check README and INSTALL for details." && false
+
+%.asm: ;
.asm.tx:
$(eval TEXTQUEUE := $(TEXTQUEUE) $<)
@rm -f $@
-globals.asm: $(TEXTFILES:.asm=.tx)
- @echo "Creating globals.asm..."
- @touch globals.asm
- @echo "Preprocessing .asm to .tx..."
- @$(PYTHON) prequeue.py $(TEXTQUEUE) globals.asm
+globals.asm: $(ALL_DEPENDENCIES:.asm=.tx) $(OBJS:.o=.tx)
+ @touch $@
+ @$(PYTHON) prequeue.py $(TEXTQUEUE)
+globals.tx: globals.asm
+ @cp $< $@
-$(OBJS): $$(patsubst %.o,%.tx,$$@) $$(patsubst %.asm,%.tx,$$(OBJ_$$(patsubst %.o,%,$$@)))
- rgbasm -o $@ $(@:.o=.tx)
+$(OBJS): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_DEPENDENCIES))
+ rgbasm -o $@ $*.tx
-pokecrystal.gbc: $(CRYSTAL_OBJS)
- rgblink -n pokecrystal.sym -m pokecrystal.map -o pokecrystal.gbc $^
+pokecrystal.gbc: globals.tx $(CRYSTAL_OBJS)
+ rgblink -n $*.sym -m $*.map -o $@ $(CRYSTAL_OBJS)
rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
+ cmp baserom.gbc $@
+
pngs:
- $(PYTHON) extras/pokemontools/gfx.py mass-decompress
- $(PYTHON) extras/pokemontools/gfx.py dump-pngs
-
-gfx: $(LZS) $(_2BPPS) $(_1BPPS)
- @:
-
-gfx/pics/%/front.lz: gfx/pics/%/tiles.2bpp gfx/pics/%/front.png
- $(PYTHON) extras/pokemontools/gfx.py png-to-lz --front $^
-gfx/pics/%/tiles.2bpp: gfx/pics/%/tiles.png
- $(PYTHON) extras/pokemontools/gfx.py png-to-2bpp $<
-gfx/pics/%/back.lz: gfx/pics/%/back.png
- $(PYTHON) extras/pokemontools/gfx.py png-to-lz --vert $<
-gfx/trainers/%.lz: gfx/trainers/%.png
- $(PYTHON) extras/pokemontools/gfx.py png-to-lz --vert $<
-.png.lz:
- $(PYTHON) extras/pokemontools/gfx.py png-to-lz $<
-.png.2bpp:
- $(PYTHON) extras/pokemontools/gfx.py png-to-2bpp $<
-.png.1bpp:
- $(PYTHON) extras/pokemontools/gfx.py png-to-1bpp $<
-%.2bpp:
- @:
-%.1bpp:
- @:
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py mass-decompress
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py dump-pngs
+
+gfx/pics/%/front.lz:: gfx/pics/%/tiles.2bpp gfx/pics/%/front.png
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py png-to-lz --front $^
+gfx/pics/%/front.2bpp:: gfx/pics/%/front.lz
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py front-to-2bpp $<
+gfx/pics/%/front.png:: gfx/pics/%/front.2bpp
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py 2bpp-to-png $<
+gfx/pics/%/tiles.2bpp:: gfx/pics/%/front.lz
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py anim-from-front $<
+
+gfx/pics/%/tiles.2bpp:: gfx/pics/%/tiles.png
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py png-to-2bpp $<
+gfx/pics/%/tiles.png:: gfx/pics/%/tiles.2bpp
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py 2bpp-to-png $<
+
+gfx/pics/%/back.lz:: gfx/pics/%/back.png
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py png-to-lz --vert $<
+gfx/pics/%/back.png:: gfx/pics/%/back.lz
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py lz-to-png --vert $<
+
+gfx/trainers/%.lz:: gfx/trainers/%.png
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py png-to-lz --vert $<
+gfx/trainers/%.png:: gfx/trainers/%.lz
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py lz-to-png --vert $<
+
+
+%.lz:: %.png
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py png-to-lz $<
+%.png:: %.lz
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py lz-to-png $<
+
+%.2bpp:: %.png
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py png-to-2bpp $<
+%.png:: %.2bpp
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py 2bpp-to-png $<
+
+%.1bpp:: %.png
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py png-to-1bpp $<
+%.png:: %.1bpp
+ $(PYTHON) $(POKEMONTOOLS)/gfx.py 1bpp-to-png $<
+
+%.pal: ;
+%.bin: ;
+
diff --git a/README.md b/README.md
index f191cd917..7cc9c7eee 100644
--- a/README.md
+++ b/README.md
@@ -1,33 +1,19 @@
# Pokémon Crystal
-This is a hand-crafted disassembly of Pokémon Crystal.
+This is a disassembly of Pokémon Crystal.
-The source code in this project successfully converts back into a ROM image. All source code is meticulously commented.
+The source code in this project successfully converts back into a ROM image.
+The following rom is used as a base:
-## Base ROM
+ Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
+ md5: 9f2922b235a5eeb78d65594e82ef5dde
-The following rom is required for compiling:
-
-```
-Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
-md5: 9f2922b235a5eeb78d65594e82ef5dde
-```
-
-Eventually this will not be necessary.
-
-
-## What can I do?
-
-* Are we missing something? Make a pull request! Contributions are welcome.
-
-* Take a look at some of the disasm tools in **extras/**. Most of the scripts are generalized enough to take apart other Game Boy games.
-
-* Tackle some **[issues](https://github.com/kanzure/pokecrystal/issues)**!
+To set up the repository, see [**INSTALL.md**](INSTALL.md).
## See also
-* Hang out with us on irc: **[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)**
+* Disassembly of [**Pokémon Red**](https://github.com/iimarckus/pokered)
-* Disassembly of **[Pokémon Red](http://bitbucket.org/iimarckus/pokered)**.
+* irc: **nucleus.kafuka.org** [**#skeetendo**](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)
diff --git a/audio.asm b/audio.asm
new file mode 100644
index 000000000..80a644d53
--- /dev/null
+++ b/audio.asm
@@ -0,0 +1,173 @@
+INCLUDE "includes.asm"
+
+
+SECTION "Audio", ROMX, BANK[AUDIO]
+
+INCLUDE "audio/engine.asm"
+
+; What music plays when a trainer notices you
+INCLUDE "audio/trainer_encounters.asm"
+
+Music:
+INCLUDE "audio/music_pointers.asm"
+
+INCLUDE "audio/music/nothing.asm"
+
+Cries:
+INCLUDE "audio/cry_pointers.asm"
+
+SFX:
+INCLUDE "audio/sfx_pointers.asm"
+
+
+
+SECTION "Songs 1", ROMX, BANK[SONGS_1]
+
+INCLUDE "audio/music/route36.asm"
+INCLUDE "audio/music/rivalbattle.asm"
+INCLUDE "audio/music/rocketbattle.asm"
+INCLUDE "audio/music/elmslab.asm"
+INCLUDE "audio/music/darkcave.asm"
+INCLUDE "audio/music/johtogymbattle.asm"
+INCLUDE "audio/music/championbattle.asm"
+INCLUDE "audio/music/ssaqua.asm"
+INCLUDE "audio/music/newbarktown.asm"
+INCLUDE "audio/music/goldenrodcity.asm"
+INCLUDE "audio/music/vermilioncity.asm"
+INCLUDE "audio/music/titlescreen.asm"
+INCLUDE "audio/music/ruinsofalphinterior.asm"
+INCLUDE "audio/music/lookpokemaniac.asm"
+INCLUDE "audio/music/trainervictory.asm"
+
+
+SECTION "Songs 2", ROMX, BANK[SONGS_2]
+
+INCLUDE "audio/music/route1.asm"
+INCLUDE "audio/music/route3.asm"
+INCLUDE "audio/music/route12.asm"
+INCLUDE "audio/music/kantogymbattle.asm"
+INCLUDE "audio/music/kantotrainerbattle.asm"
+INCLUDE "audio/music/kantowildbattle.asm"
+INCLUDE "audio/music/pokemoncenter.asm"
+INCLUDE "audio/music/looklass.asm"
+INCLUDE "audio/music/lookofficer.asm"
+INCLUDE "audio/music/route2.asm"
+INCLUDE "audio/music/mtmoon.asm"
+INCLUDE "audio/music/showmearound.asm"
+INCLUDE "audio/music/gamecorner.asm"
+INCLUDE "audio/music/bicycle.asm"
+INCLUDE "audio/music/looksage.asm"
+INCLUDE "audio/music/pokemonchannel.asm"
+INCLUDE "audio/music/lighthouse.asm"
+INCLUDE "audio/music/lakeofrage.asm"
+INCLUDE "audio/music/indigoplateau.asm"
+INCLUDE "audio/music/route37.asm"
+INCLUDE "audio/music/rockethideout.asm"
+INCLUDE "audio/music/dragonsden.asm"
+INCLUDE "audio/music/ruinsofalphradio.asm"
+INCLUDE "audio/music/lookbeauty.asm"
+INCLUDE "audio/music/route26.asm"
+INCLUDE "audio/music/ecruteakcity.asm"
+INCLUDE "audio/music/lakeofragerocketradio.asm"
+INCLUDE "audio/music/magnettrain.asm"
+INCLUDE "audio/music/lavendertown.asm"
+INCLUDE "audio/music/dancinghall.asm"
+INCLUDE "audio/music/contestresults.asm"
+INCLUDE "audio/music/route30.asm"
+
+
+SECTION "Songs 3", ROMX, BANK[SONGS_3]
+
+INCLUDE "audio/music/violetcity.asm"
+INCLUDE "audio/music/route29.asm"
+INCLUDE "audio/music/halloffame.asm"
+INCLUDE "audio/music/healpokemon.asm"
+INCLUDE "audio/music/evolution.asm"
+INCLUDE "audio/music/printer.asm"
+
+
+SECTION "Songs 4", ROMX, BANK[SONGS_4]
+
+INCLUDE "audio/music/viridiancity.asm"
+INCLUDE "audio/music/celadoncity.asm"
+INCLUDE "audio/music/wildpokemonvictory.asm"
+INCLUDE "audio/music/successfulcapture.asm"
+INCLUDE "audio/music/gymleadervictory.asm"
+INCLUDE "audio/music/mtmoonsquare.asm"
+INCLUDE "audio/music/gym.asm"
+INCLUDE "audio/music/pallettown.asm"
+INCLUDE "audio/music/profoakspokemontalk.asm"
+INCLUDE "audio/music/profoak.asm"
+INCLUDE "audio/music/lookrival.asm"
+INCLUDE "audio/music/aftertherivalfight.asm"
+INCLUDE "audio/music/surf.asm"
+INCLUDE "audio/music/nationalpark.asm"
+INCLUDE "audio/music/azaleatown.asm"
+INCLUDE "audio/music/cherrygrovecity.asm"
+INCLUDE "audio/music/unioncave.asm"
+INCLUDE "audio/music/johtowildbattle.asm"
+INCLUDE "audio/music/johtowildbattlenight.asm"
+INCLUDE "audio/music/johtotrainerbattle.asm"
+INCLUDE "audio/music/lookyoungster.asm"
+INCLUDE "audio/music/tintower.asm"
+INCLUDE "audio/music/sprouttower.asm"
+INCLUDE "audio/music/burnedtower.asm"
+INCLUDE "audio/music/mom.asm"
+INCLUDE "audio/music/victoryroad.asm"
+INCLUDE "audio/music/pokemonlullaby.asm"
+INCLUDE "audio/music/pokemonmarch.asm"
+INCLUDE "audio/music/goldsilveropening.asm"
+INCLUDE "audio/music/goldsilveropening2.asm"
+INCLUDE "audio/music/lookhiker.asm"
+INCLUDE "audio/music/lookrocket.asm"
+INCLUDE "audio/music/rockettheme.asm"
+INCLUDE "audio/music/mainmenu.asm"
+INCLUDE "audio/music/lookkimonogirl.asm"
+INCLUDE "audio/music/pokeflutechannel.asm"
+INCLUDE "audio/music/bugcatchingcontest.asm"
+
+
+SECTION "Songs 5", ROMX, BANK[SONGS_5]
+
+INCLUDE "audio/music/mobileadaptermenu.asm"
+INCLUDE "audio/music/buenaspassword.asm"
+INCLUDE "audio/music/lookmysticalman.asm"
+INCLUDE "audio/music/crystalopening.asm"
+INCLUDE "audio/music/battletowertheme.asm"
+INCLUDE "audio/music/suicunebattle.asm"
+INCLUDE "audio/music/battletowerlobby.asm"
+INCLUDE "audio/music/mobilecenter.asm"
+
+
+
+SECTION "Extra Songs 1", ROMX, BANK[EXTRA_SONGS_1]
+
+INCLUDE "audio/music/credits.asm"
+INCLUDE "audio/music/clair.asm"
+INCLUDE "audio/music/mobileadapter.asm"
+
+
+SECTION "Extra Songs 2", ROMX, BANK[EXTRA_SONGS_2]
+
+INCLUDE "audio/music/postcredits.asm"
+
+
+
+SECTION "Sound Effects", ROMX, BANK[SOUND_EFFECTS]
+
+INCBIN "baserom.gbc",$f0941, $f2787 - $f0941
+
+
+SECTION "Crystal Sound Effects", ROMX, BANK[CRYSTAL_SOUND_EFFECTS]
+
+INCBIN "baserom.gbc",$17982d, $1799ef - $17982d
+
+
+
+SECTION "Cries", ROMX, BANK[CRIES]
+
+CryHeaders: INCLUDE "audio/cry_headers.asm"
+
+INCBIN "baserom.gbc",$f2d69, $f3fb6 - $f2d69
+
+
diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm
new file mode 100644
index 000000000..c8077b710
--- /dev/null
+++ b/battle/anim_commands.asm
@@ -0,0 +1,1549 @@
+; Battle animation command interpreter.
+
+
+PlayBattleAnim: ; cc0d6
+
+ ld a, [rSVBK]
+ push af
+
+ ld a, 5
+ ld [rSVBK], a
+
+ call _PlayBattleAnim
+
+ pop af
+ ld [rSVBK], a
+ ret
+; cc0e4
+
+_PlayBattleAnim: ; cc0e4
+
+ ld c, 6
+.wait
+ call BattleAnimDelayFrame
+ dec c
+ jr nz, .wait
+
+ call BattleAnimAssignPals
+ call BattleAnimRequestPals
+ call BattleAnimDelayFrame
+
+ ld c, 1
+ ld a, [rKEY1]
+ bit 7, a
+ jr nz, .asm_cc0ff
+ ld c, 3
+
+.asm_cc0ff
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+
+ ld [hl], c
+ call Functioncc11c
+
+ pop af
+ ld [$ff9e], a
+
+ ld a, $1
+ ld [hBGMapMode], a
+
+ call BattleAnimDelayFrame
+ call BattleAnimDelayFrame
+ call BattleAnimDelayFrame
+ call WaitSFX
+ ret
+; cc11c
+
+Functioncc11c: ; cc11c
+
+ ld a, [FXAnimIDHi]
+ and a
+ jr nz, .asm_cc156
+
+ callba CheckBattleScene
+ jr c, .asm_cc141
+
+ call BattleAnimClearHud
+ call Functioncc163
+
+ call BattleAnimAssignPals
+ call BattleAnimRequestPals
+
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ call BattleAnimDelayFrame
+ call BattleAnimRestoreHuds
+
+.asm_cc141
+ ld a, [$cfca]
+ and a
+ jr z, .asm_cc15f
+
+ ld l, a
+ ld h, 0
+ ld de, $10e
+ add hl, de
+ ld a, l
+ ld [FXAnimIDLo], a
+ ld a, h
+ ld [FXAnimIDHi], a
+
+.asm_cc156
+ call WaitSFX
+ call Functioncc881
+ call Functioncc163
+
+.asm_cc15f
+ call Functioncc8f6
+ ret
+; cc163
+
+Functioncc163: ; cc163
+
+ call Functioncc8d3
+
+.playframe
+ call Functioncc25f
+ call Functionccb48
+ call Functioncc96e
+ call Function3b0c
+ call BattleAnimRequestPals
+
+; Speed up Rollout's animation.
+ ld a, [FXAnimIDHi]
+ or a
+ jr nz, .asm_cc193
+
+ ld a, [FXAnimIDLo]
+ cp ROLLOUT
+ jr nz, .asm_cc193
+
+ ld a, $2e
+ ld b, 5
+ ld de, 4
+ ld hl, ActiveBGEffects
+.asm_cc18c
+ cp [hl]
+ jr z, .asm_cc196
+ add hl, de
+ dec b
+ jr nz, .asm_cc18c
+
+.asm_cc193
+ call BattleAnimDelayFrame
+
+.asm_cc196
+ ld a, [$d40f]
+ bit 0, a
+ jr z, .playframe
+
+ call Functioncc23d
+ ret
+; cc1a1
+
+BattleAnimClearHud: ; cc1a1
+
+ call BattleAnimDelayFrame
+ call WaitTop
+ call ClearActorHud
+ ld a, $1
+ ld [hBGMapMode], a
+ call BattleAnimDelayFrame
+ call BattleAnimDelayFrame
+ call BattleAnimDelayFrame
+ call WaitTop
+ ret
+; cc1bb
+
+BattleAnimRestoreHuds: ; cc1bb
+
+ call BattleAnimDelayFrame
+ call WaitTop
+
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+
+ ld hl, UpdateBattleHuds
+ ld a, $f
+ rst FarCall
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, $1
+ ld [hBGMapMode], a
+ call BattleAnimDelayFrame
+ call BattleAnimDelayFrame
+ call BattleAnimDelayFrame
+ call WaitTop
+ ret
+; cc1e2
+
+BattleAnimRequestPals: ; cc1e2
+
+ ld a, [hCGB]
+ and a
+ ret z
+
+ ld a, [rBGP]
+ ld b, a
+ ld a, [$cfc7]
+ cp b
+ call nz, Functioncc91a
+
+ ld a, [rOBP0]
+ ld b, a
+ ld a, [$cfc8]
+ cp b
+ call nz, Functioncc94b
+ ret
+; cc1fb
+
+BattleAnimDelayFrame: ; cc1fb
+; Like DelayFrame but wastes battery life.
+
+ ld a, 1
+ ld [VBlankOccurred], a
+.wait
+ ld a, [VBlankOccurred]
+ and a
+ jr nz, .wait
+ ret
+; cc207
+
+ClearActorHud: ; cc207
+
+ ld a, [hBattleTurn]
+ and a
+ jr z, .player
+
+ hlcoord 1, 0
+ lb bc, 4, 10
+ call ClearBox
+ ret
+
+.player
+ hlcoord 9, 7
+ lb bc, 5, 11
+ call ClearBox
+ ret
+; cc220
+
+INCBIN "baserom.gbc",$cc220,$cc23d - $cc220
+
+
+Functioncc23d: ; cc23d
+
+ ld a, [$d40f]
+ bit 3, a
+ jr z, .asm_cc254
+
+ ld hl, Sprites + 3
+ ld c, (SpritesEnd - Sprites) / 4
+.asm_cc249
+ ld a, [hl]
+ and $f0
+ ld [hli], a
+ inc hl
+ inc hl
+ inc hl
+ dec c
+ jr nz, .asm_cc249
+ ret
+
+.asm_cc254
+ ld hl, Sprites
+ ld c, SpritesEnd - Sprites
+ xor a
+.asm_cc25a
+ ld [hli], a
+ dec c
+ jr nz, .asm_cc25a
+ ret
+; cc25f
+
+Functioncc25f: ; cc25f
+ call Functioncc267
+ ret nc
+ call Functioncc275
+ ret
+; cc267
+
+Functioncc267: ; cc267
+ ld a, [$d412]
+ and a
+ jr z, .asm_cc273
+
+ dec a
+ ld [$d412], a
+ and a
+ ret
+
+.asm_cc273
+ scf
+ ret
+; cc275
+
+Functioncc275: ; cc275
+
+ call GetBattleAnimByte
+
+ cp $ff
+ jr nz, .asm_cc286
+
+; Return from a subroutine.
+ ld hl, $d40f
+ bit 1, [hl]
+ jr nz, .asm_cc28e
+
+ set 0, [hl]
+ ret
+
+.asm_cc286
+ cp $d0
+ jr nc, .asm_cc28e
+
+ ld [$d412], a
+ ret
+
+.asm_cc28e
+ call Functioncc293
+
+ jr Functioncc275
+; cc293
+
+Functioncc293: ; cc293
+; Execute battle animation command in [$d417].
+ ld a, [$d417]
+ sub $d0
+
+ ld e, a
+ ld d, 0
+ ld hl, BattleAnimCommands
+ add hl, de
+ add hl, de
+
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; cc2a4
+
+
+; no known jump sources
+BattleAnimCommands: ; cc2a4 (33:42a4)
+ dw BattleAnimCmd_D0
+ dw BattleAnimCmd_D1
+ dw BattleAnimCmd_D2
+ dw BattleAnimCmd_D3
+ dw BattleAnimCmd_D4
+ dw BattleAnimCmd_D5
+ dw BattleAnimCmd_D6
+ dw BattleAnimCmd_D7
+ dw BattleAnimCmd_D8
+ dw BattleAnimCmd_D9
+ dw BattleAnimCmd_DA
+ dw BattleAnimCmd_DB
+ dw BattleAnimCmd_DC
+ dw BattleAnimCmd_DD
+ dw BattleAnimCmd_DE
+ dw BattleAnimCmd_DF
+ dw BattleAnimCmd_E0
+ dw BattleAnimCmd_E1
+ dw BattleAnimCmd_E2
+ dw BattleAnimCmd_E3
+ dw BattleAnimCmd_E4
+ dw BattleAnimCmd_E5
+ dw BattleAnimCmd_E6
+ dw BattleAnimCmd_E7
+ dw BattleAnimCmd_E8
+ dw BattleAnimCmd_E9
+ dw BattleAnimCmd_EA
+ dw BattleAnimCmd_EB
+ dw BattleAnimCmd_EC
+ dw BattleAnimCmd_ED
+ dw BattleAnimCmd_EE
+ dw BattleAnimCmd_EF
+ dw BattleAnimCmd_F0
+ dw BattleAnimCmd_F1
+ dw BattleAnimCmd_F2
+ dw BattleAnimCmd_F3
+ dw BattleAnimCmd_F4
+ dw BattleAnimCmd_F5
+ dw BattleAnimCmd_F6
+ dw BattleAnimCmd_F7
+ dw BattleAnimCmd_F8
+ dw BattleAnimCmd_F9
+ dw BattleAnimCmd_FA
+ dw BattleAnimCmd_FB
+ dw BattleAnimCmd_FC
+ dw BattleAnimCmd_FD
+ dw BattleAnimCmd_FE
+ dw BattleAnimCmd_FF
+
+
+; no known jump sources
+BattleAnimCmd_EA:
+BattleAnimCmd_EB:
+BattleAnimCmd_EC:
+BattleAnimCmd_ED: ; cc304 (33:4304)
+ ret
+
+; no known jump sources
+BattleAnimCmd_FF: ; cc305 (33:4305)
+ ld hl, $d40f
+ res 1, [hl]
+ ld hl, $d413
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $d410
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+; no known jump sources
+BattleAnimCmd_FE: ; cc317 (33:4317)
+ call GetBattleAnimByte
+ ld e, a
+ call GetBattleAnimByte
+ ld d, a
+ push de
+ ld hl, $d410
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $d413
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ pop de
+ ld hl, $d410
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $d40f
+ set 1, [hl]
+ ret
+
+; no known jump sources
+BattleAnimCmd_FC: ; cc339 (33:4339)
+ call GetBattleAnimByte
+ ld e, a
+ call GetBattleAnimByte
+ ld d, a
+ ld hl, $d410
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+; no known jump sources
+BattleAnimCmd_FD: ; cc348 (33:4348)
+ call GetBattleAnimByte
+ ld hl, $d40f
+ bit 2, [hl]
+ jr nz, .asm_cc35b
+ and a
+ jr z, .asm_cc363
+ dec a
+ set 2, [hl]
+ ld [$d415], a
+.asm_cc35b
+ ld hl, $d415
+ ld a, [hl]
+ and a
+ jr z, .asm_cc372
+ dec [hl]
+.asm_cc363
+ call GetBattleAnimByte
+ ld e, a
+ call GetBattleAnimByte
+ ld d, a
+ ld hl, $d410
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+.asm_cc372
+ ld hl, $d40f
+ res 2, [hl]
+ ld hl, $d410
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc de
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+
+; no known jump sources
+BattleAnimCmd_EF: ; cc383 (33:4383)
+ ld hl, $c689
+ ld a, [hl]
+ and a
+ jr z, .asm_cc39a
+
+ dec [hl]
+ call GetBattleAnimByte
+ ld e, a
+ call GetBattleAnimByte
+ ld d, a
+ ld hl, $d410
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+.asm_cc39a
+ ld hl, $d410
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc de
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+
+; no known jump sources
+BattleAnimCmd_F9: ; cc3a6 (33:43a6)
+ call GetBattleAnimByte
+ ld [$d416], a
+ ret
+
+; no known jump sources
+BattleAnimCmd_FA: ; cc3ad (33:43ad)
+ ld hl, $d416
+ inc [hl]
+ ret
+
+; no known jump sources
+BattleAnimCmd_FB: ; cc3b2 (33:43b2)
+ call GetBattleAnimByte
+ ld hl, $d416
+ cp [hl]
+ jr z, .jump
+
+ ld hl, $d410
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc de
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+
+.jump
+ call GetBattleAnimByte
+ ld e, a
+ call GetBattleAnimByte
+ ld d, a
+ ld hl, $d410
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+; no known jump sources
+BattleAnimCmd_F8: ; cc3d6 (33:43d6)
+ call GetBattleAnimByte
+ ld hl, $c689
+ cp [hl]
+ jr z, .jump
+
+ ld hl, $d410
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc de
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+
+.jump
+ call GetBattleAnimByte
+ ld e, a
+ call GetBattleAnimByte
+ ld d, a
+ ld hl, $d410
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+; no known jump sources
+BattleAnimCmd_EE: ; cc3fa (33:43fa)
+ call GetBattleAnimByte
+ ld e, a
+ ld a, [$c689]
+ and e
+ jr nz, .jump
+
+ ld hl, $d410
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc de
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+.jump
+ call GetBattleAnimByte
+ ld e, a
+ call GetBattleAnimByte
+ ld d, a
+ ld hl, $d410
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+; no known jump sources
+BattleAnimCmd_D0: ; cc41f (33:441f)
+ call GetBattleAnimByte
+ ld [$d419], a
+ call GetBattleAnimByte
+ ld [$d41a], a
+ call GetBattleAnimByte
+ ld [$d41b], a
+ call GetBattleAnimByte
+ ld [$d41c], a
+ call Functioncc9a1
+ ret
+
+; no known jump sources
+BattleAnimCmd_F0: ; cc43b (33:443b)
+ call GetBattleAnimByte
+ ld [$d419], a
+ call GetBattleAnimByte
+ ld [$d41a], a
+ call GetBattleAnimByte
+ ld [$d41b], a
+ call GetBattleAnimByte
+ ld [$d41c], a
+ call Functionccb4f
+ ret
+
+; no known jump sources
+BattleAnimCmd_F1: ; cc457 (33:4457)
+ call GetBattleAnimByte
+ ld [$cfc7], a
+ ret
+
+; no known jump sources
+BattleAnimCmd_F2: ; cc45e (33:445e)
+ call GetBattleAnimByte
+ ld [$cfc8], a
+ ret
+
+; no known jump sources
+BattleAnimCmd_F3: ; cc465 (33:4465)
+ call GetBattleAnimByte
+ ld [$cfc9], a
+ ret
+
+; no known jump sources
+BattleAnimCmd_DF: ; cc46c (33:446c)
+ ld a, [hSGB] ; $ff00+$e7
+ and a
+ ld a, $e0
+ jr z, .asm_cc475
+ ld a, $f0
+.asm_cc475
+ ld [$cfc8], a
+ ret
+
+; no known jump sources
+BattleAnimCmd_E5: ; cc479 (33:4479)
+ ld hl, $d30a
+ ld a, $a0
+.asm_cc47e
+ ld [hl], $0
+ inc hl
+ dec a
+ jr nz, .asm_cc47e
+ ret
+
+; no known jump sources
+BattleAnimCmd_D1:
+BattleAnimCmd_D2:
+BattleAnimCmd_D3:
+BattleAnimCmd_D4:
+BattleAnimCmd_D5: ; cc485 (33:4485)
+ ld a, [$d417]
+ and $f
+ ld c, a
+ ld hl, $d300
+ xor a
+ ld [$d419], a
+.asm_cc492
+ ld a, [$d419]
+ cp $4f
+ ret nc
+ call GetBattleAnimByte
+ ld [hli], a
+ ld a, [$d419]
+ ld [hli], a
+ push bc
+ push hl
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, $8310
+ add hl, de
+ ld a, [$d417]
+ call Functionce846
+ ld a, [$d419]
+ add c
+ ld [$d419], a
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_cc492
+ ret
+
+; no known jump sources
+BattleAnimCmd_D6: ; cc4c0 (33:44c0)
+ call GetBattleAnimByte
+ ld e, $a
+ ld bc, $d30a
+.asm_cc4c8
+ ld hl, $0
+ add hl, bc
+ ld d, [hl]
+ ld a, [$d417]
+ cp d
+ jr z, .asm_cc4dd
+ ld hl, $18
+ add hl, bc
+ ld c, l
+ ld b, h
+ dec e
+ jr nz, .asm_cc4c8
+ ret
+.asm_cc4dd
+ ld hl, $e
+ add hl, bc
+ inc [hl]
+ ret
+
+; no known jump sources
+BattleAnimCmd_D8: ; cc4e3 (33:44e3)
+ call GetBattleAnimByte
+ ld e, $5
+ ld bc, $d3fa
+.asm_cc4eb
+ ld hl, $0
+ add hl, bc
+ ld d, [hl]
+ ld a, [$d417]
+ cp d
+ jr z, .asm_cc500
+ ld hl, $4
+ add hl, bc
+ ld c, l
+ ld b, h
+ dec e
+ jr nz, .asm_cc4eb
+ ret
+.asm_cc500
+ ld hl, $1
+ add hl, bc
+ inc [hl]
+ ret
+
+; no known jump sources
+BattleAnimCmd_D7: ; cc506 (33:4506)
+ call GetBattleAnimByte
+ ld e, $a
+ ld bc, $d30a
+.asm_cc50e
+ ld hl, $0
+ add hl, bc
+ ld d, [hl]
+ ld a, [$d417]
+ cp d
+ jr z, .asm_cc523
+ ld hl, $18
+ add hl, bc
+ ld c, l
+ ld b, h
+ dec e
+ jr nz, .asm_cc50e
+ ret
+.asm_cc523
+ call GetBattleAnimByte
+ ld hl, $e
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+BattleAnimCmd_D9: ; cc52c (33:452c)
+
+ ld hl, $d300
+.asm_cc52f
+ ld a, [hl]
+ and a
+ jr z, .asm_cc537
+ inc hl
+ inc hl
+ jr .asm_cc52f
+
+.asm_cc537
+ ld a, $28
+ ld [hli], a
+ ld a, $42
+ ld [hli], a
+ ld a, $29
+ ld [hli], a
+ ld a, $49
+ ld [hl], a
+
+ ld hl, $8730
+ ld de, $9060
+ ld a, $70
+ ld [$d419], a
+ ld a, $7
+ call Functioncc561
+ ld de, $9310
+ ld a, $60
+ ld [$d419], a
+ ld a, $6
+ call Functioncc561
+ ret
+
+; known jump sources: cc550 (33:4550), cc55d (33:455d), cc57b (33:457b)
+Functioncc561: ; cc561 (33:4561)
+ push af
+ push hl
+ push de
+ ld bc, $3301
+ call Request2bpp
+ pop de
+ ld a, [$d419]
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ ld bc, $10
+ add hl, bc
+ pop af
+ dec a
+ jr nz, Functioncc561
+ ret
+
+; no known jump sources
+BattleAnimCmd_DA: ; cc57e (33:457e)
+
+ ld hl, $d300
+.asm_cc581
+ ld a, [hl]
+ and a
+ jr z, .asm_cc589
+ inc hl
+ inc hl
+ jr .asm_cc581
+
+.asm_cc589
+ ld a, $28
+ ld [hli], a
+ ld a, $35
+ ld [hli], a
+ ld a, $29
+ ld [hli], a
+ ld a, $43
+ ld [hl], a
+
+ ld hl, $8660
+ ld de, $9050
+ ld a, $70
+ ld [$d419], a
+ ld a, $7
+ call Functioncc5b3
+ ld de, $9310
+ ld a, $60
+ ld [$d419], a
+ ld a, $6
+ call Functioncc5b3
+ ret
+
+; known jump sources: cc5a2 (33:45a2), cc5af (33:45af), cc5cd (33:45cd)
+Functioncc5b3: ; cc5b3 (33:45b3)
+ push af
+ push hl
+ push de
+ ld bc, $3302
+ call Request2bpp
+ pop de
+ ld a, [$d419]
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ ld bc, $20
+ add hl, bc
+ pop af
+ dec a
+ jr nz, Functioncc5b3
+ ret
+
+; no known jump sources
+BattleAnimCmd_DB: ; cc5d0 (33:45d0)
+ callab GetPokeBallWobble
+ ld a, c
+ ld [$d416], a
+ ret
+
+; no known jump sources
+BattleAnimCmd_E7: ; cc5db (33:45db)
+ ret
+
+; no known jump sources
+BattleAnimCmd_DC: ; cc5dc (33:45dc)
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, 1
+ ld [rSVBK], a ; $ff00+$70
+ ld a, [CurPartySpecies] ; $d108
+ push af
+
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and a
+ jr z, .player
+
+ ld a, [TempBattleMonSpecies] ; $d205
+ ld [CurPartySpecies], a ; $d108
+ ld hl, BattleMonDVs ; $c632
+ ld a, PREDEF_GET_UNOWN_LETTER
+ call Predef
+ ld de, $8000
+ ld a, $3c
+ call Predef
+ jr .done
+
+.player
+ ld a, [TempEnemyMonSpecies] ; $d204
+ ld [CurPartySpecies], a ; $d108
+ ld hl, EnemyMonDVs ; $d20c
+ ld a, PREDEF_GET_UNOWN_LETTER
+ call Predef
+ ld de, $8000
+ ld a, $3d
+ call Predef
+
+.done
+ pop af
+ ld [CurPartySpecies], a ; $d108
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+
+; no known jump sources
+BattleAnimCmd_E8: ; cc622 (33:4622)
+
+ ld de, $8000
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and a
+ jr z, .player
+
+ ld hl, $9000
+ ld b, 0
+ ld c, $31
+ call Request2bpp
+ ret
+
+.player
+ ld hl, $9310
+ ld b, 0
+ ld c, $24
+ call Request2bpp
+ ret
+
+; no known jump sources
+BattleAnimCmd_DD: ; cc640 (33:4640)
+
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, 1
+ ld [rSVBK], a ; $ff00+$70
+ xor a
+ call GetSRAMBank
+
+GetSubstitutePic: ; cc64c
+
+ ld hl, $a000
+ ld bc, $310
+.loop
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
+
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and a
+ jr z, .player
+
+ ld hl, MonsterSpriteGFX
+ ld de, $a000 + $130
+ call CopyMonsterSpriteTile
+ ld hl, MonsterSpriteGFX + $10
+ ld de, $a000 + $1a0
+ call CopyMonsterSpriteTile
+ ld hl, MonsterSpriteGFX + $20
+ ld de, $a000 + $140
+ call CopyMonsterSpriteTile
+ ld hl, MonsterSpriteGFX + $30
+ ld de, $a000 + $1b0
+ call CopyMonsterSpriteTile
+
+ ld hl, $9000
+ ld de, $a000
+ lb bc, BANK(GetSubstitutePic), 7 * 7
+ call Request2bpp
+ jr .done
+
+.player
+ ld hl, MonsterSpriteGFX + $40
+ ld de, $a000 + $100
+ call CopyMonsterSpriteTile
+ ld hl, MonsterSpriteGFX + $50
+ ld de, $a000 + $160
+ call CopyMonsterSpriteTile
+ ld hl, MonsterSpriteGFX + $60
+ ld de, $a000 + $110
+ call CopyMonsterSpriteTile
+ ld hl, MonsterSpriteGFX + $70
+ ld de, $a000 + $170
+ call CopyMonsterSpriteTile
+
+ ld hl, $9310
+ ld de, $a000
+ lb bc, BANK(GetSubstitutePic), 6 * 6
+ call Request2bpp
+
+.done
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+
+; known jump sources: cc663 (33:4663), cc66c (33:466c), cc675 (33:4675), cc67e (33:467e), cc695 (33:4695), cc69e (33:469e), cc6a7 (33:46a7), cc6b0 (33:46b0)
+CopyMonsterSpriteTile: ; cc6c6 (33:46c6)
+ ld bc, $10
+ ld a, BANK(MonsterSpriteGFX)
+ call FarCopyBytes
+ ret
+
+; no known jump sources
+BattleAnimCmd_E2: ; cc6cf (33:46cf)
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $1
+ ld [rSVBK], a ; $ff00+$70
+ xor a
+ call GetSRAMBank
+ call GetMinimizePic
+ call Request2bpp
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+
+; known jump sources: cc6da (33:46da), cc740 (33:4740)
+GetMinimizePic: ; cc6e7 (33:46e7)
+ ld hl, $a000
+ ld bc, $310
+.loop
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
+
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and a
+ jr z, .player
+
+ ld de, $a1a0
+ call CopyMinimizePic
+ ld hl, $9000
+ ld de, $a000
+ lb bc, BANK(GetMinimizePic), $31
+ ret
+
+.player
+ ld de, $a160
+ call CopyMinimizePic
+ ld hl, $9310
+ ld de, $a000
+ lb bc, BANK(GetMinimizePic), $24
+ ret
+
+; known jump sources: cc6fc (33:46fc), cc70c (33:470c)
+CopyMinimizePic: ; cc719 (33:4719)
+ ld hl, MinimizePic
+ ld bc, $10
+ ld a, BANK(MinimizePic)
+ call FarCopyBytes
+ ret
+; cc725 (33:4725)
+
+MinimizePic: ; cc725
+INCBIN "gfx/battle/minimize.2bpp"
+; cc735
+
+; no known jump sources
+BattleAnimCmd_E9: ; cc735 (33:4735)
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $1
+ ld [rSVBK], a ; $ff00+$70
+ xor a
+ call GetSRAMBank
+ call GetMinimizePic
+ ld hl, $8000
+ call Request2bpp
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+
+; no known jump sources
+BattleAnimCmd_DE: ; cc750 (33:4750)
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $1
+ ld [rSVBK], a ; $ff00+$70
+
+ ld a, [CurPartySpecies] ; $d108
+ push af
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and a
+ jr z, .player
+
+ callab Function3f486
+ jr .done
+
+.player
+ callab Function3f447
+
+.done
+ pop af
+ ld [CurPartySpecies], a ; $d108
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+
+; no known jump sources
+BattleAnimCmd_E6: ; cc776 (33:4776)
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $1
+ ld [rSVBK], a ; $ff00+$70
+ ld a, [CurPartySpecies] ; $d108
+ push af
+
+ ld a, [$c689]
+ ld [CurPartySpecies], a ; $d108
+
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and a
+ jr z, .player
+
+ ld hl, BattleMonDVs ; $c632
+ ld a, PREDEF_GET_UNOWN_LETTER
+ call Predef
+ ld de, $9000
+ ld a, $3c
+ call Predef
+ jr .done
+
+.player
+ ld hl, EnemyMonDVs ; $d20c
+ ld a, PREDEF_GET_UNOWN_LETTER
+ call Predef
+ ld de, $9310
+ ld a, $3d
+ call Predef
+
+.done
+ pop af
+ ld [CurPartySpecies], a ; $d108
+ ld b, $1
+ call GetSGBLayout
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+
+; no known jump sources
+BattleAnimCmd_E3: ; cc7bb (33:47bb)
+ xor a
+ ld [hOAMUpdate], a ; $ff00+$d8
+ ret
+
+; no known jump sources
+BattleAnimCmd_E4: ; cc7bf (33:47bf)
+ ld a, $1
+ ld [hOAMUpdate], a ; $ff00+$d8
+ ret
+
+; no known jump sources
+BattleAnimCmd_F4: ; cc7c4 (33:47c4)
+ ld hl, $d40f
+ set 3, [hl]
+ ret
+
+; no known jump sources
+BattleAnimCmd_F5: ; cc7ca (33:47ca)
+ ret
+
+; no known jump sources
+BattleAnimCmd_F6: ; cc7cb (33:47cb)
+ ret
+
+; no known jump sources
+BattleAnimCmd_F7: ; cc7cc (33:47cc)
+ ret
+
+; no known jump sources
+BattleAnimCmd_E0: ; cc7cd (33:47cd)
+ call GetBattleAnimByte
+ ld e, a
+ srl a
+ srl a
+ ld [$c2be], a
+ call Functioncc7fc
+ and 3
+ ld [CryTracks], a ; $c2bd
+
+ ld e, a
+ ld d, 0
+ ld hl, Datacc7f8
+ add hl, de
+ ld a, [hl]
+ ld [$c2bc], a
+
+ call GetBattleAnimByte
+ ld e, a
+ ld d, 0
+ callab PlayStereoSFX
+
+ ret
+; cc7f8 (33:47f8)
+
+Datacc7f8: ; cc7f8
+ db $f0, $0f, $f0, $0f
+; cc7fc
+
+; known jump sources: cc7d8 (33:47d8)
+Functioncc7fc: ; cc7fc (33:47fc)
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and a
+ jr nz, .enemy
+
+ ld a, e
+ ret
+
+.enemy
+ ld a, e
+ xor 1
+ ret
+
+; no known jump sources
+BattleAnimCmd_E1: ; cc807 (33:4807)
+ call GetBattleAnimByte
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, Datacc871
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, 1
+ ld [rSVBK], a ; $ff00+$70
+
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and a
+ jr nz, .enemy
+
+ ld a, $f0
+ ld [CryTracks], a ; $c2bd
+ ld a, [BattleMonSpecies] ; $c62c
+ jr .asm_cc834
+
+.enemy
+ ld a, $0f
+ ld [CryTracks], a ; $c2bd
+ ld a, [EnemyMonSpecies] ; $d206
+
+.asm_cc834
+ push hl
+ call Function37f3
+ pop hl
+ jr c, .done
+
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+
+ push hl
+ ld hl, CryPitch ; $c2b0
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+ ld a, l
+ ld [CryPitch], a ; $c2b0
+ ld a, h
+ ld [CryEcho], a ; $c2b1
+ pop hl
+
+ ld a, [hli]
+ ld c, a
+ ld b, [hl]
+ ld hl, CryLength ; $c2b2
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+
+ ld a, l
+ ld [CryLength], a ; $c2b2
+ ld a, h
+ ld [CryLength + 1], a
+ ld a, 1
+ ld [$c2bc], a
+
+ callab PlayCry
+
+.done
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+; cc871 (33:4871)
+
+Datacc871: ; cc871
+; +pitch, +echo, +length
+ db $00, $00, $c0, $00
+ db $00, $00, $40, $00
+ db $00, $00, $00, $00
+ db $00, $00, $00, $00
+; cc881
+
+
+Functioncc881: ; cc881
+ ld a, [$cfca]
+ cp $1
+ jr z, .asm_cc88b
+ cp $4
+ ret nz
+
+.asm_cc88b
+ ld a, [TypeModifier]
+ and $7f
+ ret z
+
+ cp 10
+ ld de, SFX_DAMAGE
+ jr z, .play
+
+ ld de, SFX_SUPER_EFFECTIVE
+ jr nc, .play
+
+ ld de, SFX_NOT_VERY_EFFECTIVE
+
+.play
+ call PlaySFX
+ ret
+; cc8a4
+
+BattleAnimAssignPals: ; cc8a4
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_cc8be
+ ld a, [hSGB]
+ and a
+ ld a, $e0
+ jr z, .asm_cc8b2
+ ld a, $f0
+
+.asm_cc8b2
+ ld [$cfc8], a
+ ld a, $e4
+ ld [$cfc7], a
+ ld [$cfc9], a
+ ret
+
+.asm_cc8be
+ ld a, $e4
+ ld [$cfc7], a
+ ld [$cfc8], a
+ ld [$cfc9], a
+ call DmgToCgbBGPals
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ ret
+; cc8d3
+
+Functioncc8d3: ; cc8d3
+ ld hl, LYOverrides
+ ld bc, $0354
+.asm_cc8d9
+ ld [hl], $0
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_cc8d9
+ ld hl, FXAnimIDLo
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $506f
+ add hl, de
+ add hl, de
+ call Function3ae1
+ call BattleAnimAssignPals
+ call BattleAnimDelayFrame
+ ret
+; cc8f6
+
+Functioncc8f6: ; cc8f6
+ call WaitTop
+ ld a, $e4
+ ld [$cfc7], a
+ ld [$cfc8], a
+ ld [$cfc9], a
+ call DmgToCgbBGPals
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ call BattleAnimDelayFrame
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; cc91a
+
+Functioncc91a: ; cc91a
+ ld [rBGP], a
+ ld a, [hCGB]
+ and a
+ ret z
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d080
+ ld de, $d000
+ ld a, [rBGP]
+ ld b, a
+ ld c, $7
+ call CopyPals
+ ld hl, $d0c0
+ ld de, MartPointer
+ ld a, [rBGP]
+ ld b, a
+ ld c, $2
+ call CopyPals
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; cc94b
+
+Functioncc94b: ; cc94b
+ ld [rOBP0], a
+ ld a, [hCGB]
+ and a
+ ret z
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d0d0
+ ld de, $d050
+ ld a, [rOBP0]
+ ld b, a
+ ld c, $2
+ call CopyPals
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; cc96e
+
+Functioncc96e: ; cc96e
+ ld a, $0
+ ld [$d418], a
+ ld hl, $d30a
+ ld e, $a
+.asm_cc978
+ ld a, [hl]
+ and a
+ jr z, .asm_cc98a
+ ld c, l
+ ld b, h
+ push hl
+ push de
+ call Functionccfbe
+ call Functioncca09
+ pop de
+ pop hl
+ jr c, .asm_cc9a0
+
+.asm_cc98a
+ ld bc, $0018
+ add hl, bc
+ dec e
+ jr nz, .asm_cc978
+ ld a, [$d418]
+ ld l, a
+ ld h, $c4
+.asm_cc997
+ ld a, l
+ cp $a0
+ jr nc, .asm_cc9a0
+ xor a
+ ld [hli], a
+ jr .asm_cc997
+
+.asm_cc9a0
+ ret
+; cc9a1
+
+
diff --git a/battle/anim_gfx.asm b/battle/anim_gfx.asm
new file mode 100644
index 000000000..be318332d
--- /dev/null
+++ b/battle/anim_gfx.asm
@@ -0,0 +1,42 @@
+AnimObj00GFX: ; 84a2e
+AnimObj01GFX: INCBIN "gfx/fx/001.lz"
+AnimObj02GFX: INCBIN "gfx/fx/002.lz"
+AnimObj03GFX: INCBIN "gfx/fx/003.lz"
+AnimObj04GFX: INCBIN "gfx/fx/004.lz"
+AnimObj05GFX: INCBIN "gfx/fx/005.lz"
+AnimObj07GFX: INCBIN "gfx/fx/007.lz"
+AnimObj08GFX: INCBIN "gfx/fx/008.lz"
+AnimObj10GFX: INCBIN "gfx/fx/010.lz"
+AnimObj09GFX: INCBIN "gfx/fx/009.lz"
+AnimObj12GFX: INCBIN "gfx/fx/012.lz"
+AnimObj06GFX: INCBIN "gfx/fx/006.lz"
+AnimObj11GFX: INCBIN "gfx/fx/011.lz"
+AnimObj13GFX: INCBIN "gfx/fx/013.lz"
+AnimObj14GFX: INCBIN "gfx/fx/014.lz"
+AnimObj24GFX: INCBIN "gfx/fx/024.lz"
+AnimObj15GFX: INCBIN "gfx/fx/015.lz"
+AnimObj16GFX: INCBIN "gfx/fx/016.lz"
+AnimObj17GFX: INCBIN "gfx/fx/017.lz"
+AnimObj18GFX: INCBIN "gfx/fx/018.lz"
+AnimObj19GFX: INCBIN "gfx/fx/019.lz"
+AnimObj20GFX: INCBIN "gfx/fx/020.lz"
+AnimObj22GFX: INCBIN "gfx/fx/022.lz"
+AnimObj21GFX: INCBIN "gfx/fx/021.lz"
+AnimObj23GFX: INCBIN "gfx/fx/023.lz"
+AnimObj26GFX: INCBIN "gfx/fx/026.lz"
+AnimObj27GFX: INCBIN "gfx/fx/027.lz"
+AnimObj28GFX: INCBIN "gfx/fx/028.lz"
+AnimObj29GFX: INCBIN "gfx/fx/029.lz"
+AnimObj30GFX: INCBIN "gfx/fx/030.lz"
+AnimObj31GFX: INCBIN "gfx/fx/031.lz"
+AnimObj32GFX: INCBIN "gfx/fx/032.lz"
+AnimObj33GFX: INCBIN "gfx/fx/033.lz"
+AnimObj34GFX: INCBIN "gfx/fx/034.lz"
+AnimObj25GFX: INCBIN "gfx/fx/025.lz"
+AnimObj35GFX: INCBIN "gfx/fx/035.lz"
+AnimObj36GFX: INCBIN "gfx/fx/036.lz"
+AnimObj37GFX: INCBIN "gfx/fx/037.lz"
+AnimObj38GFX: INCBIN "gfx/fx/038.lz"
+AnimObj39GFX: INCBIN "gfx/fx/039.lz"
+; 8640e
+
diff --git a/battle/anim_objects.asm b/battle/anim_objects.asm
new file mode 100644
index 000000000..98e61a574
--- /dev/null
+++ b/battle/anim_objects.asm
@@ -0,0 +1,5092 @@
+; Objects used in battle animations.
+
+
+; known jump sources: cc437 (33:4437)
+Functioncc9a1: ; cc9a1 (33:49a1)
+ ld hl, $d30a
+ ld e, $a
+.asm_cc9a6
+ ld a, [hl]
+ and a
+ jr z, .asm_cc9b3
+ ld bc, $18
+ add hl, bc
+ dec e
+ jr nz, .asm_cc9a6
+ scf
+ ret
+.asm_cc9b3
+ ld c, l
+ ld b, h
+ ld hl, $d40e
+ inc [hl]
+ call Functioncc9c4
+ ret
+
+
+Functioncc9bd: ; cc9bd
+ ld hl, $0000
+ add hl, bc
+ ld [hl], $0
+ ret
+; cc9c4
+
+
+; known jump sources: cc9b9 (33:49b9)
+Functioncc9c4: ; cc9c4 (33:49c4)
+ ld a, [$d419]
+ ld e, a
+ ld d, $0
+ ld hl, $4b56
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $0
+ add hl, bc
+ ld a, [$d40e]
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ call Functionccb31
+ ld [hli], a
+ ld a, [$d41a]
+ ld [hli], a
+ ld a, [$d41b]
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld a, [$d41c]
+ ld [hli], a
+ xor a
+ ld [hli], a
+ dec a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ret
+
+
+Functioncca09: ; cca09
+ call Functionccaaa
+ call Functionce7d1
+ cp EGG
+ jp z, .asm_ccaa5
+ cp NUM_POKEMON + 1
+ jp z, .asm_ccaa2
+ push af
+ ld hl, $d419
+ ld a, [$d420]
+ xor [hl]
+ and $e0
+ ld [hl], a
+ pop af
+ push bc
+ call Functionce83c
+ ld a, [$d41b]
+ add [hl]
+ ld [$d41b], a
+ inc hl
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d418]
+ ld e, a
+ ld d, $c4
+.asm_cca3c
+ ld a, [$d41d]
+ ld b, a
+ ld a, [$d41f]
+ add b
+ ld b, a
+ push hl
+ ld a, [hl]
+ ld hl, $d419
+ bit 6, [hl]
+ jr z, .asm_cca53
+ add $8
+ xor $ff
+ inc a
+
+.asm_cca53
+ pop hl
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [$d41c]
+ ld b, a
+ ld a, [$d41e]
+ add b
+ ld b, a
+ push hl
+ ld a, [hl]
+ ld hl, $d419
+ bit 5, [hl]
+ jr z, .asm_cca6f
+ add $8
+ xor $ff
+ inc a
+
+.asm_cca6f
+ pop hl
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [$d41b]
+ add $31
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [$d419]
+ ld b, a
+ ld a, [hl]
+ xor b
+ and $e0
+ ld b, a
+ ld a, [hl]
+ and $10
+ or b
+ ld b, a
+ ld a, [OTPartyMon6Nickname]
+ and $f
+ or b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, e
+ ld [$d418], a
+ cp $a0
+ jr nc, .asm_ccaa7
+ dec c
+ jr nz, .asm_cca3c
+ pop bc
+ jr .asm_ccaa5
+
+.asm_ccaa2
+ call Functioncc9bd
+
+.asm_ccaa5
+ and a
+ ret
+
+.asm_ccaa7
+ pop bc
+ scf
+ ret
+; ccaaa
+
+Functionccaaa: ; ccaaa
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ and $80
+ ld [$d419], a
+ xor a
+ ld [$d420], a
+ ld hl, $0005
+ add hl, bc
+ ld a, [hl]
+ ld [OTPartyMon6Nickname], a
+ ld hl, $0002
+ add hl, bc
+ ld a, [hl]
+ ld [$d41a], a
+ ld hl, $0006
+ add hl, bc
+ ld a, [hli]
+ ld [$d41b], a
+ ld a, [hli]
+ ld [$d41c], a
+ ld a, [hli]
+ ld [$d41d], a
+ ld a, [hli]
+ ld [$d41e], a
+ ld a, [hli]
+ ld [$d41f], a
+ ld a, [hBattleTurn]
+ and a
+ ret z
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ ld [$d419], a
+ bit 0, [hl]
+ ret z
+ ld hl, $0007
+ add hl, bc
+ ld a, [hli]
+ ld d, a
+ ld a, $b4
+ sub d
+ ld [$d41c], a
+ ld a, [hli]
+ ld d, a
+ ld a, [$d41a]
+ cp $ff
+ jr nz, .asm_ccb09
+ ld a, $28
+ add d
+ jr .asm_ccb26
+
+.asm_ccb09
+ sub d
+ push af
+ ld a, [FXAnimIDHi]
+ or a
+ jr nz, .asm_ccb25
+ ld a, [FXAnimIDLo]
+ cp $86
+ jr z, .asm_ccb20
+ cp $87
+ jr z, .asm_ccb20
+ cp $d0
+ jr nz, .asm_ccb25
+
+.asm_ccb20
+ pop af
+ sub $8
+ jr .asm_ccb26
+
+.asm_ccb25
+ pop af
+
+.asm_ccb26
+ ld [$d41d], a
+ ld a, [hli]
+ xor $ff
+ inc a
+ ld [$d41e], a
+ ret
+; ccb31
+
+
+; known jump sources: cc9ed (33:49ed)
+Functionccb31: ; ccb31 (33:4b31)
+ push hl
+ push bc
+ ld hl, $d300
+ ld b, a
+ ld c, $5
+.asm_ccb39
+ ld a, [hli]
+ cp b
+ jr z, .asm_ccb44
+ inc hl
+ dec c
+ jr nz, .asm_ccb39
+ xor a
+ jr .asm_ccb45
+.asm_ccb44
+ ld a, [hl]
+.asm_ccb45
+ pop bc
+ pop hl
+ ret
+
+
+Functionccb48: ; ccb48
+ callab Functionc8000
+ ret
+; ccb4f
+
+
+; known jump sources: cc453 (33:4453)
+Functionccb4f: ; ccb4f (33:4b4f)
+ callab Functionc801a
+ ret
+; ccb56 (33:4b56)
+
+INCBIN "baserom.gbc",$ccb56,$ccfbe - $ccb56
+
+
+Functionccfbe: ; ccfbe
+ ld hl, $0004
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, $4fce
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; ccfce
+
+
+; no known jump sources
+Jumptable_ccfce: ; ccfce (33:4fce)
+ dw Functioncd06e
+ dw Functioncd12a
+ dw Functioncd146
+ dw Functioncd0e3
+ dw Functioncd0a6
+ dw Functioncd081
+ dw Functioncd079
+ dw Functioncd2be
+ dw Functioncd306
+ dw Functioncd3ae
+ dw Functioncd3f2
+ dw Functioncd478
+ dw Functioncd5e9
+ dw Functioncd66a
+ dw Functioncd6e3
+ dw Functioncd71a
+ dw Functioncd284
+ dw Functioncd777
+ dw Functioncd15c
+ dw Functioncd212
+ dw Functioncd7a4
+ dw Functioncd80c
+ dw Functioncd824
+ dw Functioncd89a
+ dw Functioncd900
+ dw Functioncd954
+ dw Functioncdafa
+ dw Functioncdb06
+ dw Functioncda0a
+ dw Functioncdb80
+ dw Functioncdca6
+ dw Functioncda31
+ dw Functioncda4d
+ dw Functioncdcc3
+ dw Functioncdd2a
+ dw Functioncdd90
+ dw Functioncddf9
+ dw Functioncde28
+ dw Functioncde54
+ dw Functioncde6b
+ dw Functioncde89
+ dw Functioncdedd
+ dw Functioncdf59
+ dw Functionce063
+ dw Functionce0c5
+ dw Functioncdf1b
+ dw Functionce10e
+ dw Functionce15c
+ dw Functionce1e7
+ dw Functionce226
+ dw Functionce255
+ dw Functionce2cc
+ dw Functioncdf8c
+ dw Functionce00b
+ dw Functionce2fd
+ dw Functionce35f
+ dw Functionce389
+ dw Functionce3b4
+ dw Functionce3d2
+ dw Functionce3ff
+ dw Functioncdfcb
+ dw Functionce416
+ dw Functionce43a
+ dw Functioncdad6
+ dw Functionce49c
+ dw Functionce4dc
+ dw Functionce1b0
+ dw Functionce508
+ dw Functionce532
+ dw Functionce55b
+ dw Functionce593
+ dw Functionce5b4
+ dw Functionce5dc
+ dw Functionce5ee
+ dw Functionce62f
+ dw Functionce688
+ dw Functionce6b3
+ dw Functionce6d2
+ dw Functioncd58a
+ dw Functionce6bf
+
+
+; no known jump sources
+Functioncd06e: ; cd06e (33:506e)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd071: ; cd071 (33:5071)
+ dw Functioncd078
+ dw Functioncd075
+
+
+; no known jump sources
+Functioncd075: ; cd075 (33:5075)
+ call Functioncc9bd
+
+; no known jump sources
+Functioncd078: ; cd078 (33:5078)
+ ret
+
+; no known jump sources
+Functioncd079: ; cd079 (33:5079)
+ call Functioncd081
+ ret c
+ call Functioncc9bd
+ ret
+
+; known jump sources: cd079 (33:5079), cd17e (33:517e), cd22b (33:522b)
+Functioncd081: ; cd081 (33:5081)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ ret nc
+ add $2
+ ld [hl], a
+ ld hl, $8
+ add hl, bc
+ dec [hl]
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld hl, $b
+ add hl, bc
+ ld d, [hl]
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ scf
+ ret
+
+; no known jump sources
+Functioncd0a6: ; cd0a6 (33:50a6)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr c, .asm_cd0b3
+ call Functioncc9bd
+ ret
+.asm_cd0b3
+ add $2
+ ld [hl], a
+ ld hl, $8
+ add hl, bc
+ dec [hl]
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ inc [hl]
+ inc [hl]
+ ld d, $10
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ sra a
+ sra a
+ sra a
+ sra a
+ ld [hl], a
+ ret
+
+; known jump sources: cdafa (33:5afa)
+Functioncd0e3: ; cd0e3 (33:50e3)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd0e6: ; cd0e6 (33:50e6)
+ dw Functioncd0ea
+ dw Functioncd106
+
+
+; no known jump sources
+Functioncd0ea: ; cd0ea (33:50ea)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ bit 7, [hl]
+ ld a, $0
+ jr z, .asm_cd0f9
+ ld a, $20
+.asm_cd0f9
+ ld hl, $f
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+
+; no known jump sources
+Functioncd106: ; cd106 (33:5106)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld hl, $b
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ ret
+
+; no known jump sources
+Functioncd12a: ; cd12a (33:512a)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd12d: ; cd12d (33:512d)
+ dw Functioncd135
+ dw Functioncd131
+
+
+; no known jump sources
+Functioncd131: ; cd131 (33:5131)
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncd135: ; cd135 (33:5135)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ ret nc
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+; no known jump sources
+Functioncd146: ; cd146 (33:5146)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr nc, .asm_cd158
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+.asm_cd158
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncd15c: ; cd15c (33:515c)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd15f: ; cd15f (33:515f)
+ dw Functioncd177
+ dw Functioncd17e
+ dw Functioncd1dc
+ dw Functioncd196
+ dw Functioncd1a7
+ dw Functioncd1dc
+ dw Functioncd1d2
+ dw Functioncd1dd
+ dw Functioncd1ee
+ dw Functioncd1dc
+ dw Functioncd1ee
+ dw Functioncd20e
+
+
+; no known jump sources
+Functioncd177: ; cd177 (33:5177)
+ call Functioncd249
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncd17e: ; cd17e (33:517e)
+ call Functioncd081
+ ret c
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ ld hl, $8
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ld a, $b
+ call Functionce7bf
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncd196: ; cd196 (33:5196)
+ call Functionce72c
+ ld a, $9
+ call Functionce7bf
+ ld hl, $f
+ add hl, bc
+ ld [hl], $0
+ inc hl
+ ld [hl], $10
+
+; no known jump sources
+Functioncd1a7: ; cd1a7 (33:51a7)
+ ld hl, $f
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ dec a
+ ld [hl], a
+ and $1f
+ ret nz
+ ld [hl], a
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ sub $4
+ ld [hl], a
+ ret nz
+ ld a, $c
+ call Functionce7bf
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncd1d2: ; cd1d2 (33:51d2)
+ ld a, $d
+ call Functionce7bf
+ ld hl, $e
+ add hl, bc
+ dec [hl]
+
+; no known jump sources
+Functioncd1dc: ; cd1dc (33:51dc)
+ ret
+
+; no known jump sources
+Functioncd1dd: ; cd1dd (33:51dd)
+ call Functioncd249
+ ld a, $a
+ call Functionce7bf
+ call Functionce72c
+ ld hl, $10
+ add hl, bc
+ ld [hl], $20
+
+; no known jump sources
+Functioncd1ee: ; cd1ee (33:51ee)
+ ld hl, $f
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ dec a
+ ld [hl], a
+ and $1f
+ jr z, Functioncd20e
+ and $f
+ ret nz
+ call Functionce72c
+ ret
+
+; known jump sources: cd205 (33:5205)
+Functioncd20e: ; cd20e (33:520e)
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncd212: ; cd212 (33:5212)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd215: ; cd215 (33:5215)
+ dw Functioncd21b
+ dw Functioncd222
+ dw Functioncd232
+
+
+; no known jump sources
+Functioncd21b: ; cd21b (33:521b)
+ call Functioncd249
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncd222: ; cd222 (33:5222)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $70
+ jr nc, .asm_cd22f
+ call Functioncd081
+ ret
+.asm_cd22f
+ call Functionce72c
+
+; no known jump sources
+Functioncd232: ; cd232 (33:5232)
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .asm_cd245
+ add $4
+ ld [hl], a
+ ld hl, $7
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ ret
+.asm_cd245
+ call Functioncc9bd
+ ret
+
+; known jump sources: cd177 (33:5177), cd1dd (33:51dd), cd21b (33:521b)
+Functioncd249: ; cd249 (33:5249)
+ ld hl, $526c
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $1
+ ld [rSVBK], a ; $ff00+$70
+ ld a, [CurItem] ; $d106
+ ld e, a
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+.asm_cd25a
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_cd265
+ cp e
+ jr z, .asm_cd265
+ inc hl
+ jr .asm_cd25a
+.asm_cd265
+ ld a, [hl]
+ ld hl, $5
+ add hl, bc
+ ld [hl], a
+ ret
+; cd26c (33:526c)
+
+INCBIN "baserom.gbc",$cd26c,$cd284 - $cd26c
+
+; no known jump sources
+Functioncd284: ; cd284 (33:5284)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd287: ; cd287 (33:5287)
+ dw Functioncd291
+ dw Functioncd2a0
+ dw Functioncd2b1
+ dw Functioncd2b5
+ dw Functioncd2bd
+
+
+; no known jump sources
+Functioncd291: ; cd291 (33:5291)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ swap a
+ and $f
+ ld hl, $e
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncd2a0: ; cd2a0 (33:52a0)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ ret nc
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+; no known jump sources
+Functioncd2b1: ; cd2b1 (33:52b1)
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncd2b5: ; cd2b5 (33:52b5)
+ call Functionce72c
+ ld a, $f
+ call Functionce7bf
+
+; no known jump sources
+Functioncd2bd: ; cd2bd (33:52bd)
+ ret
+
+; no known jump sources
+Functioncd2be: ; cd2be (33:52be)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd2c1: ; cd2c1 (33:52c1)
+ dw Functioncd2c5
+ dw Functioncd2d1
+
+
+; no known jump sources
+Functioncd2c5: ; cd2c5 (33:52c5)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $30
+ inc hl
+ ld [hl], $48
+
+; no known jump sources
+Functioncd2d1: ; cd2d1 (33:52d1)
+ ld hl, $f
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+ ld hl, $f
+ add hl, bc
+ ld [hl], $20
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ ld hl, $b
+ add hl, bc
+ sub [hl]
+ jr z, .asm_cd302
+ jr c, .asm_cd302
+ ld hl, $10
+ add hl, bc
+ ld [hl], a
+ ret
+.asm_cd302
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncd306: ; cd306 (33:5306)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd309: ; cd309 (33:5309)
+ dw Functioncd311
+ dw Functioncd321
+ dw Functioncd32a
+ dw Functioncd37d
+
+
+; no known jump sources
+Functioncd311: ; cd311 (33:5311)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .asm_cd31e
+ call Functioncd38e
+ ret
+.asm_cd31e
+ call Functionce72c
+
+; no known jump sources
+Functioncd321: ; cd321 (33:5321)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $0
+
+; no known jump sources
+Functioncd32a: ; cd32a (33:532a)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ cp $40
+ jr nc, .asm_cd363
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ call Functionce732
+ sub $18
+ sra a
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ call Functionce734
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, $f
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+.asm_cd363
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ jr z, .asm_cd37a
+ sub $10
+ ld d, a
+ ld a, [hl]
+ and $f
+ or d
+ ld [hl], a
+ ld hl, $e
+ add hl, bc
+ dec [hl]
+ ret
+.asm_cd37a
+ call Functionce72c
+
+; no known jump sources
+Functioncd37d: ; cd37d (33:537d)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $b0
+ jr c, .asm_cd38a
+ call Functioncc9bd
+ ret
+.asm_cd38a
+ call Functioncd38e
+ ret
+
+; known jump sources: cd31a (33:531a), cd38a (33:538a)
+Functioncd38e: ; cd38e (33:538e)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, $7
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld e, a
+ srl e
+ ld hl, $8
+ add hl, bc
+.asm_cd3a9
+ dec [hl]
+ dec e
+ jr nz, .asm_cd3a9
+ ret
+
+; no known jump sources
+Functioncd3ae: ; cd3ae (33:53ae)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd3b1: ; cd3b1 (33:53b1)
+ dw Functioncd3b7
+ dw Functioncd3cc
+ dw Functioncd3ee
+
+
+; no known jump sources
+Functioncd3b7: ; cd3b7 (33:53b7)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $0
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+
+; no known jump sources
+Functioncd3cc: ; cd3cc (33:53cc)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cd3d6
+ dec [hl]
+ ret
+.asm_cd3d6
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ swap a
+ and $f
+ ld hl, $f
+ add hl, bc
+ ld [hl], a
+ ld hl, $9
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncd3ee: ; cd3ee (33:53ee)
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncd3f2: ; cd3f2 (33:53f2)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd3f5: ; cd3f5 (33:53f5)
+ dw Functioncd409
+ dw Functioncd45c
+ dw Functioncd467
+ dw Functioncd472
+ dw Functioncd462
+ dw Functioncd46d
+ dw Functioncd477
+ dw Functioncd41d
+ dw Functioncd437
+ dw Functioncd458
+
+
+; no known jump sources
+Functioncd409: ; cd409 (33:5409)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld hl, $e
+ add hl, bc
+ ld [hl], a
+ cp $7
+ jr z, Functioncd41d
+ ld a, $11
+ call Functionce7bf
+ ret
+
+; known jump sources: cd415 (33:5415)
+Functioncd41d: ; cd41d (33:541d)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr nc, .asm_cd42f
+ add $2
+ ld [hl], a
+ ld hl, $8
+ add hl, bc
+ dec [hl]
+ ret
+.asm_cd42f
+ call Functionce72c
+ ld a, $10
+ call Functionce7bf
+
+; no known jump sources
+Functioncd437: ; cd437 (33:5437)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ ret
+
+; no known jump sources
+Functioncd458: ; cd458 (33:5458)
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncd45c: ; cd45c (33:545c)
+ ld hl, $a
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functioncd462: ; cd462 (33:5462)
+ ld hl, $a
+ add hl, bc
+ inc [hl]
+
+; no known jump sources
+Functioncd467: ; cd467 (33:5467)
+ ld hl, $9
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functioncd46d: ; cd46d (33:546d)
+ ld hl, $a
+ add hl, bc
+ inc [hl]
+
+; no known jump sources
+Functioncd472: ; cd472 (33:5472)
+ ld hl, $9
+ add hl, bc
+ inc [hl]
+
+; no known jump sources
+Functioncd477: ; cd477 (33:5477)
+ ret
+
+; no known jump sources
+Functioncd478: ; cd478 (33:5478)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd47b: ; cd47b (33:547b)
+ dw Functioncd48d
+ dw Functioncd496
+ dw Functioncd4ee
+ dw Functioncd53a
+ dw Functioncd545
+ dw Functioncd545
+ dw Functioncd545
+ dw Functioncd545
+ dw Functioncd549
+
+
+; no known jump sources
+Functioncd48d: ; cd48d (33:548d)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $40
+
+; no known jump sources
+Functioncd496: ; cd496 (33:5496)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr nc, .asm_cd4bc
+ call Functionce72c
+ xor a
+ ld hl, $f
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ld a, $17
+ call Functionce7bf
+ ld hl, $b
+ add hl, bc
+ bit 6, [hl]
+ ret z
+ ld hl, $d
+ add hl, bc
+ ld [hl], $5
+ ret
+.asm_cd4bc
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld d, a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ call Functioncd557
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ ld hl, $7
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $7
+ add hl, bc
+ ld [hl], d
+ ld hl, $10
+ add hl, bc
+ ld [hl], e
+ ret
+
+; no known jump sources
+Functioncd4ee: ; cd4ee (33:54ee)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr nz, .asm_cd4fb
+ call Functioncc9bd
+ ret
+.asm_cd4fb
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call Functionce734
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ bit 6, [hl]
+ jr nz, .asm_cd519
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ jr .asm_cd51e
+.asm_cd519
+ ld hl, $f
+ add hl, bc
+ dec [hl]
+.asm_cd51e
+ ld de, $80
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ ld hl, $a
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $a
+ add hl, bc
+ ld [hl], d
+ ld hl, $10
+ add hl, bc
+ ld [hl], e
+ ret
+
+; no known jump sources
+Functioncd53a: ; cd53a (33:553a)
+ ld a, $16
+ call Functionce7bf
+ ld hl, $1
+ add hl, bc
+ res 5, [hl]
+
+; no known jump sources
+Functioncd545: ; cd545 (33:5545)
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncd549: ; cd549 (33:5549)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $c0
+ ret nc
+ ld a, $8
+ call Functionce70a
+ ret
+
+; known jump sources: cd4d2 (33:54d2), cd5cd (33:55cd)
+Functioncd557: ; cd557 (33:5557)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ bit 7, a
+ jr nz, .asm_cd574
+ cp $20
+ jr nc, .asm_cd570
+ cp $18
+ jr nc, .asm_cd56c
+ ld de, $200
+ ret
+.asm_cd56c
+ ld de, $180
+ ret
+.asm_cd570
+ ld de, $100
+ ret
+.asm_cd574
+ and $3f
+ cp $20
+ jr nc, .asm_cd586
+ cp $18
+ jr nc, .asm_cd582
+ ld de, $fe00
+ ret
+.asm_cd582
+ ld de, $fe80
+ ret
+.asm_cd586
+ ld de, rJOYP ; $ff00
+ ret
+
+; no known jump sources
+Functioncd58a: ; cd58a (33:558a)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd58d: ; cd58d (33:558d)
+ dw Functioncd591
+ dw Functioncd5aa
+
+
+; no known jump sources
+Functioncd591: ; cd591 (33:5591)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $40
+ rlca
+ rlca
+ add $19
+ ld hl, $3
+ add hl, bc
+ ld [hl], a
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $40
+
+; no known jump sources
+Functioncd5aa: ; cd5aa (33:55aa)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr nc, .asm_cd5b7
+ call Functioncc9bd
+ ret
+.asm_cd5b7
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld d, a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ call Functioncd557
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ ld hl, $7
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $7
+ add hl, bc
+ ld [hl], d
+ ld hl, $10
+ add hl, bc
+ ld [hl], e
+ ret
+
+; no known jump sources
+Functioncd5e9: ; cd5e9 (33:55e9)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd5ec: ; cd5ec (33:55ec)
+ dw Functioncd5f2
+ dw Functioncd5fb
+ dw Functioncd61b
+
+
+; no known jump sources
+Functioncd5f2: ; cd5f2 (33:55f2)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $c
+
+; no known jump sources
+Functioncd5fb: ; cd5fb (33:55fb)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cd60d
+ dec [hl]
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+.asm_cd60d
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $0
+ ld a, $22
+ call Functionce7bf
+
+; no known jump sources
+Functioncd61b: ; cd61b (33:561b)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $98
+ jr nc, .asm_cd63f
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld hl, $7
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ ld de, $60
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $f
+ add hl, bc
+ ld [hl], e
+ ld hl, $7
+ add hl, bc
+ ld [hl], d
+.asm_cd63f
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ ret c
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ ld e, a
+ ld d, $ff
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ ld hl, $8
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $10
+ add hl, bc
+ ld [hl], e
+ ld hl, $8
+ add hl, bc
+ ld [hl], d
+ ret
+
+; no known jump sources
+Functioncd66a: ; cd66a (33:566a)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd66d: ; cd66d (33:566d)
+ dw Functioncd677
+ dw Functioncd687
+ dw Functioncd6c5
+ dw Functioncd6c6
+ dw Functioncd6d6
+
+
+; no known jump sources
+Functioncd677: ; cd677 (33:5677)
+ call Functionce72c
+ ld a, $42
+ ld [hLCDStatCustom], a ; $ff00+$c6
+ ld a, $58
+ ld [$FF00+$c7], a
+ ld a, $5e
+ ld [$FF00+$c8], a
+ ret
+
+; no known jump sources
+Functioncd687: ; cd687 (33:5687)
+ ld hl, $b
+ add hl, bc
+ ld e, [hl]
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ cp e
+ jr nc, .asm_cd69b
+ call Functionce72c
+ xor a
+ ld [$FF00+$c7], a
+ ret
+.asm_cd69b
+ dec a
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $8
+ add hl, bc
+ add [hl]
+ sub $10
+ ret c
+ ld [$FF00+$c7], a
+ ld hl, $9
+ add hl, bc
+ ld a, [hl]
+ inc a
+ and $7
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ inc [hl]
+
+; no known jump sources
+Functioncd6c5: ; cd6c5 (33:56c5)
+ ret
+
+; no known jump sources
+Functioncd6c6: ; cd6c6 (33:56c6)
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ cp $70
+ jr c, asm_cd6da
+ xor a
+ ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [$FF00+$c7], a
+ ld [$FF00+$c8], a
+
+; no known jump sources
+Functioncd6d6: ; cd6d6 (33:56d6)
+ call Functioncc9bd
+ ret
+asm_cd6da: ; cd6da (33:56da)
+ inc a
+ inc a
+ ld [hl], a
+ sub $10
+ ret c
+ ld [$FF00+$c7], a
+ ret
+
+; no known jump sources
+Functioncd6e3: ; cd6e3 (33:56e3)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd6e6: ; cd6e6 (33:56e6)
+ dw Functioncd6ea
+ dw Functioncd6f7
+
+
+; no known jump sources
+Functioncd6ea: ; cd6ea (33:56ea)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ ld a, $24
+ add [hl]
+ call Functionce7bf
+
+; no known jump sources
+Functioncd6f7: ; cd6f7 (33:56f7)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $b8
+ jr c, .asm_cd704
+ call Functioncc9bd
+ ret
+.asm_cd704
+ ld a, $2
+ call Functionce70a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld d, $8
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncd71a: ; cd71a (33:571a)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd71d: ; cd71d (33:571d)
+ dw Functioncd725
+ dw Functioncd728
+ dw Functioncd763
+ dw Functioncd776
+
+
+; no known jump sources
+Functioncd725: ; cd725 (33:5725)
+ call Functionce72c
+
+; no known jump sources
+Functioncd728: ; cd728 (33:5728)
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_cd747
+ ld a, $2
+ call Functionce70a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld d, $8
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ret
+.asm_cd747
+ call Functionce72c
+ ld a, $28
+ call Functionce7bf
+ ld hl, $a
+ add hl, bc
+ ld [hl], $0
+ ld hl, $8
+ add hl, bc
+ ld [hl], $30
+ ld hl, $1
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ld [hl], a
+
+; no known jump sources
+Functioncd763: ; cd763 (33:5763)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ cp $18
+ jr nc, .asm_cd76e
+ inc [hl]
+ ret
+.asm_cd76e
+ call Functionce72c
+ ld a, $29
+ call Functionce7bf
+
+; no known jump sources
+Functioncd776: ; cd776 (33:5776)
+ ret
+
+; no known jump sources
+Functioncd777: ; cd777 (33:5777)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ cp $38
+ jr c, .asm_cd784
+ call Functioncc9bd
+ ret
+.asm_cd784
+ ld a, [hl]
+ ld hl, $f
+ add hl, bc
+ ld l, [hl]
+ ld h, a
+ ld de, $80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $f
+ add hl, bc
+ ld [hl], e
+ ld hl, $a
+ add hl, bc
+ ld [hl], d
+ ld hl, $9
+ add hl, bc
+ ld a, [hl]
+ xor $10
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncd7a4: ; cd7a4 (33:57a4)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd7a7: ; cd7a7 (33:57a7)
+ dw Functioncd7ab
+ dw Functioncd7d2
+
+
+; no known jump sources
+Functioncd7ab: ; cd7ab (33:57ab)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ ld hl, $10
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f
+ sla a
+ sla a
+ sla a
+ ld hl, $f
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld [hl], $1
+
+; no known jump sources
+Functioncd7d2: ; cd7d2 (33:57d2)
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_cd7de
+ call Functioncc9bd
+ ret
+.asm_cd7de
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld hl, $10
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ xor $1
+ ld [hl], a
+ ret z
+ ld hl, $10
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functioncd80c: ; cd80c (33:580c)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd80f: ; cd80f (33:580f)
+ dw Functioncd81f
+ dw Functioncd817
+ dw Functioncd81f
+ dw Functioncd820
+
+
+; no known jump sources
+Functioncd817: ; cd817 (33:5817)
+ call Functionce72c
+ ld a, $35
+ call Functionce7bf
+
+; no known jump sources
+Functioncd81f: ; cd81f (33:581f)
+ ret
+
+; no known jump sources
+Functioncd820: ; cd820 (33:5820)
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncd824: ; cd824 (33:5824)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd827: ; cd827 (33:5827)
+ dw Functioncd835
+ dw Functioncd860
+ dw Functioncd88f
+ dw Functioncd88f
+ dw Functioncd88f
+ dw Functioncd88f
+ dw Functioncd893
+
+
+; no known jump sources
+Functioncd835: ; cd835 (33:5835)
+ call Functionce72c
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ ld hl, $10
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ bit 7, [hl]
+ jr nz, .asm_cd852
+ ld hl, $f
+ add hl, bc
+ ld [hl], $10
+ jr .asm_cd858
+.asm_cd852
+ ld hl, $f
+ add hl, bc
+ ld [hl], $30
+.asm_cd858
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+
+; no known jump sources
+Functioncd860: ; cd860 (33:5860)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld hl, $b
+ add hl, bc
+ ld d, [hl]
+ call Functionce734
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ bit 7, a
+ jr nz, .asm_cd87e
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ inc a
+ jr .asm_cd883
+.asm_cd87e
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+.asm_cd883
+ call Functionce7bf
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $1f
+ ret nz
+
+; no known jump sources
+Functioncd88f: ; cd88f (33:588f)
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncd893: ; cd893 (33:5893)
+ ld hl, $e
+ add hl, bc
+ ld [hl], $1
+ ret
+
+; no known jump sources
+Functioncd89a: ; cd89a (33:589a)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd89d: ; cd89d (33:589d)
+ dw Functioncd8ab
+ dw Functioncd8cc
+ dw Functioncd8f5
+ dw Functioncd8f5
+ dw Functioncd8f5
+ dw Functioncd8f5
+ dw Functioncd8f9
+
+
+; no known jump sources
+Functioncd8ab: ; cd8ab (33:58ab)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ bit 7, [hl]
+ jr nz, .asm_cd8be
+ ld hl, $f
+ add hl, bc
+ ld [hl], $10
+ jr .asm_cd8c4
+.asm_cd8be
+ ld hl, $f
+ add hl, bc
+ ld [hl], $30
+.asm_cd8c4
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+
+; no known jump sources
+Functioncd8cc: ; cd8cc (33:58cc)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld hl, $b
+ add hl, bc
+ ld d, [hl]
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ bit 7, a
+ jr nz, .asm_cd8e6
+ ld a, $3d
+ jr .asm_cd8e8
+.asm_cd8e6
+ ld a, $3c
+.asm_cd8e8
+ call Functionce7bf
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ld a, [hl]
+ and $1f
+ ret nz
+
+; no known jump sources
+Functioncd8f5: ; cd8f5 (33:58f5)
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncd8f9: ; cd8f9 (33:58f9)
+ ld hl, $e
+ add hl, bc
+ ld [hl], $1
+ ret
+
+; no known jump sources
+Functioncd900: ; cd900 (33:5900)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd903: ; cd903 (33:5903)
+ dw Functioncd907
+ dw Functioncd913
+
+
+; no known jump sources
+Functioncd907: ; cd907 (33:5907)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $28
+ inc hl
+ ld [hl], $0
+
+; no known jump sources
+Functioncd913: ; cd913 (33:5913)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld hl, $f
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cd950
+ ld d, a
+ ld hl, $10
+ add hl, bc
+ ld e, [hl]
+ ld hl, hPushOAM ; $ff80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $10
+ add hl, bc
+ ld [hl], e
+ ld hl, $f
+ add hl, bc
+ ld [hl], d
+ ret
+.asm_cd950
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncd954: ; cd954 (33:5954)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cd957: ; cd957 (33:5957)
+ dw Functioncd961
+ dw Functioncd96a
+ dw Functioncd96e
+ dw Functioncd96a
+ dw Functioncd97b
+
+
+; no known jump sources
+Functioncd961: ; cd961 (33:5961)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ ld [hl], $0
+
+; no known jump sources
+Functioncd96a: ; cd96a (33:596a)
+ call Functioncd99a
+ ret
+
+; no known jump sources
+Functioncd96e: ; cd96e (33:596e)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr c, asm_cd988
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncd97b: ; cd97b (33:597b)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $b8
+ jr c, asm_cd988
+ call Functioncc9bd
+ ret
+
+; known jump sources: cd975 (33:5975), cd982 (33:5982)
+asm_cd988: ; cd988 (33:5988)
+ call Functioncd99a
+ ld hl, $7
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, $8
+ add hl, bc
+ dec [hl]
+ ret
+
+; known jump sources: cd96a (33:596a), cd988 (33:5988)
+Functioncd99a: ; cd99a (33:599a)
+ call Functioncd9f4
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call Functionce734
+ sra a
+ sra a
+ sra a
+ sra a
+ ld hl, $b
+ add hl, bc
+ add [hl]
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ sub $8
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cd9d7
+ cp $c2
+ jr c, .asm_cd9e2
+.asm_cd9d7
+ dec a
+ ld [hl], a
+ and $7
+ ret nz
+ ld hl, $10
+ add hl, bc
+ inc [hl]
+ ret
+.asm_cd9e2
+ xor a
+ ld hl, $10
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld [hl], a
+ ld hl, $9
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ret
+
+; known jump sources: cd99a (33:599a)
+Functioncd9f4: ; cd9f4 (33:59f4)
+ ld hl, $10
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, $5a01
+ add hl, de
+ ld d, [hl]
+ ret
+; cda01 (33:5a01)
+
+INCBIN "baserom.gbc",$cda01,$cda0a - $cda01
+
+; no known jump sources
+Functioncda0a: ; cda0a (33:5a0a)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr nc, .asm_cda17
+ call Functioncc9bd
+ ret
+.asm_cda17
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld e, a
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ sub e
+ ld [hl], a
+ srl e
+ ld hl, $8
+ add hl, bc
+.asm_cda2c
+ inc [hl]
+ dec e
+ jr nz, .asm_cda2c
+ ret
+
+; no known jump sources
+Functioncda31: ; cda31 (33:5a31)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cda34: ; cda34 (33:5a34)
+ dw Functioncda4c
+ dw Functioncda3a
+ dw Functioncda4c
+
+
+; no known jump sources
+Functioncda3a: ; cda3a (33:5a3a)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ inc a
+ call Functionce7bf
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $8
+
+; no known jump sources
+Functioncda4c: ; cda4c (33:5a4c)
+ ret
+
+; no known jump sources
+Functioncda4d: ; cda4d (33:5a4d)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cda50: ; cda50 (33:5a50)
+ dw Functioncda58
+ dw Functioncda62
+ dw Functioncda7a
+ dw Functioncda8c
+
+
+; no known jump sources
+Functioncda58: ; cda58 (33:5a58)
+ call Functionce72c
+ ld hl, $10
+ add hl, bc
+ ld [hl], $40
+ ret
+
+; no known jump sources
+Functioncda62: ; cda62 (33:5a62)
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, .asm_cda6f
+ call Functioncda8d
+ ret
+.asm_cda6f
+ ld [hl], $40
+ ld a, $57
+ call Functionce7bf
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncda7a: ; cda7a (33:5a7a)
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cda84
+ dec [hl]
+ ret
+.asm_cda84
+ call Functionce72c
+ ld a, $58
+ call Functionce7bf
+
+; no known jump sources
+Functioncda8c: ; cda8c (33:5a8c)
+ ret
+
+; known jump sources: cda6b (33:5a6b), cdaf2 (33:5af2)
+Functioncda8d: ; cda8d (33:5a8d)
+ dec [hl]
+ ld d, $20
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld e, [hl]
+ ld hl, $7
+ add hl, bc
+ ld d, [hl]
+ ld hl, $b
+ add hl, bc
+ ld h, [hl]
+ ld a, h
+ and $f
+ swap a
+ ld l, a
+ ld a, h
+ and $f0
+ swap a
+ ld h, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $f
+ add hl, bc
+ ld [hl], e
+ ld hl, $7
+ add hl, bc
+ ld [hl], d
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, $8
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functioncdad6: ; cdad6 (33:5ad6)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cdad9: ; cdad9 (33:5ad9)
+ dw Functioncdadf
+ dw Functioncdae9
+ dw Functioncdaf9
+
+
+; no known jump sources
+Functioncdadf: ; cdadf (33:5adf)
+ call Functionce72c
+ ld hl, $10
+ add hl, bc
+ ld [hl], $40
+ ret
+
+; no known jump sources
+Functioncdae9: ; cdae9 (33:5ae9)
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, .asm_cdaf6
+ call Functioncda8d
+ ret
+.asm_cdaf6
+ call Functionce72c
+
+; no known jump sources
+Functioncdaf9: ; cdaf9 (33:5af9)
+ ret
+
+; no known jump sources
+Functioncdafa: ; cdafa (33:5afa)
+ call Functioncd0e3
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ add $f
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncdb06: ; cdb06 (33:5b06)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cdb09: ; cdb09 (33:5b09)
+ dw Functioncdb13
+ dw Functioncdb14
+ dw Functioncdb28
+ dw Functioncdb50
+ dw Functioncdb65
+
+
+; no known jump sources
+Functioncdb13: ; cdb13 (33:5b13)
+ ret
+
+; no known jump sources
+Functioncdb14: ; cdb14 (33:5b14)
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_cdb24
+ ld hl, $e
+ add hl, bc
+ ld [hl], $0
+ ret
+.asm_cdb24
+ add $4
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncdb28: ; cdb28 (33:5b28)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $98
+ ret nc
+ inc [hl]
+ inc [hl]
+ ld hl, $1
+ add hl, bc
+ set 0, [hl]
+ ld hl, $2
+ add hl, bc
+ ld [hl], $90
+ ld hl, $d
+ add hl, bc
+ ld [hl], $0
+ ld hl, $c
+ add hl, bc
+ ld [hl], $2
+ ld hl, $8
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functioncdb50: ; cdb50 (33:5b50)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $2c
+ ld hl, $d
+ add hl, bc
+ ld [hl], $0
+ ld hl, $c
+ add hl, bc
+ ld [hl], $80
+
+; no known jump sources
+Functioncdb65: ; cdb65 (33:5b65)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $98
+ ret nc
+ inc [hl]
+ inc [hl]
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $8
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncdb80: ; cdb80 (33:5b80)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cdb83: ; cdb83 (33:5b83)
+ dw Functioncdb9f
+ dw Functioncdbb3
+ dw Functioncdbcf
+ dw Functioncdbeb
+ dw Functioncdc74
+ dw Functioncdc1a
+ dw Functioncdbc1
+ dw Functioncdc1e
+ dw Functioncdc27
+ dw Functioncdc39
+ dw Functioncdc74
+ dw Functioncdc48
+ dw Functioncdc57
+ dw Functioncdc74
+
+
+; no known jump sources
+Functioncdb9f: ; cdb9f (33:5b9f)
+ ld hl, $f
+ add hl, bc
+ ld [hl], $28
+ inc hl
+ ld [hl], $10
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld hl, $e
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncdbb3: ; cdbb3 (33:5bb3)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $40
+ jr nc, .asm_cdbbd
+ inc [hl]
+.asm_cdbbd
+ call Functioncdc75
+ ret
+
+; no known jump sources
+Functioncdbc1: ; cdbc1 (33:5bc1)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $4b
+ jr nc, .asm_cdbcb
+ inc [hl]
+.asm_cdbcb
+ call Functioncdc75
+ ret
+
+; no known jump sources
+Functioncdbcf: ; cdbcf (33:5bcf)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr nc, .asm_cdbe6
+ and $f
+ jr nz, asm_cdbfa
+ ld hl, $10
+ add hl, bc
+ ld [hl], $10
+ call Functionce72c
+ ret
+.asm_cdbe6
+ call Functionce72c
+ inc [hl]
+ ret
+
+; no known jump sources
+Functioncdbeb: ; cdbeb (33:5beb)
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdbf5
+ dec [hl]
+ ret
+.asm_cdbf5
+ ld hl, $e
+ add hl, bc
+ dec [hl]
+asm_cdbfa: ; cdbfa (33:5bfa)
+ ld hl, $7
+ add hl, bc
+ inc [hl]
+ ld hl, $8
+ add hl, bc
+ ld d, [hl]
+ ld hl, $f
+ add hl, bc
+ ld e, [hl]
+ ld hl, hPushOAM ; $ff80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $8
+ add hl, bc
+ ld [hl], d
+ ld hl, $f
+ add hl, bc
+ ld [hl], e
+ ret
+
+; no known jump sources
+Functioncdc1a: ; cdc1a (33:5c1a)
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncdc1e: ; cdc1e (33:5c1e)
+ ld a, $4e
+ call Functionce7bf
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncdc27: ; cdc27 (33:5c27)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ ld d, $2
+ call Functionce734
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncdc39: ; cdc39 (33:5c39)
+ ld a, $50
+ call Functionce7bf
+ ld hl, $a
+ add hl, bc
+ ld [hl], $4
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncdc48: ; cdc48 (33:5c48)
+ ld a, $4f
+ call Functionce7bf
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $40
+ ret
+
+; no known jump sources
+Functioncdc57: ; cdc57 (33:5c57)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, $20
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_cdc71
+ dec [hl]
+ ret
+.asm_cdc71
+ call Functionce72c
+
+; no known jump sources
+Functioncdc74: ; cdc74 (33:5c74)
+ ret
+
+; known jump sources: cdbbd (33:5bbd), cdbcb (33:5bcb)
+Functioncdc75: ; cdc75 (33:5c75)
+ ld hl, $f
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+ ld hl, $f
+ add hl, bc
+ ld [hl], $20
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ sub $8
+ ld [hl], a
+ ret nz
+ xor a
+ ld hl, $f
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncdca6: ; cdca6 (33:5ca6)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdcb6
+ cp $d8
+ jr nc, .asm_cdcb6
+ call Functioncc9bd
+ ret
+.asm_cdcb6
+ ld hl, $b
+ add hl, bc
+ ld d, [hl]
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ sub d
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncdcc3: ; cdcc3 (33:5cc3)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cdcc6: ; cdcc6 (33:5cc6)
+ dw Functioncdcca
+ dw Functioncdced
+
+
+; no known jump sources
+Functioncdcca: ; cdcca (33:5cca)
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and a
+ jr z, .asm_cdcd9
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ add $3
+ ld [hl], a
+.asm_cdcd9
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $8
+ ld hl, $b
+ add hl, bc
+ ld a, $59
+ add [hl]
+ call Functionce7bf
+ ret
+
+; no known jump sources
+Functioncdced: ; cdced (33:5ced)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdcfa
+ dec [hl]
+ call Functioncdcfe
+ ret
+.asm_cdcfa
+ call Functioncc9bd
+ ret
+
+; known jump sources: cdcf6 (33:5cf6)
+Functioncdcfe: ; cdcfe (33:5cfe)
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ ld d, $10
+ call Functionce734
+ ld d, a
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdd20
+ dec a
+ ret z
+ ld hl, $a
+ add hl, bc
+ ld [hl], d
+ ret
+.asm_cdd20
+ ld hl, $a
+ add hl, bc
+ ld a, d
+ xor $ff
+ inc a
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncdd2a: ; cdd2a (33:5d2a)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cdd2d: ; cdd2d (33:5d2d)
+ dw Functioncdd31
+ dw Functioncdd4f
+
+
+; no known jump sources
+Functioncdd31: ; cdd31 (33:5d31)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld hl, $10
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $80
+ rlca
+ ld [hl], a
+ add $5d
+ call Functionce7bf
+ ret
+
+; no known jump sources
+Functioncdd4f: ; cdd4f (33:5d4f)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ swap a
+ ld d, a
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ ret nc
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ and $3
+ jr nz, .asm_cdd87
+ ld hl, $8
+ add hl, bc
+ dec [hl]
+.asm_cdd87
+ and $1
+ ret nz
+ ld hl, $7
+ add hl, bc
+ inc [hl]
+ ret
+
+; no known jump sources
+Functioncdd90: ; cdd90 (33:5d90)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cdd93: ; cdd93 (33:5d93)
+ dw Functioncdd97
+ dw Functioncddbc
+
+
+; no known jump sources
+Functioncdd97: ; cdd97 (33:5d97)
+ call Functionce72c
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ ld hl, $f
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $80
+ rlca
+ ld hl, $f
+ add hl, bc
+ add [hl]
+ call Functionce7bf
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+
+; no known jump sources
+Functioncddbc: ; cddbc (33:5dbc)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ push af
+ push de
+ call Functionce734
+ sra a
+ sra a
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ and $3f
+ jr z, .asm_cddf0
+ and $1f
+ ret nz
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ inc a
+ jr .asm_cddf5
+.asm_cddf0
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+.asm_cddf5
+ call Functionce7bf
+ ret
+
+; no known jump sources
+Functioncddf9: ; cddf9 (33:5df9)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cddfc: ; cddfc (33:5dfc)
+ dw Functioncde02
+ dw Functioncde20
+ dw Functioncde21
+
+
+; no known jump sources
+Functioncde02: ; cde02 (33:5e02)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ add $63
+ call Functionce7bf
+ ld hl, $b
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, $5e25
+ add hl, de
+ ld a, [hl]
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+
+; no known jump sources
+Functioncde20: ; cde20 (33:5e20)
+ ret
+
+; no known jump sources
+Functioncde21: ; cde21 (33:5e21)
+ call Functioncc9bd
+ ret
+; cde25 (33:5e25)
+
+INCBIN "baserom.gbc",$cde25,$cde28 - $cde25
+
+; no known jump sources
+Functioncde28: ; cde28 (33:5e28)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ ld d, $4
+ call Functionce734
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $a
+ add hl, bc
+ ld d, [hl]
+ ld hl, $10
+ add hl, bc
+ ld e, [hl]
+ ld hl, $ffa0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $a
+ add hl, bc
+ ld [hl], d
+ ld hl, $10
+ add hl, bc
+ ld [hl], e
+ ret
+
+; no known jump sources
+Functioncde54: ; cde54 (33:5e54)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ dec [hl]
+ ld d, $10
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $7
+ add hl, bc
+ inc [hl]
+ ret
+
+; no known jump sources
+Functioncde6b: ; cde6b (33:5e6b)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cde6e: ; cde6e (33:5e6e)
+ dw Functioncde72
+ dw Functioncde88
+
+
+; no known jump sources
+Functioncde72: ; cde72 (33:5e72)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_cde83
+ ld hl, $1
+ add hl, bc
+ set 6, [hl]
+.asm_cde83
+ add $6a
+ call Functionce7bf
+
+; no known jump sources
+Functioncde88: ; cde88 (33:5e88)
+ ret
+
+; no known jump sources
+Functioncde89: ; cde89 (33:5e89)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cde8c: ; cde8c (33:5e8c)
+ dw Functioncde90
+ dw Functioncdebf
+
+
+; no known jump sources
+Functioncde90: ; cde90 (33:5e90)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $0
+ ld hl, $b
+ add hl, bc
+ ld e, [hl]
+ ld a, e
+ and $70
+ swap a
+ ld [hl], a
+ ld hl, $9
+ add hl, bc
+ ld a, e
+ and $80
+ jr nz, .asm_cdeb2
+ ld a, e
+ and $f
+ ld [hl], a
+ ret
+.asm_cdeb2
+ ld a, e
+ and $f
+ xor $ff
+ inc a
+ ld [hl], a
+ ld a, $6e
+ call Functionce7bf
+ ret
+
+; no known jump sources
+Functioncdebf: ; cdebf (33:5ebf)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdec9
+ dec [hl]
+ ret
+.asm_cdec9
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld hl, $f
+ add hl, bc
+ ld [hl], a
+ ld hl, $9
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functioncdedd: ; cdedd (33:5edd)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call Functionce734
+ sra a
+ sra a
+ sra a
+ ld hl, $10
+ add hl, bc
+ add [hl]
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $7
+ ret nz
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ cp $28
+ jr nc, .asm_cdf17
+ inc [hl]
+ ret
+.asm_cdf17
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncdf1b: ; cdf1b (33:5f1b)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call Functionce734
+ sra a
+ sra a
+ sra a
+ ld hl, $10
+ add hl, bc
+ add [hl]
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3
+ ret nz
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ cp $28
+ jr nc, .asm_cdf55
+ inc [hl]
+ ret
+.asm_cdf55
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncdf59: ; cdf59 (33:5f59)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_cdf5c: ; cdf5c (33:5f5c)
+ dw Functioncdf60
+ dw Functioncdedd
+
+
+; no known jump sources
+Functioncdf60: ; cdf60 (33:5f60)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr nc, .asm_cdf88
+ inc [hl]
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $18
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, $8
+ add hl, bc
+ dec [hl]
+ ret
+.asm_cdf88
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functioncdf8c: ; cdf8c (33:5f8c)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call Functionce734
+ sra a
+ sra a
+ sra a
+ ld hl, $10
+ add hl, bc
+ add [hl]
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ld a, [hl]
+ and $7
+ ret nz
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ cp $e8
+ jr z, .asm_cdfc7
+ dec [hl]
+ ret
+.asm_cdfc7
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functioncdfcb: ; cdfcb (33:5fcb)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call Functionce734
+ sra a
+ sra a
+ sra a
+ ld hl, $10
+ add hl, bc
+ add [hl]
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ld a, [hl]
+ and $3
+ ret nz
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ cp $d0
+ jr z, .asm_ce007
+ dec [hl]
+ dec [hl]
+ ret
+.asm_ce007
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functionce00b: ; ce00b (33:600b)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce00e: ; ce00e (33:600e)
+ dw Functionce014
+ dw Functionce023
+ dw Functionce05f
+
+
+; no known jump sources
+Functionce014: ; ce014 (33:6014)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $34
+ ld hl, $10
+ add hl, bc
+ ld [hl], $10
+
+; no known jump sources
+Functionce023: ; ce023 (33:6023)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $6c
+ jr c, .asm_ce02d
+ ret
+.asm_ce02d
+ ld a, $2
+ call Functionce70a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld hl, $10
+ add hl, bc
+ ld d, [hl]
+ call Functionce734
+ bit 7, a
+ jr nz, .asm_ce046
+ xor $ff
+ inc a
+.asm_ce046
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ sub $4
+ ld [hl], a
+ and $1f
+ cp $20
+ ret nz
+ ld hl, $10
+ add hl, bc
+ srl [hl]
+ ret
+
+; no known jump sources
+Functionce05f: ; ce05f (33:605f)
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functionce063: ; ce063 (33:6063)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce066: ; ce066 (33:6066)
+ dw Functionce06e
+ dw Functionce083
+ dw Functionce091
+ dw Functionce09e
+
+
+; no known jump sources
+Functionce06e: ; ce06e (33:606e)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld hl, $e
+ add hl, bc
+ ld [hl], a
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ ld hl, $f
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce083: ; ce083 (33:6083)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $58
+ ret nc
+ ld a, $2
+ call Functionce70a
+ ret
+
+; no known jump sources
+Functionce091: ; ce091 (33:6091)
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, Functionce09e
+ call Functioncc9bd
+ ret
+
+; known jump sources: ce098 (33:6098)
+Functionce09e: ; ce09e (33:609e)
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ ld d, $8
+ call Functionce734
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ sra a
+ xor $ff
+ inc a
+ ld hl, $f
+ add hl, bc
+ add [hl]
+ ld hl, $8
+ add hl, bc
+ ld [hl], a
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ add $8
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce0c5: ; ce0c5 (33:60c5)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce0c8: ; ce0c8 (33:60c8)
+ dw Functionce0ce
+ dw Functionce0f8
+ dw Functionce0dd
+
+
+; no known jump sources
+Functionce0ce: ; ce0ce (33:60ce)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ swap a
+ ld hl, $e
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce0dd: ; ce0dd (33:60dd)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ bit 7, a
+ jr z, .asm_ce0f0
+ ld [hl], a
+.asm_ce0f0
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ sub $4
+ ld [hl], a
+
+; no known jump sources
+Functionce0f8: ; ce0f8 (33:60f8)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr c, .asm_ce105
+ call Functioncc9bd
+ ret
+.asm_ce105
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+; no known jump sources
+Functionce10e: ; ce10e (33:610e)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce111: ; ce111 (33:6111)
+ dw Functionce115
+ dw Functionce12a
+
+
+; no known jump sources
+Functionce115: ; ce115 (33:6115)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $28
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ sub $28
+ ld hl, $10
+ add hl, bc
+ ld [hl], a
+
+; no known jump sources
+Functionce12a: ; ce12a (33:612a)
+ ld hl, $f
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld hl, $b
+ add hl, bc
+ and [hl]
+ jr nz, .asm_ce149
+ ld hl, $7
+ add hl, bc
+ dec [hl]
+.asm_ce149
+ ld hl, $f
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+ ld hl, $f
+ add hl, bc
+ ld [hl], $20
+ inc hl
+ srl [hl]
+ ret
+
+; no known jump sources
+Functionce15c: ; ce15c (33:615c)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld hl, $f
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $1
+ jr nz, .asm_ce189
+ ld hl, $7
+ add hl, bc
+ dec [hl]
+.asm_ce189
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $3
+ jr nz, .asm_ce197
+ ld hl, $8
+ add hl, bc
+ inc [hl]
+.asm_ce197
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ ld hl, $f
+ add hl, bc
+ cp $5a
+ jr nc, .asm_ce1aa
+ ld a, [hl]
+ and a
+ jr z, .asm_ce1ac
+ dec [hl]
+ ret
+.asm_ce1aa
+ inc [hl]
+ ret
+.asm_ce1ac
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functionce1b0: ; ce1b0 (33:61b0)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld hl, $f
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld hl, $f
+ add hl, bc
+ cp $40
+ jr nc, .asm_ce1df
+ inc [hl]
+ ret
+.asm_ce1df
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functionce1e7: ; ce1e7 (33:61e7)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce1ea: ; ce1ea (33:61ea)
+ dw Functionce1ee
+ dw Functionce1fb
+
+
+; no known jump sources
+Functionce1ee: ; ce1ee (33:61ee)
+ call Functionce72c
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ ld hl, $10
+ add hl, bc
+ ld [hl], a
+
+; no known jump sources
+Functionce1fb: ; ce1fb (33:61fb)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld d, $30
+ call Functionce734
+ ld hl, $10
+ add hl, bc
+ add [hl]
+ ld hl, $8
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ add $8
+ ld d, $30
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ret
+
+; no known jump sources
+Functionce226: ; ce226 (33:6226)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce229: ; ce229 (33:6229)
+ dw Functionce22d
+ dw Functionce254
+
+
+; no known jump sources
+Functionce22d: ; ce22d (33:622d)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $10
+ add hl, bc
+ ld [hl], $f
+
+; no known jump sources
+Functionce254: ; ce254 (33:6254)
+ ret
+
+; no known jump sources
+Functionce255: ; ce255 (33:6255)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce258: ; ce258 (33:6258)
+ dw Functionce260
+ dw Functionce274
+ dw Functionce278
+ dw Functionce289
+
+
+; no known jump sources
+Functionce260: ; ce260 (33:6260)
+ call Functionce72c
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and a
+ jr nz, .asm_ce26c
+ ld a, $f0
+ jr .asm_ce26e
+.asm_ce26c
+ ld a, $cc
+.asm_ce26e
+ ld hl, $f
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce274: ; ce274 (33:6274)
+ call Functionce29f
+ ret
+
+; no known jump sources
+Functionce278: ; ce278 (33:6278)
+ call Functionce29f
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ ret nc
+ ld a, $4
+ call Functionce70a
+ ret
+
+; no known jump sources
+Functionce289: ; ce289 (33:6289)
+ call Functionce29f
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $d0
+ jr nc, .asm_ce29b
+ ld a, $4
+ call Functionce70a
+ ret
+.asm_ce29b
+ call Functioncc9bd
+ ret
+
+; known jump sources: ce274 (33:6274), ce278 (33:6278), ce289 (33:6289)
+Functionce29f: ; ce29f (33:629f)
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ and $7
+ inc [hl]
+ srl a
+ ld e, a
+ ld d, $0
+ ld a, [hSGB] ; $ff00+$e7
+ and a
+ jr nz, .asm_ce2b6
+ ld hl, $62c4
+ jr .asm_ce2b9
+.asm_ce2b6
+ ld hl, $62c8
+.asm_ce2b9
+ add hl, de
+ ld a, [hl]
+ ld hl, $f
+ add hl, bc
+ and [hl]
+ ld [$cfc8], a
+ ret
+; ce2c4 (33:62c4)
+
+INCBIN "baserom.gbc",$ce2c4,$ce2cc - $ce2c4
+
+; no known jump sources
+Functionce2cc: ; ce2cc (33:62cc)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ call Functionce734
+ sra a
+ sra a
+ sra a
+ ld hl, $10
+ add hl, bc
+ add [hl]
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $18
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $10
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ ret
+
+; no known jump sources
+Functionce2fd: ; ce2fd (33:62fd)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce300: ; ce300 (33:6300)
+ dw Functionce306
+ dw Functionce330
+ dw Functionce34c
+
+
+; no known jump sources
+Functionce306: ; ce306 (33:6306)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ cp $e0
+ jr nz, .asm_ce319
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $2
+ ret
+.asm_ce319
+ ld d, a
+ ld hl, $f
+ add hl, bc
+ ld e, [hl]
+ ld hl, hPushOAM ; $ff80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $a
+ add hl, bc
+ ld [hl], d
+ ld hl, $f
+ add hl, bc
+ ld [hl], e
+ ret
+
+; no known jump sources
+Functionce330: ; ce330 (33:6330)
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce33a
+ dec [hl]
+ ret
+.asm_ce33a
+ ld [hl], $4
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ ld hl, $a
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce34c: ; ce34c (33:634c)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr nc, .asm_ce35b
+ ld a, $4
+ call Functionce70a
+ ret
+.asm_ce35b
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functionce35f: ; ce35f (33:635f)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce362: ; ce362 (33:6362)
+ dw Functionce366
+ dw Functionce375
+
+
+; no known jump sources
+Functionce366: ; ce366 (33:6366)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ add $81
+ call Functionce7bf
+
+; no known jump sources
+Functionce375: ; ce375 (33:6375)
+ ld hl, $b
+ add hl, bc
+ bit 7, [hl]
+ jr nz, .asm_ce383
+ ld hl, $9
+ add hl, bc
+ inc [hl]
+ ret
+.asm_ce383
+ ld hl, $9
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functionce389: ; ce389 (33:6389)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce38c: ; ce38c (33:638c)
+ dw Functionce392
+ dw Functionce39c
+ dw Functionce3ae
+
+
+; no known jump sources
+Functionce392: ; ce392 (33:6392)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $c
+ ret
+
+; no known jump sources
+Functionce39c: ; ce39c (33:639c)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce3a6
+ dec [hl]
+ ret
+.asm_ce3a6
+ call Functionce72c
+ ld a, $20
+ call Functionce7bf
+
+; no known jump sources
+Functionce3ae: ; ce3ae (33:63ae)
+ ld hl, $a
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functionce3b4: ; ce3b4 (33:63b4)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ push af
+ ld d, $2
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop af
+ ld d, $8
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce3d2: ; ce3d2 (33:63d2)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, .asm_ce3df
+ call Functioncc9bd
+ ret
+.asm_ce3df
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld d, $8
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ and $7
+ ret nz
+ ld hl, $a
+ add hl, bc
+ inc [hl]
+ ret
+
+; no known jump sources
+Functionce3ff: ; ce3ff (33:63ff)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce402: ; ce402 (33:6402)
+ dw Functionce406
+ dw Functionce412
+
+
+; no known jump sources
+Functionce406: ; ce406 (33:6406)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld hl, $7
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce412: ; ce412 (33:6412)
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functionce416: ; ce416 (33:6416)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ sra a
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ret
+
+; no known jump sources
+Functionce43a: ; ce43a (33:643a)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce43d: ; ce43d (33:643d)
+ dw Functionce443
+ dw Functionce465
+ dw Functionce490
+
+
+; no known jump sources
+Functionce443: ; ce443 (33:6443)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $28
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, $3
+ add hl, bc
+ add [hl]
+ call Functionce7bf
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ or $8
+ ld [hl], a
+
+; no known jump sources
+Functionce465: ; ce465 (33:6465)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce48b
+ dec [hl]
+ add $8
+ ld d, a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ret
+.asm_ce48b
+ ld [hl], $10
+ call Functionce72c
+
+; no known jump sources
+Functionce490: ; ce490 (33:6490)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functionce49c: ; ce49c (33:649c)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce49f: ; ce49f (33:649f)
+ dw Functionce4a3
+ dw Functionce4b0
+
+
+; no known jump sources
+Functionce4a3: ; ce4a3 (33:64a3)
+ call Functionce72c
+ ld hl, $b
+ add hl, bc
+ ld a, $24
+ add [hl]
+ call Functionce7bf
+
+; no known jump sources
+Functionce4b0: ; ce4b0 (33:64b0)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ cp $38
+ jr nc, .asm_ce4d8
+ inc [hl]
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $18
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, $7
+ add hl, bc
+ dec [hl]
+ ret
+.asm_ce4d8
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functionce4dc: ; ce4dc (33:64dc)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+ ld d, a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call Functionce734
+ bit 7, a
+ jr nz, .asm_ce4f4
+ xor $ff
+ inc a
+.asm_ce4f4
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ and $1f
+ ret nz
+ ld hl, $b
+ add hl, bc
+ srl [hl]
+ ret
+
+; no known jump sources
+Functionce508: ; ce508 (33:6508)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ cp $10
+ jr nc, .asm_ce52e
+ inc [hl]
+ inc [hl]
+ ld d, a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ret
+.asm_ce52e
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functionce532: ; ce532 (33:6532)
+ ld hl, $b
+ add hl, bc
+ ld e, [hl]
+ ld hl, $f
+ add hl, bc
+ ld d, [hl]
+ ld a, e
+ and $c0
+ rlca
+ rlca
+ add [hl]
+ ld [hl], a
+ ld a, e
+ and $3f
+ push af
+ push de
+ call Functionce734
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce55b: ; ce55b (33:655b)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce55e: ; ce55e (33:655e)
+ dw Functionce564
+ dw Functionce56e
+ dw Functionce577
+
+
+; no known jump sources
+Functionce564: ; ce564 (33:6564)
+ ld d, $18
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ jr asm_ce58f
+
+; no known jump sources
+Functionce56e: ; ce56e (33:656e)
+ call Functionce72c
+ ld hl, $f
+ add hl, bc
+ ld [hl], $18
+
+; no known jump sources
+Functionce577: ; ce577 (33:6577)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .asm_ce58b
+ ld d, a
+ add $8
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ jr asm_ce58f
+.asm_ce58b
+ call Functioncc9bd
+ ret
+asm_ce58f: ; ce58f (33:658f)
+ call Functionce6f1
+ ret
+
+; no known jump sources
+Functionce593: ; ce593 (33:6593)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce596: ; ce596 (33:6596)
+ dw Functionce5b3
+ dw Functionce59a
+
+
+; no known jump sources
+Functionce59a: ; ce59a (33:659a)
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_ce5b0
+ ld hl, $7
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ ld hl, $8
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ret
+.asm_ce5b0
+ call Functioncc9bd
+
+; no known jump sources
+Functionce5b3: ; ce5b3 (33:65b3)
+ ret
+
+; no known jump sources
+Functionce5b4: ; ce5b4 (33:65b4)
+ ld d, $50
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ push af
+ push de
+ call Functionce734
+ sra a
+ sra a
+ ld hl, $f
+ add hl, bc
+ add [hl]
+ inc [hl]
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce5dc: ; ce5dc (33:65dc)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ cp $d0
+ jr z, .asm_ce5ea
+ dec [hl]
+ dec [hl]
+ dec [hl]
+ dec [hl]
+ ret
+.asm_ce5ea
+ call Functioncc9bd
+ ret
+
+; no known jump sources
+Functionce5ee: ; ce5ee (33:65ee)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce5f1: ; ce5f1 (33:65f1)
+ dw Functionce5f9
+ dw Functionce60a
+ dw Functionce622
+ dw Functionce618
+
+
+; no known jump sources
+Functionce5f9: ; ce5f9 (33:65f9)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, asm_ce61c
+ call Functionce72c
+ ld hl, $a
+ add hl, bc
+ ld [hl], $ec
+
+; no known jump sources
+Functionce60a: ; ce60a (33:660a)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ cp $4
+ jr z, Functionce618
+ inc [hl]
+ inc [hl]
+ inc [hl]
+ inc [hl]
+ ret
+
+; known jump sources: ce611 (33:6611)
+Functionce618: ; ce618 (33:6618)
+ call Functioncc9bd
+ ret
+asm_ce61c: ; ce61c (33:661c)
+ call Functionce72c
+ call Functionce72c
+
+; no known jump sources
+Functionce622: ; ce622 (33:6622)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ cp $d8
+ ret z
+ dec [hl]
+ dec [hl]
+ dec [hl]
+ dec [hl]
+ ret
+
+; no known jump sources
+Functionce62f: ; ce62f (33:662f)
+ call Functionce71e ; ; ; call does not return
+
+; no known jump sources
+Jumptable_ce632: ; ce632 (33:6632)
+ dw Functionce63a
+ dw Functionce648
+ dw Functionce65c
+ dw Functionce672
+
+
+; no known jump sources
+Functionce63a: ; ce63a (33:663a)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld hl, $e
+ add hl, bc
+ ld [hl], a
+ call Functionce72c
+ ret
+
+; no known jump sources
+Functionce648: ; ce648 (33:6648)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ add $4
+ cp $70
+ jr c, .asm_ce654
+ xor a
+.asm_ce654
+ ld [hl], a
+ ld hl, $9
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ret
+
+; no known jump sources
+Functionce65c: ; ce65c (33:665c)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ add $4
+ cp $70
+ jr c, .asm_ce668
+ xor a
+.asm_ce668
+ ld [hl], a
+ ld hl, $9
+ add hl, bc
+ ld a, [hl]
+ add $8
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce672: ; ce672 (33:6672)
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ add $4
+ cp $70
+ jr c, .asm_ce67e
+ xor a
+.asm_ce67e
+ ld [hl], a
+ ld hl, $9
+ add hl, bc
+ ld a, [hl]
+ add $4
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionce688: ; ce688 (33:6688)
+ ld hl, $7
+ add hl, bc
+ ld d, [hl]
+ ld hl, $f
+ add hl, bc
+ ld e, [hl]
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ ld l, a
+ and $f0
+ ld h, a
+ swap a
+ or h
+ ld h, a
+ ld a, l
+ and $f
+ swap a
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $7
+ add hl, bc
+ ld [hl], d
+ ld hl, $f
+ add hl, bc
+ ld [hl], e
+ ret
+
+; no known jump sources
+Functionce6b3: ; ce6b3 (33:66b3)
+ ld d, $18
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call Functionce6f1
+ ret
+
+; no known jump sources
+Functionce6bf: ; ce6bf (33:66bf)
+ ld d, $18
+ ld hl, $10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ srl a
+ ld hl, $b
+ add hl, bc
+ add [hl]
+ call Functionce6f1
+ ret
+
+; no known jump sources
+Functionce6d2: ; ce6d2 (33:66d2)
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr nc, .asm_ce6ed
+ inc [hl]
+ ld hl, $b
+ add hl, bc
+ ld d, [hl]
+ call Functionce734
+ xor $ff
+ inc a
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ ret
+.asm_ce6ed
+ call Functioncc9bd
+ ret
+
+; known jump sources: ce58f (33:658f), ce6bb (33:66bb), ce6ce (33:66ce)
+Functionce6f1: ; ce6f1 (33:66f1)
+ push af
+ push de
+ call Functionce734
+ sra a
+ sra a
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call Functionce732
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ ret
+
+; known jump sources: cd142 (33:5142), cd154 (33:5154), cd2ad (33:52ad), cd553 (33:5553), cd609 (33:5609), cd706 (33:5706), cd733 (33:5733), ce02f (33:602f), ce08d (33:608d), ce10a (33:610a), ce285 (33:6285), ce297 (33:6297), ce357 (33:6357)
+Functionce70a: ; ce70a (33:670a)
+ and $f
+ ld e, a
+ ld hl, $7
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ srl e
+ ld hl, $8
+ add hl, bc
+.asm_ce719
+ dec [hl]
+ dec e
+ jr nz, .asm_ce719
+ ret
+
+; known jump sources: cd06e (33:506e), cd0e3 (33:50e3), cd12a (33:512a), cd15c (33:515c), cd212 (33:5212), cd284 (33:5284), cd2be (33:52be), cd306 (33:5306), cd3ae (33:53ae), cd3f2 (33:53f2), cd478 (33:5478), cd58a (33:558a), cd5e9 (33:55e9), cd66a (33:566a), cd6e3 (33:56e3), cd71a (33:571a), cd7a4 (33:57a4), cd80c (33:580c), cd824 (33:5824), cd89a (33:589a), cd900 (33:5900), cd954 (33:5954), cda31 (33:5a31), cda4d (33:5a4d), cdad6 (33:5ad6), cdb06 (33:5b06), cdb80 (33:5b80), cdcc3 (33:5cc3), cdd2a (33:5d2a), cdd90 (33:5d90), cddf9 (33:5df9), cde6b (33:5e6b), cde89 (33:5e89), cdf59 (33:5f59), ce00b (33:600b), ce063 (33:6063), ce0c5 (33:60c5), ce10e (33:610e), ce1e7 (33:61e7), ce226 (33:6226), ce255 (33:6255), ce2fd (33:62fd), ce35f (33:635f), ce389 (33:6389), ce3ff (33:63ff), ce43a (33:643a), ce49c (33:649c), ce55b (33:655b), ce593 (33:6593), ce5ee (33:65ee), ce62f (33:662f)
+Functionce71e: ; ce71e (33:671e)
+ pop de
+ ld hl, $e
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+; known jump sources: cd0ea (33:50ea), cd17a (33:517a), cd192 (33:5192), cd196 (33:5196), cd1ce (33:51ce), cd1e5 (33:51e5), cd20a (33:520a), cd21e (33:521e), cd22f (33:522f), cd2b5 (33:52b5), cd2c5 (33:52c5), cd31e (33:531e), cd321 (33:5321), cd37a (33:537a), cd3b7 (33:53b7), cd42f (33:542f), cd48d (33:548d), cd49f (33:549f), cd545 (33:5545), cd5a1 (33:55a1), cd5f2 (33:55f2), cd60d (33:560d), cd677 (33:5677), cd694 (33:5694), cd6ea (33:56ea), cd725 (33:5725), cd747 (33:5747), cd76e (33:576e), cd7ab (33:57ab), cd817 (33:5817), cd835 (33:5835), cd88f (33:588f), cd8ab (33:58ab), cd8f5 (33:58f5), cd907 (33:5907), cd961 (33:5961), cd977 (33:5977), cda43 (33:5a43), cda58 (33:5a58), cda76 (33:5a76), cda84 (33:5a84), cdadf (33:5adf), cdaf6 (33:5af6), cdb50 (33:5b50), cdbe2 (33:5be2), cdbe6 (33:5be6), cdc23 (33:5c23), cdc44 (33:5c44), cdc4d (33:5c4d), cdc71 (33:5c71), cdca2 (33:5ca2), cdcd9 (33:5cd9), cdd31 (33:5d31), cdd97 (33:5d97), cde02 (33:5e02), cde72 (33:5e72), cde90 (33:5e90), cdf88 (33:5f88), ce014 (33:6014), ce115 (33:6115), ce1ee (33:61ee), ce22d (33:622d), ce260 (33:6260), ce30f (33:630f), ce366 (33:6366), ce392 (33:6392), ce3a6 (33:63a6), ce443 (33:6443), ce48d (33:648d), ce4a3 (33:64a3), ce56e (33:656e), ce601 (33:6601), ce61c (33:661c), ce61f (33:661f), ce644 (33:6644)
+Functionce72c: ; ce72c (33:672c)
+ ld hl, $e
+ add hl, bc
+ inc [hl]
+ ret
+
+; known jump sources: cd0d2 (33:50d2), cd11c (33:511c), cd33a (33:533a), cd44a (33:544a), cd7f5 (33:57f5), cd929 (33:5929), cd9bb (33:59bb), cdd69 (33:5d69), cddd3 (33:5dd3), cdefb (33:5efb), cdf39 (33:5f39), cdf72 (33:5f72), cdfaa (33:5faa), cdfe9 (33:5fe9), ce172 (33:6172), ce1c7 (33:61c7), ce218 (33:6218), ce246 (33:6246), ce2ee (33:62ee), ce3c9 (33:63c9), ce3e6 (33:63e6), ce429 (33:6429), ce482 (33:6482), ce4c2 (33:64c2), ce525 (33:6525), ce552 (33:6552), ce5d3 (33:65d3), ce701 (33:6701), ce76c (33:676c)
+Functionce732: ; ce732 (33:6732)
+ add $10
+
+; known jump sources: cd09c (33:509c), cd0c8 (33:50c8), cd112 (33:5112), cd1ad (33:51ad), cd1f4 (33:51f4), cd2d7 (33:52d7), cd34d (33:534d), cd440 (33:5440), cd4ca (33:54ca), cd502 (33:5502), cd5c5 (33:55c5), cd6a4 (33:56a4), cd711 (33:5711), cd73e (33:573e), cd7eb (33:57eb), cd86a (33:586a), cd8d6 (33:58d6), cd91f (33:591f), cd9a4 (33:59a4), cda90 (33:5a90), cdb77 (33:5b77), cdc30 (33:5c30), cdc5e (33:5c5e), cdc7b (33:5c7b), cdd07 (33:5d07), cdd5f (33:5d5f), cddc5 (33:5dc5), cde31 (33:5e31), cde5d (33:5e5d), cdee6 (33:5ee6), cdf24 (33:5f24), cdf95 (33:5f95), cdfd4 (33:5fd4), ce03c (33:603c), ce0a5 (33:60a5), ce0e4 (33:60e4), ce130 (33:6130), ce168 (33:6168), ce1bd (33:61bd), ce202 (33:6202), ce237 (33:6237), ce2d3 (33:62d3), ce3be (33:63be), ce41f (33:641f), ce478 (33:6478), ce4ea (33:64ea), ce51b (33:651b), ce548 (33:6548), ce5bf (33:65bf), ce6e1 (33:66e1), ce6f3 (33:66f3), ce766 (33:6766)
+Functionce734: ; ce734 (33:6734)
+ and $3f
+ cp $20
+ jr nc, .asm_ce73f
+ call Functionce749
+ ld a, h
+ ret
+.asm_ce73f
+ and $1f
+ call Functionce749
+ ld a, h
+ xor $ff
+ inc a
+ ret
+
+; known jump sources: ce73a (33:673a), ce741 (33:6741)
+Functionce749: ; ce749 (33:6749)
+ ld e, a
+ ld a, d
+ ld d, $0
+ ld hl, $677f
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $0
+.asm_ce758
+ srl a
+ jr nc, .asm_ce75d
+ add hl, de
+.asm_ce75d
+ sla e
+ rl d
+ and a
+ jr nz, .asm_ce758
+ ret
+
+; no known jump sources
+Functionce765: ; ce765 (33:6765)
+ ld a, e
+ call Functionce734
+ ld e, a
+ ret
+
+; no known jump sources
+Functionce76b: ; ce76b (33:676b)
+ ld a, e
+ call Functionce732
+ ld e, a
+ ret
+; ce771 (33:6771)
+
+INCBIN "baserom.gbc",$ce771,$ce7bf - $ce771
+
+; known jump sources: cd18f (33:518f), cd19b (33:519b), cd1cb (33:51cb), cd1d4 (33:51d4), cd1e2 (33:51e2), cd2ba (33:52ba), cd419 (33:5419), cd434 (33:5434), cd4ab (33:54ab), cd53c (33:553c), cd618 (33:5618), cd6f4 (33:56f4), cd74c (33:574c), cd773 (33:5773), cd81c (33:581c), cd883 (33:5883), cd8e8 (33:58e8), cda40 (33:5a40), cda73 (33:5a73), cda89 (33:5a89), cdc20 (33:5c20), cdc3b (33:5c3b), cdc4a (33:5c4a), cdce9 (33:5ce9), cdd4b (33:5d4b), cddb1 (33:5db1), cddf5 (33:5df5), cde0c (33:5e0c), cde85 (33:5e85), cdebb (33:5ebb), ce372 (33:6372), ce3ab (33:63ab), ce458 (33:6458), ce4ad (33:64ad)
+Functionce7bf: ; ce7bf (33:67bf)
+ ld hl, $3
+ add hl, bc
+ ld [hl], a
+ ld hl, $c
+ add hl, bc
+ ld [hl], $0
+ ld hl, $d
+ add hl, bc
+ ld [hl], $ff
+ ret
+
+
+Functionce7d1: ; ce7d1
+.asm_ce7d1
+ ld hl, $000c
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce7e1
+ dec [hl]
+ call Functionce823
+ ld a, [hli]
+ push af
+ jr .asm_ce7fd
+
+.asm_ce7e1
+ ld hl, $000d
+ add hl, bc
+ inc [hl]
+ call Functionce823
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_ce815
+ cp $ff
+ jr z, .asm_ce807
+ push af
+ ld a, [hl]
+ push hl
+ and $3f
+ ld hl, $000c
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.asm_ce7fd
+ ld a, [hl]
+ and $c0
+ srl a
+ ld [$d420], a
+ pop af
+ ret
+
+.asm_ce807
+ xor a
+ ld hl, $000c
+ add hl, bc
+ ld [hl], a
+ ld hl, $000d
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ jr .asm_ce7d1
+
+.asm_ce815
+ xor a
+ ld hl, $000c
+ add hl, bc
+ ld [hl], a
+ dec a
+ ld hl, $000d
+ add hl, bc
+ ld [hl], a
+ jr .asm_ce7d1
+; ce823
+
+Functionce823: ; ce823
+ ld hl, $0003
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, $685e
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $000d
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ret
+; ce83c
+
+Functionce83c: ; ce83c
+ ld l, a
+ ld h, $0
+ ld de, $6eae
+ add hl, hl
+ add hl, hl
+ add hl, de
+ ret
+; ce846
+
+
+; known jump sources: cc4b0 (33:44b0)
+Functionce846: ; ce846 (33:6846)
+ push hl
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, AnimObjGFX
+ add hl, de
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ push bc
+ call Functione73
+ pop bc
+ ret
+; ce85e (33:685e)
+
+
+INCBIN "baserom.gbc", $ce85e, $cfcf6 - $ce85e
+
+
+AnimObjGFX: ; cfcf6
+
+object_gfx: MACRO
+; label, # tiles
+ db \2
+ db BANK(\1)
+ dw \1
+ENDM
+
+ object_gfx AnimObj00GFX, 0
+ object_gfx AnimObj01GFX, 21
+ object_gfx AnimObj02GFX, 6
+ object_gfx AnimObj03GFX, 6
+ object_gfx AnimObj04GFX, 20
+ object_gfx AnimObj05GFX, 26
+ object_gfx AnimObj06GFX, 18
+ object_gfx AnimObj07GFX, 12
+ object_gfx AnimObj08GFX, 9
+ object_gfx AnimObj09GFX, 17
+ object_gfx AnimObj10GFX, 6
+ object_gfx AnimObj11GFX, 10
+ object_gfx AnimObj12GFX, 9
+ object_gfx AnimObj13GFX, 13
+ object_gfx AnimObj14GFX, 16
+ object_gfx AnimObj15GFX, 2
+ object_gfx AnimObj16GFX, 11
+ object_gfx AnimObj17GFX, 9
+ object_gfx AnimObj18GFX, 9
+ object_gfx AnimObj19GFX, 19
+ object_gfx AnimObj20GFX, 10
+ object_gfx AnimObj21GFX, 12
+ object_gfx AnimObj22GFX, 18
+ object_gfx AnimObj23GFX, 13
+ object_gfx AnimObj24GFX, 10
+ object_gfx AnimObj25GFX, 27
+ object_gfx AnimObj26GFX, 12
+ object_gfx AnimObj27GFX, 14
+ object_gfx AnimObj28GFX, 16
+ object_gfx AnimObj29GFX, 7
+ object_gfx AnimObj30GFX, 8
+ object_gfx AnimObj31GFX, 40
+ object_gfx AnimObj32GFX, 36
+ object_gfx AnimObj33GFX, 16
+ object_gfx AnimObj34GFX, 48
+ object_gfx AnimObj35GFX, 18
+ object_gfx AnimObj36GFX, 38
+ object_gfx AnimObj37GFX, 35
+ object_gfx AnimObj38GFX, 18
+ object_gfx AnimObj39GFX, 24
+ object_gfx NULL, 1
+ object_gfx NULL, 1
+; cfd9e
+
diff --git a/battle/anims.asm b/battle/anims.asm
new file mode 100644
index 000000000..e3836480b
--- /dev/null
+++ b/battle/anims.asm
@@ -0,0 +1,5310 @@
+BattleAnimations: ; c906f
+ dw BattleAnim_0
+ dw BattleAnim_Pound
+ dw BattleAnim_KarateChop
+ dw BattleAnim_Doubleslap
+ dw BattleAnim_CometPunch
+ dw BattleAnim_MegaPunch
+ dw BattleAnim_PayDay
+ dw BattleAnim_FirePunch
+ dw BattleAnim_IcePunch
+ dw BattleAnim_Thunderpunch
+ dw BattleAnim_Scratch
+ dw BattleAnim_Vicegrip
+ dw BattleAnim_Guillotine
+ dw BattleAnim_RazorWind
+ dw BattleAnim_SwordsDance
+ dw BattleAnim_Cut
+ dw BattleAnim_Gust
+ dw BattleAnim_WingAttack
+ dw BattleAnim_Whirlwind
+ dw BattleAnim_Fly
+ dw BattleAnim_Bind
+ dw BattleAnim_Slam
+ dw BattleAnim_VineWhip
+ dw BattleAnim_Stomp
+ dw BattleAnim_DoubleKick
+ dw BattleAnim_MegaKick
+ dw BattleAnim_JumpKick
+ dw BattleAnim_RollingKick
+ dw BattleAnim_SandAttack
+ dw BattleAnim_Headbutt
+ dw BattleAnim_HornAttack
+ dw BattleAnim_FuryAttack
+ dw BattleAnim_HornDrill
+ dw BattleAnim_Tackle
+ dw BattleAnim_BodySlam
+ dw BattleAnim_Wrap
+ dw BattleAnim_TakeDown
+ dw BattleAnim_Thrash
+ dw BattleAnim_DoubleEdge
+ dw BattleAnim_TailWhip
+ dw BattleAnim_PoisonSting
+ dw BattleAnim_Twineedle
+ dw BattleAnim_PinMissile
+ dw BattleAnim_Leer
+ dw BattleAnim_Bite
+ dw BattleAnim_Growl
+ dw BattleAnim_Roar
+ dw BattleAnim_Sing
+ dw BattleAnim_Supersonic
+ dw BattleAnim_Sonicboom
+ dw BattleAnim_Disable
+ dw BattleAnim_Acid
+ dw BattleAnim_Ember
+ dw BattleAnim_Flamethrower
+ dw BattleAnim_Mist
+ dw BattleAnim_WaterGun
+ dw BattleAnim_HydroPump
+ dw BattleAnim_Surf
+ dw BattleAnim_IceBeam
+ dw BattleAnim_Blizzard
+ dw BattleAnim_Psybeam
+ dw BattleAnim_Bubblebeam
+ dw BattleAnim_AuroraBeam
+ dw BattleAnim_HyperBeam
+ dw BattleAnim_Peck
+ dw BattleAnim_DrillPeck
+ dw BattleAnim_Submission
+ dw BattleAnim_LowKick
+ dw BattleAnim_Counter
+ dw BattleAnim_SeismicToss
+ dw BattleAnim_Strength
+ dw BattleAnim_Absorb
+ dw BattleAnim_MegaDrain
+ dw BattleAnim_LeechSeed
+ dw BattleAnim_Growth
+ dw BattleAnim_RazorLeaf
+ dw BattleAnim_Solarbeam
+ dw BattleAnim_Poisonpowder
+ dw BattleAnim_StunSpore
+ dw BattleAnim_SleepPowder
+ dw BattleAnim_PetalDance
+ dw BattleAnim_StringShot
+ dw BattleAnim_DragonRage
+ dw BattleAnim_FireSpin
+ dw BattleAnim_Thundershock
+ dw BattleAnim_Thunderbolt
+ dw BattleAnim_ThunderWave
+ dw BattleAnim_Thunder
+ dw BattleAnim_RockThrow
+ dw BattleAnim_Earthquake
+ dw BattleAnim_Fissure
+ dw BattleAnim_Dig
+ dw BattleAnim_Toxic
+ dw BattleAnim_Confusion
+ dw BattleAnim_PsychicM
+ dw BattleAnim_Hypnosis
+ dw BattleAnim_Meditate
+ dw BattleAnim_Agility
+ dw BattleAnim_QuickAttack
+ dw BattleAnim_Rage
+ dw BattleAnim_Teleport
+ dw BattleAnim_NightShade
+ dw BattleAnim_Mimic
+ dw BattleAnim_Screech
+ dw BattleAnim_DoubleTeam
+ dw BattleAnim_Recover
+ dw BattleAnim_Harden
+ dw BattleAnim_Minimize
+ dw BattleAnim_Smokescreen
+ dw BattleAnim_ConfuseRay
+ dw BattleAnim_Withdraw
+ dw BattleAnim_DefenseCurl
+ dw BattleAnim_Barrier
+ dw BattleAnim_LightScreen
+ dw BattleAnim_Haze
+ dw BattleAnim_Reflect
+ dw BattleAnim_FocusEnergy
+ dw BattleAnim_Bide
+ dw BattleAnim_Metronome
+ dw BattleAnim_MirrorMove
+ dw BattleAnim_Selfdestruct
+ dw BattleAnim_EggBomb
+ dw BattleAnim_Lick
+ dw BattleAnim_Smog
+ dw BattleAnim_Sludge
+ dw BattleAnim_BoneClub
+ dw BattleAnim_FireBlast
+ dw BattleAnim_Waterfall
+ dw BattleAnim_Clamp
+ dw BattleAnim_Swift
+ dw BattleAnim_SkullBash
+ dw BattleAnim_SpikeCannon
+ dw BattleAnim_Constrict
+ dw BattleAnim_Amnesia
+ dw BattleAnim_Kinesis
+ dw BattleAnim_Softboiled
+ dw BattleAnim_HiJumpKick
+ dw BattleAnim_Glare
+ dw BattleAnim_DreamEater
+ dw BattleAnim_PoisonGas
+ dw BattleAnim_Barrage
+ dw BattleAnim_LeechLife
+ dw BattleAnim_LovelyKiss
+ dw BattleAnim_SkyAttack
+ dw BattleAnim_Transform
+ dw BattleAnim_Bubble
+ dw BattleAnim_DizzyPunch
+ dw BattleAnim_Spore
+ dw BattleAnim_Flash
+ dw BattleAnim_Psywave
+ dw BattleAnim_Splash
+ dw BattleAnim_AcidArmor
+ dw BattleAnim_Crabhammer
+ dw BattleAnim_Explosion
+ dw BattleAnim_FurySwipes
+ dw BattleAnim_Bonemerang
+ dw BattleAnim_Rest
+ dw BattleAnim_RockSlide
+ dw BattleAnim_HyperFang
+ dw BattleAnim_Sharpen
+ dw BattleAnim_Conversion
+ dw BattleAnim_TriAttack
+ dw BattleAnim_SuperFang
+ dw BattleAnim_Slash
+ dw BattleAnim_Substitute
+ dw BattleAnim_Struggle
+ dw BattleAnim_Sketch
+ dw BattleAnim_TripleKick
+ dw BattleAnim_Thief
+ dw BattleAnim_SpiderWeb
+ dw BattleAnim_MindReader
+ dw BattleAnim_Nightmare
+ dw BattleAnim_FlameWheel
+ dw BattleAnim_Snore
+ dw BattleAnim_Curse
+ dw BattleAnim_Flail
+ dw BattleAnim_Conversion2
+ dw BattleAnim_Aeroblast
+ dw BattleAnim_CottonSpore
+ dw BattleAnim_Reversal
+ dw BattleAnim_Spite
+ dw BattleAnim_PowderSnow
+ dw BattleAnim_Protect
+ dw BattleAnim_MachPunch
+ dw BattleAnim_ScaryFace
+ dw BattleAnim_FaintAttack
+ dw BattleAnim_SweetKiss
+ dw BattleAnim_BellyDrum
+ dw BattleAnim_SludgeBomb
+ dw BattleAnim_MudSlap
+ dw BattleAnim_Octazooka
+ dw BattleAnim_Spikes
+ dw BattleAnim_ZapCannon
+ dw BattleAnim_Foresight
+ dw BattleAnim_DestinyBond
+ dw BattleAnim_PerishSong
+ dw BattleAnim_IcyWind
+ dw BattleAnim_Detect
+ dw BattleAnim_BoneRush
+ dw BattleAnim_LockOn
+ dw BattleAnim_Outrage
+ dw BattleAnim_Sandstorm
+ dw BattleAnim_GigaDrain
+ dw BattleAnim_Endure
+ dw BattleAnim_Charm
+ dw BattleAnim_Rollout
+ dw BattleAnim_FalseSwipe
+ dw BattleAnim_Swagger
+ dw BattleAnim_MilkDrink
+ dw BattleAnim_Spark
+ dw BattleAnim_FuryCutter
+ dw BattleAnim_SteelWing
+ dw BattleAnim_MeanLook
+ dw BattleAnim_Attract
+ dw BattleAnim_SleepTalk
+ dw BattleAnim_HealBell
+ dw BattleAnim_Return
+ dw BattleAnim_Present
+ dw BattleAnim_Frustration
+ dw BattleAnim_Safeguard
+ dw BattleAnim_PainSplit
+ dw BattleAnim_SacredFire
+ dw BattleAnim_Magnitude
+ dw BattleAnim_Dynamicpunch
+ dw BattleAnim_Megahorn
+ dw BattleAnim_Dragonbreath
+ dw BattleAnim_BatonPass
+ dw BattleAnim_Encore
+ dw BattleAnim_Pursuit
+ dw BattleAnim_RapidSpin
+ dw BattleAnim_SweetScent
+ dw BattleAnim_IronTail
+ dw BattleAnim_MetalClaw
+ dw BattleAnim_VitalThrow
+ dw BattleAnim_MorningSun
+ dw BattleAnim_Synthesis
+ dw BattleAnim_Moonlight
+ dw BattleAnim_HiddenPower
+ dw BattleAnim_CrossChop
+ dw BattleAnim_Twister
+ dw BattleAnim_RainDance
+ dw BattleAnim_SunnyDay
+ dw BattleAnim_Crunch
+ dw BattleAnim_MirrorCoat
+ dw BattleAnim_PsychUp
+ dw BattleAnim_Extremespeed
+ dw BattleAnim_Ancientpower
+ dw BattleAnim_ShadowBall
+ dw BattleAnim_FutureSight
+ dw BattleAnim_RockSmash
+ dw BattleAnim_Whirlpool
+ dw BattleAnim_BeatUp
+ dw BattleAnim_252
+ dw BattleAnim_253
+ dw BattleAnim_254
+ dw BattleAnim_SweetScent2
+ dw BattleAnim_ThrowPokeBall
+ dw BattleAnim_SendOutMon
+ dw BattleAnim_ReturnMon
+ dw BattleAnim_Confused
+ dw BattleAnim_Slp
+ dw BattleAnim_Brn
+ dw BattleAnim_Psn
+ dw BattleAnim_Sap
+ dw BattleAnim_Frz
+ dw BattleAnim_Par
+ dw BattleAnim_InLove
+ dw BattleAnim_InSandstorm
+ dw BattleAnim_InNightmare
+ dw BattleAnim_InWhirlpool
+ dw BattleAnim_Miss
+ dw BattleAnim_EnemyDamage
+ dw BattleAnim_EnemyStatDown
+ dw BattleAnim_PlayerStatDown
+ dw BattleAnim_PlayerDamage
+ dw BattleAnim_Wobble
+ dw BattleAnim_Shake
+ dw BattleAnim_HitConfusion
+; c929b
+
+BattleAnim_0: ; c929b
+BattleAnim_252: ; c929b
+BattleAnim_253: ; c929b
+BattleAnim_254: ; c929b
+BattleAnim_MirrorMove: ; c929b
+ anim_ret
+; c929c
+
+BattleAnim_SweetScent2: ; c929c
+ anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC
+ anim_obj ANIM_OBJ_FLOWER, 64, 96, $2
+ anim_wait 2
+ anim_obj ANIM_OBJ_FLOWER, 64, 80, $2
+ anim_wait 64
+ anim_obj ANIM_OBJ_COTTON, 136, 40, $15
+ anim_obj ANIM_OBJ_COTTON, 136, 40, $2a
+ anim_obj ANIM_OBJ_COTTON, 136, 40, $3f
+ anim_bgeffect $6, $0, $2, $0
+ anim_wait 128
+ anim_ret
+; c92c1
+
+BattleAnim_ThrowPokeBall: ; c92c1
+ anim_jumpif $0, BattleAnim_ThrowPokeBall_branch_c92f2
+ anim_jumpif $1, BattleAnim_ThrowPokeBall_branch_c9347
+ anim_jumpif $2, BattleAnim_ThrowPokeBall_branch_c9305
+ anim_jumpif $4, BattleAnim_ThrowPokeBall_branch_c9326
+ anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
+ anim_sound $1a, SFX_THROW_BALL
+ anim_obj $15, 68, 92, $40
+ anim_wait 36
+ anim_obj $15, 136, 65, $0
+ anim_setobj $2, $7
+ anim_wait 16
+ anim_sound $1, SFX_BALL_POOF
+ anim_obj $1c, 136, 64, $10
+ anim_wait 16
+ anim_jump BattleAnim_ThrowPokeBall_branch_c9392
+; c92f2
+
+BattleAnim_ThrowPokeBall_branch_c92f2: ; c92f2
+ anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_HIT
+ anim_sound $1a, SFX_THROW_BALL
+ anim_obj $16, 64, 92, $20
+ anim_wait 20
+ anim_obj $1, 112, 40, $0
+ anim_wait 32
+ anim_ret
+; c9305
+
+BattleAnim_ThrowPokeBall_branch_c9305: ; c9305
+ anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
+ anim_sound $1a, SFX_THROW_BALL
+ anim_obj $15, 68, 92, $40
+ anim_wait 36
+ anim_obj $15, 136, 65, $0
+ anim_setobj $2, $7
+ anim_wait 16
+ anim_sound $1, SFX_BALL_POOF
+ anim_obj $1c, 136, 64, $10
+ anim_wait 16
+ anim_jump BattleAnim_ThrowPokeBall_branch_c9392
+; c9326
+
+BattleAnim_ThrowPokeBall_branch_c9326: ; c9326
+ anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
+ anim_sound $1a, SFX_THROW_BALL
+ anim_obj $15, 68, 92, $40
+ anim_wait 36
+ anim_obj $15, 136, 65, $0
+ anim_setobj $2, $7
+ anim_wait 16
+ anim_sound $1, SFX_BALL_POOF
+ anim_obj $1c, 136, 64, $10
+ anim_wait 16
+ anim_jump BattleAnim_ThrowPokeBall_branch_c9392
+; c9347
+
+BattleAnim_ThrowPokeBall_branch_c9347: ; c9347
+ anim_3gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE, ANIM_GFX_SPEED
+ anim_sound $1a, SFX_THROW_BALL
+ anim_obj $15, 64, 92, $20
+ anim_wait 36
+ anim_obj $15, 136, 65, $0
+ anim_setobj $2, $7
+ anim_wait 16
+ anim_sound $1, SFX_BALL_POOF
+ anim_obj $1c, 136, 64, $10
+ anim_wait 24
+ anim_sound $1, SFX_MASTER_BALL
+ anim_obj $2b, 136, 56, $30
+ anim_obj $2b, 136, 56, $31
+ anim_obj $2b, 136, 56, $32
+ anim_obj $2b, 136, 56, $33
+ anim_obj $2b, 136, 56, $34
+ anim_obj $2b, 136, 56, $35
+ anim_obj $2b, 136, 56, $36
+ anim_obj $2b, 136, 56, $37
+ anim_wait 64
+BattleAnim_ThrowPokeBall_branch_c9392: ; c9392
+ anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0
+ anim_wait 8
+ anim_incobj $2
+ anim_wait 16
+ anim_sound $1, SFX_CHANGE_DEX_MODE
+ anim_incobj $1
+ anim_wait 32
+ anim_sound $1, SFX_BALL_BOUNCE
+ anim_wait 32
+ anim_wait 32
+ anim_wait 32
+ anim_wait 8
+ anim_setvar $0
+BattleAnim_ThrowPokeBall_branch_c93aa: ; c93aa
+ anim_wait 48
+ anim_checkpokeball
+ anim_jumpvar $1, BattleAnim_ThrowPokeBall_branch_c93bc
+ anim_jumpvar $2, BattleAnim_ThrowPokeBall_branch_c93be
+ anim_incobj $1
+ anim_sound $1, SFX_BALL_WIGGLE
+ anim_jump BattleAnim_ThrowPokeBall_branch_c93aa
+; c93bc
+
+BattleAnim_ThrowPokeBall_branch_c93bc: ; c93bc
+ anim_clearsprites
+ anim_ret
+; c93be
+
+BattleAnim_ThrowPokeBall_branch_c93be: ; c93be
+ anim_setobj $1, $b
+ anim_sound $1, SFX_BALL_POOF
+ anim_obj $1c, 136, 64, $10
+ anim_wait 2
+ anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0
+ anim_wait 32
+ anim_ret
+; c93d1
+
+BattleAnim_SendOutMon: ; c93d1
+ anim_jumpif $0, BattleAnim_SendOutMon_branch_c9471
+ anim_jumpif $1, BattleAnim_SendOutMon_branch_c941c
+ anim_jumpif $2, BattleAnim_SendOutMon_branch_c93fa
+ anim_1gfx ANIM_GFX_SMOKE
+ anim_call BattleAnim_SendOutMon_branch_cbca7
+ anim_bgeffect $2b, $0, $1, $0
+ anim_sound $0, SFX_BALL_POOF
+ anim_obj $1b, 48, 96, $0
+ anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
+ anim_wait 128
+ anim_wait 4
+ anim_call BattleAnim_SendOutMon_branch_cbcb7
+ anim_ret
+; c93fa
+
+BattleAnim_SendOutMon_branch_c93fa: ; c93fa
+ anim_1gfx ANIM_GFX_SMOKE
+ anim_call BattleAnim_SendOutMon_branch_cbca7
+ anim_bgeffect $2a, $0, $1, $0
+ anim_wait 1
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 4
+ anim_sound $0, SFX_BALL_POOF
+ anim_obj $1b, 48, 96, $0
+ anim_incbgeffect $2a
+ anim_wait 96
+ anim_incbgeffect $2a
+ anim_call BattleAnim_SendOutMon_branch_cbcb7
+ anim_ret
+; c941c
+
+BattleAnim_SendOutMon_branch_c941c: ; c941c
+ anim_1gfx ANIM_GFX_SPEED
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
+ anim_bgeffect $6, $0, $2, $0
+ anim_sound $0, SFX_SHINE
+ anim_obj $6d, 48, 96, $0
+ anim_wait 4
+ anim_sound $0, SFX_SHINE
+ anim_obj $6d, 48, 96, $8
+ anim_wait 4
+ anim_sound $0, SFX_SHINE
+ anim_obj $6d, 48, 96, $10
+ anim_wait 4
+ anim_sound $0, SFX_SHINE
+ anim_obj $6d, 48, 96, $18
+ anim_wait 4
+ anim_sound $0, SFX_SHINE
+ anim_obj $6d, 48, 96, $20
+ anim_wait 4
+ anim_sound $0, SFX_SHINE
+ anim_obj $6d, 48, 96, $28
+ anim_wait 4
+ anim_sound $0, SFX_SHINE
+ anim_obj $6d, 48, 96, $30
+ anim_wait 4
+ anim_sound $0, SFX_SHINE
+ anim_obj $6d, 48, 96, $38
+ anim_wait 32
+ anim_ret
+; c9471
+
+BattleAnim_SendOutMon_branch_c9471: ; c9471
+ anim_1gfx ANIM_GFX_SMOKE
+ anim_sound $0, SFX_BALL_POOF
+ anim_obj $1c, 44, 96, $0
+ anim_wait 4
+ anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
+ anim_wait 32
+ anim_ret
+; c9483
+
+BattleAnim_ReturnMon: ; c9483
+ anim_sound $0, SFX_BALL_POOF
+BattleAnim_BatonPass_branch_c9486: ; c9486
+ anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0
+ anim_wait 32
+ anim_ret
+; c948d
+
+BattleAnim_Confused: ; c948d
+ anim_1gfx ANIM_GFX_STATUS
+ anim_sound $0, SFX_KINESIS
+ anim_obj ANIM_OBJ_CHICK, 44, 56, $15
+ anim_obj ANIM_OBJ_CHICK, 44, 56, $aa
+ anim_obj ANIM_OBJ_CHICK, 44, 56, $bf
+ anim_wait 96
+ anim_ret
+; c94a3
+
+BattleAnim_Slp: ; c94a3
+ anim_1gfx ANIM_GFX_STATUS
+ anim_sound $0, SFX_TAIL_WHIP
+BattleAnim_Slp_branch_c94a8: ; c94a8
+ anim_obj $54, 64, 80, $0
+ anim_wait 40
+ anim_loop $3, BattleAnim_Slp_branch_c94a8
+ anim_wait 32
+ anim_ret
+; c94b4
+
+BattleAnim_Brn: ; c94b4
+ anim_1gfx ANIM_GFX_FIRE
+BattleAnim_Brn_branch_c94b6: ; c94b6
+ anim_sound $0, SFX_BURN
+ anim_obj $10, 56, 88, $10
+ anim_wait 4
+ anim_loop $3, BattleAnim_Brn_branch_c94b6
+ anim_wait 6
+ anim_ret
+; c94c5
+
+BattleAnim_Psn: ; c94c5
+ anim_1gfx ANIM_GFX_POISON
+ anim_sound $0, SFX_POISON
+ anim_obj ANIM_OBJ_SKULL, 64, 56, $0
+ anim_wait 8
+ anim_sound $0, SFX_POISON
+ anim_obj ANIM_OBJ_SKULL, 48, 56, $0
+ anim_wait 8
+ anim_ret
+; c94da
+
+BattleAnim_Sap: ; c94da
+ anim_1gfx ANIM_GFX_CHARGE
+ anim_sound $1b, SFX_WATER_GUN
+ anim_obj $45, 128, 48, $2
+ anim_wait 6
+ anim_sound $1b, SFX_WATER_GUN
+ anim_obj $45, 136, 64, $3
+ anim_wait 6
+ anim_sound $1b, SFX_WATER_GUN
+ anim_obj $45, 136, 32, $4
+ anim_wait 16
+ anim_ret
+; c94f8
+
+BattleAnim_Frz: ; c94f8
+ anim_1gfx ANIM_GFX_ICE
+ anim_obj ANIM_OBJ_FROZEN, 44, 110, $0
+ anim_sound $0, SFX_SHINE
+ anim_wait 16
+ anim_sound $0, SFX_SHINE
+ anim_wait 16
+ anim_ret
+; c9508
+
+BattleAnim_Par: ; c9508
+ anim_1gfx ANIM_GFX_STATUS
+ anim_bgeffect $6, $0, $2, $0
+ anim_sound $0, SFX_THUNDERSHOCK
+ anim_obj ANIM_OBJ_PARALYZED, 20, 88, $42
+ anim_obj ANIM_OBJ_PARALYZED, 76, 88, $c2
+ anim_wait 128
+ anim_ret
+; c951e
+
+BattleAnim_InLove: ; c951e
+ anim_1gfx ANIM_GFX_OBJECTS
+ anim_sound $0, SFX_LICK
+ anim_obj ANIM_OBJ_HEART, 64, 76, $0
+ anim_wait 32
+ anim_sound $0, SFX_LICK
+ anim_obj ANIM_OBJ_HEART, 36, 72, $0
+ anim_wait 32
+ anim_ret
+; c9533
+
+BattleAnim_InSandstorm: ; c9533
+ anim_1gfx ANIM_GFX_POWDER
+ anim_obj $a2, 88, 0, $0
+ anim_wait 8
+ anim_obj $a2, 72, 0, $1
+ anim_wait 8
+ anim_obj $a2, 56, 0, $2
+BattleAnim_InSandstorm_branch_c9546: ; c9546
+ anim_sound $1, SFX_MENU
+ anim_wait 8
+ anim_loop $6, BattleAnim_InSandstorm_branch_c9546
+ anim_wait 8
+ anim_ret
+; c9550
+
+BattleAnim_InNightmare: ; c9550
+ anim_1gfx ANIM_GFX_ANGELS
+ anim_sound $0, SFX_BUBBLEBEAM
+ anim_obj $95, 68, 80, $0
+ anim_wait 40
+ anim_ret
+; c955c
+
+BattleAnim_InWhirlpool: ; c955c
+ anim_1gfx ANIM_GFX_WIND
+ anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0
+ anim_sound $1, SFX_SURF
+BattleAnim_InWhirlpool_branch_c9566: ; c9566
+ anim_obj ANIM_OBJ_GUST, 132, 72, $0
+ anim_wait 6
+ anim_loop $6, BattleAnim_InWhirlpool_branch_c9566
+ anim_incbgeffect ANIM_BG_WHIRLPOOL
+ anim_wait 1
+ anim_ret
+; c9574
+
+BattleAnim_HitConfusion: ; c9574
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $0, SFX_POUND
+ anim_obj $4, 44, 96, $0
+ anim_wait 16
+ anim_ret
+; c9580
+
+BattleAnim_Miss: ; c9580
+ anim_ret
+; c9581
+
+BattleAnim_EnemyDamage: ; c9581
+BattleAnim_EnemyDamage_branch_c9581: ; c9581
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0
+ anim_wait 5
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+ anim_wait 5
+ anim_loop $3, BattleAnim_EnemyDamage_branch_c9581
+ anim_ret
+; c9592
+
+BattleAnim_EnemyStatDown: ; c9592
+ anim_call BattleAnim_EnemyStatDown_branch_cbcc2
+ anim_bgeffect ANIM_BG_VIBRATE_MON, $0, $0, $0
+ anim_wait 40
+ anim_call BattleAnim_EnemyStatDown_branch_cbcd2
+ anim_wait 1
+ anim_ret
+; c95a0
+
+BattleAnim_PlayerStatDown: ; c95a0
+ anim_call BattleAnim_PlayerStatDown_branch_cbcc2
+ anim_bgeffect ANIM_BG_WOBBLE_MON, $0, $0, $0
+ anim_wait 40
+ anim_call BattleAnim_PlayerStatDown_branch_cbcd2
+ anim_wait 1
+ anim_ret
+; c95ae
+
+BattleAnim_PlayerDamage: ; c95ae
+ anim_bgeffect $20, $20, $2, $20
+ anim_wait 40
+ anim_ret
+; c95b5
+
+BattleAnim_Wobble: ; c95b5
+ anim_bgeffect $35, $0, $0, $0
+ anim_wait 40
+ anim_ret
+; c95bc
+
+BattleAnim_Shake: ; c95bc
+ anim_bgeffect $1f, $20, $2, $40
+ anim_wait 40
+ anim_ret
+; c95c3
+
+BattleAnim_Pound: ; c95c3
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $1, SFX_POUND
+ anim_obj $8, 136, 56, $0
+ anim_wait 6
+ anim_obj $1, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; c95d5
+
+BattleAnim_KarateChop: ; c95d5
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $1, SFX_KARATE_CHOP
+ anim_obj $8, 136, 40, $0
+ anim_wait 6
+ anim_obj $1, 136, 40, $0
+ anim_wait 6
+ anim_sound $1, SFX_KARATE_CHOP
+ anim_obj $8, 136, 44, $0
+ anim_wait 6
+ anim_obj $1, 136, 44, $0
+ anim_wait 6
+ anim_sound $1, SFX_KARATE_CHOP
+ anim_obj $8, 136, 48, $0
+ anim_wait 6
+ anim_obj $1, 136, 48, $0
+ anim_wait 16
+ anim_ret
+; c9605
+
+BattleAnim_Doubleslap: ; c9605
+ anim_1gfx ANIM_GFX_HIT
+ anim_jumpif $1, BattleAnim_Doubleslap_branch_c961b
+ anim_sound $1, SFX_DOUBLESLAP
+ anim_obj $8, 144, 48, $0
+ anim_wait 6
+ anim_obj $1, 144, 48, $0
+ anim_wait 8
+ anim_ret
+; c961b
+
+BattleAnim_Doubleslap_branch_c961b: ; c961b
+ anim_sound $1, SFX_DOUBLESLAP
+ anim_obj $8, 120, 48, $0
+ anim_wait 6
+ anim_obj $1, 120, 48, $0
+ anim_wait 8
+ anim_ret
+; c962b
+
+BattleAnim_CometPunch: ; c962b
+ anim_1gfx ANIM_GFX_HIT
+ anim_jumpif $1, BattleAnim_CometPunch_branch_c9641
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $6, 144, 48, $0
+ anim_wait 6
+ anim_obj $1, 144, 48, $0
+ anim_wait 8
+ anim_ret
+; c9641
+
+BattleAnim_CometPunch_branch_c9641: ; c9641
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $6, 120, 64, $0
+ anim_wait 6
+ anim_obj $1, 120, 64, $0
+ anim_wait 8
+ anim_ret
+; c9651
+
+BattleAnim_Bide_branch_c9651: ; c9651
+BattleAnim_MegaPunch: ; c9651
+ anim_1gfx ANIM_GFX_HIT
+ anim_bgeffect $1f, $40, $2, $0
+ anim_wait 48
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+BattleAnim_Bide_branch_c965e: ; c965e
+BattleAnim_MegaPunch_branch_c965e: ; c965e
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $6, 136, 56, $0
+ anim_obj $0, 136, 56, $0
+ anim_wait 6
+ anim_obj $6, 136, 56, $0
+ anim_wait 6
+ anim_loop $3, BattleAnim_Bide_branch_c965e
+ anim_ret
+; c9677
+
+BattleAnim_Stomp: ; c9677
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $1, SFX_STOMP
+ anim_obj $7, 136, 40, $0
+ anim_wait 6
+ anim_obj $1, 136, 40, $0
+ anim_wait 6
+ anim_sound $1, SFX_STOMP
+ anim_obj $7, 136, 44, $0
+ anim_wait 6
+ anim_obj $1, 136, 44, $0
+ anim_wait 6
+ anim_sound $1, SFX_STOMP
+ anim_obj $7, 136, 48, $0
+ anim_wait 6
+ anim_obj $1, 136, 48, $0
+ anim_wait 16
+ anim_ret
+; c96a7
+
+BattleAnim_DoubleKick: ; c96a7
+ anim_1gfx ANIM_GFX_HIT
+ anim_jumpif $1, BattleAnim_DoubleKick_branch_c96bd
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $7, 144, 48, $0
+ anim_wait 6
+ anim_obj $1, 144, 48, $0
+ anim_wait 8
+ anim_ret
+; c96bd
+
+BattleAnim_DoubleKick_branch_c96bd: ; c96bd
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $7, 120, 64, $0
+ anim_wait 6
+ anim_obj $1, 120, 64, $0
+ anim_wait 8
+ anim_ret
+; c96cd
+
+BattleAnim_JumpKick: ; c96cd
+ anim_1gfx ANIM_GFX_HIT
+ anim_jumpif $1, BattleAnim_JumpKick_branch_c96f1
+ anim_sound $1, SFX_JUMP_KICK
+ anim_obj $7, 112, 72, $0
+ anim_obj $7, 100, 60, $0
+ anim_setobj $1, $2
+ anim_setobj $2, $2
+ anim_wait 24
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $4, 136, 48, $0
+ anim_wait 16
+ anim_ret
+; c96f1
+
+BattleAnim_JumpKick_branch_c96f1: ; c96f1
+ anim_wait 8
+ anim_sound $0, SFX_DOUBLE_KICK
+ anim_obj $4, 44, 88, $0
+ anim_wait 16
+ anim_ret
+; c96fc
+
+BattleAnim_HiJumpKick: ; c96fc
+ anim_1gfx ANIM_GFX_HIT
+ anim_bgeffect $1f, $40, $2, $0
+ anim_jumpif $1, BattleAnim_HiJumpKick_branch_c971e
+ anim_wait 32
+ anim_sound $1, SFX_JUMP_KICK
+ anim_obj $7, 112, 72, $0
+ anim_setobj $1, $2
+ anim_wait 16
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $4, 136, 48, $0
+ anim_wait 16
+ anim_ret
+; c971e
+
+BattleAnim_HiJumpKick_branch_c971e: ; c971e
+ anim_wait 16
+ anim_sound $0, SFX_DOUBLE_KICK
+ anim_obj $4, 44, 88, $0
+ anim_wait 16
+ anim_ret
+; c9729
+
+BattleAnim_RollingKick: ; c9729
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $7, 112, 56, $0
+ anim_setobj $1, $3
+ anim_wait 12
+ anim_obj $1, 136, 48, $0
+ anim_wait 16
+ anim_ret
+; c973e
+
+BattleAnim_MegaKick: ; c973e
+ anim_1gfx ANIM_GFX_HIT
+ anim_bgeffect $1f, $40, $2, $0
+ anim_wait 67
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+BattleAnim_MegaKick_branch_c974b: ; c974b
+ anim_sound $1, SFX_MEGA_KICK
+ anim_obj $7, 136, 56, $0
+ anim_obj $0, 136, 56, $0
+ anim_wait 6
+ anim_obj $7, 136, 56, $0
+ anim_wait 6
+ anim_loop $3, BattleAnim_MegaKick_branch_c974b
+ anim_ret
+; c9764
+
+BattleAnim_HyperFang: ; c9764
+ anim_1gfx ANIM_GFX_HIT
+ anim_bgeffect $1f, $20, $1, $0
+ anim_sound $1, SFX_BITE
+ anim_obj $9, 136, 56, $0
+ anim_wait 6
+ anim_obj $1, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; c977b
+
+BattleAnim_SuperFang: ; c977b
+ anim_1gfx ANIM_GFX_HIT
+ anim_bgeffect $1f, $40, $2, $0
+ anim_wait 48
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+BattleAnim_SuperFang_branch_c9788: ; c9788
+ anim_sound $1, SFX_BITE
+ anim_obj $9, 136, 56, $0
+ anim_obj $0, 136, 56, $0
+ anim_wait 6
+ anim_obj $9, 136, 56, $0
+ anim_wait 6
+ anim_loop $3, BattleAnim_SuperFang_branch_c9788
+ anim_ret
+; c97a1
+
+BattleAnim_Ember: ; c97a1
+ anim_1gfx ANIM_GFX_FIRE
+ anim_sound $1a, SFX_EMBER
+ anim_obj $b, 64, 96, $12
+ anim_wait 4
+ anim_sound $1a, SFX_EMBER
+ anim_obj $b, 64, 100, $14
+ anim_wait 4
+ anim_sound $1a, SFX_EMBER
+ anim_obj $b, 64, 84, $13
+ anim_wait 16
+ anim_incobj $1
+ anim_incobj $2
+ anim_incobj $3
+ anim_sound $1, SFX_EMBER
+ anim_obj $b, 120, 68, $30
+ anim_obj $b, 132, 68, $30
+ anim_obj $b, 144, 68, $30
+ anim_wait 32
+ anim_ret
+; c97d8
+
+BattleAnim_FirePunch: ; c97d8
+ anim_2gfx ANIM_GFX_HIT, ANIM_GFX_FIRE
+ anim_obj $a, 136, 56, $43
+ anim_call BattleAnim_FirePunch_branch_cbbcc
+ anim_wait 16
+ anim_ret
+; c97e5
+
+BattleAnim_FireSpin: ; c97e5
+ anim_1gfx ANIM_GFX_FIRE
+BattleAnim_FireSpin_branch_c97e7: ; c97e7
+ anim_sound $1a, SFX_EMBER
+ anim_obj $e, 64, 88, $4
+ anim_wait 2
+ anim_sound $1a, SFX_EMBER
+ anim_obj $e, 64, 96, $3
+ anim_wait 2
+ anim_sound $1a, SFX_EMBER
+ anim_obj $e, 64, 88, $3
+ anim_wait 2
+ anim_sound $1a, SFX_EMBER
+ anim_obj $e, 64, 96, $4
+ anim_wait 2
+ anim_loop $2, BattleAnim_FireSpin_branch_c97e7
+ anim_wait 96
+ anim_ret
+; c9811
+
+BattleAnim_DragonRage: ; c9811
+ anim_1gfx ANIM_GFX_FIRE
+BattleAnim_DragonRage_branch_c9813: ; c9813
+ anim_sound $1a, SFX_EMBER
+ anim_obj $c, 64, 92, $0
+ anim_wait 3
+ anim_loop $10, BattleAnim_DragonRage_branch_c9813
+ anim_wait 64
+ anim_ret
+; c9822
+
+BattleAnim_Flamethrower: ; c9822
+ anim_1gfx ANIM_GFX_FIRE
+ anim_sound $1a, SFX_EMBER
+ anim_obj $d, 64, 92, $3
+ anim_wait 2
+ anim_obj $d, 75, 86, $5
+ anim_wait 2
+ anim_obj $d, 85, 81, $7
+ anim_wait 2
+ anim_obj $d, 96, 76, $9
+ anim_wait 2
+ anim_obj $d, 106, 71, $b
+ anim_wait 2
+ anim_obj $d, 116, 66, $c
+ anim_wait 2
+ anim_obj $d, 126, 61, $a
+ anim_wait 2
+ anim_obj $d, 136, 56, $8
+ anim_wait 16
+BattleAnim_Flamethrower_branch_c9857: ; c9857
+ anim_sound $1, SFX_EMBER
+ anim_wait 16
+ anim_loop $6, BattleAnim_Flamethrower_branch_c9857
+ anim_wait 16
+ anim_ret
+; c9861
+
+BattleAnim_FireBlast: ; c9861
+ anim_1gfx ANIM_GFX_FIRE
+BattleAnim_FireBlast_branch_c9863: ; c9863
+ anim_sound $1a, SFX_EMBER
+ anim_obj $f, 64, 92, $7
+ anim_wait 6
+ anim_loop $a, BattleAnim_FireBlast_branch_c9863
+BattleAnim_FireBlast_branch_c9870: ; c9870
+ anim_sound $1, SFX_EMBER
+ anim_wait 8
+ anim_loop $a, BattleAnim_FireBlast_branch_c9870
+ anim_incobj $1
+ anim_incobj $2
+ anim_incobj $3
+ anim_incobj $4
+ anim_incobj $5
+ anim_incobj $6
+ anim_incobj $7
+ anim_incobj $8
+ anim_incobj $9
+ anim_incobj $a
+ anim_wait 2
+BattleAnim_FireBlast_branch_c988d: ; c988d
+ anim_sound $1, SFX_EMBER
+ anim_obj $f, 136, 56, $1
+ anim_obj $f, 136, 56, $2
+ anim_obj $f, 136, 56, $3
+ anim_obj $f, 136, 56, $4
+ anim_obj $f, 136, 56, $5
+ anim_wait 16
+ anim_loop $2, BattleAnim_FireBlast_branch_c988d
+ anim_wait 32
+ anim_ret
+; c98b0
+
+BattleAnim_IcePunch: ; c98b0
+ anim_2gfx ANIM_GFX_HIT, ANIM_GFX_ICE
+ anim_obj $a, 136, 56, $43
+ anim_call BattleAnim_IcePunch_branch_cbbdf
+ anim_wait 32
+ anim_ret
+; c98bd
+
+BattleAnim_IceBeam: ; c98bd
+ anim_1gfx ANIM_GFX_ICE
+BattleAnim_IceBeam_branch_c98bf: ; c98bf
+ anim_sound $1a, SFX_SHINE
+ anim_obj $13, 64, 92, $4
+ anim_wait 4
+ anim_loop $5, BattleAnim_IceBeam_branch_c98bf
+ anim_obj $29, 136, 74, $10
+BattleAnim_IceBeam_branch_c98d1: ; c98d1
+ anim_sound $1a, SFX_SHINE
+ anim_obj $13, 64, 92, $4
+ anim_wait 4
+ anim_loop $f, BattleAnim_IceBeam_branch_c98d1
+ anim_wait 48
+ anim_sound $1, SFX_SHINE
+ anim_wait 8
+ anim_sound $1, SFX_SHINE
+ anim_wait 8
+ anim_ret
+; c98e8
+
+BattleAnim_Blizzard: ; c98e8
+ anim_1gfx ANIM_GFX_ICE
+BattleAnim_Blizzard_branch_c98ea: ; c98ea
+ anim_sound $1a, SFX_SHINE
+ anim_obj $11, 64, 88, $63
+ anim_wait 2
+ anim_sound $1a, SFX_SHINE
+ anim_obj $11, 64, 80, $64
+ anim_wait 2
+ anim_sound $1a, SFX_SHINE
+ anim_obj $11, 64, 96, $63
+ anim_wait 2
+ anim_loop $3, BattleAnim_Blizzard_branch_c98ea
+ anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
+ anim_wait 32
+ anim_obj $29, 136, 74, $10
+ anim_wait 128
+ anim_sound $1, SFX_SHINE
+ anim_wait 8
+ anim_sound $1, SFX_SHINE
+ anim_wait 24
+ anim_ret
+; c991e
+
+BattleAnim_Bubble: ; c991e
+ anim_1gfx ANIM_GFX_BUBBLE
+ anim_sound $82, SFX_WATER_GUN
+ anim_obj $21, 64, 92, $c1
+ anim_wait 6
+ anim_sound $82, SFX_WATER_GUN
+ anim_obj $21, 64, 92, $e1
+ anim_wait 6
+ anim_sound $82, SFX_WATER_GUN
+ anim_obj $21, 64, 92, $d1
+ anim_wait 128
+ anim_wait 32
+ anim_ret
+; c993d
+
+BattleAnim_Bubblebeam: ; c993d
+ anim_1gfx ANIM_GFX_BUBBLE
+BattleAnim_Bubblebeam_branch_c993f: ; c993f
+ anim_sound $42, SFX_BUBBLEBEAM
+ anim_obj $21, 64, 92, $92
+ anim_wait 6
+ anim_sound $42, SFX_BUBBLEBEAM
+ anim_obj $21, 64, 92, $b3
+ anim_wait 6
+ anim_sound $42, SFX_BUBBLEBEAM
+ anim_obj $21, 64, 92, $f4
+ anim_wait 8
+ anim_loop $3, BattleAnim_Bubblebeam_branch_c993f
+ anim_wait 64
+ anim_clearobjs
+ anim_bgeffect $30, $0, $0, $0
+ anim_wait 1
+ anim_call BattleAnim_Bubblebeam_branch_cbcca
+ anim_bgeffect $31, $1c, $0, $0
+ anim_wait 19
+ anim_call BattleAnim_Bubblebeam_branch_cbcd2
+ anim_bgeffect $32, $0, $0, $0
+ anim_wait 8
+ anim_ret
+; c9979
+
+BattleAnim_WaterGun: ; c9979
+ anim_bgeffect $30, $0, $0, $0
+ anim_1gfx ANIM_GFX_WATER
+ anim_call BattleAnim_WaterGun_branch_cbcca
+ anim_sound $42, SFX_WATER_GUN
+ anim_obj $24, 64, 88, $0
+ anim_wait 8
+ anim_obj $24, 64, 76, $0
+ anim_wait 8
+ anim_obj $24, 64, 82, $0
+ anim_wait 24
+ anim_bgeffect $31, $1c, $0, $0
+ anim_wait 8
+ anim_bgeffect $31, $8, $0, $0
+ anim_wait 8
+ anim_bgeffect $31, $30, $0, $0
+ anim_wait 32
+ anim_call BattleAnim_WaterGun_branch_cbcd2
+ anim_bgeffect $32, $0, $0, $0
+ anim_wait 16
+ anim_ret
+; c99b4
+
+BattleAnim_HydroPump: ; c99b4
+ anim_bgeffect $30, $0, $0, $0
+ anim_1gfx ANIM_GFX_WATER
+ anim_call BattleAnim_HydroPump_branch_cbcca
+ anim_sound $1, SFX_HYDRO_PUMP
+ anim_obj $25, 108, 72, $0
+ anim_bgeffect $31, $1c, $0, $0
+ anim_wait 8
+ anim_sound $1, SFX_HYDRO_PUMP
+ anim_obj $25, 116, 72, $0
+ anim_bgeffect $31, $8, $0, $0
+ anim_wait 8
+ anim_sound $1, SFX_HYDRO_PUMP
+ anim_obj $25, 124, 72, $0
+ anim_bgeffect $31, $30, $0, $0
+ anim_wait 8
+ anim_sound $1, SFX_HYDRO_PUMP
+ anim_obj $25, 132, 72, $0
+ anim_bgeffect $31, $1c, $0, $0
+ anim_wait 8
+ anim_sound $1, SFX_HYDRO_PUMP
+ anim_obj $25, 140, 72, $0
+ anim_bgeffect $31, $8, $0, $0
+ anim_wait 8
+ anim_sound $1, SFX_HYDRO_PUMP
+ anim_obj $25, 148, 72, $0
+ anim_bgeffect $31, $30, $0, $0
+ anim_wait 8
+ anim_sound $1, SFX_HYDRO_PUMP
+ anim_obj $25, 156, 72, $0
+ anim_bgeffect $31, $1c, $0, $0
+ anim_wait 32
+ anim_call BattleAnim_HydroPump_branch_cbcd2
+ anim_bgeffect $32, $0, $0, $0
+ anim_wait 16
+ anim_ret
+; c9a2a
+
+BattleAnim_Surf: ; c9a2a
+ anim_1gfx ANIM_GFX_BUBBLE
+ anim_bgeffect ANIM_BG_SURF, $0, $0, $0
+ anim_obj $22, 88, 104, $8
+BattleAnim_Surf_branch_c9a36: ; c9a36
+ anim_sound $1, SFX_SURF
+ anim_wait 32
+ anim_loop $4, BattleAnim_Surf_branch_c9a36
+ anim_incobj $1
+ anim_wait 56
+ anim_ret
+; c9a42
+
+BattleAnim_VineWhip: ; c9a42
+ anim_1gfx ANIM_GFX_WHIP
+ anim_sound $1, SFX_VINE_WHIP
+ anim_obj $40, 116, 52, $80
+ anim_wait 4
+ anim_sound $1, SFX_VINE_WHIP
+ anim_obj $3f, 128, 60, $0
+ anim_wait 4
+ anim_incobj $1
+ anim_wait 4
+ anim_ret
+; c9a5a
+
+BattleAnim_LeechSeed: ; c9a5a
+ anim_1gfx ANIM_GFX_PLANT
+ anim_sound $42, SFX_VINE_WHIP
+ anim_obj $4a, 48, 80, $20
+ anim_wait 8
+ anim_sound $42, SFX_VINE_WHIP
+ anim_obj $4a, 48, 80, $30
+ anim_wait 8
+ anim_sound $42, SFX_VINE_WHIP
+ anim_obj $4a, 48, 80, $28
+ anim_wait 32
+ anim_sound $1, SFX_CHARGE
+ anim_wait 128
+ anim_ret
+; c9a7c
+
+BattleAnim_RazorLeaf: ; c9a7c
+ anim_1gfx ANIM_GFX_PLANT
+ anim_sound $0, SFX_VINE_WHIP
+ anim_obj $14, 48, 80, $28
+ anim_obj $14, 48, 80, $5c
+ anim_obj $14, 48, 80, $10
+ anim_obj $14, 48, 80, $e8
+ anim_obj $14, 48, 80, $9c
+ anim_obj $14, 48, 80, $d0
+ anim_wait 6
+ anim_obj $14, 48, 80, $1c
+ anim_obj $14, 48, 80, $50
+ anim_obj $14, 48, 80, $dc
+ anim_obj $14, 48, 80, $90
+ anim_wait 80
+ anim_sound $42, SFX_VINE_WHIP
+ anim_incobj $3
+ anim_wait 2
+ anim_sound $42, SFX_VINE_WHIP
+ anim_incobj $5
+ anim_wait 2
+ anim_sound $42, SFX_VINE_WHIP
+ anim_incobj $7
+ anim_wait 2
+ anim_sound $42, SFX_VINE_WHIP
+ anim_incobj $9
+ anim_wait 2
+ anim_sound $42, SFX_VINE_WHIP
+ anim_incobj $1
+ anim_wait 2
+ anim_sound $42, SFX_VINE_WHIP
+ anim_incobj $2
+ anim_wait 2
+ anim_sound $42, SFX_VINE_WHIP
+ anim_incobj $4
+ anim_wait 2
+ anim_sound $42, SFX_VINE_WHIP
+ anim_incobj $6
+ anim_wait 2
+ anim_sound $42, SFX_VINE_WHIP
+ anim_incobj $8
+ anim_wait 2
+ anim_sound $42, SFX_VINE_WHIP
+ anim_incobj $a
+ anim_wait 64
+ anim_ret
+; c9af2
+
+BattleAnim_Solarbeam: ; c9af2
+ anim_jumpif $0, BattleAnim_Solarbeam_branch_c9b30
+ anim_1gfx ANIM_GFX_CHARGE
+ anim_sound $0, SFX_CHARGE
+ anim_obj $3d, 48, 84, $0
+ anim_obj $3c, 48, 84, $0
+ anim_obj $3c, 48, 84, $8
+ anim_obj $3c, 48, 84, $10
+ anim_obj $3c, 48, 84, $18
+ anim_obj $3c, 48, 84, $20
+ anim_obj $3c, 48, 84, $28
+ anim_obj $3c, 48, 84, $30
+ anim_obj $3c, 48, 84, $38
+ anim_wait 104
+ anim_bgeffect ANIM_BG_FLASH_WHITE, $0, $4, $2
+ anim_wait 64
+ anim_ret
+; c9b30
+
+BattleAnim_Solarbeam_branch_c9b30: ; c9b30
+ anim_1gfx ANIM_GFX_BEAM
+ anim_bgeffect $6, $0, $2, $0
+ anim_call BattleAnim_Solarbeam_branch_cbb39
+ anim_wait 48
+ anim_ret
+; c9b3c
+
+BattleAnim_Thunderpunch: ; c9b3c
+ anim_2gfx ANIM_GFX_HIT, ANIM_GFX_LIGHTNING
+ anim_obj $a, 136, 56, $43
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2
+ anim_sound $1, SFX_THUNDER
+ anim_obj $2f, 152, 68, $0
+ anim_wait 64
+ anim_ret
+; c9b53
+
+BattleAnim_Thundershock: ; c9b53
+ anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
+ anim_obj $34, 136, 56, $2
+ anim_wait 16
+ anim_sound $1, SFX_THUNDERSHOCK
+ anim_obj $33, 136, 56, $0
+ anim_wait 96
+ anim_ret
+; c9b66
+
+BattleAnim_Thunderbolt: ; c9b66
+ anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
+ anim_obj $32, 136, 56, $2
+ anim_wait 16
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+ anim_sound $1, SFX_THUNDERSHOCK
+ anim_obj $31, 136, 56, $0
+ anim_wait 64
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+ anim_wait 64
+ anim_ret
+; c9b84
+
+BattleAnim_ThunderWave: ; c9b84
+ anim_1gfx ANIM_GFX_LIGHTNING
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
+ anim_sound $1, SFX_THUNDERSHOCK
+ anim_obj $30, 136, 56, $0
+ anim_wait 20
+ anim_bgp $1b
+ anim_incobj $1
+ anim_wait 96
+ anim_ret
+; c9b9a
+
+BattleAnim_Thunder: ; c9b9a
+ anim_1gfx ANIM_GFX_LIGHTNING
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20
+ anim_sound $1, SFX_THUNDER
+ anim_obj $2e, 120, 68, $0
+ anim_wait 16
+ anim_sound $1, SFX_THUNDER
+ anim_obj $2f, 152, 68, $0
+ anim_wait 16
+ anim_sound $1, SFX_THUNDER
+ anim_obj $2d, 136, 68, $0
+ anim_wait 48
+ anim_ret
+; c9bbd
+
+BattleAnim_RazorWind: ; c9bbd
+ anim_jumpif $1, BattleAnim_RazorWind_branch_c9fb5
+ anim_1gfx ANIM_GFX_WHIP
+ anim_bgeffect $6, $0, $1, $0
+BattleAnim_RazorWind_branch_c9bc8: ; c9bc8
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+ anim_sound $1, SFX_RAZOR_WIND
+ anim_obj $42, 152, 40, $3
+ anim_wait 4
+ anim_sound $1, SFX_RAZOR_WIND
+ anim_obj $42, 136, 56, $3
+ anim_wait 4
+ anim_sound $1, SFX_RAZOR_WIND
+ anim_obj $42, 152, 64, $3
+ anim_wait 4
+ anim_sound $1, SFX_RAZOR_WIND
+ anim_obj $41, 120, 40, $83
+ anim_wait 4
+ anim_sound $1, SFX_RAZOR_WIND
+ anim_obj $41, 120, 64, $83
+ anim_wait 4
+ anim_loop $3, BattleAnim_RazorWind_branch_c9bc8
+ anim_wait 24
+ anim_ret
+; c9c00
+
+BattleAnim_Sonicboom_JP: ; c9c00
+ anim_2gfx ANIM_GFX_WHIP, ANIM_GFX_HIT
+BattleAnim_Sonicboom_JP_branch_c9c03: ; c9c03
+ anim_sound $c, SFX_RAZOR_WIND
+ anim_obj $43, 64, 80, $3
+ anim_wait 8
+ anim_sound $c, SFX_RAZOR_WIND
+ anim_obj $43, 64, 88, $2
+ anim_wait 8
+ anim_sound $c, SFX_RAZOR_WIND
+ anim_obj $43, 64, 96, $4
+ anim_wait 8
+ anim_loop $2, BattleAnim_Sonicboom_JP_branch_c9c03
+ anim_wait 32
+ anim_incobj $1
+ anim_incobj $2
+ anim_incobj $3
+ anim_incobj $4
+ anim_incobj $5
+ anim_incobj $6
+ anim_obj $1, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; c9c36
+
+BattleAnim_Gust: ; c9c36
+BattleAnim_Sonicboom: ; c9c36
+ anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
+BattleAnim_Gust_branch_c9c39: ; c9c39
+BattleAnim_Sonicboom_branch_c9c39: ; c9c39
+ anim_sound $1, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_GUST, 136, 72, $0
+ anim_wait 6
+ anim_loop $9, BattleAnim_Gust_branch_c9c39
+ anim_obj $1, 144, 64, $18
+ anim_wait 8
+ anim_obj $1, 128, 32, $18
+ anim_wait 16
+ anim_ret
+; c9c53
+
+BattleAnim_Selfdestruct: ; c9c53
+ anim_1gfx ANIM_GFX_EXPLOSION
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24
+ anim_jumpif $1, BattleAnim_Selfdestruct_branch_c9c63
+ anim_call BattleAnim_Selfdestruct_branch_cbb8f
+ anim_wait 16
+ anim_ret
+; c9c63
+
+BattleAnim_Selfdestruct_branch_c9c63: ; c9c63
+ anim_call BattleAnim_Selfdestruct_branch_cbb62
+ anim_wait 5
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+ anim_loop $2, BattleAnim_Selfdestruct_branch_c9c63
+ anim_wait 16
+ anim_ret
+; c9c72
+
+BattleAnim_Explosion: ; c9c72
+ anim_1gfx ANIM_GFX_EXPLOSION
+ anim_bgeffect $1f, $60, $4, $10
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24
+ anim_jumpif $1, BattleAnim_Explosion_branch_c9c87
+ anim_call BattleAnim_Explosion_branch_cbb8f
+ anim_wait 16
+ anim_ret
+; c9c87
+
+BattleAnim_Explosion_branch_c9c87: ; c9c87
+ anim_call BattleAnim_Explosion_branch_cbb62
+ anim_wait 5
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+ anim_loop $2, BattleAnim_Explosion_branch_c9c87
+ anim_wait 16
+ anim_ret
+; c9c96
+
+BattleAnim_Acid: ; c9c96
+ anim_1gfx ANIM_GFX_POISON
+ anim_call BattleAnim_Acid_branch_cbc35
+ anim_wait 64
+ anim_ret
+; c9c9d
+
+BattleAnim_RockThrow: ; c9c9d
+ anim_1gfx ANIM_GFX_ROCKS
+ anim_bgeffect $1f, $60, $1, $0
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1e, 128, 64, $40
+ anim_wait 2
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1d, 120, 68, $30
+ anim_wait 2
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1e, 152, 68, $30
+ anim_wait 2
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1d, 144, 64, $40
+ anim_wait 2
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1e, 136, 68, $30
+ anim_wait 96
+ anim_ret
+; c9cd2
+
+BattleAnim_RockSlide: ; c9cd2
+ anim_1gfx ANIM_GFX_ROCKS
+ anim_bgeffect $1f, $c0, $1, $0
+BattleAnim_RockSlide_branch_c9cd9: ; c9cd9
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1e, 128, 64, $40
+ anim_wait 4
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1d, 120, 68, $30
+ anim_wait 4
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1e, 152, 68, $30
+ anim_wait 4
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1d, 144, 64, $40
+ anim_wait 4
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1e, 136, 68, $30
+ anim_wait 16
+ anim_loop $4, BattleAnim_RockSlide_branch_c9cd9
+ anim_wait 96
+ anim_ret
+; c9d0c
+
+BattleAnim_Sing: ; c9d0c
+ anim_1gfx ANIM_GFX_NOISE
+ anim_sound $42, SFX_SING
+BattleAnim_Sing_branch_c9d11: ; c9d11
+ anim_obj $23, 64, 92, $0
+ anim_wait 8
+ anim_obj $23, 64, 92, $1
+ anim_wait 8
+ anim_obj $23, 64, 92, $2
+ anim_wait 8
+ anim_obj $23, 64, 92, $0
+ anim_wait 8
+ anim_obj $23, 64, 92, $2
+ anim_wait 8
+ anim_loop $4, BattleAnim_Sing_branch_c9d11
+ anim_wait 64
+ anim_ret
+; c9d35
+
+BattleAnim_Poisonpowder: ; c9d35
+BattleAnim_SleepPowder: ; c9d35
+BattleAnim_Spore: ; c9d35
+BattleAnim_StunSpore: ; c9d35
+ anim_1gfx ANIM_GFX_POWDER
+BattleAnim_Poisonpowder_branch_c9d37: ; c9d37
+BattleAnim_SleepPowder_branch_c9d37: ; c9d37
+BattleAnim_Spore_branch_c9d37: ; c9d37
+BattleAnim_StunSpore_branch_c9d37: ; c9d37
+ anim_sound $1, SFX_POWDER
+ anim_obj $26, 104, 16, $0
+ anim_wait 4
+ anim_sound $1, SFX_POWDER
+ anim_obj $26, 136, 16, $0
+ anim_wait 4
+ anim_sound $1, SFX_POWDER
+ anim_obj $26, 112, 16, $0
+ anim_wait 4
+ anim_sound $1, SFX_POWDER
+ anim_obj $26, 128, 16, $0
+ anim_wait 4
+ anim_sound $1, SFX_POWDER
+ anim_obj $26, 120, 16, $0
+ anim_wait 4
+ anim_loop $2, BattleAnim_Poisonpowder_branch_c9d37
+ anim_wait 96
+ anim_ret
+; c9d6a
+
+BattleAnim_HyperBeam: ; c9d6a
+ anim_1gfx ANIM_GFX_BEAM
+ anim_bgeffect $1f, $30, $4, $10
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
+ anim_bgeffect $6, $0, $2, $0
+ anim_call BattleAnim_HyperBeam_branch_cbb39
+ anim_wait 48
+ anim_ret
+; c9d80
+
+BattleAnim_AuroraBeam: ; c9d80
+ anim_1gfx ANIM_GFX_BEAM
+ anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+ anim_wait 64
+ anim_call BattleAnim_AuroraBeam_branch_cbb39
+ anim_wait 48
+ anim_incobj $5
+ anim_wait 64
+ anim_ret
+; c9d95
+
+BattleAnim_Vicegrip: ; c9d95
+ anim_1gfx ANIM_GFX_CUT
+ anim_sound $1, SFX_VICEGRIP
+ anim_obj $37, 152, 40, $0
+ anim_obj $39, 120, 72, $0
+ anim_wait 32
+ anim_ret
+; c9da6
+
+BattleAnim_Scratch: ; c9da6
+ anim_1gfx ANIM_GFX_CUT
+ anim_sound $1, SFX_SCRATCH
+ anim_obj $37, 144, 48, $0
+ anim_obj $37, 140, 44, $0
+ anim_obj $37, 136, 40, $0
+ anim_wait 32
+ anim_ret
+; c9dbc
+
+BattleAnim_FurySwipes: ; c9dbc
+ anim_1gfx ANIM_GFX_CUT
+ anim_jumpif $1, BattleAnim_FurySwipes_branch_c9dd9
+ anim_sound $1, SFX_SCRATCH
+ anim_obj $37, 144, 48, $0
+ anim_obj $37, 140, 44, $0
+ anim_obj $37, 136, 40, $0
+ anim_sound $1, SFX_SCRATCH
+ anim_wait 32
+ anim_ret
+; c9dd9
+
+BattleAnim_FurySwipes_branch_c9dd9: ; c9dd9
+ anim_sound $1, SFX_SCRATCH
+ anim_obj $38, 120, 48, $0
+ anim_obj $38, 124, 44, $0
+ anim_obj $38, 128, 40, $0
+ anim_sound $1, SFX_SCRATCH
+ anim_wait 32
+ anim_ret
+; c9df0
+
+BattleAnim_Cut: ; c9df0
+ anim_1gfx ANIM_GFX_CUT
+ anim_sound $1, SFX_CUT
+ anim_obj $3a, 152, 40, $0
+ anim_wait 32
+ anim_ret
+; c9dfc
+
+BattleAnim_Slash: ; c9dfc
+ anim_1gfx ANIM_GFX_CUT
+ anim_sound $1, SFX_CUT
+ anim_obj $3a, 152, 40, $0
+ anim_obj $3a, 148, 36, $0
+ anim_wait 32
+ anim_ret
+; c9e0d
+
+BattleAnim_Clamp: ; c9e0d
+ anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
+ anim_obj $35, 136, 56, $a0
+ anim_obj $35, 136, 56, $20
+ anim_wait 16
+ anim_sound $1, SFX_BITE
+ anim_obj $1, 144, 48, $18
+ anim_wait 32
+ anim_sound $1, SFX_BITE
+ anim_obj $1, 128, 64, $18
+ anim_wait 16
+ anim_ret
+; c9e2e
+
+BattleAnim_Bite: ; c9e2e
+ anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
+ anim_obj $36, 136, 56, $98
+ anim_obj $36, 136, 56, $18
+ anim_wait 8
+ anim_sound $1, SFX_BITE
+ anim_obj $1, 144, 48, $18
+ anim_wait 16
+ anim_sound $1, SFX_BITE
+ anim_obj $1, 128, 64, $18
+ anim_wait 8
+ anim_ret
+; c9e4f
+
+BattleAnim_Teleport: ; c9e4f
+ anim_1gfx ANIM_GFX_SPEED
+ anim_call BattleAnim_Teleport_branch_cbca7
+ anim_bgeffect ANIM_BG_TELEPORT, $0, $1, $0
+ anim_wait 32
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+ anim_wait 3
+ anim_incbgeffect ANIM_BG_TELEPORT
+ anim_call BattleAnim_Teleport_branch_cbcb7
+ anim_bgeffect $6, $0, $1, $0
+ anim_call BattleAnim_Teleport_branch_cbb12
+ anim_wait 64
+ anim_ret
+; c9e6f
+
+BattleAnim_Fly: ; c9e6f
+ anim_jumpif $1, BattleAnim_Fly_branch_c9e89
+ anim_jumpif $2, BattleAnim_Fly_branch_c9e82
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $1, SFX_WING_ATTACK
+ anim_obj $1, 136, 56, $0
+ anim_wait 32
+BattleAnim_Fly_branch_c9e82: ; c9e82
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 32
+ anim_ret
+; c9e89
+
+BattleAnim_Fly_branch_c9e89: ; c9e89
+ anim_1gfx ANIM_GFX_SPEED
+ anim_bgeffect $6, $0, $1, $0
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+ anim_call BattleAnim_Fly_branch_cbb12
+ anim_wait 64
+ anim_ret
+; c9e9a
+
+BattleAnim_DoubleTeam: ; c9e9a
+ anim_call BattleAnim_DoubleTeam_branch_cbcaf
+ anim_sound $0, SFX_PSYBEAM
+ anim_bgeffect ANIM_BG_DOUBLE_TEAM, $0, $1, $0
+ anim_wait 96
+ anim_incbgeffect ANIM_BG_DOUBLE_TEAM
+ anim_wait 24
+ anim_incbgeffect ANIM_BG_DOUBLE_TEAM
+ anim_call BattleAnim_DoubleTeam_branch_cbcb7
+ anim_ret
+; c9eaf
+
+BattleAnim_Recover: ; c9eaf
+ anim_1gfx ANIM_GFX_BUBBLE
+ anim_call BattleAnim_Recover_branch_cbca7
+ anim_sound $0, SFX_FULL_HEAL
+ anim_bgeffect $18, $0, $1, $40
+ anim_obj $2c, 44, 88, $30
+ anim_obj $2c, 44, 88, $31
+ anim_obj $2c, 44, 88, $32
+ anim_obj $2c, 44, 88, $33
+ anim_obj $2c, 44, 88, $34
+ anim_obj $2c, 44, 88, $35
+ anim_obj $2c, 44, 88, $36
+ anim_obj $2c, 44, 88, $37
+ anim_wait 64
+ anim_incbgeffect $18
+ anim_call BattleAnim_Recover_branch_cbcb7
+ anim_ret
+; c9eeb
+
+BattleAnim_Absorb: ; c9eeb
+ anim_1gfx ANIM_GFX_CHARGE
+ anim_obj $3d, 44, 88, $0
+BattleAnim_Absorb_branch_c9ef2: ; c9ef2
+ anim_sound $1b, SFX_WATER_GUN
+ anim_obj $45, 128, 48, $2
+ anim_wait 6
+ anim_sound $1b, SFX_WATER_GUN
+ anim_obj $45, 136, 64, $3
+ anim_wait 6
+ anim_sound $1b, SFX_WATER_GUN
+ anim_obj $45, 136, 32, $4
+ anim_wait 6
+ anim_loop $5, BattleAnim_Absorb_branch_c9ef2
+ anim_wait 32
+ anim_ret
+; c9f13
+
+BattleAnim_MegaDrain: ; c9f13
+ anim_1gfx ANIM_GFX_CHARGE
+ anim_call BattleAnim_MegaDrain_branch_cbca7
+ anim_bgeffect $1c, $0, $0, $10
+ anim_setvar $0
+BattleAnim_MegaDrain_branch_c9f1f: ; c9f1f
+ anim_sound $1b, SFX_WATER_GUN
+ anim_obj $45, 128, 48, $2
+ anim_wait 6
+ anim_sound $1b, SFX_WATER_GUN
+ anim_obj $45, 136, 64, $3
+ anim_wait 6
+ anim_sound $1b, SFX_WATER_GUN
+ anim_obj $45, 136, 32, $4
+ anim_wait 6
+ anim_incvar
+ anim_jumpvar $7, BattleAnim_MegaDrain_branch_c9f4e
+ anim_jumpvar $2, BattleAnim_MegaDrain_branch_c9f46
+ anim_jump BattleAnim_MegaDrain_branch_c9f1f
+; c9f46
+
+BattleAnim_MegaDrain_branch_c9f46: ; c9f46
+ anim_obj $3d, 44, 88, $0
+ anim_jump BattleAnim_MegaDrain_branch_c9f1f
+; c9f4e
+
+BattleAnim_MegaDrain_branch_c9f4e: ; c9f4e
+ anim_wait 32
+ anim_incbgeffect $1c
+ anim_call BattleAnim_MegaDrain_branch_cbcb7
+ anim_ret
+; c9f55
+
+BattleAnim_EggBomb: ; c9f55
+ anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION
+ anim_sound $0, SFX_SWITCH_POKEMON
+ anim_obj $46, 44, 104, $1
+ anim_wait 128
+ anim_wait 96
+ anim_incobj $1
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+ anim_sound $1, SFX_EGG_BOMB
+ anim_obj $18, 128, 64, $0
+ anim_wait 8
+ anim_sound $1, SFX_EGG_BOMB
+ anim_obj $18, 144, 68, $0
+ anim_wait 8
+ anim_sound $1, SFX_EGG_BOMB
+ anim_obj $18, 136, 72, $0
+ anim_wait 24
+ anim_ret
+; c9f85
+
+BattleAnim_Softboiled: ; c9f85
+ anim_2gfx ANIM_GFX_EGG, ANIM_GFX_BUBBLE
+ anim_call BattleAnim_Softboiled_branch_cbca7
+ anim_sound $0, SFX_SWITCH_POKEMON
+ anim_obj $46, 44, 104, $6
+ anim_wait 128
+ anim_incobj $2
+ anim_obj $46, 76, 104, $b
+ anim_wait 16
+ anim_bgeffect $18, $0, $1, $40
+ anim_sound $0, SFX_METRONOME
+BattleAnim_Softboiled_branch_c9fa4: ; c9fa4
+ anim_obj $2c, 44, 88, $20
+ anim_wait 8
+ anim_loop $8, BattleAnim_Softboiled_branch_c9fa4
+ anim_wait 128
+ anim_incbgeffect $18
+ anim_call BattleAnim_Softboiled_branch_cbcb7
+ anim_ret
+; c9fb5
+
+BattleAnim_FocusEnergy: ; c9fb5
+BattleAnim_RazorWind_branch_c9fb5: ; c9fb5
+BattleAnim_SkullBash_branch_c9fb5: ; c9fb5
+BattleAnim_SkyAttack_branch_c9fb5: ; c9fb5
+ anim_1gfx ANIM_GFX_SPEED
+ anim_call BattleAnim_FocusEnergy_branch_cbca7
+ anim_bgeffect $16, $0, $1, $40
+ anim_bgeffect $6, $0, $2, $0
+BattleAnim_FocusEnergy_branch_c9fc4: ; c9fc4
+BattleAnim_RazorWind_branch_c9fc4: ; c9fc4
+BattleAnim_SkullBash_branch_c9fc4: ; c9fc4
+BattleAnim_SkyAttack_branch_c9fc4: ; c9fc4
+ anim_sound $0, SFX_SWORDS_DANCE
+ anim_obj $47, 44, 108, $6
+ anim_wait 2
+ anim_obj $47, 36, 108, $6
+ anim_wait 2
+ anim_obj $47, 52, 108, $8
+ anim_wait 2
+ anim_obj $47, 28, 108, $8
+ anim_wait 2
+ anim_obj $47, 60, 108, $6
+ anim_wait 2
+ anim_obj $47, 20, 108, $8
+ anim_wait 2
+ anim_obj $47, 68, 108, $8
+ anim_wait 2
+ anim_loop $3, BattleAnim_FocusEnergy_branch_c9fc4
+ anim_wait 8
+ anim_incbgeffect $16
+ anim_call BattleAnim_FocusEnergy_branch_cbcb7
+ anim_ret
+; c9ffc
+
+BattleAnim_Bide: ; c9ffc
+ anim_jumpif $0, BattleAnim_Bide_branch_c9651
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Bide_branch_cbca7
+ anim_sound $0, SFX_ESCAPE_ROPE
+ anim_bgeffect $1a, $0, $1, $20
+ anim_wait 72
+ anim_incbgeffect $1a
+ anim_call BattleAnim_Bide_branch_cbcb7
+ anim_ret
+; ca014
+
+BattleAnim_Bind: ; ca014
+ anim_1gfx ANIM_GFX_ROPE
+ anim_sound $1, SFX_BIND
+ anim_obj $48, 132, 64, $0
+ anim_wait 8
+ anim_obj $49, 132, 56, $0
+ anim_wait 8
+ anim_obj $48, 132, 48, $0
+ anim_wait 64
+ anim_sound $1, SFX_BIND
+ anim_incobj $1
+ anim_incobj $2
+ anim_incobj $3
+ anim_wait 96
+ anim_ret
+; ca036
+
+BattleAnim_Wrap: ; ca036
+ anim_1gfx ANIM_GFX_ROPE
+ anim_sound $1, SFX_BIND
+ anim_obj $48, 132, 64, $0
+ anim_wait 8
+ anim_obj $48, 132, 56, $0
+ anim_wait 8
+ anim_obj $48, 132, 48, $0
+ anim_wait 64
+ anim_sound $1, SFX_BIND
+ anim_incobj $1
+ anim_incobj $2
+ anim_incobj $3
+ anim_wait 96
+ anim_ret
+; ca058
+
+BattleAnim_Confusion: ; ca058
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Confusion_branch_cbcca
+ anim_sound $1, SFX_PSYCHIC
+ anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
+ anim_wait 128
+ anim_incbgeffect ANIM_BG_NIGHT_SHADE
+ anim_call BattleAnim_Confusion_branch_cbcd2
+ anim_ret
+; ca06c
+
+BattleAnim_Constrict: ; ca06c
+ anim_1gfx ANIM_GFX_ROPE
+ anim_sound $1, SFX_BIND
+ anim_obj $49, 132, 64, $0
+ anim_wait 8
+ anim_obj $48, 132, 48, $0
+ anim_wait 8
+ anim_obj $49, 132, 40, $0
+ anim_wait 8
+ anim_obj $48, 132, 56, $0
+ anim_wait 64
+ anim_ret
+; ca08a
+
+BattleAnim_Earthquake: ; ca08a
+ anim_bgeffect $1f, $60, $4, $10
+BattleAnim_Earthquake_branch_ca08f: ; ca08f
+ anim_sound $1, SFX_EMBER
+ anim_wait 24
+ anim_loop $4, BattleAnim_Earthquake_branch_ca08f
+ anim_ret
+; ca098
+
+BattleAnim_Fissure: ; ca098
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
+ anim_bgeffect $1f, $60, $4, $0
+BattleAnim_Fissure_branch_ca0a2: ; ca0a2
+ anim_sound $1, SFX_EMBER
+ anim_wait 24
+ anim_loop $4, BattleAnim_Fissure_branch_ca0a2
+ anim_ret
+; ca0ab
+
+BattleAnim_Growl: ; ca0ab
+ anim_1gfx ANIM_GFX_NOISE
+ anim_enemyfeetobj
+ anim_bgeffect $6, $0, $2, $0
+ anim_cry $0
+BattleAnim_Growl_branch_ca0b5: ; ca0b5
+ anim_call BattleAnim_Growl_branch_cbbbc
+ anim_wait 16
+ anim_loop $3, BattleAnim_Growl_branch_ca0b5
+ anim_wait 9
+ anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0
+ anim_wait 8
+ anim_bgeffect $19, $0, $0, $40
+ anim_wait 64
+ anim_incbgeffect $19
+ anim_wait 1
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 5
+ anim_incobj $a
+ anim_wait 8
+ anim_ret
+; ca0d7
+
+BattleAnim_Roar: ; ca0d7
+ anim_1gfx ANIM_GFX_NOISE
+ anim_bgeffect $6, $0, $2, $0
+ anim_cry $1
+BattleAnim_Roar_branch_ca0e0: ; ca0e0
+ anim_call BattleAnim_Roar_branch_cbbbc
+ anim_wait 16
+ anim_loop $3, BattleAnim_Roar_branch_ca0e0
+ anim_wait 16
+ anim_jumpif $0, BattleAnim_Roar_branch_ca0f3
+ anim_bgeffect $27, $0, $0, $0
+ anim_wait 64
+BattleAnim_Roar_branch_ca0f3: ; ca0f3
+ anim_ret
+; ca0f4
+
+BattleAnim_Supersonic: ; ca0f4
+ anim_1gfx ANIM_GFX_PSYCHIC
+BattleAnim_Supersonic_branch_ca0f6: ; ca0f6
+ anim_sound $1a, SFX_SUPERSONIC
+ anim_obj $4c, 64, 88, $2
+ anim_wait 4
+ anim_loop $a, BattleAnim_Supersonic_branch_ca0f6
+ anim_wait 64
+ anim_ret
+; ca105
+
+BattleAnim_Screech: ; ca105
+ anim_1gfx ANIM_GFX_PSYCHIC
+ anim_bgeffect $1f, $8, $1, $20
+ anim_sound $1a, SFX_SCREECH
+BattleAnim_Screech_branch_ca10f: ; ca10f
+ anim_obj $4c, 64, 88, $2
+ anim_wait 2
+ anim_loop $2, BattleAnim_Screech_branch_ca10f
+ anim_wait 64
+ anim_ret
+; ca11b
+
+BattleAnim_ConfuseRay: ; ca11b
+ anim_1gfx ANIM_GFX_SPEED
+ anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect $8, $0, $4, $0
+ anim_obj $4d, 64, 88, $0
+ anim_obj $4d, 64, 88, $80
+ anim_obj $4d, 64, 88, $88
+ anim_obj $4d, 64, 88, $90
+ anim_obj $4d, 64, 88, $98
+ anim_obj $4d, 64, 88, $a0
+ anim_obj $4d, 64, 88, $a8
+ anim_obj $4d, 64, 88, $b0
+ anim_obj $4d, 64, 88, $b8
+BattleAnim_ConfuseRay_branch_ca154: ; ca154
+ anim_sound $1a, SFX_WHIRLWIND
+ anim_wait 16
+ anim_loop $8, BattleAnim_ConfuseRay_branch_ca154
+ anim_wait 32
+ anim_ret
+; ca15e
+
+BattleAnim_Leer: ; ca15e
+ anim_1gfx ANIM_GFX_BEAM
+ anim_bgeffect $6, $0, $2, $0
+ anim_call BattleAnim_Leer_branch_cbadc
+ anim_wait 16
+ anim_ret
+; ca16a
+
+BattleAnim_Reflect: ; ca16a
+ anim_1gfx ANIM_GFX_REFLECT
+ anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+ anim_sound $0, SFX_SHINE
+ anim_obj $50, 72, 80, $0
+ anim_wait 24
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+ anim_sound $0, SFX_SHINE
+ anim_obj $50, 72, 80, $0
+ anim_wait 64
+ anim_ret
+; ca18e
+
+BattleAnim_LightScreen: ; ca18e
+ anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_REFLECT
+ anim_bgeffect $6, $0, $2, $0
+ anim_sound $0, SFX_FLASH
+ anim_obj $50, 72, 80, $0
+ anim_wait 4
+ anim_obj $6d, 72, 80, $0
+ anim_wait 4
+ anim_obj $6d, 72, 80, $8
+ anim_wait 4
+ anim_obj $6d, 72, 80, $10
+ anim_wait 4
+ anim_obj $6d, 72, 80, $18
+ anim_wait 4
+ anim_obj $50, 72, 80, $0
+ anim_obj $6d, 72, 80, $20
+ anim_wait 4
+ anim_obj $6d, 72, 80, $28
+ anim_wait 4
+ anim_obj $6d, 72, 80, $30
+ anim_wait 4
+ anim_obj $6d, 72, 80, $38
+ anim_wait 64
+ anim_ret
+; ca1d5
+
+BattleAnim_Amnesia: ; ca1d5
+ anim_1gfx ANIM_GFX_STATUS
+ anim_sound $0, SFX_LICK
+ anim_obj $53, 64, 80, $2
+ anim_wait 16
+ anim_obj $53, 68, 80, $1
+ anim_wait 16
+ anim_obj $53, 72, 80, $0
+ anim_wait 64
+ anim_ret
+; ca1ed
+
+BattleAnim_DizzyPunch: ; ca1ed
+ anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_HIT
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $0, 136, 40, $0
+ anim_obj $2, 136, 64, $0
+ anim_wait 16
+ anim_sound $1, SFX_KINESIS
+ anim_obj ANIM_OBJ_CHICK, 136, 24, $15
+ anim_obj ANIM_OBJ_CHICK, 136, 24, $aa
+ anim_obj ANIM_OBJ_CHICK, 136, 24, $bf
+ anim_wait 96
+ anim_ret
+; ca212
+
+BattleAnim_Rest: ; ca212
+ anim_1gfx ANIM_GFX_STATUS
+ anim_sound $0, SFX_TAIL_WHIP
+BattleAnim_Rest_branch_ca217: ; ca217
+ anim_obj $54, 64, 80, $0
+ anim_wait 40
+ anim_loop $3, BattleAnim_Rest_branch_ca217
+ anim_wait 32
+ anim_ret
+; ca223
+
+BattleAnim_AcidArmor: ; ca223
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_AcidArmor_branch_cbcaf
+ anim_bgeffect ANIM_BG_ACID_ARMOR, $0, $1, $8
+ anim_sound $0, SFX_MEGA_PUNCH
+ anim_wait 64
+ anim_incbgeffect ANIM_BG_ACID_ARMOR
+ anim_call BattleAnim_AcidArmor_branch_cbcb7
+ anim_ret
+; ca237
+
+BattleAnim_Splash: ; ca237
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $0, SFX_VICEGRIP
+ anim_call BattleAnim_Splash_branch_cbcaf
+ anim_bgeffect $22, $0, $1, $0
+ anim_wait 96
+ anim_incbgeffect $22
+ anim_call BattleAnim_Splash_branch_cbcb7
+ anim_ret
+; ca24b
+
+BattleAnim_Dig: ; ca24b
+ anim_2gfx ANIM_GFX_SAND, ANIM_GFX_HIT
+ anim_jumpif $0, BattleAnim_Dig_branch_ca27d
+ anim_jumpif $2, BattleAnim_Dig_branch_ca286
+ anim_call BattleAnim_Dig_branch_cbcaf
+ anim_bgeffect $23, $0, $1, $1
+ anim_obj $57, 72, 104, $0
+BattleAnim_Dig_branch_ca263: ; ca263
+ anim_sound $0, SFX_RAZOR_WIND
+ anim_obj $56, 56, 104, $0
+ anim_wait 16
+ anim_loop $6, BattleAnim_Dig_branch_ca263
+ anim_wait 32
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+ anim_wait 8
+ anim_incbgeffect $23
+ anim_call BattleAnim_Dig_branch_cbcb7
+ anim_ret
+; ca27d
+
+BattleAnim_Dig_branch_ca27d: ; ca27d
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $1, 136, 56, $0
+ anim_wait 32
+BattleAnim_Dig_branch_ca286: ; ca286
+ anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
+ anim_wait 32
+ anim_ret
+; ca28d
+
+BattleAnim_SandAttack: ; ca28d
+ anim_1gfx ANIM_GFX_SAND
+ anim_call BattleAnim_SandAttack_branch_cbc5b
+ anim_ret
+; ca293
+
+BattleAnim_StringShot: ; ca293
+ anim_1gfx ANIM_GFX_WEB
+ anim_bgeffect $7, $0, $2, $0
+ anim_sound $1a, SFX_MENU
+ anim_obj $5a, 64, 80, $0
+ anim_wait 4
+ anim_sound $1, SFX_MENU
+ anim_obj $5a, 132, 48, $1
+ anim_wait 4
+ anim_sound $1a, SFX_MENU
+ anim_obj $5a, 64, 88, $0
+ anim_wait 4
+ anim_sound $1, SFX_MENU
+ anim_obj $5a, 132, 64, $1
+ anim_wait 4
+ anim_sound $1a, SFX_MENU
+ anim_obj $5a, 64, 84, $0
+ anim_wait 4
+ anim_sound $1, SFX_MENU
+ anim_obj $5a, 132, 56, $2
+ anim_wait 64
+ anim_ret
+; ca2d1
+
+BattleAnim_Headbutt: ; ca2d1
+ anim_1gfx ANIM_GFX_HIT
+ anim_bgeffect $1f, $14, $2, $0
+ anim_wait 32
+ anim_call BattleAnim_Headbutt_branch_cbca7
+ anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+ anim_wait 4
+ anim_sound $1, SFX_HEADBUTT
+ anim_obj $1, 136, 56, $0
+ anim_wait 8
+ anim_call BattleAnim_Headbutt_branch_cbcb7
+ anim_ret
+; ca2ef
+
+BattleAnim_Tackle: ; ca2ef
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Tackle_branch_cbcaf
+ anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+ anim_wait 4
+ anim_sound $1, SFX_TACKLE
+ anim_obj $0, 136, 48, $0
+ anim_wait 8
+ anim_call BattleAnim_Tackle_branch_cbcb7
+ anim_ret
+; ca307
+
+BattleAnim_BodySlam: ; ca307
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_BodySlam_branch_cbcaf
+ anim_bgeffect $22, $0, $1, $0
+ anim_wait 32
+ anim_incbgeffect $22
+ anim_wait 4
+ anim_bgeffect $25, $0, $1, $0
+ anim_wait 3
+ anim_sound $1, SFX_TACKLE
+ anim_obj $1, 136, 48, $0
+ anim_wait 6
+ anim_sound $1, SFX_TACKLE
+ anim_obj $1, 144, 48, $0
+ anim_wait 3
+ anim_call BattleAnim_BodySlam_branch_cbcb7
+ anim_ret
+; ca331
+
+BattleAnim_TakeDown: ; ca331
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_TakeDown_branch_cbca7
+ anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+ anim_wait 3
+ anim_sound $1, SFX_TACKLE
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+ anim_obj $1, 128, 56, $0
+ anim_wait 6
+ anim_sound $1, SFX_TACKLE
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+ anim_obj $1, 144, 48, $0
+ anim_wait 3
+ anim_call BattleAnim_TakeDown_branch_cbcb7
+ anim_ret
+; ca35c
+
+BattleAnim_DoubleEdge: ; ca35c
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_DoubleEdge_branch_cbca7
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $10
+ anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+ anim_wait 3
+ anim_sound $1, SFX_TACKLE
+ anim_obj $0, 128, 48, $0
+ anim_wait 6
+ anim_sound $1, SFX_TACKLE
+ anim_obj $0, 144, 48, $0
+ anim_wait 3
+ anim_call BattleAnim_DoubleEdge_branch_cbcb7
+ anim_ret
+; ca382
+
+BattleAnim_Submission: ; ca382
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Submission_branch_cbcc2
+ anim_bgeffect $26, $0, $0, $0
+ anim_sound $1, SFX_SUBMISSION
+ anim_wait 32
+ anim_obj $1, 120, 48, $0
+ anim_wait 32
+ anim_obj $1, 152, 56, $0
+ anim_wait 32
+ anim_obj $1, 136, 52, $0
+ anim_wait 32
+ anim_incbgeffect $26
+ anim_call BattleAnim_Submission_branch_cbcd2
+ anim_ret
+; ca3a8
+
+BattleAnim_Whirlwind: ; ca3a8
+ anim_1gfx ANIM_GFX_WIND
+BattleAnim_Whirlwind_branch_ca3aa: ; ca3aa
+ anim_sound $0, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_GUST, 64, 112, $0
+ anim_wait 6
+ anim_loop $9, BattleAnim_Whirlwind_branch_ca3aa
+ anim_incobj $1
+ anim_incobj $2
+ anim_incobj $3
+ anim_incobj $4
+ anim_incobj $5
+ anim_incobj $6
+ anim_incobj $7
+ anim_incobj $8
+ anim_incobj $9
+ anim_sound $42, SFX_WHIRLWIND
+ anim_wait 128
+ anim_jumpif $0, BattleAnim_Whirlwind_branch_ca3d7
+ anim_bgeffect $27, $0, $0, $0
+ anim_wait 64
+BattleAnim_Whirlwind_branch_ca3d7: ; ca3d7
+ anim_ret
+; ca3d8
+
+BattleAnim_Hypnosis: ; ca3d8
+ anim_1gfx ANIM_GFX_PSYCHIC
+BattleAnim_Hypnosis_branch_ca3da: ; ca3da
+ anim_sound $1a, SFX_SUPERSONIC
+ anim_obj $4c, 64, 88, $2
+ anim_obj $4c, 56, 80, $2
+ anim_wait 8
+ anim_loop $3, BattleAnim_Hypnosis_branch_ca3da
+ anim_wait 56
+ anim_ret
+; ca3ee
+
+BattleAnim_Haze: ; ca3ee
+ anim_1gfx ANIM_GFX_HAZE
+ anim_sound $1, SFX_SURF
+BattleAnim_Haze_branch_ca3f3: ; ca3f3
+ anim_obj $5b, 48, 56, $0
+ anim_obj $5b, 132, 16, $0
+ anim_wait 12
+ anim_loop $5, BattleAnim_Haze_branch_ca3f3
+ anim_wait 96
+ anim_ret
+; ca404
+
+BattleAnim_Mist: ; ca404
+ anim_obp0 $54
+ anim_1gfx ANIM_GFX_HAZE
+ anim_sound $0, SFX_SURF
+BattleAnim_Mist_branch_ca40b: ; ca40b
+ anim_obj $5c, 48, 56, $0
+ anim_wait 8
+ anim_loop $a, BattleAnim_Mist_branch_ca40b
+ anim_wait 96
+ anim_ret
+; ca417
+
+BattleAnim_Smog: ; ca417
+ anim_1gfx ANIM_GFX_HAZE
+ anim_sound $1, SFX_BUBBLEBEAM
+BattleAnim_Smog_branch_ca41c: ; ca41c
+ anim_obj $5d, 132, 16, $0
+ anim_wait 8
+ anim_loop $a, BattleAnim_Smog_branch_ca41c
+ anim_wait 96
+ anim_ret
+; ca428
+
+BattleAnim_PoisonGas: ; ca428
+ anim_1gfx ANIM_GFX_HAZE
+ anim_sound $42, SFX_BUBBLEBEAM
+BattleAnim_PoisonGas_branch_ca42d: ; ca42d
+ anim_obj $5e, 44, 80, $2
+ anim_wait 8
+ anim_loop $a, BattleAnim_PoisonGas_branch_ca42d
+ anim_wait 128
+ anim_ret
+; ca439
+
+BattleAnim_HornAttack: ; ca439
+ anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+ anim_obj $5f, 72, 80, $1
+ anim_wait 16
+ anim_sound $1, SFX_HORN_ATTACK
+ anim_obj $1, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; ca44c
+
+BattleAnim_FuryAttack: ; ca44c
+ anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+ anim_obj $5f, 72, 72, $2
+ anim_wait 8
+ anim_sound $1, SFX_HORN_ATTACK
+ anim_obj $4, 128, 40, $0
+ anim_wait 8
+ anim_obj $5f, 80, 88, $2
+ anim_wait 8
+ anim_sound $1, SFX_HORN_ATTACK
+ anim_obj $4, 136, 56, $0
+ anim_wait 8
+ anim_obj $5f, 76, 80, $2
+ anim_wait 8
+ anim_sound $1, SFX_HORN_ATTACK
+ anim_obj $4, 132, 48, $0
+ anim_wait 8
+ anim_ret
+; ca47d
+
+BattleAnim_HornDrill: ; ca47d
+ anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
+ anim_obj $5f, 72, 80, $3
+ anim_wait 8
+BattleAnim_HornDrill_branch_ca48b: ; ca48b
+ anim_sound $1, SFX_HORN_ATTACK
+ anim_obj $0, 132, 40, $0
+ anim_wait 8
+ anim_sound $1, SFX_HORN_ATTACK
+ anim_obj $0, 140, 48, $0
+ anim_wait 8
+ anim_sound $1, SFX_HORN_ATTACK
+ anim_obj $0, 132, 56, $0
+ anim_wait 8
+ anim_sound $1, SFX_HORN_ATTACK
+ anim_obj $0, 124, 48, $0
+ anim_wait 8
+ anim_loop $3, BattleAnim_HornDrill_branch_ca48b
+ anim_ret
+; ca4b4
+
+BattleAnim_PoisonSting: ; ca4b4
+ anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+ anim_obj $60, 64, 92, $14
+ anim_wait 16
+ anim_sound $1, SFX_POISON_STING
+ anim_obj $5, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; ca4c7
+
+BattleAnim_Twineedle: ; ca4c7
+ anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+ anim_sound $1, SFX_POISON_STING
+ anim_obj $60, 64, 92, $14
+ anim_obj $60, 56, 84, $14
+ anim_wait 16
+ anim_sound $1, SFX_POISON_STING
+ anim_obj $5, 136, 56, $0
+ anim_obj $5, 128, 48, $0
+ anim_wait 16
+ anim_ret
+; ca4e7
+
+BattleAnim_PinMissile: ; ca4e7
+ anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+BattleAnim_PinMissile_branch_ca4ea: ; ca4ea
+ anim_obj $60, 64, 92, $28
+ anim_wait 8
+ anim_obj $60, 56, 84, $28
+ anim_sound $1, SFX_POISON_STING
+ anim_obj $5, 136, 56, $0
+ anim_wait 8
+ anim_obj $60, 52, 88, $28
+ anim_sound $1, SFX_POISON_STING
+ anim_obj $5, 128, 48, $0
+ anim_wait 8
+ anim_sound $1, SFX_POISON_STING
+ anim_obj $5, 132, 52, $0
+ anim_loop $3, BattleAnim_PinMissile_branch_ca4ea
+ anim_wait 16
+ anim_ret
+; ca51a
+
+BattleAnim_SpikeCannon: ; ca51a
+ anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+BattleAnim_SpikeCannon_branch_ca51d: ; ca51d
+ anim_obj $60, 64, 92, $18
+ anim_wait 8
+ anim_obj $60, 56, 84, $18
+ anim_sound $1, SFX_POISON_STING
+ anim_obj $5, 136, 56, $0
+ anim_wait 8
+ anim_obj $60, 52, 88, $18
+ anim_sound $1, SFX_POISON_STING
+ anim_obj $5, 128, 48, $0
+ anim_wait 8
+ anim_sound $1, SFX_POISON_STING
+ anim_obj $5, 132, 52, $0
+ anim_loop $3, BattleAnim_SpikeCannon_branch_ca51d
+ anim_wait 16
+ anim_ret
+; ca54d
+
+BattleAnim_Transform: ; ca54d
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Transform_branch_cbcaf
+ anim_transform
+ anim_sound $0, SFX_PSYBEAM
+ anim_bgeffect $28, $0, $1, $0
+ anim_wait 48
+ anim_updateactorpic
+ anim_incbgeffect $28
+ anim_wait 48
+ anim_call BattleAnim_Transform_branch_cbcb7
+ anim_ret
+; ca564
+
+BattleAnim_PetalDance: ; ca564
+ anim_sound $0, SFX_MENU
+ anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_HIT
+BattleAnim_PetalDance_branch_ca56a: ; ca56a
+ anim_obj $61, 48, 56, $0
+ anim_wait 11
+ anim_loop $8, BattleAnim_PetalDance_branch_ca56a
+ anim_wait 128
+ anim_wait 64
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $0, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; ca580
+
+BattleAnim_Barrage: ; ca580
+ anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION
+ anim_sound $1a, SFX_THROW_BALL
+ anim_obj $62, 64, 92, $10
+ anim_wait 36
+ anim_sound $1, SFX_EGG_BOMB
+ anim_obj $18, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; ca596
+
+BattleAnim_PayDay: ; ca596
+ anim_2gfx ANIM_GFX_HIT, ANIM_GFX_STATUS
+ anim_sound $1, SFX_POUND
+ anim_obj $1, 128, 56, $0
+ anim_wait 16
+ anim_sound $1, SFX_PAY_DAY
+ anim_obj $63, 120, 76, $1
+ anim_wait 64
+ anim_ret
+; ca5ac
+
+BattleAnim_Mimic: ; ca5ac
+ anim_1gfx ANIM_GFX_SPEED
+ anim_obp0 $fc
+ anim_sound $ff, SFX_LICK
+ anim_obj $65, 132, 44, $0
+ anim_obj $65, 132, 44, $8
+ anim_obj $65, 132, 44, $10
+ anim_obj $65, 132, 44, $18
+ anim_obj $65, 132, 44, $20
+ anim_obj $65, 132, 44, $28
+ anim_obj $65, 132, 44, $30
+ anim_obj $65, 132, 44, $38
+ anim_wait 128
+ anim_wait 48
+ anim_ret
+; ca5de
+
+BattleAnim_LovelyKiss: ; ca5de
+ anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS
+ anim_bgeffect $7, $0, $2, $0
+ anim_obj $96, 152, 40, $0
+ anim_wait 32
+ anim_sound $1, SFX_LICK
+ anim_obj ANIM_OBJ_HEART, 128, 40, $0
+ anim_wait 40
+ anim_ret
+; ca5f6
+
+BattleAnim_Bonemerang: ; ca5f6
+ anim_2gfx ANIM_GFX_MISC, ANIM_GFX_HIT
+ anim_sound $1a, SFX_HYDRO_PUMP
+ anim_obj $67, 88, 56, $1c
+ anim_wait 24
+ anim_sound $1, SFX_MOVE_PUZZLE_PIECE
+ anim_obj $1, 136, 56, $0
+ anim_wait 24
+ anim_ret
+; ca60c
+
+BattleAnim_Swift: ; ca60c
+ anim_1gfx ANIM_GFX_OBJECTS
+ anim_sound $1a, SFX_METRONOME
+ anim_obj $6a, 64, 88, $4
+ anim_wait 4
+ anim_obj $6a, 64, 72, $4
+ anim_wait 4
+ anim_obj $6a, 64, 76, $4
+ anim_wait 64
+ anim_ret
+; ca624
+
+BattleAnim_Crabhammer: ; ca624
+ anim_1gfx ANIM_GFX_HIT
+ anim_bgeffect $1f, $40, $2, $0
+ anim_wait 48
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+BattleAnim_Crabhammer_branch_ca631: ; ca631
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $0, 136, 56, $0
+ anim_wait 12
+ anim_loop $3, BattleAnim_Crabhammer_branch_ca631
+ anim_ret
+; ca63f
+
+BattleAnim_SkullBash: ; ca63f
+ anim_jumpif $1, BattleAnim_SkullBash_branch_c9fb5
+ anim_1gfx ANIM_GFX_HIT
+ anim_bgeffect $1f, $14, $2, $0
+ anim_wait 32
+ anim_call BattleAnim_SkullBash_branch_cbca7
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+ anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+ anim_wait 4
+BattleAnim_SkullBash_branch_ca659: ; ca659
+ anim_sound $1, SFX_HEADBUTT
+ anim_obj $1, 136, 56, $0
+ anim_wait 8
+ anim_loop $3, BattleAnim_SkullBash_branch_ca659
+ anim_call BattleAnim_SkullBash_branch_cbcb7
+ anim_ret
+; ca66a
+
+BattleAnim_Kinesis: ; ca66a
+ anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE
+ anim_bgeffect $6, $0, $2, $0
+ anim_obj $6b, 80, 76, $0
+ anim_wait 32
+BattleAnim_Kinesis_branch_ca678: ; ca678
+ anim_sound $0, SFX_KINESIS
+ anim_obj $4b, 64, 88, $0
+ anim_wait 32
+ anim_loop $3, BattleAnim_Kinesis_branch_ca678
+ anim_wait 32
+ anim_sound $0, SFX_KINESIS_2
+ anim_wait 32
+ anim_ret
+; ca68b
+
+BattleAnim_Peck: ; ca68b
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $1, SFX_PECK
+ anim_obj $2, 128, 48, $0
+ anim_wait 8
+ anim_sound $1, SFX_PECK
+ anim_obj $2, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; ca6a0
+
+BattleAnim_DrillPeck: ; ca6a0
+ anim_1gfx ANIM_GFX_HIT
+BattleAnim_DrillPeck_branch_ca6a2: ; ca6a2
+ anim_sound $1, SFX_PECK
+ anim_obj $2, 124, 56, $0
+ anim_wait 4
+ anim_sound $1, SFX_PECK
+ anim_obj $2, 132, 48, $0
+ anim_wait 4
+ anim_sound $1, SFX_PECK
+ anim_obj $2, 140, 56, $0
+ anim_wait 4
+ anim_sound $1, SFX_PECK
+ anim_obj $2, 132, 64, $0
+ anim_wait 4
+ anim_loop $5, BattleAnim_DrillPeck_branch_ca6a2
+ anim_wait 16
+ anim_ret
+; ca6cc
+
+BattleAnim_Guillotine: ; ca6cc
+ anim_1gfx ANIM_GFX_CUT
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10
+ anim_bgeffect $1f, $40, $2, $0
+ anim_sound $1, SFX_VICEGRIP
+ anim_obj $37, 156, 44, $0
+ anim_obj $37, 152, 40, $0
+ anim_obj $37, 148, 36, $0
+ anim_obj $39, 124, 76, $0
+ anim_obj $39, 120, 72, $0
+ anim_obj $39, 116, 68, $0
+ anim_obj $39, 120, 72, $0
+ anim_wait 32
+ anim_ret
+; ca700
+
+BattleAnim_Flash: ; ca700
+ anim_1gfx ANIM_GFX_SPEED
+ anim_sound $1, SFX_FLASH
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20
+ anim_wait 4
+ anim_obj $6c, 136, 56, $0
+ anim_wait 4
+ anim_obj $6c, 136, 56, $8
+ anim_wait 4
+ anim_obj $6c, 136, 56, $10
+ anim_wait 4
+ anim_obj $6c, 136, 56, $18
+ anim_wait 4
+ anim_obj $6c, 136, 56, $20
+ anim_wait 4
+ anim_obj $6c, 136, 56, $28
+ anim_wait 4
+ anim_obj $6c, 136, 56, $30
+ anim_wait 4
+ anim_obj $6c, 136, 56, $38
+ anim_wait 32
+ anim_ret
+; ca73c
+
+BattleAnim_Substitute: ; ca73c
+ anim_sound $0, SFX_SURF
+ anim_jumpif $3, BattleAnim_Substitute_branch_ca77c
+ anim_jumpif $2, BattleAnim_Substitute_branch_ca76e
+ anim_jumpif $1, BattleAnim_Substitute_branch_ca760
+ anim_1gfx ANIM_GFX_SMOKE
+ anim_bgeffect $27, $0, $1, $0
+ anim_wait 48
+ anim_raisesub
+ anim_obj $1c, 48, 96, $0
+ anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
+ anim_wait 32
+ anim_ret
+; ca760
+
+BattleAnim_Substitute_branch_ca760: ; ca760
+ anim_bgeffect $27, $0, $1, $0
+ anim_wait 48
+ anim_dropsub
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 32
+ anim_ret
+; ca76e
+
+BattleAnim_Substitute_branch_ca76e: ; ca76e
+ anim_bgeffect $27, $0, $1, $0
+ anim_wait 48
+ anim_raisesub
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 32
+ anim_ret
+; ca77c
+
+BattleAnim_Substitute_branch_ca77c: ; ca77c
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+ anim_wait 48
+ anim_dropsub
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 32
+ anim_ret
+; ca78a
+
+BattleAnim_Minimize: ; ca78a
+ anim_sound $0, SFX_SURF
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Minimize_branch_cbcaf
+ anim_minimize
+ anim_bgeffect $28, $0, $1, $0
+ anim_wait 48
+ anim_updateactorpic
+ anim_incbgeffect $28
+ anim_wait 48
+ anim_call BattleAnim_Minimize_branch_cbcb7
+ anim_ret
+; ca7a1
+
+BattleAnim_SkyAttack: ; ca7a1
+ anim_jumpif $1, BattleAnim_SkyAttack_branch_c9fb5
+ anim_1gfx ANIM_GFX_SKY_ATTACK
+ anim_bgeffect $27, $0, $1, $0
+ anim_wait 32
+ anim_sound $0, SFX_HYPER_BEAM
+ anim_obj $6e, 48, 88, $40
+ anim_wait 64
+ anim_incobj $1
+ anim_wait 21
+ anim_sound $1, SFX_HYPER_BEAM
+ anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+ anim_wait 64
+ anim_incobj $1
+ anim_wait 32
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 16
+ anim_ret
+; ca7cc
+
+BattleAnim_NightShade: ; ca7cc
+ anim_1gfx ANIM_GFX_HIT
+ anim_bgp $1b
+ anim_obp1 $1b
+ anim_wait 32
+ anim_call BattleAnim_NightShade_branch_cbcca
+ anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
+ anim_sound $1, SFX_PSYCHIC
+ anim_wait 96
+ anim_incbgeffect ANIM_BG_NIGHT_SHADE
+ anim_call BattleAnim_NightShade_branch_cbcd2
+ anim_ret
+; ca7e5
+
+BattleAnim_Lick: ; ca7e5
+ anim_1gfx ANIM_GFX_WATER
+ anim_sound $1, SFX_LICK
+ anim_obj $6f, 136, 56, $0
+ anim_wait 64
+ anim_ret
+; ca7f1
+
+BattleAnim_TriAttack: ; ca7f1
+ anim_3gfx ANIM_GFX_FIRE, ANIM_GFX_ICE, ANIM_GFX_LIGHTNING
+ anim_call BattleAnim_TriAttack_branch_cbbcc
+ anim_wait 16
+ anim_call BattleAnim_TriAttack_branch_cbbdf
+ anim_wait 16
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $4
+ anim_sound $1, SFX_THUNDER
+ anim_obj $2f, 152, 68, $0
+ anim_wait 16
+ anim_ret
+; ca80c
+
+BattleAnim_Withdraw: ; ca80c
+ anim_1gfx ANIM_GFX_REFLECT
+ anim_call BattleAnim_Withdraw_branch_cbcaf
+ anim_bgeffect $21, $0, $1, $50
+ anim_wait 48
+ anim_sound $0, SFX_SHINE
+ anim_obj $70, 48, 88, $0
+ anim_wait 64
+ anim_incobj $2
+ anim_wait 1
+ anim_incbgeffect $21
+ anim_call BattleAnim_Withdraw_branch_cbcb7
+ anim_ret
+; ca829
+
+BattleAnim_Psybeam: ; ca829
+ anim_1gfx ANIM_GFX_PSYCHIC
+ anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect $8, $0, $4, $0
+BattleAnim_Psybeam_branch_ca835: ; ca835
+ anim_sound $1a, SFX_PSYBEAM
+ anim_obj $4c, 64, 88, $4
+ anim_wait 4
+ anim_loop $a, BattleAnim_Psybeam_branch_ca835
+ anim_wait 48
+ anim_ret
+; ca844
+
+BattleAnim_DreamEater: ; ca844
+ anim_1gfx ANIM_GFX_BUBBLE
+ anim_bgp $1b
+ anim_obp0 $27
+ anim_sound $1b, SFX_WATER_GUN
+ anim_call BattleAnim_DreamEater_branch_cbab3
+ anim_wait 128
+ anim_wait 48
+ anim_ret
+; ca853
+
+BattleAnim_LeechLife: ; ca853
+ anim_1gfx ANIM_GFX_BUBBLE
+ anim_sound $1b, SFX_WATER_GUN
+ anim_call BattleAnim_LeechLife_branch_cbab3
+ anim_wait 128
+ anim_wait 48
+ anim_ret
+; ca85e
+
+BattleAnim_Harden: ; ca85e
+ anim_1gfx ANIM_GFX_REFLECT
+ anim_obp0 $0
+ anim_call BattleAnim_Harden_branch_cbca7
+ anim_call BattleAnim_Harden_branch_cbc43
+ anim_call BattleAnim_Harden_branch_cbcb7
+ anim_ret
+; ca86c
+
+BattleAnim_Psywave: ; ca86c
+ anim_1gfx ANIM_GFX_PSYCHIC
+ anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
+BattleAnim_Psywave_branch_ca873: ; ca873
+ anim_sound $1a, SFX_PSYCHIC
+ anim_obj $4c, 64, 80, $2
+ anim_wait 8
+ anim_sound $1a, SFX_PSYCHIC
+ anim_obj $4c, 64, 88, $3
+ anim_wait 8
+ anim_sound $1a, SFX_PSYCHIC
+ anim_obj $4c, 64, 96, $4
+ anim_wait 8
+ anim_loop $3, BattleAnim_Psywave_branch_ca873
+ anim_wait 32
+ anim_incbgeffect ANIM_BG_PSYCHIC
+ anim_wait 4
+ anim_ret
+; ca897
+
+BattleAnim_Glare: ; ca897
+ anim_1gfx ANIM_GFX_BEAM
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $20
+ anim_bgeffect $6, $0, $2, $0
+ anim_call BattleAnim_Glare_branch_cbadc
+ anim_wait 16
+ anim_ret
+; ca8a8
+
+BattleAnim_Thrash: ; ca8a8
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $1, SFX_POUND
+ anim_obj $8, 120, 72, $0
+ anim_obj $0, 120, 72, $0
+ anim_wait 6
+ anim_sound $1, SFX_MOVE_PUZZLE_PIECE
+ anim_obj $6, 136, 56, $0
+ anim_obj $0, 136, 56, $0
+ anim_wait 6
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $7, 152, 40, $0
+ anim_obj $0, 152, 40, $0
+ anim_wait 16
+ anim_ret
+; ca8d5
+
+BattleAnim_Growth: ; ca8d5
+ anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
+ anim_1gfx ANIM_GFX_CHARGE
+ anim_sound $0, SFX_SWORDS_DANCE
+ anim_obj $72, 48, 108, $0
+ anim_obj $72, 48, 108, $8
+ anim_obj $72, 48, 108, $10
+ anim_obj $72, 48, 108, $18
+ anim_obj $72, 48, 108, $20
+ anim_obj $72, 48, 108, $28
+ anim_obj $72, 48, 108, $30
+ anim_obj $72, 48, 108, $38
+ anim_wait 64
+ anim_ret
+; ca909
+
+BattleAnim_Conversion2: ; ca909
+ anim_1gfx ANIM_GFX_EXPLOSION
+ anim_sound $ff, SFX_SHARPEN
+ anim_obj $73, 132, 44, $0
+ anim_obj $73, 132, 44, $8
+ anim_obj $73, 132, 44, $10
+ anim_obj $73, 132, 44, $18
+ anim_obj $73, 132, 44, $20
+ anim_obj $73, 132, 44, $28
+ anim_obj $73, 132, 44, $30
+ anim_obj $73, 132, 44, $38
+ anim_wait 128
+ anim_wait 48
+ anim_ret
+; ca939
+
+BattleAnim_Smokescreen: ; ca939
+ anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE
+ anim_sound $1a, SFX_THROW_BALL
+ anim_obj $75, 64, 92, $6c
+ anim_wait 24
+ anim_incobj $1
+ anim_sound $1, SFX_BALL_POOF
+ anim_obj $1c, 108, 70, $10
+ anim_wait 8
+BattleAnim_Smokescreen_branch_ca951: ; ca951
+ anim_sound $1, SFX_MENU
+ anim_obj $74, 132, 60, $20
+ anim_wait 8
+ anim_loop $5, BattleAnim_Smokescreen_branch_ca951
+ anim_wait 128
+ anim_ret
+; ca960
+
+BattleAnim_Strength: ; ca960
+ anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
+ anim_bgeffect $20, $10, $1, $20
+ anim_sound $0, SFX_STRENGTH
+ anim_obj $1f, 64, 104, $1
+ anim_wait 128
+ anim_incobj $1
+ anim_wait 20
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $0, 132, 40, $0
+ anim_wait 16
+ anim_ret
+; ca97e
+
+BattleAnim_SwordsDance: ; ca97e
+ anim_1gfx ANIM_GFX_WHIP
+ anim_sound $0, SFX_SWORDS_DANCE
+ anim_obj $76, 48, 108, $0
+ anim_obj $76, 48, 108, $d
+ anim_obj $76, 48, 108, $1a
+ anim_obj $76, 48, 108, $27
+ anim_obj $76, 48, 108, $34
+ anim_wait 56
+ anim_ret
+; ca99e
+
+BattleAnim_QuickAttack: ; ca99e
+ anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT
+ anim_sound $0, SFX_MENU
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+ anim_obj $77, 24, 88, $2
+ anim_obj $77, 32, 88, $1
+ anim_obj $77, 40, 88, $0
+ anim_obj $77, 48, 88, $80
+ anim_obj $77, 56, 88, $81
+ anim_obj $77, 64, 88, $82
+ anim_wait 12
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $1, 136, 56, $0
+ anim_wait 8
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 16
+ anim_ret
+; ca9d8
+
+BattleAnim_Meditate: ; ca9d8
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Meditate_branch_cbca7
+ anim_sound $0, SFX_PSYBEAM
+ anim_bgeffect $28, $0, $1, $0
+ anim_wait 48
+ anim_incbgeffect $28
+ anim_wait 48
+ anim_call BattleAnim_Meditate_branch_cbcb7
+ anim_ret
+; ca9ed
+
+BattleAnim_Sharpen: ; ca9ed
+ anim_1gfx ANIM_GFX_SHAPES
+ anim_obp0 $e4
+ anim_call BattleAnim_Sharpen_branch_cbca7
+ anim_sound $0, SFX_SHARPEN
+ anim_bgeffect $18, $0, $1, $40
+ anim_obj $78, 48, 88, $0
+ anim_wait 96
+ anim_incobj $2
+ anim_incbgeffect $18
+ anim_call BattleAnim_Sharpen_branch_cbcb7
+ anim_ret
+; caa0a
+
+BattleAnim_DefenseCurl: ; caa0a
+ anim_1gfx ANIM_GFX_SHAPES
+ anim_obp0 $e4
+ anim_call BattleAnim_DefenseCurl_branch_cbca7
+ anim_sound $0, SFX_SHARPEN
+ anim_bgeffect $18, $0, $1, $40
+ anim_obj $79, 48, 88, $0
+ anim_wait 96
+ anim_incobj $2
+ anim_incbgeffect $18
+ anim_call BattleAnim_DefenseCurl_branch_cbcb7
+ anim_ret
+; caa27
+
+BattleAnim_SeismicToss: ; caa27
+ anim_2gfx ANIM_GFX_GLOBE, ANIM_GFX_HIT
+ anim_bgeffect $20, $10, $1, $20
+ anim_sound $0, SFX_STRENGTH
+ anim_obj $20, 64, 104, $1
+ anim_wait 128
+ anim_incobj $1
+ anim_wait 20
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $0, 132, 40, $0
+ anim_wait 16
+ anim_ret
+; caa45
+
+BattleAnim_Rage: ; caa45
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Rage_branch_cbca7
+ anim_bgeffect $1a, $0, $1, $20
+ anim_sound $0, SFX_RAGE
+ anim_wait 72
+ anim_incbgeffect $1a
+ anim_call BattleAnim_Rage_branch_cbcb7
+ anim_sound $1, SFX_MOVE_PUZZLE_PIECE
+ anim_obj $0, 120, 72, $0
+ anim_wait 6
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $0, 136, 56, $0
+ anim_wait 6
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $0, 152, 40, $0
+ anim_wait 16
+ anim_ret
+; caa74
+
+BattleAnim_Agility: ; caa74
+ anim_1gfx ANIM_GFX_WIND
+ anim_obp0 $fc
+ anim_call BattleAnim_Agility_branch_cbca7
+ anim_bgeffect $18, $0, $1, $40
+ anim_obj $7d, 8, 24, $10
+ anim_obj $7d, 8, 48, $2
+ anim_obj $7d, 8, 88, $8
+ anim_wait 4
+ anim_obj $7d, 8, 32, $6
+ anim_obj $7d, 8, 56, $c
+ anim_obj $7d, 8, 80, $4
+ anim_obj $7d, 8, 104, $e
+BattleAnim_Agility_branch_caaa4: ; caaa4
+ anim_sound $0, SFX_RAZOR_WIND
+ anim_wait 4
+ anim_loop $12, BattleAnim_Agility_branch_caaa4
+ anim_incbgeffect $18
+ anim_call BattleAnim_Agility_branch_cbcb7
+ anim_ret
+; caab2
+
+BattleAnim_BoneClub: ; caab2
+ anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC
+ anim_obj $68, 64, 88, $2
+ anim_wait 32
+ anim_sound $1, SFX_BONE_CLUB
+ anim_obj $1, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; caac5
+
+BattleAnim_Barrier: ; caac5
+ anim_1gfx ANIM_GFX_REFLECT
+ anim_enemyfeetobj
+ anim_bgeffect $6, $0, $2, $0
+ anim_wait 8
+ anim_sound $0, SFX_SHINE
+ anim_obj $50, 72, 80, $0
+ anim_wait 32
+ anim_sound $0, SFX_SHINE
+ anim_obj $50, 72, 80, $0
+ anim_wait 32
+ anim_ret
+; caae1
+
+BattleAnim_Waterfall: ; caae1
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Waterfall_branch_cbcaf
+ anim_bgeffect $25, $0, $1, $0
+ anim_wait 16
+ anim_call BattleAnim_Waterfall_branch_cbcb7
+ anim_sound $1, SFX_LICK
+ anim_obj $1, 136, 56, $0
+ anim_wait 3
+ anim_sound $1, SFX_LICK
+ anim_obj $1, 136, 48, $0
+ anim_wait 3
+ anim_sound $1, SFX_LICK
+ anim_obj $1, 136, 40, $0
+ anim_wait 3
+ anim_sound $1, SFX_LICK
+ anim_obj $1, 136, 32, $0
+ anim_wait 3
+ anim_sound $1, SFX_LICK
+ anim_obj $1, 136, 24, $0
+ anim_wait 8
+ anim_ret
+; cab1d
+
+BattleAnim_PsychicM: ; cab1d
+ anim_1gfx ANIM_GFX_PSYCHIC
+ anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+ anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
+BattleAnim_PsychicM_branch_cab29: ; cab29
+ anim_sound $1a, SFX_PSYCHIC
+ anim_obj $4c, 64, 88, $2
+ anim_wait 8
+ anim_loop $8, BattleAnim_PsychicM_branch_cab29
+ anim_wait 96
+ anim_incbgeffect ANIM_BG_PSYCHIC
+ anim_wait 4
+ anim_ret
+; cab3b
+
+BattleAnim_Sludge: ; cab3b
+ anim_1gfx ANIM_GFX_POISON
+ anim_call BattleAnim_Sludge_branch_cbc15
+ anim_wait 56
+ anim_ret
+; cab42
+
+BattleAnim_Toxic: ; cab42
+ anim_1gfx ANIM_GFX_POISON
+ anim_bgeffect ANIM_BG_BLACK_HUES, $0, $8, $0
+ anim_call BattleAnim_Toxic_branch_cbc35
+ anim_wait 32
+ anim_call BattleAnim_Toxic_branch_cbc15
+ anim_wait 64
+ anim_ret
+; cab52
+
+BattleAnim_Metronome: ; cab52
+ anim_2gfx ANIM_GFX_MISC, ANIM_GFX_SPEED
+ anim_sound $0, SFX_METRONOME
+ anim_obj $7a, 72, 88, $0
+BattleAnim_Metronome_branch_cab5d: ; cab5d
+ anim_obj $7b, 72, 80, $0
+ anim_wait 8
+ anim_loop $5, BattleAnim_Metronome_branch_cab5d
+ anim_wait 48
+ anim_ret
+; cab69
+
+BattleAnim_Counter: ; cab69
+ anim_1gfx ANIM_GFX_HIT
+BattleAnim_Counter_branch_cab6b: ; cab6b
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
+ anim_sound $1, SFX_POUND
+ anim_obj $8, 120, 72, $0
+ anim_obj $0, 120, 72, $0
+ anim_wait 6
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $6, 136, 40, $0
+ anim_obj $0, 136, 40, $0
+ anim_wait 6
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
+ anim_sound $1, SFX_MEGA_KICK
+ anim_obj $7, 152, 56, $0
+ anim_obj $0, 152, 56, $0
+ anim_wait 6
+ anim_loop $3, BattleAnim_Counter_branch_cab6b
+ anim_wait 16
+ anim_ret
+; cabaa
+
+BattleAnim_LowKick: ; cabaa
+ anim_1gfx ANIM_GFX_HIT
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $7, 124, 64, $0
+ anim_obj $0, 124, 64, $0
+ anim_wait 6
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $7, 132, 64, $0
+ anim_obj $0, 132, 64, $0
+ anim_wait 6
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $7, 140, 64, $0
+ anim_obj $0, 140, 64, $0
+ anim_wait 16
+ anim_ret
+; cabe6
+
+BattleAnim_WingAttack: ; cabe6
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $1, SFX_WING_ATTACK
+ anim_obj $1, 148, 56, $0
+ anim_obj $1, 116, 56, $0
+ anim_wait 6
+ anim_sound $1, SFX_WING_ATTACK
+ anim_obj $1, 144, 56, $0
+ anim_obj $1, 120, 56, $0
+ anim_wait 6
+ anim_sound $1, SFX_WING_ATTACK
+ anim_obj $1, 140, 56, $0
+ anim_obj $1, 124, 56, $0
+ anim_wait 16
+ anim_ret
+; cac13
+
+BattleAnim_Slam: ; cac13
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $1, SFX_WING_ATTACK
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2
+ anim_obj $1, 124, 40, $0
+ anim_wait 16
+ anim_ret
+; cac24
+
+BattleAnim_Disable: ; cac24
+ anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_STATUS
+ anim_bgeffect $6, $0, $2, $0
+ anim_obj $7c, 132, 56, $0
+ anim_wait 16
+ anim_sound $1, SFX_BIND
+ anim_obj ANIM_OBJ_PARALYZED, 104, 56, $42
+ anim_obj ANIM_OBJ_PARALYZED, 160, 56, $c2
+ anim_wait 96
+ anim_ret
+; cac41
+
+BattleAnim_TailWhip: ; cac41
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_TailWhip_branch_cbcaf
+ anim_sound $0, SFX_TAIL_WHIP
+ anim_bgeffect $26, $0, $1, $0
+ anim_wait 32
+ anim_incbgeffect $26
+ anim_call BattleAnim_TailWhip_branch_cbcb7
+ anim_ret
+; cac55
+
+BattleAnim_Struggle: ; cac55
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $1, SFX_POUND
+ anim_obj $1, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; cac61
+
+BattleAnim_Sketch: ; cac61
+ anim_1gfx ANIM_GFX_OBJECTS
+ anim_call BattleAnim_Sketch_branch_cbca7
+ anim_bgeffect $1a, $0, $1, $20
+ anim_sound $0, SFX_SKETCH
+ anim_obj $98, 72, 80, $0
+ anim_wait 80
+ anim_incbgeffect $1a
+ anim_call BattleAnim_Sketch_branch_cbcb7
+ anim_wait 1
+ anim_ret
+; cac7b
+
+BattleAnim_TripleKick: ; cac7b
+ anim_1gfx ANIM_GFX_HIT
+ anim_jumpif $1, BattleAnim_TripleKick_branch_cac95
+ anim_jumpif $2, BattleAnim_TripleKick_branch_caca5
+ anim_sound $1, SFX_MEGA_KICK
+ anim_obj $7, 144, 48, $0
+ anim_wait 6
+ anim_obj $1, 144, 48, $0
+ anim_wait 8
+ anim_ret
+; cac95
+
+BattleAnim_TripleKick_branch_cac95: ; cac95
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $7, 120, 64, $0
+ anim_wait 6
+ anim_obj $1, 120, 64, $0
+ anim_wait 8
+ anim_ret
+; caca5
+
+BattleAnim_TripleKick_branch_caca5: ; caca5
+ anim_sound $1, SFX_DOUBLE_KICK
+ anim_obj $7, 132, 32, $0
+ anim_wait 6
+ anim_obj $1, 132, 32, $0
+ anim_wait 8
+ anim_ret
+; cacb5
+
+BattleAnim_Thief: ; cacb5
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Thief_branch_cbca7
+ anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+ anim_wait 16
+ anim_sound $1, SFX_THIEF
+ anim_obj $1, 128, 48, $0
+ anim_wait 16
+ anim_call BattleAnim_Thief_branch_cbcb7
+ anim_wait 1
+ anim_1gfx ANIM_GFX_STATUS
+ anim_sound $1, SFX_THIEF_2
+ anim_obj $8b, 120, 76, $1
+ anim_wait 64
+ anim_ret
+; cacd9
+
+BattleAnim_SpiderWeb: ; cacd9
+ anim_1gfx ANIM_GFX_WEB
+ anim_bgeffect $7, $0, $2, $0
+ anim_obj $92, 132, 48, $0
+ anim_sound $1a, SFX_SPIDER_WEB
+ anim_obj $5a, 64, 80, $0
+ anim_wait 4
+ anim_obj $5a, 64, 88, $0
+ anim_wait 4
+ anim_obj $5a, 64, 84, $0
+ anim_wait 64
+ anim_ret
+; cacfb
+
+BattleAnim_MindReader: ; cacfb
+ anim_1gfx ANIM_GFX_MISC
+ anim_sound $1, SFX_MIND_READER
+BattleAnim_MindReader_branch_cad00: ; cad00
+ anim_obj $88, 132, 48, $3
+ anim_obj $88, 132, 48, $12
+ anim_obj $88, 132, 48, $20
+ anim_obj $88, 132, 48, $31
+ anim_wait 16
+ anim_loop $2, BattleAnim_MindReader_branch_cad00
+ anim_wait 32
+ anim_ret
+; cad1b
+
+BattleAnim_Nightmare: ; cad1b
+ anim_1gfx ANIM_GFX_ANGELS
+ anim_bgp $1b
+ anim_obp0 $f
+ anim_obj $94, 132, 40, $0
+ anim_obj $94, 132, 40, $a0
+ anim_sound $1, SFX_NIGHTMARE
+ anim_wait 96
+ anim_ret
+; cad30
+
+BattleAnim_FlameWheel: ; cad30
+ anim_1gfx ANIM_GFX_FIRE
+BattleAnim_FlameWheel_branch_cad32: ; cad32
+ anim_sound $0, SFX_EMBER
+ anim_obj $7f, 48, 96, $0
+ anim_wait 6
+ anim_loop $8, BattleAnim_FlameWheel_branch_cad32
+ anim_wait 96
+ anim_call BattleAnim_FlameWheel_branch_cbca7
+ anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+ anim_wait 4
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
+ anim_sound $1, SFX_EMBER
+ anim_obj $f, 136, 48, $1
+ anim_obj $f, 136, 48, $4
+ anim_obj $f, 136, 48, $5
+ anim_wait 8
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+ anim_wait 4
+ anim_incobj $9
+ anim_wait 8
+ anim_ret
+; cad6b
+
+BattleAnim_Snore: ; cad6b
+ anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_NOISE
+ anim_obj $54, 64, 80, $0
+ anim_wait 32
+ anim_bgeffect $1f, $60, $2, $0
+ anim_sound $0, SFX_SNORE
+BattleAnim_Snore_branch_cad7c: ; cad7c
+ anim_call BattleAnim_Snore_branch_cbbbc
+ anim_wait 16
+ anim_loop $2, BattleAnim_Snore_branch_cad7c
+ anim_wait 8
+ anim_ret
+; cad86
+
+BattleAnim_Curse: ; cad86
+ anim_jumpif $1, BattleAnim_Curse_branch_cada3
+ anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS
+ anim_obj $a5, 68, 72, $0
+ anim_sound $0, SFX_CURSE
+ anim_wait 32
+ anim_incobj $1
+ anim_wait 12
+ anim_sound $0, SFX_POISON_STING
+ anim_obj $4, 44, 96, $0
+ anim_wait 16
+ anim_ret
+; cada3
+
+BattleAnim_Curse_branch_cada3: ; cada3
+ anim_1gfx ANIM_GFX_SPEED
+ anim_call BattleAnim_Curse_branch_cbca7
+ anim_bgeffect $19, $0, $1, $40
+ anim_sound $0, SFX_SHARPEN
+ anim_wait 64
+ anim_incbgeffect $19
+ anim_wait 1
+ anim_bgeffect $16, $0, $1, $40
+BattleAnim_Curse_branch_cadb9: ; cadb9
+ anim_sound $0, SFX_SWORDS_DANCE
+ anim_obj $47, 44, 108, $6
+ anim_wait 2
+ anim_obj $47, 36, 108, $6
+ anim_wait 2
+ anim_obj $47, 52, 108, $8
+ anim_wait 2
+ anim_obj $47, 28, 108, $8
+ anim_wait 2
+ anim_obj $47, 60, 108, $6
+ anim_wait 2
+ anim_obj $47, 20, 108, $8
+ anim_wait 2
+ anim_obj $47, 68, 108, $8
+ anim_wait 2
+ anim_loop $3, BattleAnim_Curse_branch_cadb9
+ anim_wait 8
+ anim_incbgeffect $16
+ anim_call BattleAnim_Curse_branch_cbcb7
+ anim_ret
+; cadf1
+
+BattleAnim_Flail: ; cadf1
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Flail_branch_cbca7
+ anim_sound $0, SFX_SUBMISSION
+ anim_bgeffect $2c, $0, $1, $0
+ anim_wait 8
+ anim_obj $1, 120, 48, $0
+ anim_wait 8
+ anim_obj $1, 152, 48, $0
+ anim_wait 8
+ anim_obj $1, 136, 48, $0
+ anim_wait 8
+ anim_incbgeffect $2c
+ anim_call BattleAnim_Flail_branch_cbcb7
+ anim_ret
+; cae17
+
+BattleAnim_Conversion: ; cae17
+ anim_1gfx ANIM_GFX_EXPLOSION
+ anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+ anim_sound $ff, SFX_SHARPEN
+ anim_obj $91, 48, 88, $0
+ anim_obj $91, 48, 88, $8
+ anim_obj $91, 48, 88, $10
+ anim_obj $91, 48, 88, $18
+ anim_obj $91, 48, 88, $20
+ anim_obj $91, 48, 88, $28
+ anim_obj $91, 48, 88, $30
+ anim_obj $91, 48, 88, $38
+ anim_wait 128
+ anim_ret
+; cae4b
+
+BattleAnim_Aeroblast: ; cae4b
+ anim_2gfx ANIM_GFX_BEAM, ANIM_GFX_AEROBLAST
+ anim_bgp $1b
+ anim_bgeffect $1f, $50, $4, $10
+ anim_bgeffect $6, $0, $2, $0
+ anim_sound $0, SFX_AEROBLAST
+ anim_obj $b3, 72, 88, $0
+ anim_wait 32
+ anim_sound $0, SFX_HYPER_BEAM
+ anim_obj $27, 80, 84, $0
+ anim_wait 2
+ anim_sound $1, SFX_HYPER_BEAM
+ anim_obj $27, 96, 76, $0
+ anim_wait 2
+ anim_sound $1, SFX_HYPER_BEAM
+ anim_obj $27, 112, 68, $0
+ anim_obj $28, 126, 62, $0
+ anim_wait 48
+ anim_ret
+; cae84
+
+BattleAnim_CottonSpore: ; cae84
+ anim_obp0 $54
+ anim_1gfx ANIM_GFX_MISC
+ anim_sound $1, SFX_POWDER
+BattleAnim_CottonSpore_branch_cae8b: ; cae8b
+ anim_obj $81, 132, 32, $0
+ anim_wait 8
+ anim_loop $5, BattleAnim_CottonSpore_branch_cae8b
+ anim_wait 96
+ anim_ret
+; cae97
+
+BattleAnim_Reversal: ; cae97
+ anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_HIT
+ anim_bgeffect $7, $0, $0, $0
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $4, 112, 64, $0
+ anim_wait 2
+ anim_sound $1, SFX_SHINE
+ anim_obj $a7, 120, 56, $0
+ anim_wait 2
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $4, 128, 56, $0
+ anim_wait 2
+ anim_sound $1, SFX_SHINE
+ anim_obj $a7, 136, 48, $0
+ anim_wait 2
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $4, 144, 48, $0
+ anim_wait 2
+ anim_sound $1, SFX_SHINE
+ anim_obj $a7, 152, 40, $0
+ anim_wait 24
+ anim_ret
+; caed6
+
+BattleAnim_Spite: ; caed6
+ anim_1gfx ANIM_GFX_ANGELS
+ anim_obj $a4, 132, 16, $0
+ anim_sound $1, SFX_SPITE
+ anim_wait 96
+ anim_ret
+; caee2
+
+BattleAnim_PowderSnow: ; caee2
+ anim_1gfx ANIM_GFX_ICE
+BattleAnim_PowderSnow_branch_caee4: ; caee4
+ anim_sound $1a, SFX_SHINE
+ anim_obj $8f, 64, 88, $23
+ anim_wait 2
+ anim_sound $1a, SFX_SHINE
+ anim_obj $8f, 64, 80, $24
+ anim_wait 2
+ anim_sound $1a, SFX_SHINE
+ anim_obj $8f, 64, 96, $23
+ anim_wait 2
+ anim_loop $2, BattleAnim_PowderSnow_branch_caee4
+ anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
+ anim_wait 40
+ anim_call BattleAnim_PowderSnow_branch_cbbdf
+ anim_wait 32
+ anim_ret
+; caf0e
+
+BattleAnim_Protect: ; caf0e
+ anim_1gfx ANIM_GFX_OBJECTS
+ anim_bgeffect $7, $0, $2, $0
+ anim_obj $8a, 80, 80, $0
+ anim_obj $8a, 80, 80, $d
+ anim_obj $8a, 80, 80, $1a
+ anim_obj $8a, 80, 80, $27
+ anim_obj $8a, 80, 80, $34
+ anim_sound $0, SFX_PROTECT
+ anim_wait 96
+ anim_ret
+; caf33
+
+BattleAnim_MachPunch: ; caf33
+ anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+ anim_sound $0, SFX_MENU
+ anim_obj $77, 24, 88, $2
+ anim_obj $77, 32, 88, $1
+ anim_obj $77, 40, 88, $0
+ anim_obj $77, 48, 88, $80
+ anim_obj $77, 56, 88, $81
+ anim_obj $77, 64, 88, $82
+ anim_wait 12
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $6, 136, 56, $0
+ anim_wait 6
+ anim_obj $1, 136, 56, $0
+ anim_wait 8
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 16
+ anim_ret
+; caf73
+
+BattleAnim_ScaryFace: ; caf73
+ anim_1gfx ANIM_GFX_BEAM
+ anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+ anim_bgeffect $6, $0, $2, $0
+ anim_call BattleAnim_ScaryFace_branch_cbadc
+ anim_wait 64
+ anim_ret
+; caf84
+
+BattleAnim_FaintAttack: ; caf84
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $0, SFX_CURSE
+ anim_call BattleAnim_FaintAttack_branch_cbca7
+ anim_bgeffect $1d, $0, $1, $80
+ anim_wait 96
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $4, 120, 32, $0
+ anim_wait 8
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $4, 152, 40, $0
+ anim_wait 8
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $4, 136, 48, $0
+ anim_wait 32
+ anim_incbgeffect $1d
+ anim_call BattleAnim_FaintAttack_branch_cbcb7
+ anim_wait 4
+ anim_ret
+; cafb4
+
+BattleAnim_SweetKiss: ; cafb4
+ anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS
+ anim_bgeffect $7, $0, $2, $0
+ anim_obj $97, 96, 40, $0
+ anim_sound $1, SFX_SWEET_KISS
+ anim_wait 32
+ anim_sound $1, SFX_SWEET_KISS_2
+ anim_obj ANIM_OBJ_HEART, 120, 40, $0
+ anim_wait 40
+ anim_ret
+; cafcf
+
+BattleAnim_BellyDrum: ; cafcf
+ anim_2gfx ANIM_GFX_HIT, ANIM_GFX_NOISE
+ anim_sound $0, SFX_BELLY_DRUM
+ anim_obj $aa, 64, 104, $0
+ anim_obj $ab, 64, 92, $f8
+ anim_wait 24
+ anim_sound $0, SFX_BELLY_DRUM
+ anim_obj $aa, 64, 104, $0
+ anim_obj $ab, 64, 92, $f8
+ anim_wait 24
+ anim_sound $0, SFX_BELLY_DRUM
+ anim_obj $aa, 64, 104, $0
+ anim_obj $ab, 64, 92, $f8
+ anim_wait 12
+ anim_sound $0, SFX_BELLY_DRUM
+ anim_obj $aa, 64, 104, $0
+ anim_obj $ab, 64, 92, $f8
+ anim_wait 12
+ anim_sound $0, SFX_BELLY_DRUM
+ anim_obj $aa, 64, 104, $0
+ anim_obj $ab, 64, 92, $f8
+ anim_wait 24
+ anim_sound $0, SFX_BELLY_DRUM
+ anim_obj $aa, 64, 104, $0
+ anim_obj $ab, 64, 92, $f8
+ anim_wait 12
+ anim_sound $0, SFX_BELLY_DRUM
+ anim_obj $aa, 64, 104, $0
+ anim_obj $ab, 64, 92, $f8
+ anim_wait 12
+ anim_sound $0, SFX_BELLY_DRUM
+ anim_obj $aa, 64, 104, $0
+ anim_obj $ab, 64, 92, $f8
+ anim_wait 12
+ anim_sound $0, SFX_BELLY_DRUM
+ anim_obj $aa, 64, 104, $0
+ anim_obj $ab, 64, 92, $f8
+ anim_wait 12
+ anim_ret
+; cb051
+
+BattleAnim_SludgeBomb: ; cb051
+ anim_2gfx ANIM_GFX_EGG, ANIM_GFX_POISON
+ anim_bgeffect ANIM_BG_BLACK_HUES, $0, $8, $0
+ anim_sound $1a, SFX_SLUDGE_BOMB
+ anim_obj $62, 64, 92, $10
+ anim_wait 36
+ anim_call BattleAnim_SludgeBomb_branch_cbc15
+ anim_wait 64
+ anim_ret
+; cb067
+
+BattleAnim_MudSlap: ; cb067
+ anim_1gfx ANIM_GFX_SAND
+ anim_obp0 $fc
+ anim_call BattleAnim_MudSlap_branch_cbc5b
+ anim_ret
+; cb06f
+
+BattleAnim_Octazooka: ; cb06f
+ anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE
+ anim_sound $1a, SFX_SLUDGE_BOMB
+ anim_obj $8c, 64, 92, $4
+ anim_wait 16
+ anim_obj $1c, 132, 56, $10
+ anim_wait 8
+ anim_jumpif $0, BattleAnim_Octazooka_branch_cb091
+BattleAnim_Octazooka_branch_cb086: ; cb086
+ anim_obj $74, 132, 60, $20
+ anim_wait 8
+ anim_loop $5, BattleAnim_Octazooka_branch_cb086
+ anim_wait 128
+BattleAnim_Octazooka_branch_cb091: ; cb091
+ anim_ret
+; cb092
+
+BattleAnim_Spikes: ; cb092
+ anim_1gfx ANIM_GFX_MISC
+ anim_sound $1a, SFX_MENU
+ anim_obj $8e, 48, 88, $20
+ anim_wait 8
+ anim_sound $1a, SFX_MENU
+ anim_obj $8e, 48, 88, $30
+ anim_wait 8
+ anim_sound $1a, SFX_MENU
+ anim_obj $8e, 48, 88, $28
+ anim_wait 64
+ anim_ret
+; cb0b0
+
+BattleAnim_ZapCannon: ; cb0b0
+ anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
+ anim_bgp $1b
+ anim_obp0 $30
+ anim_sound $1a, SFX_ZAP_CANNON
+ anim_obj $a3, 64, 92, $2
+ anim_wait 40
+ anim_sound $1, SFX_THUNDERSHOCK
+ anim_obj $32, 136, 56, $2
+ anim_wait 16
+ anim_obj $31, 136, 56, $0
+ anim_wait 128
+ anim_ret
+; cb0d0
+
+BattleAnim_Foresight: ; cb0d0
+ anim_1gfx ANIM_GFX_SHINE
+ anim_call BattleAnim_Foresight_branch_cbcc2
+ anim_bgeffect $7, $0, $0, $0
+ anim_sound $1, SFX_FORESIGHT
+ anim_obj $a7, 132, 40, $0
+ anim_wait 24
+ anim_bgeffect $19, $0, $0, $40
+ anim_wait 64
+ anim_incbgeffect $19
+ anim_call BattleAnim_Foresight_branch_cbcd2
+ anim_wait 8
+ anim_ret
+; cb0f0
+
+BattleAnim_DestinyBond: ; cb0f0
+ anim_1gfx ANIM_GFX_ANGELS
+ anim_bgp $1b
+ anim_obp0 $0
+ anim_jumpif $1, BattleAnim_DestinyBond_branch_cb104
+ anim_sound $1a, SFX_WHIRLWIND
+ anim_obj $9b, 44, 120, $2
+ anim_wait 128
+ anim_ret
+; cb104
+
+BattleAnim_DestinyBond_branch_cb104: ; cb104
+ anim_obj $9b, 132, 76, $0
+ anim_sound $1, SFX_KINESIS
+ anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0
+ anim_wait 32
+ anim_ret
+; cb113
+
+BattleAnim_PerishSong: ; cb113
+ anim_1gfx ANIM_GFX_NOISE
+ anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+ anim_sound $2, SFX_PERISH_SONG
+ anim_obj $a6, 88, 0, $0
+ anim_obj $a6, 88, 0, $8
+ anim_obj $a6, 88, 0, $10
+ anim_obj $a6, 88, 0, $18
+ anim_obj $a6, 88, 0, $20
+ anim_obj $a6, 88, 0, $28
+ anim_obj $a6, 88, 0, $30
+ anim_obj $a6, 88, 0, $38
+ anim_wait 112
+ anim_ret
+; cb14c
+
+BattleAnim_IcyWind: ; cb14c
+ anim_1gfx ANIM_GFX_SPEED
+ anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+ anim_playerheadobj
+ anim_sound $0, SFX_PSYCHIC
+BattleAnim_IcyWind_branch_cb15c: ; cb15c
+ anim_wait 8
+ anim_obj $ae, 64, 88, $4
+ anim_wait 8
+ anim_obj $ae, 64, 80, $4
+ anim_wait 8
+ anim_obj $ae, 64, 96, $4
+ anim_wait 8
+ anim_loop $2, BattleAnim_IcyWind_branch_cb15c
+ anim_wait 16
+ anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0
+ anim_wait 6
+ anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
+ anim_wait 64
+ anim_incbgeffect ANIM_BG_NIGHT_SHADE
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 4
+ anim_incobj $7
+ anim_wait 1
+ anim_ret
+; cb18c
+
+BattleAnim_Detect: ; cb18c
+ anim_1gfx ANIM_GFX_SHINE
+ anim_bgeffect $7, $0, $0, $0
+ anim_sound $0, SFX_FORESIGHT
+ anim_obj $a7, 64, 88, $0
+ anim_wait 24
+ anim_ret
+; cb19d
+
+BattleAnim_BoneRush: ; cb19d
+ anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC
+ anim_sound $1, SFX_BONE_CLUB
+ anim_obj $69, 132, 56, $2
+ anim_wait 16
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $1, 120, 48, $0
+ anim_wait 16
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $1, 144, 64, $0
+ anim_wait 16
+ anim_ret
+; cb1bc
+
+BattleAnim_LockOn: ; cb1bc
+ anim_1gfx ANIM_GFX_MISC
+ anim_sound $1, SFX_MIND_READER
+BattleAnim_LockOn_branch_cb1c1: ; cb1c1
+ anim_obj $87, 132, 48, $3
+ anim_obj $87, 132, 48, $12
+ anim_obj $87, 132, 48, $20
+ anim_obj $87, 132, 48, $31
+ anim_wait 16
+ anim_loop $2, BattleAnim_LockOn_branch_cb1c1
+ anim_wait 32
+ anim_ret
+; cb1dc
+
+BattleAnim_Outrage: ; cb1dc
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Outrage_branch_cbca7
+ anim_bgeffect $1a, $0, $1, $20
+ anim_sound $0, SFX_OUTRAGE
+ anim_wait 72
+ anim_incbgeffect $1a
+ anim_call BattleAnim_Outrage_branch_cbcb7
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
+ anim_sound $1, SFX_MOVE_PUZZLE_PIECE
+ anim_obj $0, 120, 72, $0
+ anim_wait 6
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $0, 136, 56, $0
+ anim_wait 6
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $0, 152, 40, $0
+ anim_wait 16
+ anim_ret
+; cb210
+
+BattleAnim_Sandstorm: ; cb210
+ anim_1gfx ANIM_GFX_POWDER
+ anim_obj $a2, 88, 0, $0
+ anim_wait 8
+ anim_obj $a2, 72, 0, $1
+ anim_wait 8
+ anim_obj $a2, 56, 0, $2
+BattleAnim_Sandstorm_branch_cb223: ; cb223
+ anim_sound $1, SFX_MENU
+ anim_wait 8
+ anim_loop $10, BattleAnim_Sandstorm_branch_cb223
+ anim_wait 8
+ anim_ret
+; cb22d
+
+BattleAnim_GigaDrain: ; cb22d
+ anim_2gfx ANIM_GFX_BUBBLE, ANIM_GFX_CHARGE
+ anim_call BattleAnim_GigaDrain_branch_cbca7
+ anim_bgeffect $1c, $0, $0, $10
+ anim_sound $1b, SFX_GIGA_DRAIN
+ anim_call BattleAnim_GigaDrain_branch_cbab3
+ anim_wait 48
+ anim_wait 128
+ anim_incbgeffect $1c
+ anim_call BattleAnim_GigaDrain_branch_cbcb7
+ anim_wait 1
+ anim_1gfx ANIM_GFX_SHINE
+ anim_bgeffect $7, $0, $0, $0
+BattleAnim_GigaDrain_branch_cb24d: ; cb24d
+ anim_sound $0, SFX_METRONOME
+ anim_obj $9d, 24, 64, $0
+ anim_wait 5
+ anim_obj $9d, 56, 104, $0
+ anim_wait 5
+ anim_obj $9d, 24, 104, $0
+ anim_wait 5
+ anim_obj $9d, 56, 64, $0
+ anim_wait 5
+ anim_obj $9d, 40, 84, $0
+ anim_wait 5
+ anim_loop $2, BattleAnim_GigaDrain_branch_cb24d
+ anim_wait 32
+ anim_ret
+; cb274
+
+BattleAnim_Endure: ; cb274
+ anim_1gfx ANIM_GFX_SPEED
+ anim_call BattleAnim_Endure_branch_cbca7
+ anim_bgeffect $1a, $0, $1, $20
+ anim_bgeffect $7, $0, $2, $0
+BattleAnim_Endure_branch_cb283: ; cb283
+ anim_sound $0, SFX_SWORDS_DANCE
+ anim_obj $47, 44, 108, $6
+ anim_wait 2
+ anim_obj $47, 36, 108, $6
+ anim_wait 2
+ anim_obj $47, 52, 108, $8
+ anim_wait 2
+ anim_obj $47, 28, 108, $8
+ anim_wait 2
+ anim_obj $47, 60, 108, $6
+ anim_wait 2
+ anim_obj $47, 20, 108, $8
+ anim_wait 2
+ anim_obj $47, 68, 108, $8
+ anim_wait 2
+ anim_loop $5, BattleAnim_Endure_branch_cb283
+ anim_wait 8
+ anim_incbgeffect $1a
+ anim_call BattleAnim_Endure_branch_cbcb7
+ anim_ret
+; cb2bb
+
+BattleAnim_Charm: ; cb2bb
+ anim_1gfx ANIM_GFX_OBJECTS
+ anim_call BattleAnim_Charm_branch_cbca7
+ anim_bgeffect $26, $0, $1, $0
+ anim_sound $0, SFX_ATTRACT
+ anim_obj ANIM_OBJ_HEART, 64, 80, $0
+ anim_wait 32
+ anim_incbgeffect $26
+ anim_call BattleAnim_Charm_branch_cbcb7
+ anim_wait 4
+ anim_ret
+; cb2d5
+
+BattleAnim_Rollout: ; cb2d5
+ anim_1gfx ANIM_GFX_HIT
+ anim_sound $0, SFX_SPARK
+ anim_call BattleAnim_Rollout_branch_cbcaf
+ anim_bgeffect $2e, $60, $1, $1
+ anim_bgeffect $25, $0, $1, $0
+ anim_wait 4
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $3, 136, 40, $0
+ anim_wait 8
+ anim_call BattleAnim_Rollout_branch_cbcb7
+ anim_ret
+; cb2f5
+
+BattleAnim_FalseSwipe: ; cb2f5
+ anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_CUT
+ anim_bgeffect $7, $0, $0, $0
+ anim_sound $1, SFX_CUT
+ anim_obj $3a, 152, 40, $0
+ anim_wait 4
+ anim_obj $9d, 136, 40, $0
+ anim_wait 32
+ anim_ret
+; cb30d
+
+BattleAnim_Swagger: ; cb30d
+ anim_2gfx ANIM_GFX_MISC, ANIM_GFX_WIND
+BattleAnim_Swagger_branch_cb310: ; cb310
+ anim_sound $0, SFX_MENU
+ anim_obj $a9, 72, 88, $44
+ anim_wait 32
+ anim_loop $2, BattleAnim_Swagger_branch_cb310
+ anim_wait 32
+ anim_sound $1, SFX_KINESIS_2
+ anim_obj $83, 104, 40, $0
+ anim_wait 40
+ anim_ret
+; cb328
+
+BattleAnim_MilkDrink: ; cb328
+ anim_2gfx ANIM_GFX_MISC, ANIM_GFX_BUBBLE
+ anim_call BattleAnim_MilkDrink_branch_cbca7
+ anim_obj $82, 74, 104, $0
+ anim_wait 16
+ anim_bgeffect $18, $0, $1, $40
+ anim_sound $0, SFX_MILK_DRINK
+BattleAnim_MilkDrink_branch_cb33c: ; cb33c
+ anim_obj $2c, 44, 88, $20
+ anim_wait 8
+ anim_loop $8, BattleAnim_MilkDrink_branch_cb33c
+ anim_wait 128
+ anim_incbgeffect $18
+ anim_call BattleAnim_MilkDrink_branch_cbcb7
+ anim_ret
+; cb34d
+
+BattleAnim_Spark: ; cb34d
+ anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
+ anim_sound $0, SFX_ZAP_CANNON
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
+ anim_obj $30, 48, 92, $0
+ anim_wait 24
+ anim_setobj $1, $3
+ anim_wait 1
+ anim_call BattleAnim_Spark_branch_cbca7
+ anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+ anim_sound $0, SFX_SPARK
+ anim_wait 16
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+ anim_wait 4
+ anim_incobj $2
+ anim_wait 1
+ anim_sound $1, SFX_THUNDERSHOCK
+ anim_obj $32, 136, 56, $2
+ anim_obj $33, 136, 56, $0
+ anim_wait 32
+ anim_ret
+; cb386
+
+BattleAnim_FuryCutter: ; cb386
+ anim_1gfx ANIM_GFX_CUT
+BattleAnim_FuryCutter_branch_cb388: ; cb388
+ anim_sound $1, SFX_CUT
+ anim_jumpand $1, BattleAnim_FuryCutter_branch_cb397
+ anim_obj $3a, 152, 40, $0
+ anim_jump BattleAnim_FuryCutter_branch_cb39c
+; cb397
+
+BattleAnim_FuryCutter_branch_cb397: ; cb397
+ anim_obj $3b, 112, 40, $0
+BattleAnim_FuryCutter_branch_cb39c: ; cb39c
+ anim_wait 16
+ anim_jumpuntil BattleAnim_FuryCutter_branch_cb388
+ anim_ret
+; cb3a1
+
+BattleAnim_SteelWing: ; cb3a1
+ anim_1gfx ANIM_GFX_REFLECT
+ anim_obp0 $0
+ anim_sound $0, SFX_RAGE
+ anim_call BattleAnim_SteelWing_branch_cbca7
+ anim_call BattleAnim_SteelWing_branch_cbc43
+ anim_call BattleAnim_SteelWing_branch_cbcb7
+ anim_1gfx ANIM_GFX_HIT
+ anim_resetobp0
+ anim_sound $1, SFX_WING_ATTACK
+ anim_obj $1, 148, 56, $0
+ anim_obj $1, 116, 56, $0
+ anim_wait 6
+ anim_sound $1, SFX_WING_ATTACK
+ anim_obj $1, 144, 56, $0
+ anim_obj $1, 120, 56, $0
+ anim_wait 6
+ anim_sound $1, SFX_WING_ATTACK
+ anim_obj $1, 140, 56, $0
+ anim_obj $1, 124, 56, $0
+ anim_wait 16
+ anim_ret
+; cb3df
+
+BattleAnim_MeanLook: ; cb3df
+ anim_1gfx ANIM_GFX_PSYCHIC
+ anim_obp0 $e0
+ anim_sound $1, SFX_MEAN_LOOK
+ anim_obj $ac, 148, 32, $0
+ anim_wait 5
+ anim_obj $ac, 116, 64, $0
+ anim_wait 5
+ anim_obj $ac, 148, 64, $0
+ anim_wait 5
+ anim_obj $ac, 116, 32, $0
+ anim_wait 5
+ anim_obj $ac, 132, 48, $0
+ anim_wait 128
+ anim_ret
+; cb405
+
+BattleAnim_Attract: ; cb405
+ anim_1gfx ANIM_GFX_OBJECTS
+BattleAnim_Attract_branch_cb407: ; cb407
+ anim_sound $0, SFX_ATTRACT
+ anim_obj $66, 44, 80, $2
+ anim_wait 8
+ anim_loop $5, BattleAnim_Attract_branch_cb407
+ anim_wait 128
+ anim_wait 64
+ anim_ret
+; cb417
+
+BattleAnim_SleepTalk: ; cb417
+ anim_1gfx ANIM_GFX_STATUS
+BattleAnim_SleepTalk_branch_cb419: ; cb419
+ anim_sound $0, SFX_STRENGTH
+ anim_obj $54, 64, 80, $0
+ anim_wait 40
+ anim_loop $2, BattleAnim_SleepTalk_branch_cb419
+ anim_wait 32
+ anim_ret
+; cb428
+
+BattleAnim_HealBell: ; cb428
+ anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE
+ anim_obj $84, 72, 56, $0
+ anim_wait 32
+BattleAnim_HealBell_branch_cb431: ; cb431
+ anim_sound $0, SFX_HEAL_BELL
+ anim_obj $85, 72, 52, $0
+ anim_wait 8
+ anim_sound $0, SFX_HEAL_BELL
+ anim_obj $85, 72, 52, $1
+ anim_wait 8
+ anim_sound $0, SFX_HEAL_BELL
+ anim_obj $85, 72, 52, $2
+ anim_wait 8
+ anim_sound $0, SFX_HEAL_BELL
+ anim_obj $85, 72, 52, $0
+ anim_wait 8
+ anim_sound $0, SFX_HEAL_BELL
+ anim_obj $85, 72, 52, $2
+ anim_wait 8
+ anim_loop $4, BattleAnim_HealBell_branch_cb431
+ anim_wait 64
+ anim_ret
+; cb464
+
+BattleAnim_Return: ; cb464
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Return_branch_cbcaf
+ anim_bgeffect $22, $0, $1, $0
+ anim_sound $0, SFX_RETURN
+ anim_wait 64
+ anim_incbgeffect $22
+ anim_wait 32
+ anim_bgeffect $25, $0, $1, $0
+ anim_wait 4
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $3, 136, 40, $0
+ anim_wait 8
+ anim_call BattleAnim_Return_branch_cbcb7
+ anim_ret
+; cb488
+
+BattleAnim_Present: ; cb488
+ anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_BUBBLE
+ anim_sound $1, SFX_PRESENT
+ anim_obj $8d, 64, 88, $6c
+ anim_wait 56
+ anim_obj $53, 104, 48, $0
+ anim_wait 48
+ anim_incobj $2
+ anim_jumpif $3, BattleAnim_Present_branch_cb4b2
+ anim_incobj $1
+ anim_wait 1
+ anim_1gfx ANIM_GFX_EXPLOSION
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12
+BattleAnim_Present_branch_cb4aa: ; cb4aa
+ anim_call BattleAnim_Present_branch_cbb8f
+ anim_wait 16
+ anim_jumpuntil BattleAnim_Present_branch_cb4aa
+ anim_ret
+; cb4b2
+
+BattleAnim_Present_branch_cb4b2: ; cb4b2
+ anim_sound $1, SFX_METRONOME
+BattleAnim_Present_branch_cb4b5: ; cb4b5
+ anim_obj $2c, 132, 48, $24
+ anim_wait 8
+ anim_loop $8, BattleAnim_Present_branch_cb4b5
+ anim_wait 128
+ anim_ret
+; cb4c1
+
+BattleAnim_Frustration: ; cb4c1
+ anim_1gfx ANIM_GFX_MISC
+ anim_sound $0, SFX_KINESIS_2
+ anim_obj $83, 72, 80, $0
+ anim_wait 40
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_Frustration_branch_cbca7
+ anim_bgeffect $26, $0, $1, $0
+ anim_wait 8
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $1, 120, 48, $0
+ anim_wait 8
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $1, 152, 48, $0
+ anim_wait 8
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $1, 136, 48, $0
+ anim_wait 8
+ anim_incbgeffect $26
+ anim_wait 1
+ anim_call BattleAnim_Frustration_branch_cbcb7
+ anim_ret
+; cb4f9
+
+BattleAnim_Safeguard: ; cb4f9
+ anim_1gfx ANIM_GFX_MISC
+ anim_bgeffect $6, $0, $2, $0
+ anim_obj $89, 80, 80, $0
+ anim_obj $89, 80, 80, $d
+ anim_obj $89, 80, 80, $1a
+ anim_obj $89, 80, 80, $27
+ anim_obj $89, 80, 80, $34
+ anim_sound $0, SFX_PROTECT
+ anim_wait 96
+ anim_ret
+; cb51e
+
+BattleAnim_PainSplit: ; cb51e
+ anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS
+ anim_call BattleAnim_PainSplit_branch_cbcaf
+ anim_bgeffect $25, $0, $1, $0
+ anim_wait 4
+ anim_sound $1, SFX_TACKLE
+ anim_obj $4, 112, 48, $0
+ anim_obj $4, 76, 96, $0
+ anim_wait 8
+ anim_call BattleAnim_PainSplit_branch_cbcb7
+ anim_wait 1
+ anim_ret
+; cb53d
+
+BattleAnim_SacredFire: ; cb53d
+ anim_1gfx ANIM_GFX_FIRE
+ anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+BattleAnim_SacredFire_branch_cb549: ; cb549
+ anim_sound $0, SFX_EMBER
+ anim_obj $80, 48, 104, $0
+ anim_wait 8
+ anim_loop $8, BattleAnim_SacredFire_branch_cb549
+ anim_wait 96
+ anim_call BattleAnim_SacredFire_branch_cbca7
+ anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+ anim_wait 4
+ anim_sound $1, SFX_EMBER
+ anim_obj $f, 136, 48, $1
+ anim_obj $f, 136, 48, $4
+ anim_obj $f, 136, 48, $5
+ anim_wait 8
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+ anim_wait 4
+ anim_incobj $9
+ anim_wait 8
+ anim_ret
+; cb57d
+
+BattleAnim_Magnitude: ; cb57d
+ anim_1gfx ANIM_GFX_ROCKS
+BattleAnim_Magnitude_branch_cb57f: ; cb57f
+ anim_bgeffect $1f, $e, $4, $0
+ anim_sound $1, SFX_STRENGTH
+ anim_obj $1e, 128, 64, $40
+ anim_wait 2
+ anim_obj $1e, 120, 68, $30
+ anim_wait 2
+ anim_obj $1e, 152, 68, $30
+ anim_wait 2
+ anim_obj $1e, 144, 64, $40
+ anim_wait 2
+ anim_obj $1e, 136, 68, $30
+ anim_wait 2
+ anim_jumpuntil BattleAnim_Magnitude_branch_cb57f
+ anim_wait 96
+ anim_ret
+; cb5aa
+
+BattleAnim_Dynamicpunch: ; cb5aa
+ anim_2gfx ANIM_GFX_HIT, ANIM_GFX_EXPLOSION
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $a, 136, 56, $43
+ anim_wait 16
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12
+ anim_call BattleAnim_Dynamicpunch_branch_cbb8f
+ anim_wait 16
+ anim_ret
+; cb5c0
+
+BattleAnim_Megahorn: ; cb5c0
+ anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+ anim_bgeffect $1f, $40, $2, $0
+ anim_wait 48
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+ anim_obj $5f, 72, 80, $1
+ anim_sound $1, SFX_HORN_ATTACK
+ anim_wait 16
+ anim_obj $0, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; cb5de
+
+BattleAnim_Dragonbreath: ; cb5de
+ anim_1gfx ANIM_GFX_FIRE
+ anim_sound $1a, SFX_EMBER
+BattleAnim_Dragonbreath_branch_cb5e3: ; cb5e3
+ anim_obj $90, 64, 92, $4
+ anim_wait 4
+ anim_loop $a, BattleAnim_Dragonbreath_branch_cb5e3
+ anim_wait 64
+ anim_ret
+; cb5ef
+
+BattleAnim_BatonPass: ; cb5ef
+ anim_1gfx ANIM_GFX_MISC
+ anim_obj $86, 44, 104, $20
+ anim_sound $0, SFX_BATON_PASS
+ anim_call BattleAnim_BatonPass_branch_c9486
+ anim_wait 64
+ anim_ret
+; cb5fe
+
+BattleAnim_Encore: ; cb5fe
+ anim_1gfx ANIM_GFX_OBJECTS
+ anim_obj $99, 64, 80, $90
+ anim_obj $99, 64, 80, $10
+ anim_sound $0, SFX_ENCORE
+ anim_wait 16
+ anim_obj $9a, 64, 72, $2c
+ anim_wait 32
+ anim_obj $9a, 64, 72, $34
+ anim_wait 16
+ anim_ret
+; cb61b
+
+BattleAnim_Pursuit: ; cb61b
+ anim_1gfx ANIM_GFX_HIT
+ anim_jumpif $1, BattleAnim_Pursuit_branch_cb62b
+ anim_sound $1, SFX_COMET_PUNCH
+ anim_obj $1, 136, 56, $0
+ anim_wait 16
+ anim_ret
+; cb62b
+
+BattleAnim_Pursuit_branch_cb62b: ; cb62b
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0
+ anim_wait 4
+ anim_call BattleAnim_Pursuit_branch_cbcc2
+ anim_obj $ad, 132, 64, $0
+ anim_wait 64
+ anim_obj $ad, 132, 64, $1
+ anim_sound $1, SFX_BALL_POOF
+ anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0
+ anim_wait 64
+ anim_incobj $3
+ anim_wait 16
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $0, 120, 56, $0
+ anim_bgeffect $2d, $0, $0, $0
+ anim_wait 16
+ anim_call BattleAnim_Pursuit_branch_cbcd2
+ anim_wait 1
+ anim_ret
+; cb65e
+
+BattleAnim_RapidSpin: ; cb65e
+ anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
+ anim_obp0 $e4
+BattleAnim_RapidSpin_branch_cb663: ; cb663
+ anim_sound $0, SFX_MENU
+ anim_obj $a8, 44, 112, $0
+ anim_wait 2
+ anim_loop $5, BattleAnim_RapidSpin_branch_cb663
+ anim_wait 24
+ anim_call BattleAnim_RapidSpin_branch_cbcaf
+ anim_bgeffect $25, $0, $1, $0
+ anim_wait 4
+ anim_resetobp0
+ anim_sound $1, SFX_MEGA_KICK
+ anim_obj $4, 136, 40, $0
+ anim_wait 8
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+ anim_wait 4
+ anim_incobj $6
+ anim_wait 1
+ anim_ret
+; cb68e
+
+BattleAnim_SweetScent: ; cb68e
+ anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC
+ anim_sound $0, SFX_SWEET_SCENT
+ anim_obj ANIM_OBJ_FLOWER, 64, 96, $2
+ anim_wait 2
+ anim_obj ANIM_OBJ_FLOWER, 64, 80, $2
+ anim_wait 96
+ anim_obp0 $54
+ anim_sound $1, SFX_SWEET_SCENT_2
+ anim_obj ANIM_OBJ_COTTON, 136, 40, $15
+ anim_obj ANIM_OBJ_COTTON, 136, 40, $2a
+ anim_obj ANIM_OBJ_COTTON, 136, 40, $3f
+ anim_wait 128
+ anim_ret
+; cb6b6
+
+BattleAnim_IronTail: ; cb6b6
+ anim_1gfx ANIM_GFX_REFLECT
+ anim_obp0 $0
+ anim_sound $0, SFX_RAGE
+ anim_call BattleAnim_IronTail_branch_cbca7
+ anim_call BattleAnim_IronTail_branch_cbc43
+ anim_wait 4
+ anim_1gfx ANIM_GFX_HIT
+ anim_resetobp0
+ anim_bgeffect $26, $0, $1, $0
+ anim_wait 16
+ anim_sound $1, SFX_MEGA_KICK
+ anim_obj $0, 136, 48, $0
+ anim_wait 16
+ anim_incbgeffect $26
+ anim_call BattleAnim_IronTail_branch_cbcb7
+ anim_ret
+; cb6dc
+
+BattleAnim_MetalClaw: ; cb6dc
+ anim_1gfx ANIM_GFX_REFLECT
+ anim_obp0 $0
+ anim_sound $0, SFX_RAGE
+ anim_call BattleAnim_MetalClaw_branch_cbca7
+ anim_call BattleAnim_MetalClaw_branch_cbc43
+ anim_call BattleAnim_MetalClaw_branch_cbcb7
+ anim_1gfx ANIM_GFX_CUT
+ anim_resetobp0
+ anim_sound $1, SFX_SCRATCH
+ anim_obj $37, 144, 48, $0
+ anim_obj $37, 140, 44, $0
+ anim_obj $37, 136, 40, $0
+ anim_wait 32
+ anim_ret
+; cb703
+
+BattleAnim_VitalThrow: ; cb703
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_VitalThrow_branch_cbca7
+ anim_bgeffect $2f, $0, $1, $0
+ anim_wait 16
+ anim_sound $0, SFX_MENU
+ anim_obj $4, 64, 96, $0
+ anim_wait 8
+ anim_sound $0, SFX_MENU
+ anim_obj $4, 56, 88, $0
+ anim_wait 8
+ anim_sound $0, SFX_MENU
+ anim_obj $4, 68, 104, $0
+ anim_wait 8
+ anim_incbgeffect $2f
+ anim_wait 16
+ anim_call BattleAnim_VitalThrow_branch_cbcb7
+ anim_sound $1, SFX_MEGA_PUNCH
+ anim_obj $3, 132, 56, $0
+ anim_wait 16
+ anim_ret
+; cb739
+
+BattleAnim_MorningSun: ; cb739
+ anim_1gfx ANIM_GFX_SHINE
+ anim_bgeffect $7, $0, $0, $0
+ anim_sound $0, SFX_MORNING_SUN
+BattleAnim_MorningSun_branch_cb743: ; cb743
+ anim_obj $9c, 16, 48, $88
+ anim_wait 6
+ anim_loop $5, BattleAnim_MorningSun_branch_cb743
+ anim_wait 32
+ anim_jumpif $0, BattleAnim_MorningSun_branch_cb756
+ anim_call BattleAnim_MorningSun_branch_cbc6a
+ anim_ret
+; cb756
+
+BattleAnim_MorningSun_branch_cb756: ; cb756
+ anim_call BattleAnim_MorningSun_branch_cbc80
+ anim_ret
+; cb75a
+
+BattleAnim_Synthesis: ; cb75a
+ anim_1gfx ANIM_GFX_SHINE
+ anim_call BattleAnim_Synthesis_branch_cbca7
+ anim_bgeffect $18, $0, $1, $40
+ anim_bgeffect $7, $0, $0, $0
+ anim_sound $0, SFX_OUTRAGE
+ anim_wait 72
+ anim_incbgeffect $18
+ anim_call BattleAnim_Synthesis_branch_cbcb7
+ anim_jumpif $1, BattleAnim_Synthesis_branch_cb77a
+ anim_call BattleAnim_Synthesis_branch_cbc6a
+ anim_ret
+; cb77a
+
+BattleAnim_Synthesis_branch_cb77a: ; cb77a
+ anim_call BattleAnim_Synthesis_branch_cbc80
+ anim_ret
+; cb77e
+
+BattleAnim_Crunch: ; cb77e
+ anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
+ anim_bgp $1b
+ anim_obp0 $c0
+ anim_bgeffect $1f, $20, $2, $0
+ anim_obj $36, 136, 56, $a8
+ anim_obj $36, 136, 56, $28
+ anim_wait 8
+ anim_sound $1, SFX_BITE
+ anim_obj $0, 144, 48, $18
+ anim_wait 16
+ anim_sound $1, SFX_BITE
+ anim_obj $0, 128, 64, $18
+ anim_wait 8
+ anim_ret
+; cb7a8
+
+BattleAnim_Moonlight: ; cb7a8
+ anim_1gfx ANIM_GFX_SHINE
+ anim_bgp $1b
+ anim_bgeffect $7, $0, $0, $0
+ anim_obj $9e, 0, 40, $0
+ anim_obj $9e, 16, 56, $0
+ anim_obj $9e, 32, 72, $0
+ anim_obj $9e, 48, 88, $0
+ anim_obj $9e, 64, 104, $0
+ anim_wait 1
+ anim_sound $0, SFX_MOONLIGHT
+ anim_wait 63
+ anim_jumpif $3, BattleAnim_Moonlight_branch_cb7d7
+ anim_call BattleAnim_Moonlight_branch_cbc6a
+ anim_ret
+; cb7d7
+
+BattleAnim_Moonlight_branch_cb7d7: ; cb7d7
+ anim_call BattleAnim_Moonlight_branch_cbc80
+ anim_ret
+; cb7db
+
+BattleAnim_HiddenPower: ; cb7db
+ anim_1gfx ANIM_GFX_CHARGE
+ anim_call BattleAnim_HiddenPower_branch_cbca7
+ anim_bgeffect $1a, $0, $1, $20
+ anim_bgeffect $7, $0, $2, $0
+ anim_obj $9f, 44, 88, $0
+ anim_obj $9f, 44, 88, $8
+ anim_obj $9f, 44, 88, $10
+ anim_obj $9f, 44, 88, $18
+ anim_obj $9f, 44, 88, $20
+ anim_obj $9f, 44, 88, $28
+ anim_obj $9f, 44, 88, $30
+ anim_obj $9f, 44, 88, $38
+BattleAnim_HiddenPower_branch_cb812: ; cb812
+ anim_sound $0, SFX_SWORDS_DANCE
+ anim_wait 8
+ anim_loop $c, BattleAnim_HiddenPower_branch_cb812
+ anim_incbgeffect $1a
+ anim_call BattleAnim_HiddenPower_branch_cbcb7
+ anim_wait 1
+ anim_incobj $2
+ anim_incobj $3
+ anim_incobj $4
+ anim_incobj $5
+ anim_incobj $6
+ anim_incobj $7
+ anim_incobj $8
+ anim_incobj $9
+ anim_wait 16
+ anim_1gfx ANIM_GFX_HIT
+ anim_obj $0, 136, 56, $0
+ anim_wait 32
+ anim_ret
+; cb83a
+
+BattleAnim_CrossChop: ; cb83a
+ anim_1gfx ANIM_GFX_CUT
+ anim_sound $1, SFX_CUT
+ anim_obj $a0, 152, 40, $0
+ anim_obj $a1, 120, 72, $0
+ anim_wait 8
+ anim_bgeffect $1f, $58, $2, $0
+ anim_wait 92
+ anim_sound $1, SFX_VICEGRIP
+ anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10
+ anim_wait 16
+ anim_ret
+; cb85a
+
+BattleAnim_Twister: ; cb85a
+ anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
+BattleAnim_Twister_branch_cb85d: ; cb85d
+ anim_sound $0, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_GUST, 64, 112, $0
+ anim_wait 6
+ anim_loop $9, BattleAnim_Twister_branch_cb85d
+BattleAnim_Twister_branch_cb86a: ; cb86a
+ anim_sound $0, SFX_RAZOR_WIND
+ anim_wait 8
+ anim_loop $8, BattleAnim_Twister_branch_cb86a
+ anim_incobj $1
+ anim_incobj $2
+ anim_incobj $3
+ anim_incobj $4
+ anim_incobj $5
+ anim_incobj $6
+ anim_incobj $7
+ anim_incobj $8
+ anim_incobj $9
+ anim_wait 64
+ anim_obj $1, 144, 64, $18
+BattleAnim_Twister_branch_cb88a: ; cb88a
+ anim_sound $1, SFX_RAZOR_WIND
+ anim_wait 8
+ anim_loop $4, BattleAnim_Twister_branch_cb88a
+ anim_obj $1, 128, 32, $18
+BattleAnim_Twister_branch_cb897: ; cb897
+ anim_sound $1, SFX_RAZOR_WIND
+ anim_wait 8
+ anim_loop $4, BattleAnim_Twister_branch_cb897
+ anim_incobj $1
+ anim_incobj $2
+ anim_incobj $3
+ anim_incobj $4
+ anim_incobj $5
+ anim_incobj $6
+ anim_incobj $7
+ anim_incobj $8
+ anim_incobj $9
+ anim_wait 32
+ anim_ret
+; cb8b3
+
+BattleAnim_RainDance: ; cb8b3
+ anim_1gfx ANIM_GFX_WATER
+ anim_bgp $f8
+ anim_obp0 $7c
+ anim_sound $1, SFX_RAIN_DANCE
+ anim_obj $af, 88, 0, $0
+ anim_wait 8
+ anim_obj $af, 88, 0, $1
+ anim_wait 8
+ anim_obj $af, 88, 0, $2
+ anim_wait 128
+ anim_ret
+; cb8cf
+
+BattleAnim_SunnyDay: ; cb8cf
+ anim_1gfx ANIM_GFX_WATER
+ anim_bgp $90
+ anim_sound $1, SFX_MORNING_SUN
+ anim_obj $af, 88, 0, $2
+ anim_wait 8
+ anim_obj $af, 88, 0, $2
+ anim_wait 8
+ anim_obj $af, 88, 0, $2
+ anim_wait 128
+ anim_ret
+; cb8e9
+
+BattleAnim_MirrorCoat: ; cb8e9
+ anim_2gfx ANIM_GFX_REFLECT, ANIM_GFX_SPEED
+ anim_bgeffect $6, $0, $2, $0
+BattleAnim_MirrorCoat_branch_cb8f1: ; cb8f1
+ anim_sound $0, SFX_SHINE
+ anim_obj $50, 72, 80, $0
+ anim_obj $ae, 64, 72, $4
+ anim_wait 8
+ anim_obj $ae, 64, 88, $4
+ anim_wait 8
+ anim_obj $ae, 64, 80, $4
+ anim_wait 8
+ anim_obj $ae, 64, 96, $4
+ anim_wait 8
+ anim_loop $3, BattleAnim_MirrorCoat_branch_cb8f1
+ anim_wait 32
+ anim_ret
+; cb917
+
+BattleAnim_PsychUp: ; cb917
+ anim_1gfx ANIM_GFX_STATUS
+ anim_call BattleAnim_PsychUp_branch_cbca7
+ anim_bgeffect $1a, $0, $1, $20
+ anim_sound $0, SFX_PSYBEAM
+ anim_obj $b1, 44, 88, $0
+ anim_obj $b1, 44, 88, $10
+ anim_obj $b1, 44, 88, $20
+ anim_obj $b1, 44, 88, $30
+ anim_wait 64
+ anim_incbgeffect $1a
+ anim_call BattleAnim_PsychUp_branch_cbcb7
+ anim_wait 16
+ anim_ret
+; cb940
+
+BattleAnim_Extremespeed: ; cb940
+ anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_CUT
+ anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+ anim_sound $0, SFX_MENU
+ anim_obj $77, 24, 88, $2
+ anim_obj $77, 32, 88, $1
+ anim_obj $77, 40, 88, $0
+ anim_obj $77, 48, 88, $80
+ anim_obj $77, 56, 88, $81
+ anim_obj $77, 64, 88, $82
+ anim_wait 12
+ anim_sound $1, SFX_CUT
+ anim_obj $3a, 152, 40, $0
+ anim_wait 32
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 16
+ anim_ret
+; cb97a
+
+BattleAnim_Ancientpower: ; cb97a
+ anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
+ anim_sound $0, SFX_SPARK
+ anim_obj $b2, 64, 108, $20
+ anim_wait 8
+ anim_sound $0, SFX_SPARK
+ anim_obj $b2, 75, 102, $20
+ anim_wait 8
+ anim_sound $0, SFX_SPARK
+ anim_obj $b2, 85, 97, $20
+ anim_wait 8
+ anim_sound $0, SFX_SPARK
+ anim_obj $b2, 96, 92, $20
+ anim_wait 8
+ anim_sound $1, SFX_SPARK
+ anim_obj $b2, 106, 87, $20
+ anim_wait 8
+ anim_sound $1, SFX_SPARK
+ anim_obj $b2, 116, 82, $20
+ anim_wait 8
+ anim_sound $1, SFX_SPARK
+ anim_obj $b2, 126, 77, $20
+ anim_wait 8
+ anim_sound $1, SFX_SPARK
+ anim_obj $0, 136, 56, $0
+ anim_wait 6
+ anim_ret
+; cb9c6
+
+BattleAnim_ShadowBall: ; cb9c6
+ anim_2gfx ANIM_GFX_EGG, ANIM_GFX_SMOKE
+ anim_bgp $1b
+ anim_sound $1a, SFX_SLUDGE_BOMB
+ anim_obj $b4, 64, 92, $2
+ anim_wait 32
+ anim_obj $1c, 132, 56, $10
+ anim_wait 24
+ anim_ret
+; cb9db
+
+BattleAnim_FutureSight: ; cb9db
+ anim_1gfx ANIM_GFX_WIND
+ anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+ anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
+ anim_obj $7d, 8, 24, $10
+ anim_obj $7d, 8, 48, $2
+ anim_obj $7d, 8, 88, $8
+ anim_wait 4
+ anim_obj $7d, 8, 32, $6
+ anim_obj $7d, 8, 56, $c
+ anim_obj $7d, 8, 80, $4
+ anim_obj $7d, 8, 104, $e
+BattleAnim_FutureSight_branch_cba10: ; cba10
+ anim_sound $0, SFX_THROW_BALL
+ anim_wait 16
+ anim_loop $4, BattleAnim_FutureSight_branch_cba10
+ anim_incbgeffect ANIM_BG_PSYCHIC
+ anim_ret
+; cba1b
+
+BattleAnim_RockSmash: ; cba1b
+ anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
+ anim_sound $1, SFX_SPARK
+ anim_obj $1, 128, 56, $0
+ anim_sound $1, SFX_SPARK
+ anim_obj $b5, 128, 64, $28
+ anim_obj $b5, 128, 64, $5c
+ anim_sound $1, SFX_SPARK
+ anim_obj $b5, 128, 64, $10
+ anim_obj $b5, 128, 64, $e8
+ anim_sound $1, SFX_SPARK
+ anim_obj $b5, 128, 64, $9c
+ anim_obj $b5, 128, 64, $d0
+ anim_wait 6
+ anim_sound $1, SFX_SPARK
+ anim_obj $b5, 128, 64, $1c
+ anim_obj $b5, 128, 64, $50
+ anim_sound $1, SFX_SPARK
+ anim_obj $b5, 128, 64, $dc
+ anim_obj $b5, 128, 64, $90
+ anim_wait 32
+ anim_ret
+; cba6a
+
+BattleAnim_Whirlpool: ; cba6a
+ anim_1gfx ANIM_GFX_WIND
+ anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0
+ anim_sound $1, SFX_SURF
+ anim_wait 16
+BattleAnim_Whirlpool_branch_cba75: ; cba75
+ anim_obj ANIM_OBJ_GUST, 132, 72, $0
+ anim_wait 6
+ anim_loop $9, BattleAnim_Whirlpool_branch_cba75
+ anim_wait 64
+ anim_incbgeffect ANIM_BG_WHIRLPOOL
+ anim_wait 1
+ anim_ret
+; cba84
+
+BattleAnim_BeatUp: ; cba84
+ anim_jumpif $0, BattleAnim_BeatUp_branch_cba9b
+ anim_sound $0, SFX_BALL_POOF
+ anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0
+ anim_wait 16
+ anim_beatup
+ anim_sound $0, SFX_BALL_POOF
+ anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
+ anim_wait 16
+BattleAnim_BeatUp_branch_cba9b: ; cba9b
+ anim_1gfx ANIM_GFX_HIT
+ anim_call BattleAnim_BeatUp_branch_cbca7
+ anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+ anim_wait 4
+ anim_sound $1, SFX_BEAT_UP
+ anim_obj $0, 136, 48, $0
+ anim_wait 8
+ anim_call BattleAnim_BeatUp_branch_cbcb7
+ anim_ret
+; cbab3
+
+BattleAnim_DreamEater_branch_cbab3: ; cbab3
+BattleAnim_GigaDrain_branch_cbab3: ; cbab3
+BattleAnim_LeechLife_branch_cbab3: ; cbab3
+ anim_obj $71, 132, 44, $0
+ anim_obj $71, 132, 44, $8
+ anim_obj $71, 132, 44, $10
+ anim_obj $71, 132, 44, $18
+ anim_obj $71, 132, 44, $20
+ anim_obj $71, 132, 44, $28
+ anim_obj $71, 132, 44, $30
+ anim_obj $71, 132, 44, $38
+ anim_ret
+; cbadc
+
+BattleAnim_Glare_branch_cbadc: ; cbadc
+BattleAnim_Leer_branch_cbadc: ; cbadc
+BattleAnim_ScaryFace_branch_cbadc: ; cbadc
+ anim_sound $1a, SFX_LEER
+ anim_obj $4e, 72, 84, $0
+ anim_obj $4e, 64, 80, $0
+ anim_obj $4e, 88, 76, $0
+ anim_obj $4e, 80, 72, $0
+ anim_obj $4e, 104, 68, $0
+ anim_obj $4e, 96, 64, $0
+ anim_obj $4e, 120, 60, $0
+ anim_obj $4e, 112, 56, $0
+ anim_obj $4f, 130, 54, $0
+ anim_obj $4f, 122, 50, $0
+ anim_ret
+; cbb12
+
+BattleAnim_Fly_branch_cbb12: ; cbb12
+BattleAnim_Teleport_branch_cbb12: ; cbb12
+ anim_sound $0, SFX_WARP_TO
+ anim_obj $44, 44, 108, $0
+ anim_obj $44, 44, 100, $0
+ anim_obj $44, 44, 92, $0
+ anim_obj $44, 44, 84, $0
+ anim_obj $44, 44, 76, $0
+ anim_obj $44, 44, 68, $0
+ anim_obj $44, 44, 60, $0
+ anim_ret
+; cbb39
+
+BattleAnim_AuroraBeam_branch_cbb39: ; cbb39
+BattleAnim_HyperBeam_branch_cbb39: ; cbb39
+BattleAnim_Solarbeam_branch_cbb39: ; cbb39
+ anim_sound $0, SFX_HYPER_BEAM
+ anim_obj $27, 64, 92, $0
+ anim_wait 4
+ anim_sound $0, SFX_HYPER_BEAM
+ anim_obj $27, 80, 84, $0
+ anim_wait 4
+ anim_sound $1, SFX_HYPER_BEAM
+ anim_obj $27, 96, 76, $0
+ anim_wait 4
+ anim_sound $1, SFX_HYPER_BEAM
+ anim_obj $27, 112, 68, $0
+ anim_obj $28, 126, 62, $0
+ anim_ret
+; cbb62
+
+BattleAnim_Explosion_branch_cbb62: ; cbb62
+BattleAnim_Selfdestruct_branch_cbb62: ; cbb62
+ anim_sound $0, SFX_EGG_BOMB
+ anim_obj $17, 24, 64, $0
+ anim_wait 5
+ anim_sound $0, SFX_EGG_BOMB
+ anim_obj $17, 56, 104, $0
+ anim_wait 5
+ anim_sound $0, SFX_EGG_BOMB
+ anim_obj $17, 24, 104, $0
+ anim_wait 5
+ anim_sound $0, SFX_EGG_BOMB
+ anim_obj $17, 56, 64, $0
+ anim_wait 5
+ anim_sound $0, SFX_EGG_BOMB
+ anim_obj $17, 40, 84, $0
+ anim_ret
+; cbb8f
+
+BattleAnim_Dynamicpunch_branch_cbb8f: ; cbb8f
+BattleAnim_Explosion_branch_cbb8f: ; cbb8f
+BattleAnim_Present_branch_cbb8f: ; cbb8f
+BattleAnim_Selfdestruct_branch_cbb8f: ; cbb8f
+ anim_sound $1, SFX_EGG_BOMB
+ anim_obj $17, 148, 32, $0
+ anim_wait 5
+ anim_sound $1, SFX_EGG_BOMB
+ anim_obj $17, 116, 72, $0
+ anim_wait 5
+ anim_sound $1, SFX_EGG_BOMB
+ anim_obj $17, 148, 72, $0
+ anim_wait 5
+ anim_sound $1, SFX_EGG_BOMB
+ anim_obj $17, 116, 32, $0
+ anim_wait 5
+ anim_sound $1, SFX_EGG_BOMB
+ anim_obj $17, 132, 52, $0
+ anim_ret
+; cbbbc
+
+BattleAnim_Growl_branch_cbbbc: ; cbbbc
+BattleAnim_Roar_branch_cbbbc: ; cbbbc
+BattleAnim_Snore_branch_cbbbc: ; cbbbc
+ anim_obj $4b, 64, 76, $0
+ anim_obj $4b, 64, 88, $1
+ anim_obj $4b, 64, 100, $2
+ anim_ret
+; cbbcc
+
+BattleAnim_FirePunch_branch_cbbcc: ; cbbcc
+BattleAnim_TriAttack_branch_cbbcc: ; cbbcc
+ anim_sound $1, SFX_EMBER
+BattleAnim_FirePunch_branch_cbbcf: ; cbbcf
+BattleAnim_TriAttack_branch_cbbcf: ; cbbcf
+ anim_obj $10, 136, 56, $10
+ anim_obj $10, 136, 56, $90
+ anim_wait 4
+ anim_loop $4, BattleAnim_FirePunch_branch_cbbcf
+ anim_ret
+; cbbdf
+
+BattleAnim_IcePunch_branch_cbbdf: ; cbbdf
+BattleAnim_PowderSnow_branch_cbbdf: ; cbbdf
+BattleAnim_TriAttack_branch_cbbdf: ; cbbdf
+ anim_sound $1, SFX_SHINE
+ anim_obj $12, 128, 42, $0
+ anim_wait 6
+ anim_sound $1, SFX_SHINE
+ anim_obj $12, 144, 70, $0
+ anim_wait 6
+ anim_sound $1, SFX_SHINE
+ anim_obj $12, 120, 56, $0
+ anim_wait 6
+ anim_sound $1, SFX_SHINE
+ anim_obj $12, 152, 56, $0
+ anim_wait 6
+ anim_sound $1, SFX_SHINE
+ anim_obj $12, 144, 42, $0
+ anim_wait 6
+ anim_sound $1, SFX_SHINE
+ anim_obj $12, 128, 70, $0
+ anim_ret
+; cbc15
+
+BattleAnim_SludgeBomb_branch_cbc15: ; cbc15
+BattleAnim_Sludge_branch_cbc15: ; cbc15
+BattleAnim_Toxic_branch_cbc15: ; cbc15
+ anim_sound $1, SFX_UNKNOWN_7F
+ anim_obj $1a, 132, 72, $0
+ anim_wait 8
+ anim_sound $1, SFX_UNKNOWN_7F
+ anim_obj $1a, 116, 72, $0
+ anim_wait 8
+ anim_sound $1, SFX_UNKNOWN_7F
+ anim_obj $1a, 148, 72, $0
+ anim_wait 8
+ anim_loop $5, BattleAnim_SludgeBomb_branch_cbc15
+ anim_ret
+; cbc35
+
+BattleAnim_Acid_branch_cbc35: ; cbc35
+BattleAnim_Toxic_branch_cbc35: ; cbc35
+ anim_sound $1a, SFX_BUBBLEBEAM
+ anim_obj $19, 64, 92, $10
+ anim_wait 5
+ anim_loop $8, BattleAnim_Acid_branch_cbc35
+ anim_ret
+; cbc43
+
+BattleAnim_Harden_branch_cbc43: ; cbc43
+BattleAnim_IronTail_branch_cbc43: ; cbc43
+BattleAnim_MetalClaw_branch_cbc43: ; cbc43
+BattleAnim_SteelWing_branch_cbc43: ; cbc43
+ anim_sound $0, SFX_SHINE
+ anim_bgeffect $17, $0, $1, $40
+ anim_wait 8
+ anim_obj $51, 48, 84, $0
+ anim_wait 32
+ anim_obj $51, 48, 84, $0
+ anim_wait 64
+ anim_incbgeffect $17
+ anim_ret
+; cbc5b
+
+BattleAnim_MudSlap_branch_cbc5b: ; cbc5b
+BattleAnim_SandAttack_branch_cbc5b: ; cbc5b
+ anim_sound $1a, SFX_MENU
+ anim_obj $58, 64, 92, $4
+ anim_wait 4
+ anim_loop $8, BattleAnim_MudSlap_branch_cbc5b
+ anim_wait 32
+ anim_ret
+; cbc6a
+
+BattleAnim_Moonlight_branch_cbc6a: ; cbc6a
+BattleAnim_MorningSun_branch_cbc6a: ; cbc6a
+BattleAnim_Synthesis_branch_cbc6a: ; cbc6a
+ anim_sound $0, SFX_METRONOME
+ anim_obj $9d, 44, 64, $0
+ anim_wait 5
+ anim_obj $9d, 24, 96, $0
+ anim_wait 5
+ anim_obj $9d, 56, 104, $0
+ anim_wait 21
+ anim_ret
+; cbc80
+
+BattleAnim_Moonlight_branch_cbc80: ; cbc80
+BattleAnim_MorningSun_branch_cbc80: ; cbc80
+BattleAnim_Synthesis_branch_cbc80: ; cbc80
+ anim_sound $0, SFX_METRONOME
+BattleAnim_Moonlight_branch_cbc83: ; cbc83
+BattleAnim_MorningSun_branch_cbc83: ; cbc83
+BattleAnim_Synthesis_branch_cbc83: ; cbc83
+ anim_obj $9d, 24, 64, $0
+ anim_wait 5
+ anim_obj $9d, 56, 104, $0
+ anim_wait 5
+ anim_obj $9d, 24, 104, $0
+ anim_wait 5
+ anim_obj $9d, 56, 64, $0
+ anim_wait 5
+ anim_obj $9d, 40, 84, $0
+ anim_wait 5
+ anim_loop $2, BattleAnim_Moonlight_branch_cbc83
+ anim_wait 16
+ anim_ret
+; cbca7
+
+BattleAnim_Agility_branch_cbca7: ; cbca7
+BattleAnim_BeatUp_branch_cbca7: ; cbca7
+BattleAnim_Bide_branch_cbca7: ; cbca7
+BattleAnim_Charm_branch_cbca7: ; cbca7
+BattleAnim_Curse_branch_cbca7: ; cbca7
+BattleAnim_DefenseCurl_branch_cbca7: ; cbca7
+BattleAnim_DoubleEdge_branch_cbca7: ; cbca7
+BattleAnim_Endure_branch_cbca7: ; cbca7
+BattleAnim_FaintAttack_branch_cbca7: ; cbca7
+BattleAnim_Flail_branch_cbca7: ; cbca7
+BattleAnim_FlameWheel_branch_cbca7: ; cbca7
+BattleAnim_FocusEnergy_branch_cbca7: ; cbca7
+BattleAnim_Frustration_branch_cbca7: ; cbca7
+BattleAnim_GigaDrain_branch_cbca7: ; cbca7
+BattleAnim_Harden_branch_cbca7: ; cbca7
+BattleAnim_Headbutt_branch_cbca7: ; cbca7
+BattleAnim_HiddenPower_branch_cbca7: ; cbca7
+BattleAnim_IronTail_branch_cbca7: ; cbca7
+BattleAnim_Meditate_branch_cbca7: ; cbca7
+BattleAnim_MegaDrain_branch_cbca7: ; cbca7
+BattleAnim_MetalClaw_branch_cbca7: ; cbca7
+BattleAnim_MilkDrink_branch_cbca7: ; cbca7
+BattleAnim_Outrage_branch_cbca7: ; cbca7
+BattleAnim_PsychUp_branch_cbca7: ; cbca7
+BattleAnim_Rage_branch_cbca7: ; cbca7
+BattleAnim_RazorWind_branch_cbca7: ; cbca7
+BattleAnim_Recover_branch_cbca7: ; cbca7
+BattleAnim_SacredFire_branch_cbca7: ; cbca7
+BattleAnim_SendOutMon_branch_cbca7: ; cbca7
+BattleAnim_Sharpen_branch_cbca7: ; cbca7
+BattleAnim_Sketch_branch_cbca7: ; cbca7
+BattleAnim_SkullBash_branch_cbca7: ; cbca7
+BattleAnim_SkyAttack_branch_cbca7: ; cbca7
+BattleAnim_Softboiled_branch_cbca7: ; cbca7
+BattleAnim_Spark_branch_cbca7: ; cbca7
+BattleAnim_SteelWing_branch_cbca7: ; cbca7
+BattleAnim_Synthesis_branch_cbca7: ; cbca7
+BattleAnim_TakeDown_branch_cbca7: ; cbca7
+BattleAnim_Teleport_branch_cbca7: ; cbca7
+BattleAnim_Thief_branch_cbca7: ; cbca7
+BattleAnim_VitalThrow_branch_cbca7: ; cbca7
+ anim_enemyfeetobj
+ anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $0, $0
+ anim_wait 6
+ anim_ret
+; cbcaf
+
+BattleAnim_AcidArmor_branch_cbcaf: ; cbcaf
+BattleAnim_BodySlam_branch_cbcaf: ; cbcaf
+BattleAnim_Dig_branch_cbcaf: ; cbcaf
+BattleAnim_DoubleTeam_branch_cbcaf: ; cbcaf
+BattleAnim_Minimize_branch_cbcaf: ; cbcaf
+BattleAnim_PainSplit_branch_cbcaf: ; cbcaf
+BattleAnim_RapidSpin_branch_cbcaf: ; cbcaf
+BattleAnim_Return_branch_cbcaf: ; cbcaf
+BattleAnim_Rollout_branch_cbcaf: ; cbcaf
+BattleAnim_Splash_branch_cbcaf: ; cbcaf
+BattleAnim_Tackle_branch_cbcaf: ; cbcaf
+BattleAnim_TailWhip_branch_cbcaf: ; cbcaf
+BattleAnim_Transform_branch_cbcaf: ; cbcaf
+BattleAnim_Waterfall_branch_cbcaf: ; cbcaf
+BattleAnim_Withdraw_branch_cbcaf: ; cbcaf
+ anim_playerheadobj
+ anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $0, $0
+ anim_wait 6
+ anim_ret
+; cbcb7
+
+BattleAnim_AcidArmor_branch_cbcb7: ; cbcb7
+BattleAnim_Agility_branch_cbcb7: ; cbcb7
+BattleAnim_BeatUp_branch_cbcb7: ; cbcb7
+BattleAnim_Bide_branch_cbcb7: ; cbcb7
+BattleAnim_BodySlam_branch_cbcb7: ; cbcb7
+BattleAnim_Charm_branch_cbcb7: ; cbcb7
+BattleAnim_Curse_branch_cbcb7: ; cbcb7
+BattleAnim_DefenseCurl_branch_cbcb7: ; cbcb7
+BattleAnim_Dig_branch_cbcb7: ; cbcb7
+BattleAnim_DoubleEdge_branch_cbcb7: ; cbcb7
+BattleAnim_DoubleTeam_branch_cbcb7: ; cbcb7
+BattleAnim_Endure_branch_cbcb7: ; cbcb7
+BattleAnim_FaintAttack_branch_cbcb7: ; cbcb7
+BattleAnim_Flail_branch_cbcb7: ; cbcb7
+BattleAnim_FocusEnergy_branch_cbcb7: ; cbcb7
+BattleAnim_Frustration_branch_cbcb7: ; cbcb7
+BattleAnim_GigaDrain_branch_cbcb7: ; cbcb7
+BattleAnim_Harden_branch_cbcb7: ; cbcb7
+BattleAnim_Headbutt_branch_cbcb7: ; cbcb7
+BattleAnim_HiddenPower_branch_cbcb7: ; cbcb7
+BattleAnim_IronTail_branch_cbcb7: ; cbcb7
+BattleAnim_Meditate_branch_cbcb7: ; cbcb7
+BattleAnim_MegaDrain_branch_cbcb7: ; cbcb7
+BattleAnim_MetalClaw_branch_cbcb7: ; cbcb7
+BattleAnim_MilkDrink_branch_cbcb7: ; cbcb7
+BattleAnim_Minimize_branch_cbcb7: ; cbcb7
+BattleAnim_Outrage_branch_cbcb7: ; cbcb7
+BattleAnim_PainSplit_branch_cbcb7: ; cbcb7
+BattleAnim_PsychUp_branch_cbcb7: ; cbcb7
+BattleAnim_Rage_branch_cbcb7: ; cbcb7
+BattleAnim_RazorWind_branch_cbcb7: ; cbcb7
+BattleAnim_Recover_branch_cbcb7: ; cbcb7
+BattleAnim_Return_branch_cbcb7: ; cbcb7
+BattleAnim_Rollout_branch_cbcb7: ; cbcb7
+BattleAnim_SendOutMon_branch_cbcb7: ; cbcb7
+BattleAnim_Sharpen_branch_cbcb7: ; cbcb7
+BattleAnim_Sketch_branch_cbcb7: ; cbcb7
+BattleAnim_SkullBash_branch_cbcb7: ; cbcb7
+BattleAnim_SkyAttack_branch_cbcb7: ; cbcb7
+BattleAnim_Softboiled_branch_cbcb7: ; cbcb7
+BattleAnim_Splash_branch_cbcb7: ; cbcb7
+BattleAnim_SteelWing_branch_cbcb7: ; cbcb7
+BattleAnim_Synthesis_branch_cbcb7: ; cbcb7
+BattleAnim_Tackle_branch_cbcb7: ; cbcb7
+BattleAnim_TailWhip_branch_cbcb7: ; cbcb7
+BattleAnim_TakeDown_branch_cbcb7: ; cbcb7
+BattleAnim_Teleport_branch_cbcb7: ; cbcb7
+BattleAnim_Thief_branch_cbcb7: ; cbcb7
+BattleAnim_Transform_branch_cbcb7: ; cbcb7
+BattleAnim_VitalThrow_branch_cbcb7: ; cbcb7
+BattleAnim_Waterfall_branch_cbcb7: ; cbcb7
+BattleAnim_Withdraw_branch_cbcb7: ; cbcb7
+ anim_wait 1
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+ anim_wait 5
+ anim_incobj $1
+ anim_wait 1
+ anim_ret
+; cbcc2
+
+BattleAnim_EnemyStatDown_branch_cbcc2: ; cbcc2
+BattleAnim_Foresight_branch_cbcc2: ; cbcc2
+BattleAnim_PlayerStatDown_branch_cbcc2: ; cbcc2
+BattleAnim_Pursuit_branch_cbcc2: ; cbcc2
+BattleAnim_Submission_branch_cbcc2: ; cbcc2
+ anim_enemyfeetobj
+ anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0
+ anim_wait 6
+ anim_ret
+; cbcca
+
+BattleAnim_Bubblebeam_branch_cbcca: ; cbcca
+BattleAnim_Confusion_branch_cbcca: ; cbcca
+BattleAnim_HydroPump_branch_cbcca: ; cbcca
+BattleAnim_NightShade_branch_cbcca: ; cbcca
+BattleAnim_WaterGun_branch_cbcca: ; cbcca
+ anim_playerheadobj
+ anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0
+ anim_wait 4
+ anim_ret
+; cbcd2
+
+BattleAnim_Bubblebeam_branch_cbcd2: ; cbcd2
+BattleAnim_Confusion_branch_cbcd2: ; cbcd2
+BattleAnim_EnemyStatDown_branch_cbcd2: ; cbcd2
+BattleAnim_Foresight_branch_cbcd2: ; cbcd2
+BattleAnim_HydroPump_branch_cbcd2: ; cbcd2
+BattleAnim_NightShade_branch_cbcd2: ; cbcd2
+BattleAnim_PlayerStatDown_branch_cbcd2: ; cbcd2
+BattleAnim_Pursuit_branch_cbcd2: ; cbcd2
+BattleAnim_Submission_branch_cbcd2: ; cbcd2
+BattleAnim_WaterGun_branch_cbcd2: ; cbcd2
+ anim_wait 1
+ anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+ anim_wait 4
+ anim_incobj $1
+ anim_wait 1
+ anim_ret
+; cbcdd
+
diff --git a/battle/bg_effects.asm b/battle/bg_effects.asm
new file mode 100644
index 000000000..d2af6af6b
--- /dev/null
+++ b/battle/bg_effects.asm
@@ -0,0 +1,2938 @@
+; BG effects for use in battle animations.
+
+; no known jump sources
+Functionc8000: ; c8000 (32:4000)
+ ld hl, $d3fa
+ ld e, $5
+.asm_c8005
+ ld a, [hl]
+ and a
+ jr z, .asm_c8012
+ ld c, l
+ ld b, h
+ push hl
+ push de
+ call Functionc804a
+ pop de
+ pop hl
+.asm_c8012
+ ld bc, $4
+ add hl, bc
+ dec e
+ jr nz, .asm_c8005
+ ret
+
+; no known jump sources
+Functionc801a: ; c801a (32:401a)
+ ld hl, $d3fa
+ ld e, $5
+.asm_c801f
+ ld a, [hl]
+ and a
+ jr z, .asm_c802c
+ ld bc, $4
+ add hl, bc
+ dec e
+ jr nz, .asm_c801f
+ scf
+ ret
+.asm_c802c
+ ld c, l
+ ld b, h
+ ld hl, $0
+ add hl, bc
+ ld a, [$d419]
+ ld [hli], a
+ ld a, [$d41a]
+ ld [hli], a
+ ld a, [$d41b]
+ ld [hli], a
+ ld a, [$d41c]
+ ld [hl], a
+ ret
+
+; known jump sources: c80c6 (32:40c6), c811c (32:411c), c8139 (32:4139), c814d (32:414d), c8164 (32:4164), c81e6 (32:41e6), c81ef (32:41ef), c822c (32:422c), c827d (32:427d), c8299 (32:4299), c82ea (32:42ea), c8377 (32:4377), c8437 (32:4437), c85ca (32:45ca), c85ff (32:45ff), c8d13 (32:4d13), c8dd0 (32:4dd0), c8e26 (32:4e26), c8e4e (32:4e4e), c8f15 (32:4f15)
+EndBattleBGEffect: ; c8043 (32:4043)
+ ld hl, 0
+ add hl, bc
+ ld [hl], 0
+ ret
+
+; known jump sources: c800d (32:400d)
+Functionc804a: ; c804a (32:404a)
+ ld hl, 0
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, BattleBGEffects
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+; no known jump sources
+BattleBGEffects: ; c805a (32:405a)
+ dw BattleBGEffect_0
+ dw Functionc80eb
+ dw Functionc80f3
+ dw Functionc812d
+ dw Functionc8141
+ dw Functionc8155
+ dw Functionc8171
+ dw Functionc818b
+ dw Functionc81a5
+ dw Functionc81b3
+ dw Functionc81ea
+ dw Functionc837b
+ dw Functionc83a8
+ dw Functionc8545
+ dw Functionc8599
+ dw Functionc863f
+ dw Functionc8662
+ dw Functionc8214
+ dw Functionc8281
+ dw Functionc8689
+ dw Functionc8709
+ dw Functionc8be8
+ dw Functionc8bf2
+ dw Functionc8bfd
+ dw Functionc8c08
+ dw Functionc8c14
+ dw Functionc8c20
+ dw Functionc8c30
+ dw Functionc8b00
+ dw Functionc8c3c
+ dw Functionc8c55
+ dw Functionc8cf9
+ dw Functionc8d02
+ dw Functionc8761
+ dw Functionc89ee
+ dw Functionc87a7
+ dw Functionc8805
+ dw Functionc8837
+ dw Functionc892a
+ dw Functionc82f5
+ dw Functionc89b5
+ dw Functionc8607
+ dw Functionc8a3a
+ dw Functionc8acc
+ dw Functionc8964
+ dw Functionc88e7
+ dw Functionc8ce1
+ dw Functionc8919
+ dw Functionc85c2
+ dw Functionc85ce
+ dw Functionc8603
+ dw Functionc8c61
+ dw Functionc8ca2
+ dw Functionc8d3a
+
+
+; no known jump sources
+BattleBGEffect_0: ; c80c6 (32:40c6)
+ call EndBattleBGEffect
+ ret
+
+; known jump sources: c8b7d (32:4b7d), c8d80 (32:4d80), c8dd8 (32:4dd8)
+Functionc80ca: ; c80ca (32:40ca)
+ ld hl, $1
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+
+; known jump sources: c81b3 (32:41b3), c8214 (32:4214), c8281 (32:4281), c82f5 (32:42f5), c83ed (32:43ed), c8545 (32:4545), c8599 (32:4599), c8607 (32:4607), c863f (32:463f), c8662 (32:4662), c8689 (32:4689), c8709 (32:4709), c8761 (32:4761), c87a7 (32:47a7), c8805 (32:4805), c8837 (32:4837), c88e7 (32:48e7), c8919 (32:4919), c892a (32:492a), c8964 (32:4964), c89b5 (32:49b5), c89ee (32:49ee), c8a3a (32:4a3a), c8acc (32:4acc), c8b05 (32:4b05), c8c61 (32:4c61), c8ca2 (32:4ca2)
+Functionc80d7: ; c80d7 (32:40d7)
+ pop de
+ ld hl, $1
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+; known jump sources: c81c0 (32:41c0), c8230 (32:4230), c825a (32:425a), c829d (32:429d), c82c7 (32:42c7), c8302 (32:4302), c835c (32:435c), c841d (32:441d), c854e (32:454e), c85a2 (32:45a2), c8610 (32:4610), c8648 (32:4648), c866b (32:466b), c8698 (32:4698), c86cb (32:46cb), c8712 (32:4712), c876a (32:476a), c87b2 (32:47b2), c87db (32:47db), c8810 (32:4810), c8842 (32:4842), c8876 (32:4876), c8890 (32:4890), c88f6 (32:48f6), c8933 (32:4933), c896d (32:496d), c89be (32:49be), c89f7 (32:49f7), c8a49 (32:4a49), c8a84 (32:4a84), c8a96 (32:4a96), c8ad3 (32:4ad3), c8b0e (32:4b0e), c8c68 (32:4c68), c8cab (32:4cab), c8d8b (32:4d8b), c8dec (32:4dec), c8def (32:4def), c8df2 (32:4df2)
+Functionc80e5: ; c80e5 (32:40e5)
+ ld hl, $1
+ add hl, bc
+ inc [hl]
+ ret
+
+; no known jump sources
+Functionc80eb: ; c80eb (32:40eb)
+ ld de, .inverted
+ jp Functionc80fb
+; c80f1 (32:40f1)
+
+.inverted
+ db %11100100 ; 3210
+ db %00011011 ; 0123
+; c80f3
+
+; no known jump sources
+Functionc80f3: ; c80f3 (32:40f3)
+ ld de, .white
+ jp Functionc80fb
+; c80f9 (32:40f9)
+
+.white
+ db %11100100 ; 3210
+ db %00000000 ; 0000
+; c80fb
+
+; known jump sources: c80ee (32:40ee), c80f6 (32:40f6)
+Functionc80fb: ; c80fb (32:40fb)
+ ld a, $1
+ ld [$d419], a
+ ld hl, $1
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_c810a
+ dec [hl]
+ ret
+
+.asm_c810a
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ ld hl, $1
+ add hl, bc
+ ld [hl], a
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_c8120
+ call EndBattleBGEffect
+ ret
+
+.asm_c8120
+ dec a
+ ld [hl], a
+ and 1
+ ld l, a
+ ld h, 0
+ add hl, de
+ ld a, [hl]
+ ld [$cfc7], a
+ ret
+
+; no known jump sources
+Functionc812d: ; c812d (32:412d)
+ ld de, $413d
+ call Functionc8d57
+ jr c, .asm_c8139
+ ld [$cfc7], a
+ ret
+.asm_c8139
+ call EndBattleBGEffect
+ ret
+; c813d (32:413d)
+
+INCBIN "baserom.gbc",$c813d,$c8141 - $c813d
+
+; no known jump sources
+Functionc8141: ; c8141 (32:4141)
+ ld de, $4151
+ call Functionc8d57
+ jr c, .asm_c814d
+ ld [$cfc7], a
+ ret
+.asm_c814d
+ call EndBattleBGEffect
+ ret
+; c8151 (32:4151)
+
+INCBIN "baserom.gbc",$c8151,$c8155 - $c8151
+
+; no known jump sources
+Functionc8155: ; c8155 (32:4155)
+ ld de, $4168
+ call Functionc8d57
+ jr c, .asm_c8164
+ ld [$cfc7], a
+ ld [$cfc9], a
+ ret
+.asm_c8164
+ call EndBattleBGEffect
+ ret
+; c8168 (32:4168)
+
+INCBIN "baserom.gbc",$c8168,$c8171 - $c8168
+
+; no known jump sources
+Functionc8171: ; c8171 (32:4171)
+ call Functionc9059
+ jr nz, .asm_c817b
+ ld de, $4185
+ jr .asm_c817e
+.asm_c817b
+ ld de, $4188
+.asm_c817e
+ call Functionc8d57
+ ld [$cfc8], a
+ ret
+; c8185 (32:4185)
+
+INCBIN "baserom.gbc",$c8185,$c818b - $c8185
+
+; no known jump sources
+Functionc818b: ; c818b (32:418b)
+ call Functionc9059
+ jr nz, .asm_c8195
+ ld de, $419f
+ jr .asm_c8198
+.asm_c8195
+ ld de, $41a2
+.asm_c8198
+ call Functionc8d57
+ ld [$cfc8], a
+ ret
+; c819f (32:419f)
+
+INCBIN "baserom.gbc",$c819f,$c81a5 - $c819f
+
+; no known jump sources
+Functionc81a5: ; c81a5 (32:41a5)
+ ld de, $41af
+ call Functionc8d57
+ ld [$cfc7], a
+ ret
+; c81af (32:41af)
+
+INCBIN "baserom.gbc",$c81af,$c81b3 - $c81af
+
+; no known jump sources
+Functionc81b3: ; c81b3 (32:41b3)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c81b6: ; c81b6 (32:41b6)
+ dw Functionc81c0
+ dw Functionc80e5
+ dw Functionc80e5
+ dw Functionc80e5
+ dw Functionc81e3
+
+
+; no known jump sources
+Functionc81c0: ; c81c0 (32:41c0)
+ call Functionc80e5
+ push bc
+ call Functionc9038
+ jr nz, .asm_c81d1
+ ld hl, $c4ac
+ ld bc, $707
+ jr .asm_c81d7
+.asm_c81d1
+ ld hl, $c51a
+ ld bc, $606
+.asm_c81d7
+ call ClearBox
+ pop bc
+ xor a
+ ld [hBGMapThird], a ; $ff00+$d5
+ ld a, $1
+ ld [hBGMapMode], a ; $ff00+$d4
+ ret
+
+; no known jump sources
+Functionc81e3: ; c81e3 (32:41e3)
+ xor a
+ ld [hBGMapMode], a ; $ff00+$d4
+ call EndBattleBGEffect
+ ret
+
+; no known jump sources
+Functionc81ea: ; c81ea (32:41ea)
+ call Functionc9042
+ jr z, .asm_c81f3
+ call EndBattleBGEffect
+ ret
+.asm_c81f3
+ call Functionc9038
+ jr nz, .asm_c81fd
+ ld de, $4210
+ jr .asm_c8200
+.asm_c81fd
+ ld de, $420c
+.asm_c8200
+ ld a, e
+ ld [$d41a], a
+ ld a, d
+ ld [$d41b], a
+ call Functionc83ed
+ ret
+; c820c (32:420c)
+
+INCBIN "baserom.gbc",$c820c,$c8214 - $c820c
+
+; no known jump sources
+Functionc8214: ; c8214 (32:4214)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8217: ; c8217 (32:4217)
+ dw Functionc8223
+ dw Functionc825a
+ dw Functionc80e5
+ dw Functionc80e5
+ dw Functionc80e5
+ dw Functionc827a
+
+
+; no known jump sources
+Functionc8223: ; c8223 (32:4223)
+ call Functionc9042
+ jr z, .asm_c8230
+ ld hl, $d40e
+ inc [hl]
+ call EndBattleBGEffect
+ ret
+.asm_c8230
+ call Functionc80e5
+ push bc
+ call Functionc9038
+ jr nz, .asm_c8242
+ ld a, $b8
+ ld [$d419], a
+ ld a, $84
+ jr .asm_c8249
+.asm_c8242
+ ld a, $b9
+ ld [$d419], a
+ ld a, $30
+.asm_c8249
+ ld [$d41a], a
+ ld a, $40
+ ld [$d41b], a
+ xor a
+ ld [$d41c], a
+ call Functionc82ee
+ pop bc
+ ret
+
+; no known jump sources
+Functionc825a: ; c825a (32:425a)
+ call Functionc80e5
+ push bc
+ call Functionc9038
+ jr nz, .asm_c826b
+ ld hl, $c524
+ ld bc, $107
+ jr .asm_c8271
+.asm_c826b
+ ld hl, $c51a
+ ld bc, $106
+.asm_c8271
+ call ClearBox
+ ld a, $1
+ ld [hBGMapMode], a ; $ff00+$d4
+ pop bc
+ ret
+
+; no known jump sources
+Functionc827a: ; c827a (32:427a)
+ xor a
+ ld [hBGMapMode], a ; $ff00+$d4
+ call EndBattleBGEffect
+ ret
+
+; no known jump sources
+Functionc8281: ; c8281 (32:4281)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8284: ; c8284 (32:4284)
+ dw Functionc8290
+ dw Functionc82c7
+ dw Functionc80e5
+ dw Functionc80e5
+ dw Functionc80e5
+ dw Functionc82e7
+
+
+; no known jump sources
+Functionc8290: ; c8290 (32:4290)
+ call Functionc9042
+ jr z, .asm_c829d
+ ld hl, $d40e
+ inc [hl]
+ call EndBattleBGEffect
+ ret
+.asm_c829d
+ call Functionc80e5
+ push bc
+ call Functionc9038
+ jr nz, .asm_c82af
+ ld a, $ba
+ ld [$d419], a
+ ld a, $84
+ jr .asm_c82b6
+.asm_c82af
+ ld a, $bb
+ ld [$d419], a
+ ld a, $30
+.asm_c82b6
+ ld [$d41a], a
+ ld a, $40
+ ld [$d41b], a
+ xor a
+ ld [$d41c], a
+ call Functionc82ee
+ pop bc
+ ret
+
+; no known jump sources
+Functionc82c7: ; c82c7 (32:42c7)
+ call Functionc80e5
+ push bc
+ call Functionc9038
+ jr nz, .asm_c82d8
+ ld hl, $c510
+ ld bc, $207
+ jr .asm_c82de
+.asm_c82d8
+ ld hl, $c51a
+ ld bc, $206
+.asm_c82de
+ call ClearBox
+ ld a, $1
+ ld [hBGMapMode], a ; $ff00+$d4
+ pop bc
+ ret
+
+; no known jump sources
+Functionc82e7: ; c82e7 (32:42e7)
+ xor a
+ ld [hBGMapMode], a ; $ff00+$d4
+ call EndBattleBGEffect
+ ret
+
+; known jump sources: c8255 (32:4255), c82c2 (32:42c2)
+Functionc82ee: ; c82ee (32:42ee)
+ callab Functioncc9a1
+ ret
+
+; no known jump sources
+Functionc82f5: ; c82f5 (32:42f5)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c82f8: ; c82f8 (32:42f8)
+ dw Functionc8302
+ dw Functionc831d
+ dw Functionc80e5
+ dw Functionc80e5
+ dw Functionc8365
+
+
+; no known jump sources
+Functionc8302: ; c8302 (32:4302)
+ call Functionc80e5
+ call Functionc9038
+ ld [hl], a
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_c8315
+ ld a, $9
+ jr .asm_c8317
+.asm_c8315
+ ld a, $8
+.asm_c8317
+ ld hl, $3
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc831d: ; c831d (32:431d)
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_c833e
+ ld hl, $c518
+ ld de, $806
+.asm_c832b
+ push de
+ push hl
+.asm_c832d
+ inc hl
+ ld a, [hld]
+ ld [hli], a
+ dec d
+ jr nz, .asm_c832d
+ pop hl
+ ld de, $14
+ add hl, de
+ pop de
+ dec e
+ jr nz, .asm_c832b
+ jr .asm_c8355
+.asm_c833e
+ ld hl, $c4b3
+ ld de, $807
+.asm_c8344
+ push de
+ push hl
+.asm_c8346
+ dec hl
+ ld a, [hli]
+ ld [hld], a
+ dec d
+ jr nz, .asm_c8346
+ pop hl
+ ld de, $14
+ add hl, de
+ pop de
+ dec e
+ jr nz, .asm_c8344
+.asm_c8355
+ xor a
+ ld [hBGMapThird], a ; $ff00+$d5
+ ld a, $1
+ ld [hBGMapMode], a ; $ff00+$d4
+ call Functionc80e5
+ ld hl, $3
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functionc8365: ; c8365 (32:4365)
+ xor a
+ ld [hBGMapMode], a ; $ff00+$d4
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_c8377
+ ld hl, $1
+ add hl, bc
+ ld [hl], $1
+ ret
+.asm_c8377
+ call EndBattleBGEffect
+ ret
+
+; no known jump sources
+Functionc837b: ; c837b (32:437b)
+ call Functionc9038
+ jr nz, .asm_c8385
+ ld de, $439e
+ jr .asm_c8388
+.asm_c8385
+ ld de, $4394
+.asm_c8388
+ ld a, e
+ ld [$d41a], a
+ ld a, d
+ ld [$d41b], a
+ call Functionc83ed
+ ret
+; c8394 (32:4394)
+
+INCBIN "baserom.gbc",$c8394,$c83a8 - $c8394
+
+; no known jump sources
+Functionc83a8: ; c83a8 (32:43a8)
+ call Functionc9038
+ jr nz, .asm_c83b2
+ ld de, $43d7
+ jr .asm_c83b5
+.asm_c83b2
+ ld de, $43c1
+.asm_c83b5
+ ld a, e
+ ld [$d41a], a
+ ld a, d
+ ld [$d41b], a
+ call Functionc83ed
+ ret
+; c83c1 (32:43c1)
+
+INCBIN "baserom.gbc",$c83c1,$c83ed - $c83c1
+
+; known jump sources: c8208 (32:4208), c8390 (32:4390), c83bd (32:43bd)
+Functionc83ed: ; c83ed (32:43ed)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c83f0: ; c83f0 (32:43f0)
+ dw Functionc83fa
+ dw Functionc80e5
+ dw Functionc80e5
+ dw Functionc842a
+ dw Functionc8434
+
+
+; known jump sources: c8428 (32:4428)
+Functionc83fa: ; c83fa (32:43fa)
+ ld hl, $3
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ inc [hl]
+ ld a, [$d41a]
+ ld l, a
+ ld a, [$d41b]
+ ld h, a
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ jr z, Functionc8434
+ cp $fe
+ jr z, .asm_c8425
+ cp $fd
+ jr z, .asm_c841d
+ call Functionc8458
+.asm_c841d
+ call Functionc80e5
+ ld a, $1
+ ld [hBGMapMode], a ; $ff00+$d4
+ ret
+.asm_c8425
+ call Functionc843b
+ jr Functionc83fa
+
+; no known jump sources
+Functionc842a: ; c842a (32:442a)
+ xor a
+ ld [hBGMapMode], a ; $ff00+$d4
+ ld hl, $1
+ add hl, bc
+ ld [hl], $0
+ ret
+
+; known jump sources: c8410 (32:4410)
+Functionc8434: ; c8434 (32:4434)
+ xor a
+ ld [hBGMapMode], a ; $ff00+$d4
+ call EndBattleBGEffect
+ ret
+
+; known jump sources: c8425 (32:4425)
+Functionc843b: ; c843b (32:443b)
+ push bc
+ inc hl
+ ld a, [hli]
+ ld b, a
+ and $f
+ ld c, a
+ ld a, b
+ swap a
+ and $f
+ ld b, a
+ ld e, [hl]
+ ld d, $0
+ ld hl, $449c
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call ClearBox
+ pop bc
+ ret
+
+; known jump sources: c841a (32:441a)
+Functionc8458: ; c8458 (32:4458)
+ push bc
+ push hl
+ ld e, [hl]
+ ld d, $0
+ ld hl, $44a8
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld b, a
+ and $f
+ ld c, a
+ ld a, b
+ swap a
+ and $f
+ ld b, a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ pop hl
+ inc hl
+ ld a, [hli]
+ ld [$d419], a
+ push de
+ ld e, [hl]
+ ld d, $0
+ ld hl, $449c
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+.asm_c8484
+ push bc
+ push hl
+ ld a, [$d419]
+ ld b, a
+.asm_c848a
+ ld a, [de]
+ add b
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .asm_c848a
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_c8484
+ pop bc
+ ret
+; c849c (32:449c)
+
+INCBIN "baserom.gbc",$c849c,$c8545 - $c849c
+
+; no known jump sources
+Functionc8545: ; c8545 (32:4545)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8548: ; c8548 (32:4548)
+ dw Functionc854e
+ dw Functionc8557
+ dw Functionc8561
+
+
+; no known jump sources
+Functionc854e: ; c854e (32:454e)
+ call Functionc80e5
+ ld de, $202
+ call Functionc8f69
+
+; no known jump sources
+Functionc8557: ; c8557 (32:4557)
+ ld a, [hLCDStatCustom] ; $ff00+$c6
+ and a
+ ret z
+ push bc
+ call Functionc8565
+ pop bc
+ ret
+
+; no known jump sources
+Functionc8561: ; c8561 (32:4561)
+ call Functionc8f0a
+ ret
+
+; known jump sources: c855c (32:455c)
+Functionc8565: ; c8565 (32:4565)
+ ld hl, $d422
+ ld de, $d423
+ ld c, $3f
+ ld a, [hl]
+ push af
+.asm_c856f
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_c856f
+ pop af
+ ld [hl], a
+ ld de, $d200
+ ld hl, $d422
+ ld bc, $0
+.asm_c8580
+ ld a, [$FF00+$c7]
+ cp e
+ jr nc, .asm_c858b
+ push hl
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ jr .asm_c858c
+.asm_c858b
+ xor a
+.asm_c858c
+ ld [de], a
+ ld a, c
+ inc a
+ and $3f
+ ld c, a
+ inc de
+ ld a, e
+ cp $5f
+ jr c, .asm_c8580
+ ret
+
+; no known jump sources
+Functionc8599: ; c8599 (32:4599)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c859c: ; c859c (32:459c)
+ dw Functionc85a2
+ dw Functionc85ba
+ dw Functionc85be
+
+
+; no known jump sources
+Functionc85a2: ; c85a2 (32:45a2)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $42
+ ld [hLCDStatCustom], a ; $ff00+$c6
+ xor a
+ ld [$FF00+$c7], a
+ ld a, $5e
+ ld [$FF00+$c8], a
+ ld de, $202
+ call Functionc8f2e
+ ret
+
+; no known jump sources
+Functionc85ba: ; c85ba (32:45ba)
+ call Functionc8fef
+ ret
+
+; no known jump sources
+Functionc85be: ; c85be (32:45be)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc85c2: ; c85c2 (32:45c2)
+ call Functionc8eca
+ ld a, $42
+ call Functionc8ede
+ call EndBattleBGEffect
+ ret
+
+; no known jump sources
+Functionc85ce: ; c85ce (32:45ce)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ ld e, a
+ add $4
+ ld [hl], a
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ swap a
+ xor $ff
+ add $4
+ ld d, a
+ ld hl, $1
+ add hl, bc
+ ld a, [hl]
+ ld [$d419], a
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr nc, .asm_c85fc
+ inc [hl]
+ inc [hl]
+ call Functionc8f9a
+ ret
+.asm_c85fc
+ call Functionc8eca
+ call EndBattleBGEffect
+ ret
+
+; no known jump sources
+Functionc8603: ; c8603 (32:4603)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8607: ; c8607 (32:4607)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c860a: ; c860a (32:460a)
+ dw Functionc8610
+ dw Functionc862e
+ dw Functionc863b
+
+
+; no known jump sources
+Functionc8610: ; c8610 (32:4610)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ ld [hLCDStatCustom], a ; $ff00+$c6
+ xor a
+ ld [$FF00+$c7], a
+ ld a, $5f
+ ld [$FF00+$c8], a
+ ld de, $605
+ call Functionc8f2e
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ ret
+
+; no known jump sources
+Functionc862e: ; c862e (32:462e)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ and $3
+ ret nz
+ call Functionc8fef
+ ret
+
+; no known jump sources
+Functionc863b: ; c863b (32:463b)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc863f: ; c863f (32:463f)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8642: ; c8642 (32:4642)
+ dw Functionc8648
+ dw Functionc865a
+ dw Functionc865e
+
+
+; no known jump sources
+Functionc8648: ; c8648 (32:4648)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ call Functionc8ede
+ ld de, $605
+ call Functionc8f2e
+ ret
+
+; no known jump sources
+Functionc865a: ; c865a (32:465a)
+ call Functionc8fef
+ ret
+
+; no known jump sources
+Functionc865e: ; c865e (32:465e)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8662: ; c8662 (32:4662)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8665: ; c8665 (32:4665)
+ dw Functionc866b
+ dw Functionc8681
+ dw Functionc8685
+
+
+; no known jump sources
+Functionc866b: ; c866b (32:466b)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $42
+ call Functionc8ede
+ ld hl, $3
+ add hl, bc
+ ld e, [hl]
+ ld d, $2
+ call Functionc8f2e
+ ret
+
+; no known jump sources
+Functionc8681: ; c8681 (32:4681)
+ call Functionc8fef
+ ret
+
+; no known jump sources
+Functionc8685: ; c8685 (32:4685)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8689: ; c8689 (32:4689)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c868c: ; c868c (32:468c)
+ dw Functionc8698
+ dw Functionc86af
+ dw Functionc86cf
+ dw Functionc86bd
+ dw Functionc86e9
+ dw Functionc8705
+
+
+; no known jump sources
+Functionc8698: ; c8698 (32:4698)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ call Functionc8ede
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld hl, $2
+ add hl, bc
+ ld [hl], $0
+ ret
+
+; no known jump sources
+Functionc86af: ; c86af (32:46af)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ cp $10
+ jr nc, asm_c86cb
+ inc [hl]
+ call Functionc86ea
+ ret
+
+; no known jump sources
+Functionc86bd: ; c86bd (32:46bd)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, asm_c86cb
+ dec [hl]
+ call Functionc86ea
+ ret
+asm_c86cb: ; c86cb (32:46cb)
+ call Functionc80e5
+ ret
+
+; no known jump sources
+Functionc86cf: ; c86cf (32:46cf)
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ ld d, $2
+ call Functionc905d
+ ld hl, $3
+ add hl, bc
+ add [hl]
+ call Functionc86ea
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ add $4
+ ld [hl], a
+
+; no known jump sources
+Functionc86e9: ; c86e9 (32:46e9)
+ ret
+
+; known jump sources: c86b9 (32:46b9), c86c7 (32:46c7), c86de (32:46de)
+Functionc86ea: ; c86ea (32:46ea)
+ ld e, a
+ xor $ff
+ inc a
+ ld d, a
+ ld h, $d2
+ ld a, [$FF00+$c7]
+ ld l, a
+ ld a, [$FF00+$c8]
+ sub l
+ srl a
+ push af
+.asm_c86fa
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ dec a
+ jr nz, .asm_c86fa
+ pop af
+ ret nc
+ ld [hl], e
+ ret
+
+; no known jump sources
+Functionc8705: ; c8705 (32:4705)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8709: ; c8709 (32:4709)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c870c: ; c870c (32:470c)
+ dw Functionc8712
+ dw Functionc8732
+ dw Functionc875d
+
+
+; no known jump sources
+Functionc8712: ; c8712 (32:4712)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $42
+ call Functionc8ede
+ ld hl, $3
+ add hl, bc
+ ld e, [hl]
+ ld d, $2
+ call Functionc8f2e
+ ld h, $d2
+ ld a, [$FF00+$c8]
+ ld l, a
+ ld [hl], $0
+ dec l
+ ld [hl], $0
+ ret
+
+; no known jump sources
+Functionc8732: ; c8732 (32:4732)
+ ld a, [$FF00+$c8]
+ ld l, a
+ ld h, $d2
+ ld e, l
+ ld d, h
+ dec de
+.asm_c873a
+ ld a, [de]
+ dec de
+ ld [hld], a
+ ld a, [$FF00+$c7]
+ cp l
+ jr nz, .asm_c873a
+ ld [hl], $90
+ ld a, [$FF00+$c8]
+ ld l, a
+ ld a, [hl]
+ cp $1
+ jr c, .asm_c8752
+ cp $90
+ jr z, .asm_c8752
+ ld [hl], $0
+.asm_c8752
+ dec l
+ ld a, [hl]
+ cp $2
+ ret c
+ cp $90
+ ret z
+ ld [hl], $0
+ ret
+
+; no known jump sources
+Functionc875d: ; c875d (32:475d)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8761: ; c8761 (32:4761)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8764: ; c8764 (32:4764)
+ dw Functionc876a
+ dw Functionc8781
+ dw Functionc87a3
+
+
+; no known jump sources
+Functionc876a: ; c876a (32:476a)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $42
+ call Functionc8ede
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld hl, $2
+ add hl, bc
+ ld [hl], $1
+ ret
+
+; no known jump sources
+Functionc8781: ; c8781 (32:4781)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld d, a
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ cp d
+ ret nc
+ call Functionc901b
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ rlca
+ rlca
+ and $3
+ ld hl, $2
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc87a3: ; c87a3 (32:47a3)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc87a7: ; c87a7 (32:47a7)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c87aa: ; c87aa (32:47aa)
+ dw Functionc87b2
+ dw Functionc87cf
+ dw Functionc87de
+ dw Functionc8801
+
+
+; no known jump sources
+Functionc87b2: ; c87b2 (32:47b2)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $42
+ call Functionc8ede
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld hl, $2
+ add hl, bc
+ ld [hl], $2
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ ret
+
+; no known jump sources
+Functionc87cf: ; c87cf (32:47cf)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_c87d9
+ dec [hl]
+ ret
+.asm_c87d9
+ ld [hl], $10
+ call Functionc80e5
+
+; no known jump sources
+Functionc87de: ; c87de (32:47de)
+ ld a, [$FF00+$c7]
+ ld l, a
+ ld a, [$FF00+$c8]
+ sub l
+ dec a
+ ld hl, $2
+ add hl, bc
+ cp [hl]
+ ret c
+ ld a, [hl]
+ push af
+ and $7
+ jr nz, .asm_c87f6
+ ld hl, $1
+ add hl, bc
+ dec [hl]
+.asm_c87f6
+ pop af
+ call Functionc901b
+ ld hl, $2
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ret
+
+; no known jump sources
+Functionc8801: ; c8801 (32:4801)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8805: ; c8805 (32:4805)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8808: ; c8808 (32:4808)
+ dw Functionc8810
+ dw Functionc8869
+ dw Functionc8888
+ dw Functionc8833
+
+
+; no known jump sources
+Functionc8810: ; c8810 (32:4810)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ call Functionc8ede
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ call Functionc9038
+ jr nz, .asm_c882f
+ ld a, $2
+ jr .asm_c8831
+.asm_c882f
+ ld a, $fe
+.asm_c8831
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc8833: ; c8833 (32:4833)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8837: ; c8837 (32:4837)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c883a: ; c883a (32:483a)
+ dw Functionc8842
+ dw Functionc8869
+ dw Functionc8888
+ dw Functionc8865
+
+
+; no known jump sources
+Functionc8842: ; c8842 (32:4842)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ call Functionc8ef4
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ call Functionc9038
+ jr nz, .asm_c8861
+ ld a, $2
+ jr .asm_c8863
+.asm_c8861
+ ld a, $fe
+.asm_c8863
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc8865: ; c8865 (32:4865)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8869: ; c8869 (32:4869)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ cp $f8
+ jr z, .asm_c8876
+ cp $8
+ jr nz, .asm_c8879
+.asm_c8876
+ call Functionc80e5
+.asm_c8879
+ call Functionc88a5
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ ld hl, $3
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc8888: ; c8888 (32:4888)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_c8893
+ call Functionc80e5
+.asm_c8893
+ call Functionc88a5
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld hl, $3
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+; known jump sources: c8879 (32:4879), c8893 (32:4893)
+Functionc88a5: ; c88a5 (32:48a5)
+ push af
+ ld a, [FXAnimIDHi] ; $cfc3
+ or a
+ jr nz, .asm_c88b3
+ ld a, [FXAnimIDLo] ; $cfc2
+ cp $cd
+ jr z, .asm_c88b7
+.asm_c88b3
+ pop af
+ jp Functionc900b
+.asm_c88b7
+ ld a, [$FF00+$c7]
+ ld d, a
+ ld a, [$FF00+$c8]
+ sub d
+ ld d, a
+ ld h, $d2
+ ld a, [hSCY] ; $ff00+$d0
+ or a
+ jr nz, .asm_c88d0
+ ld a, [$FF00+$c7]
+ or a
+ jr z, .asm_c88d6
+ dec a
+ ld l, a
+ ld [hl], $0
+ jr .asm_c88d6
+.asm_c88d0
+ ld a, [$FF00+$c8]
+ dec a
+ ld l, a
+ ld [hl], $0
+.asm_c88d6
+ ld a, [hSCY] ; $ff00+$d0
+ ld l, a
+ ld a, [$FF00+$c7]
+ sub l
+ jr nc, .asm_c88e0
+ xor a
+ dec d
+.asm_c88e0
+ ld l, a
+ pop af
+.asm_c88e2
+ ld [hli], a
+ dec d
+ jr nz, .asm_c88e2
+ ret
+
+; no known jump sources
+Functionc88e7: ; c88e7 (32:48e7)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c88ea: ; c88ea (32:48ea)
+ dw Functionc88f6
+ dw Functionc8869
+ dw Functionc8888
+ dw Functionc88f2
+
+
+; no known jump sources
+Functionc88f2: ; c88f2 (32:48f2)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc88f6: ; c88f6 (32:48f6)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ call Functionc8ede
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ call Functionc9038
+ jr nz, .asm_c8915
+ ld a, $fe
+ jr .asm_c8917
+.asm_c8915
+ ld a, $2
+.asm_c8917
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc8919: ; c8919 (32:4919)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c891c: ; c891c (32:491c)
+ dw Functionc88f6
+ dw Functionc8869
+ dw Functionc8929
+ dw Functionc8888
+ dw Functionc8926
+
+
+; no known jump sources
+Functionc8926: ; c8926 (32:4926)
+ call Functionc8f0a
+
+; no known jump sources
+Functionc8929: ; c8929 (32:4929)
+ ret
+
+; no known jump sources
+Functionc892a: ; c892a (32:492a)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c892d: ; c892d (32:492d)
+ dw Functionc8933
+ dw Functionc894a
+ dw Functionc8960
+
+
+; no known jump sources
+Functionc8933: ; c8933 (32:4933)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ call Functionc8ede
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ ret
+
+; no known jump sources
+Functionc894a: ; c894a (32:494a)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ ld d, $8
+ call Functionc905d
+ call Functionc900b
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ add $4
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc8960: ; c8960 (32:4960)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8964: ; c8964 (32:4964)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8967: ; c8967 (32:4967)
+ dw Functionc896d
+ dw Functionc8985
+ dw Functionc89b1
+
+
+; no known jump sources
+Functionc896d: ; c896d (32:496d)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ call Functionc8ede
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ xor a
+ ld hl, $2
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc8985: ; c8985 (32:4985)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ ld d, $6
+ call Functionc905d
+ push af
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ ld d, $2
+ call Functionc905d
+ ld e, a
+ pop af
+ add e
+ call Functionc900b
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ add $8
+ ld [hl], a
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc89b1: ; c89b1 (32:49b1)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc89b5: ; c89b5 (32:49b5)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c89b8: ; c89b8 (32:49b8)
+ dw Functionc89be
+ dw Functionc89ca
+ dw Functionc89da
+
+
+; no known jump sources
+Functionc89be: ; c89be (32:49be)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ call Functionc8ede
+ ret
+
+; no known jump sources
+Functionc89ca: ; c89ca (32:49ca)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ ret nc
+ inc [hl]
+ ld d, a
+ ld e, $4
+ call Functionc8f2e
+ ret
+
+; no known jump sources
+Functionc89da: ; c89da (32:49da)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_c89ea
+ dec [hl]
+ ld d, a
+ ld e, $4
+ call Functionc8f2e
+ ret
+.asm_c89ea
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc89ee: ; c89ee (32:49ee)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c89f1: ; c89f1 (32:49f1)
+ dw Functionc89f7
+ dw Functionc8a14
+ dw Functionc8a36
+
+
+; no known jump sources
+Functionc89f7: ; c89f7 (32:49f7)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $42
+ call Functionc8ef4
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld hl, $2
+ add hl, bc
+ ld [hl], $1
+ ld hl, $3
+ add hl, bc
+ ld [hl], $20
+ ret
+
+; no known jump sources
+Functionc8a14: ; c8a14 (32:4a14)
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ cp $38
+ ret nc
+ push af
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call Functionc9066
+ add $10
+ ld d, a
+ pop af
+ add d
+ call Functionc901b
+ ld hl, $3
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ret
+
+; no known jump sources
+Functionc8a36: ; c8a36 (32:4a36)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8a3a: ; c8a3a (32:4a3a)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8a3d: ; c8a3d (32:4a3d)
+ dw Functionc8a49
+ dw Functionc8a6f
+ dw Functionc8a70
+ dw Functionc8a88
+ dw Functionc8a6f
+ dw Functionc8aac
+
+
+; no known jump sources
+Functionc8a49: ; c8a49 (32:4a49)
+ call Functionc80e5
+ ld a, $e4
+ call Functionc8ecb
+ ld a, $47
+ call Functionc8ede
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld a, [$FF00+$c7]
+ ld l, a
+ ld h, $d2
+.asm_c8a60
+ ld a, [$FF00+$c8]
+ cp l
+ jr z, .asm_c8a69
+ xor a
+ ld [hli], a
+ jr .asm_c8a60
+.asm_c8a69
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+
+; no known jump sources
+Functionc8a6f: ; c8a6f (32:4a6f)
+ ret
+
+; no known jump sources
+Functionc8a70: ; c8a70 (32:4a70)
+ call Functionc8ab0
+ jr nc, .asm_c8a79
+ call Functionc8a9a
+ ret
+.asm_c8a79
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ ld a, [$FF00+$c7]
+ inc a
+ ld [$FF00+$c7], a
+ call Functionc80e5
+ ret
+
+; no known jump sources
+Functionc8a88: ; c8a88 (32:4a88)
+ call Functionc8ab0
+ jr nc, .asm_c8a96
+ call Functionc8a9a
+ ld a, [$FF00+$c8]
+ dec a
+ ld l, a
+ ld [hl], e
+ ret
+.asm_c8a96
+ call Functionc80e5
+ ret
+
+; known jump sources: c8a75 (32:4a75), c8a8d (32:4a8d)
+Functionc8a9a: ; c8a9a (32:4a9a)
+ ld e, a
+ ld a, [$FF00+$c7]
+ ld l, a
+ ld a, [$FF00+$c8]
+ sub l
+ srl a
+ ld h, $d2
+.asm_c8aa5
+ ld [hl], e
+ inc hl
+ inc hl
+ dec a
+ jr nz, .asm_c8aa5
+ ret
+
+; no known jump sources
+Functionc8aac: ; c8aac (32:4aac)
+ call Functionc8f19
+ ret
+
+; known jump sources: c8a70 (32:4a70), c8a88 (32:4a88)
+Functionc8ab0: ; c8ab0 (32:4ab0)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ srl a
+ srl a
+ srl a
+ ld e, a
+ ld d, $0
+ ld hl, $4ac7
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ ret
+; c8ac7 (32:4ac7)
+
+INCBIN "baserom.gbc",$c8ac7,$c8acc - $c8ac7
+
+; no known jump sources
+Functionc8acc: ; c8acc (32:4acc)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8acf: ; c8acf (32:4acf)
+ dw Functionc8ad3
+ dw Functionc8ae5
+
+
+; no known jump sources
+Functionc8ad3: ; c8ad3 (32:4ad3)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ call Functionc8ede
+ ld hl, $2
+ add hl, bc
+ ld [hl], $40
+ ret
+
+; no known jump sources
+Functionc8ae5: ; c8ae5 (32:4ae5)
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_c8afc
+ dec [hl]
+ srl a
+ srl a
+ srl a
+ and $f
+ ld d, a
+ ld e, a
+ call Functionc8f2e
+ ret
+.asm_c8afc
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8b00: ; c8b00 (32:4b00)
+ ld a, [hCGB] ; $ff00+$e6
+ and a
+ jr nz, asm_c8b7a
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8b08: ; c8b08 (32:4b08)
+ dw Functionc8b0e
+ dw Functionc8b22
+ dw Functionc8b60
+
+
+; no known jump sources
+Functionc8b0e: ; c8b0e (32:4b0e)
+ call Functionc80e5
+ ld a, $e4
+ call Functionc8ecb
+ ld a, $47
+ ld [hLCDStatCustom], a ; $ff00+$c6
+ xor a
+ ld [$FF00+$c7], a
+ ld a, $60
+ ld [$FF00+$c8], a
+ ret
+
+; no known jump sources
+Functionc8b22: ; c8b22 (32:4b22)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld e, a
+ and $7
+ ret nz
+ ld a, e
+ and $18
+ sla a
+ swap a
+ sla a
+ ld e, a
+ ld d, $0
+ push bc
+ call Functionc9038
+ jr nz, .asm_c8b4d
+ ld hl, $4bd8
+ add hl, de
+ ld a, [hli]
+ ld [$cfc9], a
+ ld d, a
+ ld e, [hl]
+ ld bc, $2f30
+ jr .asm_c8b5b
+.asm_c8b4d
+ ld hl, $4be0
+ add hl, de
+ ld d, [hl]
+ inc hl
+ ld a, [hl]
+ ld [$cfc9], a
+ ld e, a
+ ld bc, $3728
+.asm_c8b5b
+ call Functionc8b6c
+ pop bc
+ ret
+
+; no known jump sources
+Functionc8b60: ; c8b60 (32:4b60)
+ call Functionc8f19
+ ld a, $e4
+ ld [$cfc7], a
+ ld [$cfc9], a
+ ret
+
+; known jump sources: c8b5b (32:4b5b)
+Functionc8b6c: ; c8b6c (32:4b6c)
+ ld hl, $d200
+.asm_c8b6f
+ ld [hl], d
+ inc hl
+ dec b
+ jr nz, .asm_c8b6f
+.asm_c8b74
+ ld [hl], e
+ inc hl
+ dec c
+ jr nz, .asm_c8b74
+ ret
+asm_c8b7a: ; c8b7a (32:4b7a)
+ ld de, $4b81
+ call Functionc80ca
+ jp [hl]
+; c8b81 (32:4b81)
+
+INCBIN "baserom.gbc",$c8b81,$c8be8 - $c8b81
+
+; no known jump sources
+Functionc8be8: ; c8be8 (32:4be8)
+ ld de, $4bef
+ call Functionc8d77
+ ret
+; c8bef (32:4bef)
+
+INCBIN "baserom.gbc",$c8bef,$c8bf2 - $c8bef
+
+; no known jump sources
+Functionc8bf2: ; c8bf2 (32:4bf2)
+ ld de, $4bf9
+ call Functionc8d77
+ ret
+; c8bf9 (32:4bf9)
+
+INCBIN "baserom.gbc",$c8bf9,$c8bfd - $c8bf9
+
+; no known jump sources
+Functionc8bfd: ; c8bfd (32:4bfd)
+ ld de, $4c04
+ call Functionc8d77
+ ret
+; c8c04 (32:4c04)
+
+INCBIN "baserom.gbc",$c8c04,$c8c08 - $c8c04
+
+; no known jump sources
+Functionc8c08: ; c8c08 (32:4c08)
+ ld de, $4c0f
+ call Functionc8d77
+ ret
+; c8c0f (32:4c0f)
+
+INCBIN "baserom.gbc",$c8c0f,$c8c14 - $c8c0f
+
+; no known jump sources
+Functionc8c14: ; c8c14 (32:4c14)
+ ld de, $4c1b
+ call Functionc8d77
+ ret
+; c8c1b (32:4c1b)
+
+INCBIN "baserom.gbc",$c8c1b,$c8c20 - $c8c1b
+
+; no known jump sources
+Functionc8c20: ; c8c20 (32:4c20)
+ ld de, $4c27
+ call Functionc8d77
+ ret
+; c8c27 (32:4c27)
+
+INCBIN "baserom.gbc",$c8c27,$c8c30 - $c8c27
+
+; no known jump sources
+Functionc8c30: ; c8c30 (32:4c30)
+ ld de, $4c37
+ call Functionc8d77
+ ret
+; c8c37 (32:4c37)
+
+INCBIN "baserom.gbc",$c8c37,$c8c3c - $c8c37
+
+; no known jump sources
+Functionc8c3c: ; c8c3c (32:4c3c)
+ ld de, $4c43
+ call Functionc8d77
+ ret
+; c8c43 (32:4c43)
+
+INCBIN "baserom.gbc",$c8c43,$c8c55 - $c8c43
+
+; no known jump sources
+Functionc8c55: ; c8c55 (32:4c55)
+ ld de, $4c5c
+ call Functionc8d77
+ ret
+; c8c5c (32:4c5c)
+
+INCBIN "baserom.gbc",$c8c5c,$c8c61 - $c8c5c
+
+; no known jump sources
+Functionc8c61: ; c8c61 (32:4c61)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8c64: ; c8c64 (32:4c64)
+ dw Functionc8c68
+ dw Functionc8c85
+
+
+; no known jump sources
+Functionc8c68: ; c8c68 (32:4c68)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ call Functionc8ede
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld hl, $2
+ add hl, bc
+ ld [hl], $1
+ ld hl, $3
+ add hl, bc
+ ld [hl], $20
+ ret
+
+; no known jump sources
+Functionc8c85: ; c8c85 (32:4c85)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_c8c9e
+ dec [hl]
+ and $1
+ ret nz
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ call Functionc900b
+ ret
+.asm_c8c9e
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8ca2: ; c8ca2 (32:4ca2)
+ call Functionc80d7 ; ; ; call does not return
+
+; no known jump sources
+Jumptable_c8ca5: ; c8ca5 (32:4ca5)
+ dw Functionc8cab
+ dw Functionc8cc3
+ dw Functionc8cdd
+
+
+; no known jump sources
+Functionc8cab: ; c8cab (32:4cab)
+ call Functionc80e5
+ call Functionc8eca
+ ld a, $43
+ ld [hLCDStatCustom], a ; $ff00+$c6
+ xor a
+ ld [$FF00+$c7], a
+ ld a, $37
+ ld [$FF00+$c8], a
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ ret
+
+; no known jump sources
+Functionc8cc3: ; c8cc3 (32:4cc3)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ cp $40
+ jr nc, Functionc8cdd
+ ld d, $6
+ call Functionc905d
+ call Functionc900b
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ ret
+
+; known jump sources: c8cca (32:4cca)
+Functionc8cdd: ; c8cdd (32:4cdd)
+ call Functionc8f0a
+ ret
+
+; no known jump sources
+Functionc8ce1: ; c8ce1 (32:4ce1)
+ call Functionc8d0b
+ jr c, .asm_c8cea
+ bit 7, a
+ jr z, .asm_c8ceb
+.asm_c8cea
+ xor a
+.asm_c8ceb
+ push af
+ call DelayFrame
+ pop af
+ ld [hSCY], a ; $ff00+$d0
+ xor $ff
+ inc a
+ ld [$d314], a
+ ret
+
+; no known jump sources
+Functionc8cf9: ; c8cf9 (32:4cf9)
+ call Functionc8d0b
+ jr nc, .asm_c8cff
+ xor a
+.asm_c8cff
+ ld [hSCX], a ; $ff00+$cf
+ ret
+
+; no known jump sources
+Functionc8d02: ; c8d02 (32:4d02)
+ call Functionc8d0b
+ jr nc, .asm_c8d08
+ xor a
+.asm_c8d08
+ ld [hSCY], a ; $ff00+$d0
+ ret
+
+; known jump sources: c8ce1 (32:4ce1), c8cf9 (32:4cf9), c8d02 (32:4d02)
+Functionc8d0b: ; c8d0b (32:4d0b)
+ ld hl, $1
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_c8d18
+ call EndBattleBGEffect
+ scf
+ ret
+.asm_c8d18
+ dec [hl]
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ and $f
+ jr z, .asm_c8d2a
+ dec [hl]
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret
+.asm_c8d2a
+ ld a, [hl]
+ swap a
+ or [hl]
+ ld [hl], a
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ and a
+ ret
+
+; no known jump sources
+Functionc8d3a: ; c8d3a (32:4d3a)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ cp $40
+ jr nc, .asm_c8d53
+ ld d, $6
+ call Functionc905d
+ ld [hSCX], a ; $ff00+$cf
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ ret
+.asm_c8d53
+ xor a
+ ld [hSCX], a ; $ff00+$cf
+ ret
+
+; known jump sources: c8130 (32:4130), c8144 (32:4144), c8158 (32:4158), c817e (32:417e), c8198 (32:4198), c81a8 (32:41a8)
+Functionc8d57: ; c8d57 (32:4d57)
+ ld hl, $1
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_c8d69
+
+ dec [hl]
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ call Functionc8eb2
+ ret
+
+.asm_c8d69
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ ld hl, $1
+ add hl, bc
+ ld [hl], a
+ call Functionc8eac
+ ret
+
+; known jump sources: c8beb (32:4beb), c8bf5 (32:4bf5), c8c00 (32:4c00), c8c0b (32:4c0b), c8c17 (32:4c17), c8c23 (32:4c23), c8c33 (32:4c33), c8c3f (32:4c3f), c8c58 (32:4c58)
+Functionc8d77: ; c8d77 (32:4d77)
+ ld a, [hCGB] ; $ff00+$e6
+ and a
+ jr nz, asm_c8dd4
+ push de
+ ld de, Jumptable_c8d85
+ call Functionc80ca
+ pop de
+ jp [hl]
+
+; no known jump sources
+Jumptable_c8d85: ; c8d85 (32:4d85)
+ dw Functionc8d8b
+ dw Functionc8daa
+ dw Functionc8dc9
+
+
+; no known jump sources
+Functionc8d8b: ; c8d8b (32:4d8b)
+ call Functionc80e5
+ ld a, $e4
+ call Functionc8ecb
+ ld a, $47
+ call Functionc8ede
+ ld a, [$FF00+$c8]
+ inc a
+ ld [$FF00+$c8], a
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ ld [hl], $0
+ ld hl, $2
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc8daa: ; c8daa (32:4daa)
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ and $f
+ jr z, .asm_c8db5
+ dec [hl]
+ ret
+.asm_c8db5
+ ld a, [hl]
+ swap a
+ or [hl]
+ ld [hl], a
+ call Functionc8eac
+ jr c, .asm_c8dc3
+ call Functionc900b
+ ret
+.asm_c8dc3
+ ld hl, $3
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functionc8dc9: ; c8dc9 (32:4dc9)
+ call Functionc8f19
+ ld a, $e4
+ ld [rBGP], a ; $ff00+$47
+ call EndBattleBGEffect
+ ret
+asm_c8dd4: ; c8dd4 (32:4dd4)
+ push de
+ ld de, Jumptable_c8ddd
+ call Functionc80ca
+ pop de
+ jp [hl]
+
+; no known jump sources
+Jumptable_c8ddd: ; c8ddd (32:4ddd)
+ dw Functionc8de7
+ dw Functionc8e02
+ dw Functionc8e21
+ dw Functionc8e2a
+ dw Functionc8e49
+
+
+; no known jump sources
+Functionc8de7: ; c8de7 (32:4de7)
+ call Functionc9038
+ jr nz, .asm_c8df2
+ call Functionc80e5
+ call Functionc80e5
+.asm_c8df2
+ call Functionc80e5
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ ld [hl], $0
+ ld hl, $2
+ add hl, bc
+ ld [hl], a
+ ret
+
+; no known jump sources
+Functionc8e02: ; c8e02 (32:4e02)
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ and $f
+ jr z, .asm_c8e0d
+ dec [hl]
+ ret
+.asm_c8e0d
+ ld a, [hl]
+ swap a
+ or [hl]
+ ld [hl], a
+ call Functionc8eac
+ jr c, .asm_c8e1b
+ call Functionc8e52
+ ret
+.asm_c8e1b
+ ld hl, $3
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functionc8e21: ; c8e21 (32:4e21)
+ ld a, $e4
+ call Functionc8e52
+ call EndBattleBGEffect
+ ret
+
+; no known jump sources
+Functionc8e2a: ; c8e2a (32:4e2a)
+ ld hl, $2
+ add hl, bc
+ ld a, [hl]
+ and $f
+ jr z, .asm_c8e35
+ dec [hl]
+ ret
+.asm_c8e35
+ ld a, [hl]
+ swap a
+ or [hl]
+ ld [hl], a
+ call Functionc8eac
+ jr c, .asm_c8e43
+ call Functionc8e7f
+ ret
+.asm_c8e43
+ ld hl, $3
+ add hl, bc
+ dec [hl]
+ ret
+
+; no known jump sources
+Functionc8e49: ; c8e49 (32:4e49)
+ ld a, $e4
+ call Functionc8e7f
+ call EndBattleBGEffect
+ ret
+
+; known jump sources: c8e17 (32:4e17), c8e23 (32:4e23)
+Functionc8e52: ; c8e52 (32:4e52)
+ ld h, a
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $5
+ ld [rSVBK], a ; $ff00+$70
+ ld a, h
+ push bc
+ push af
+ ld hl, BGPals ; $d080
+ ld de, Unkn1Pals ; $d000
+ ld b, a
+ ld c, $1
+ call CopyPals
+ ld hl, $d0c8
+ ld de, $d048
+ pop af
+ ld b, a
+ ld c, $1
+ call CopyPals
+ pop bc
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ld a, $1
+ ld [hCGBPalUpdate], a ; $ff00+$e5
+ ret
+
+; known jump sources: c8e3f (32:4e3f), c8e4b (32:4e4b)
+Functionc8e7f: ; c8e7f (32:4e7f)
+ ld h, a
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $5
+ ld [rSVBK], a ; $ff00+$70
+ ld a, h
+ push bc
+ push af
+ ld hl, $d088
+ ld de, $d008
+ ld b, a
+ ld c, $1
+ call CopyPals
+ ld hl, OBPals ; $d0c0
+ ld de, MartPointer ; $d040 (aliases: Unkn2Pals)
+ pop af
+ ld b, a
+ ld c, $1
+ call CopyPals
+ pop bc
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ld a, $1
+ ld [hCGBPalUpdate], a ; $ff00+$e5
+ ret
+
+; known jump sources: c8d73 (32:4d73), c8dba (32:4dba), c8e12 (32:4e12), c8e3a (32:4e3a)
+Functionc8eac: ; c8eac (32:4eac)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+
+; known jump sources: c8d65 (32:4d65)
+Functionc8eb2: ; c8eb2 (32:4eb2)
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_c8ec8
+ cp $fe
+ jr nz, .asm_c8ec6
+ ld a, [de]
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+.asm_c8ec6
+ and a
+ ret
+.asm_c8ec8
+ scf
+ ret
+
+; known jump sources: c85a5 (32:45a5), c85c2 (32:45c2), c85fc (32:45fc), c8613 (32:4613), c864b (32:464b), c866e (32:466e), c869b (32:469b), c8715 (32:4715), c876d (32:476d), c87b5 (32:47b5), c8813 (32:4813), c8845 (32:4845), c88f9 (32:48f9), c8936 (32:4936), c8970 (32:4970), c89c1 (32:49c1), c89fa (32:49fa), c8ad6 (32:4ad6), c8c6b (32:4c6b), c8cae (32:4cae), c8f0f (32:4f0f), c8f2a (32:4f2a)
+Functionc8eca: ; c8eca (32:4eca)
+ xor a
+
+; known jump sources: c8a4e (32:4a4e), c8b13 (32:4b13), c8d90 (32:4d90)
+Functionc8ecb: ; c8ecb (32:4ecb)
+ ld hl, CurMartEnd ; $d100 (aliases: LYOverrides)
+ ld e, $99
+.asm_c8ed0
+ ld [hli], a
+ dec e
+ jr nz, .asm_c8ed0
+ ld hl, $d200
+ ld e, $91
+.asm_c8ed9
+ ld [hli], a
+ dec e
+ jr nz, .asm_c8ed9
+ ret
+
+; known jump sources: c85c7 (32:45c7), c8650 (32:4650), c8673 (32:4673), c86a0 (32:46a0), c871a (32:471a), c8772 (32:4772), c87ba (32:47ba), c8818 (32:4818), c88fe (32:48fe), c893b (32:493b), c8975 (32:4975), c89c6 (32:49c6), c8a53 (32:4a53), c8adb (32:4adb), c8c70 (32:4c70), c8d95 (32:4d95)
+Functionc8ede: ; c8ede (32:4ede)
+ ld [hLCDStatCustom], a ; $ff00+$c6
+ call Functionc9038
+ jr nz, .asm_c8eea
+ ld de, $36
+ jr .asm_c8eed
+.asm_c8eea
+ ld de, $2f5e
+.asm_c8eed
+ ld a, d
+ ld [$FF00+$c7], a
+ ld a, e
+ ld [$FF00+$c8], a
+ ret
+
+; known jump sources: c884a (32:484a), c89ff (32:49ff)
+Functionc8ef4: ; c8ef4 (32:4ef4)
+ ld [hLCDStatCustom], a ; $ff00+$c6
+ call Functionc9038
+ jr nz, .asm_c8f00
+ ld de, $36
+ jr .asm_c8f03
+.asm_c8f00
+ ld de, $2d5e
+.asm_c8f03
+ ld a, d
+ ld [$FF00+$c7], a
+ ld a, e
+ ld [$FF00+$c8], a
+ ret
+
+; known jump sources: c8561 (32:4561), c85be (32:45be), c8603 (32:4603), c863b (32:463b), c865e (32:465e), c8685 (32:4685), c8705 (32:4705), c875d (32:475d), c87a3 (32:47a3), c8801 (32:4801), c8833 (32:4833), c8865 (32:4865), c88f2 (32:48f2), c8926 (32:4926), c8960 (32:4960), c89b1 (32:49b1), c89ea (32:49ea), c8a36 (32:4a36), c8afc (32:4afc), c8c9e (32:4c9e), c8cdd (32:4cdd)
+Functionc8f0a: ; c8f0a (32:4f0a)
+ xor a
+ ld [$FF00+$c7], a
+ ld [$FF00+$c8], a
+ call Functionc8eca
+ xor a
+ ld [hLCDStatCustom], a ; $ff00+$c6
+ call EndBattleBGEffect
+ ret
+
+; known jump sources: c8aac (32:4aac), c8b60 (32:4b60), c8dc9 (32:4dc9)
+Functionc8f19: ; c8f19 (32:4f19)
+ xor a
+ ld [hLCDStatCustom], a ; $ff00+$c6
+ ld a, $e4
+ ld [rBGP], a ; $ff00+$47
+ ld [$cfc7], a
+ ld [$cfc9], a
+ ld [$FF00+$c7], a
+ ld [$FF00+$c8], a
+ call Functionc8eca
+ ret
+
+; known jump sources: c85b6 (32:45b6), c8624 (32:4624), c8656 (32:4656), c867d (32:467d), c8724 (32:4724), c89d6 (32:49d6), c89e6 (32:49e6), c8af8 (32:4af8)
+Functionc8f2e: ; c8f2e (32:4f2e)
+ push bc
+ xor a
+ ld [$d419], a
+ ld a, e
+ ld [$d41a], a
+ ld a, d
+ ld [$d41b], a
+ ld a, $80
+ ld [$d41c], a
+ ld bc, $d200
+.asm_c8f43
+ ld a, [$FF00+$c7]
+ cp c
+ jr nc, .asm_c8f58
+ ld a, [$FF00+$c8]
+ cp c
+ jr c, .asm_c8f58
+ ld a, [$d41b]
+ ld d, a
+ ld a, [$d419]
+ call Functionc905d
+ ld [bc], a
+.asm_c8f58
+ inc bc
+ ld a, [$d41a]
+ ld hl, $d419
+ add [hl]
+ ld [hl], a
+ ld hl, $d41c
+ dec [hl]
+ jr nz, .asm_c8f43
+ pop bc
+ ret
+
+; known jump sources: c8554 (32:4554)
+Functionc8f69: ; c8f69 (32:4f69)
+ push bc
+ xor a
+ ld [$d419], a
+ ld a, e
+ ld [$d41a], a
+ ld a, d
+ ld [$d41b], a
+ ld a, $40
+ ld [$d41c], a
+ ld bc, $d422
+.asm_c8f7e
+ ld a, [$d41b]
+ ld d, a
+ ld a, [$d419]
+ call Functionc905d
+ ld [bc], a
+ inc bc
+ ld a, [$d41a]
+ ld hl, $d419
+ add [hl]
+ ld [hl], a
+ ld hl, $d41c
+ dec [hl]
+ jr nz, .asm_c8f7e
+ pop bc
+ ret
+
+; known jump sources: c85f8 (32:45f8)
+Functionc8f9a: ; c8f9a (32:4f9a)
+ push bc
+ ld [$d41c], a
+ ld a, e
+ ld [$d41a], a
+ ld a, d
+ ld [$d41b], a
+ call Functionc8fe4
+ ld hl, $d200
+ add hl, de
+ ld c, l
+ ld b, h
+.asm_c8faf
+ ld a, [$d41c]
+ and a
+ jr z, .asm_c8fe1
+ dec a
+ ld [$d41c], a
+ push af
+ ld a, [$d41b]
+ ld d, a
+ ld a, [$d41a]
+ push hl
+ call Functionc905d
+ ld e, a
+ pop hl
+ ld a, [$FF00+$c8]
+ cp c
+ jr c, .asm_c8fcf
+ ld a, e
+ ld [bc], a
+ inc bc
+.asm_c8fcf
+ ld a, [$FF00+$c7]
+ cp l
+ jr nc, .asm_c8fd6
+ ld [hl], e
+ dec hl
+.asm_c8fd6
+ ld a, [$d41a]
+ add $4
+ ld [$d41a], a
+ pop af
+ jr .asm_c8faf
+.asm_c8fe1
+ pop bc
+ and a
+ ret
+
+; known jump sources: c8fa6 (32:4fa6)
+Functionc8fe4: ; c8fe4 (32:4fe4)
+ ld a, [$FF00+$c7]
+ ld e, a
+ ld a, [$d419]
+ add e
+ ld e, a
+ ld d, $0
+ ret
+
+; known jump sources: c85ba (32:45ba), c8637 (32:4637), c865a (32:465a), c8681 (32:4681)
+Functionc8fef: ; c8fef (32:4fef)
+ push bc
+ ld a, [$FF00+$c7]
+ ld l, a
+ inc a
+ ld e, a
+ ld h, $d2
+ ld d, h
+ ld a, [$FF00+$c8]
+ sub l
+ and a
+ jr z, .asm_c9009
+ ld c, a
+ ld a, [hl]
+ push af
+.asm_c9001
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_c9001
+ pop af
+ ld [hl], a
+.asm_c9009
+ pop bc
+ ret
+
+; known jump sources: c88b4 (32:48b4), c8954 (32:4954), c899d (32:499d), c8c9a (32:4c9a), c8cd1 (32:4cd1), c8dbf (32:4dbf)
+Functionc900b: ; c900b (32:500b)
+ push af
+ ld h, $d2
+ ld a, [$FF00+$c7]
+ ld l, a
+ ld a, [$FF00+$c8]
+ sub l
+ ld d, a
+ pop af
+.asm_c9016
+ ld [hli], a
+ dec d
+ jr nz, .asm_c9016
+ ret
+
+; known jump sources: c8790 (32:4790), c87f7 (32:47f7), c8a2c (32:4a2c)
+Functionc901b: ; c901b (32:501b)
+ push af
+ ld e, a
+ ld a, [$FF00+$c7]
+ ld l, a
+ ld a, [$FF00+$c8]
+ sub l
+ sub e
+ ld d, a
+ ld h, $d2
+ ld a, [$FF00+$c7]
+ ld l, a
+ ld a, $90
+.asm_c902c
+ ld [hli], a
+ dec e
+ jr nz, .asm_c902c
+ pop af
+ xor $ff
+.asm_c9033
+ ld [hli], a
+ dec d
+ jr nz, .asm_c9033
+ ret
+
+; known jump sources: c81c4 (32:41c4), c81f3 (32:41f3), c8234 (32:4234), c825e (32:425e), c82a1 (32:42a1), c82cb (32:42cb), c8305 (32:4305), c837b (32:437b), c83a8 (32:43a8), c8826 (32:4826), c8858 (32:4858), c890c (32:490c), c8b39 (32:4b39), c8de7 (32:4de7), c8ee0 (32:4ee0), c8ef6 (32:4ef6)
+Functionc9038: ; c9038 (32:5038)
+ ld hl, $2
+ add hl, bc
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and $1
+ xor [hl]
+ ret
+
+; known jump sources: c81ea (32:41ea), c8223 (32:4223), c8290 (32:4290)
+Functionc9042: ; c9042 (32:5042)
+ ld hl, $2
+ add hl, bc
+ ld a, [hBattleTurn] ; $ff00+$e4
+ and $1
+ xor [hl]
+ jr nz, .asm_c9053
+ ld a, [EnemySubStatus3] ; $c66f
+ and $60
+ ret
+.asm_c9053
+ ld a, [PlayerSubStatus3] ; $c66a
+ and $60
+ ret
+
+; known jump sources: c8171 (32:4171), c818b (32:418b)
+Functionc9059: ; c9059 (32:5059)
+ ld a, [hSGB] ; $ff00+$e7
+ and a
+ ret
+
+; known jump sources: c86d6 (32:46d6), c8951 (32:4951), c898c (32:498c), c8997 (32:4997), c8cce (32:4cce), c8d45 (32:4d45), c8f54 (32:4f54), c8f85 (32:4f85), c8fc2 (32:4fc2)
+Functionc905d: ; c905d (32:505d)
+ ld e, a
+ callab Functionce765
+ ld a, e
+ ret
+
+; known jump sources: c8a24 (32:4a24)
+Functionc9066: ; c9066 (32:5066)
+ ld e, a
+ callab Functionce76b
+ ld a, e
+ ret
+; c906f (32:506f)
+
+
diff --git a/battle/core.asm b/battle/core.asm
new file mode 100644
index 000000000..d8c87b0f8
--- /dev/null
+++ b/battle/core.asm
@@ -0,0 +1,9479 @@
+; Core components of the battle engine.
+
+
+Function3c000: ; 3c000
+ xor a
+ ld [$c664], a
+ ld [$c6fc], a
+ ld [$d0ec], a
+ ld [BattleEnded], a
+ inc a
+ ld [$d264], a
+ ld hl, OTPartyMon1CurHP
+ ld bc, $002f
+ ld d, $3
+.asm_3c019
+ inc d
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3c021
+ add hl, bc
+ jr .asm_3c019
+
+.asm_3c021
+ ld a, d
+ ld [$d430], a
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3c031
+ ld a, [$ffcb]
+ cp $2
+.data_3c02f
+ db $28
+ db $1b
+
+.asm_3c031
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3c047
+ xor a
+ ld [$c718], a
+ call Function3d834
+ call Function3d867
+ call Function3dc18
+ call Function3d4e1
+
+.asm_3c047
+ ld c, $28
+ call DelayFrames
+ call Function309d
+ call Function3d873
+ ld a, d
+ and a
+ jp z, LostBattle
+ call Function30b4
+ ld a, [BattleType]
+ cp $2
+ jp z, Function3c0e2
+ cp $3
+ jp z, Function3c0e2
+ xor a
+ ld [CurPartyMon], a
+.asm_3c06b
+ call Function3d887
+ jr nz, .asm_3c076
+ ld hl, CurPartyMon
+ inc [hl]
+ jr .asm_3c06b
+
+.asm_3c076
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ inc a
+ ld hl, PartyCount
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld [TempBattleMonSpecies], a
+ ld hl, $c505
+ ld a, $9
+ call Function3d490
+ call Function309d
+ call Function3d57a
+ call Function3da0d
+ call Function3dab1
+ call Function3f26d
+ call Function3dbde
+ call Function3dc18
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ call SetPlayerTurn
+ call Function3dc23
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3c0df
+ ld a, [$ffcb]
+ cp $2
+ jr nz, .asm_3c0df
+ xor a
+ ld [$c718], a
+ call Function3d834
+ call Function3d867
+ call Function3dc18
+ call Function3d4e1
+ call SetEnemyTurn
+ call Function3dc23
+
+.asm_3c0df
+ jp Function3c12f
+; 3c0e2
+
+Function3c0e2: ; 3c0e2
+ jp Function3e139
+; 3c0e5
+
+
+
+Function3c0e5: ; 3c0e5
+ call Function30b4
+ ld a, [$d0ee]
+ and $c0
+ add $2
+ ld [$d0ee], a
+ ld a, [InLinkBattle]
+ and a
+ ld hl, $47bd
+ jr z, .asm_3c115
+ ld a, [$d0ee]
+ and $c0
+ ld [$d0ee], a
+ ld hl, $47cf
+ call Function3d2e0
+ jr nc, .asm_3c115
+ ld hl, $cd2a
+ bit 4, [hl]
+ jr nz, .asm_3c118
+ ld hl, $5863
+
+.asm_3c115
+ call StdBattleTextBox
+
+.asm_3c118
+ call Function3ceec
+ call Function3d2e0
+ jr c, .asm_3c126
+
+ ld de, SFX_RUN
+ call PlaySFX
+
+.asm_3c126
+ call SetPlayerTurn
+ ld a, 1
+ ld [BattleEnded], a
+ ret
+; 3c12f
+
+Function3c12f: ; 3c12f
+ call Function3c1bf
+ call Function3c3f5
+ jp c, .asm_3c1be
+ xor a
+ ld [$c710], a
+ ld [$c711], a
+ ld [$d264], a
+ ld [$c73f], a
+ ld [$c740], a
+ ld [CurDamage], a
+ ld [$d257], a
+ call Function3c27c
+ call UpdateBattleMonInParty
+ callba AIChooseMove
+ call Function3d2f1
+ jr nz, .asm_3c174
+ callba Function100da5
+ callba Function100641
+ callba Function100dd8
+ jp c, .asm_3c1be
+
+.asm_3c174
+ call Function3c410
+ jr c, .asm_3c18a
+.asm_3c179
+ call Function3e139
+ jr c, .asm_3c1be
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c1be
+ ld a, [$d232]
+ and a
+ jr nz, .asm_3c1be
+
+.asm_3c18a
+ call Function3c434
+ jr nz, .asm_3c179
+ call Function3c300
+ jr c, .asm_3c1be
+ call Function3c314
+ jr c, .asm_3c19e
+ call Function3c5fe
+ jr .asm_3c1a1
+
+.asm_3c19e
+ call Function3c664
+
+.asm_3c1a1
+ call Function3d2e0
+ jr c, .asm_3c1be
+ ld a, [$d232]
+ and a
+ jr nz, .asm_3c1be
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c1be
+ call Function3c1d6
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c1be
+ jp Function3c12f
+
+.asm_3c1be
+ ret
+; 3c1bf
+
+Function3c1bf: ; 3c1bf
+ ret
+; 3c1c0
+
+
+Function3c1c0: ; 3c1c0
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a89b
+ inc [hl]
+ jr nz, .asm_3c1d2
+ dec hl
+ inc [hl]
+ jr nz, .asm_3c1d2
+ dec [hl]
+ inc hl
+ dec [hl]
+
+.asm_3c1d2
+ call CloseSRAM
+ ret
+; 3c1d6
+
+
+Function3c1d6: ; 3c1d6
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c1fe
+ call Function3c23c
+ ret c
+ call Function3ca26
+ call Function3c23c
+ ret c
+ call HandleWeather
+ call Function3c23c
+ ret c
+ call Function3c874
+ call Function3c23c
+ ret c
+ call Function3c801
+ call Function3c23c
+ ret c
+ jr .asm_3c21e
+
+.asm_3c1fe
+ call Function3c25c
+ ret c
+ call Function3ca26
+ call Function3c25c
+ ret c
+ call HandleWeather
+ call Function3c25c
+ ret c
+ call Function3c874
+ call Function3c25c
+ ret c
+ call Function3c801
+ call Function3c25c
+ ret c
+
+.asm_3c21e
+ call Function3c8eb
+ call Function3c93c
+ call Function3ca8f
+ call Function3cafb
+ call Function3cb36
+ call Function3de97
+ call Function3dcf9
+ call UpdateBattleMonInParty
+ call Function309d
+ jp Function3c4df
+; 3c23c
+
+Function3c23c: ; 3c23c
+ call Function3c710
+ jr nz, .asm_3c24a
+ call Function3d14e
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c25a
+
+.asm_3c24a
+ call Function3c70b
+ jr nz, .asm_3c258
+ call Function3cd55
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c25a
+
+.asm_3c258
+ and a
+ ret
+
+.asm_3c25a
+ scf
+ ret
+; 3c25c
+
+Function3c25c: ; 3c25c
+ call Function3c70b
+ jr nz, .asm_3c26a
+ call Function3cd55
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c27a
+
+.asm_3c26a
+ call Function3c710
+ jr nz, .asm_3c278
+ call Function3d14e
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c27a
+
+.asm_3c278
+ and a
+ ret
+
+.asm_3c27a
+ scf
+ ret
+; 3c27c
+
+Function3c27c: ; 3c27c
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c287
+ call .asm_3c28a
+ jr .asm_3c296
+
+.asm_3c287
+ call .asm_3c296
+.asm_3c28a
+ call SetPlayerTurn
+ ld de, PartyMon1Item
+ ld a, [CurBattleMon]
+ ld b, a
+ jr .asm_3c2a0
+
+.asm_3c296
+ call SetEnemyTurn
+ ld de, OTPartyMon1Item
+ ld a, [CurOTMon]
+ ld b, a
+
+.asm_3c2a0
+ push de
+ push bc
+ callab GetUserItem
+ ld a, [hl]
+ ld [$d265], a
+ sub $98
+ pop bc
+ pop de
+ ret nz
+ ld [hl], a
+ ld h, d
+ ld l, e
+ ld a, b
+ call GetPartyLocation
+ xor a
+ ld [hl], a
+ ld a, $2
+ call _GetBattleVar
+ push af
+ set 7, [hl]
+ ld a, $c
+ call _GetBattleVar
+ push hl
+ push af
+ xor a
+ ld [hl], a
+ ld [AttackMissed], a
+ ld [EffectFailed], a
+ callba BattleCommand77
+ pop af
+ pop hl
+ ld [hl], a
+ call GetItemName
+ ld hl, $4bde
+ call StdBattleTextBox
+ callab BattleCommand8c
+ pop af
+ bit 7, a
+ ret nz
+ xor a
+ ld [$cfca], a
+ ld de, $0103
+ call Function3ee0f
+ call Function3c8e4
+ ld hl, $4d97
+ jp StdBattleTextBox
+; 3c300
+
+Function3c300: ; 3c300
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3c30d
+ ld a, [$d430]
+ cp $f
+ jr z, .asm_3c30f
+
+.asm_3c30d
+ and a
+ ret
+
+.asm_3c30f
+ call Function3c0e5
+ scf
+ ret
+; 3c314
+
+Function3c314: ; 3c314
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3c35b
+ ld a, [$d430]
+ cp $e
+ jr z, .asm_3c35b
+ cp $d
+ jr z, .asm_3c35b
+ sub $4
+ jr c, .asm_3c35b
+ ld a, [$d0ec]
+ cp $2
+ jr nz, .asm_3c34c
+ ld a, [$ffcb]
+ cp $2
+ jr z, .asm_3c341
+ call BattleRandom
+ cp $80
+ jp c, .asm_3c3f1
+ jp Function3c3f3
+
+.asm_3c341
+ call BattleRandom
+ cp $80
+ jp c, Function3c3f3
+ jp .asm_3c3f1
+
+.asm_3c34c
+ callab Function3846c
+ call SetEnemyTurn
+ call Function3dc23
+ jp Function3c3f3
+
+.asm_3c35b
+ ld a, [$d0ec]
+ and a
+ jp nz, .asm_3c3f1
+ call Function3c5b4
+ jr z, .asm_3c36d
+ jp c, .asm_3c3f1
+ jp Function3c3f3
+
+.asm_3c36d
+ call SetPlayerTurn
+ callab GetUserItem
+ push bc
+ callab GetOpponentItem
+ pop de
+ ld a, d
+ cp $4a
+ jr nz, .asm_3c391
+ ld a, b
+ cp $4a
+ jr z, .asm_3c39f
+ call BattleRandom
+ cp e
+ jr nc, .asm_3c3c5
+ jp .asm_3c3f1
+
+.asm_3c391
+ ld a, b
+ cp $4a
+ jr nz, .asm_3c3c5
+ call BattleRandom
+ cp c
+ jr nc, .asm_3c3c5
+ jp Function3c3f3
+
+.asm_3c39f
+ ld a, [$ffcb]
+ cp $2
+ jr z, .asm_3c3b5
+ call BattleRandom
+ cp c
+ jp c, Function3c3f3
+ call BattleRandom
+ cp e
+ jp c, .asm_3c3f1
+ jr .asm_3c3c5
+
+.asm_3c3b5
+ call BattleRandom
+ cp e
+ jp c, .asm_3c3f1
+ call BattleRandom
+ cp c
+ jp c, Function3c3f3
+ jr .asm_3c3c5
+
+.asm_3c3c5
+ ld de, BattleMonSpd
+ ld hl, EnemyMonSpd
+ ld c, $2
+ call StringCmp
+ jr z, .asm_3c3d8
+ jp nc, .asm_3c3f1
+ jp Function3c3f3
+
+.asm_3c3d8
+ ld a, [$ffcb]
+ cp $2
+ jr z, .asm_3c3e9
+ call BattleRandom
+ cp $80
+ jp c, .asm_3c3f1
+ jp Function3c3f3
+
+.asm_3c3e9
+ call BattleRandom
+ cp $80
+ jp c, Function3c3f3
+.asm_3c3f1
+ scf
+ ret
+; 3c3f3
+
+Function3c3f3: ; 3c3f3
+ and a
+ ret
+; 3c3f5
+
+Function3c3f5: ; 3c3f5
+ ld a, [BattleType]
+ cp $6
+ jr nz, .asm_3c40e
+ ld a, [$dc79]
+ and a
+ jr nz, .asm_3c40e
+ ld a, [$d0ee]
+ and $c0
+ add $2
+ ld [$d0ee], a
+ scf
+ ret
+
+.asm_3c40e
+ and a
+ ret
+; 3c410
+
+Function3c410: ; 3c410
+ ld a, [PlayerSubStatus4]
+ and $20
+ jp nz, Function3c432
+ ld hl, EnemySubStatus3
+ res 3, [hl]
+ ld hl, PlayerSubStatus3
+ res 3, [hl]
+ ld a, [hl]
+ and $12
+ jp nz, Function3c432
+ ld hl, PlayerSubStatus1
+ bit 6, [hl]
+ jp nz, Function3c432
+ and a
+ ret
+; 3c432
+
+Function3c432: ; 3c432
+ scf
+ ret
+; 3c434
+
+Function3c434: ; 3c434
+ call Function3c410
+ jp c, .asm_3c4ba
+ ld hl, PlayerSubStatus5
+ bit 4, [hl]
+ jr z, .asm_3c449
+ ld a, [LastPlayerMove]
+ ld [CurPlayerMove], a
+ jr .asm_3c47c
+
+.asm_3c449
+ ld a, [$d0ec]
+ cp $2
+ jr z, .asm_3c4ce
+ and a
+ jr nz, .asm_3c4b5
+ ld a, [PlayerSubStatus3]
+ and $1
+ jr nz, .asm_3c4ba
+ xor a
+ ld [$d235], a
+ inc a
+ ld [FXAnimIDLo], a
+ call Function3e4bc
+ push af
+ call Function30b4
+ call UpdateBattleHuds
+ ld a, [CurPlayerMove]
+ cp $a5
+ jr z, .asm_3c476
+ call PlayClickSFX
+
+.asm_3c476
+ ld a, $1
+ ld [hBGMapMode], a
+ pop af
+ ret nz
+
+.asm_3c47c
+ call SetPlayerTurn
+ callab UpdateMoveData
+ xor a
+ ld [$c732], a
+ ld a, [PlayerMoveEffect]
+ cp $77
+ jr z, .asm_3c494
+ xor a
+ ld [PlayerFuryCutterCount], a
+
+.asm_3c494
+ ld a, [PlayerMoveEffect]
+ cp $51
+ jr z, .asm_3c4a4
+ ld hl, PlayerSubStatus4
+ res 6, [hl]
+ xor a
+ ld [$c72b], a
+
+.asm_3c4a4
+ ld a, [PlayerMoveEffect]
+ cp $6f
+ jr z, .asm_3c4c9
+ cp $74
+ jr z, .asm_3c4c9
+ xor a
+ ld [$c679], a
+ jr .asm_3c4c9
+
+.asm_3c4b5
+ ld hl, PlayerSubStatus3
+ res 0, [hl]
+
+.asm_3c4ba
+ xor a
+ ld [PlayerFuryCutterCount], a
+ ld [$c679], a
+ ld [$c72b], a
+ ld hl, PlayerSubStatus4
+ res 6, [hl]
+
+.asm_3c4c9
+ call Function3e7c1
+ xor a
+ ret
+
+.asm_3c4ce
+ xor a
+ ld [PlayerFuryCutterCount], a
+ ld [$c679], a
+ ld [$c72b], a
+ ld hl, PlayerSubStatus4
+ res 6, [hl]
+ xor a
+ ret
+; 3c4df
+
+Function3c4df: ; 3c4df
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c4ea
+ call .asm_3c4ed
+ jr .asm_3c518
+
+.asm_3c4ea
+ call .asm_3c518
+.asm_3c4ed
+ ld hl, PlayerSubStatus5
+ bit 4, [hl]
+ ret z
+ ld a, [PlayerEncoreCount]
+ dec a
+ ld [PlayerEncoreCount], a
+ jr z, .asm_3c50a
+ ld hl, BattleMonPPMove1
+ ld a, [CurMoveNum]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ret nz
+
+.asm_3c50a
+ ld hl, PlayerSubStatus5
+ res 4, [hl]
+ call SetEnemyTurn
+ ld hl, $4c8a
+ jp StdBattleTextBox
+
+.asm_3c518
+ ld hl, EnemySubStatus5
+ bit 4, [hl]
+ ret z
+ ld a, [EnemyEncoreCount]
+ dec a
+ ld [EnemyEncoreCount], a
+ jr z, .asm_3c535
+ ld hl, EnemyMonPPMove1
+ ld a, [CurEnemyMoveNum]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ret nz
+
+.asm_3c535
+ ld hl, EnemySubStatus5
+ res 4, [hl]
+ call SetPlayerTurn
+ ld hl, $4c8a
+ jp StdBattleTextBox
+; 3c543
+
+
+Function3c543: ; 3c543
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .Stay
+
+ ld a, [PlayerSubStatus5]
+ bit 7, a
+ jr nz, .Stay
+
+ ld a, [$c731]
+ and a
+ jr nz, .Stay
+
+ ld a, [EnemyMonStatus]
+ and 1 << FRZ | SLP
+ jr nz, .Stay
+
+ ld a, [TempEnemyMonSpecies]
+ ld de, 1
+ ld hl, .Always
+ call IsInArray
+ jr c, .Flee
+
+ call BattleRandom
+ ld b, a
+ cp $80
+ jr nc, .Stay
+
+ push bc
+ ld a, [TempEnemyMonSpecies]
+ ld de, 1
+ ld hl, .Often
+ call IsInArray
+ pop bc
+ jr c, .Flee
+
+ ld a, b
+ cp $1a
+ jr nc, .Stay
+
+ ld a, [TempEnemyMonSpecies]
+ ld de, 1
+ ld hl, .Sometimes
+ call IsInArray
+ jr c, .Flee
+
+.Stay
+ and a
+ ret
+
+.Flee
+ scf
+ ret
+; 3c59a
+
+.Sometimes
+ db MAGNEMITE
+ db GRIMER
+ db TANGELA
+ db MR__MIME
+ db EEVEE
+ db PORYGON
+ db DRATINI
+ db DRAGONAIR
+ db TOGETIC
+ db UMBREON
+ db UNOWN
+ db SNUBBULL
+ db HERACROSS
+ db $ff
+
+.Often
+ db CUBONE
+ db ARTICUNO
+ db ZAPDOS
+ db MOLTRES
+ db QUAGSIRE
+ db DELIBIRD
+ db PHANPY
+ db TEDDIURSA
+ db $ff
+
+.Always
+ db RAIKOU
+ db ENTEI
+; db SUICUNE
+ db $ff
+; 3c5b4
+
+
+Function3c5b4: ; 3c5b4
+ ld a, [CurPlayerMove]
+ call GetMovePriority
+ ld b, a
+ push bc
+ ld a, [CurEnemyMove]
+ call GetMovePriority
+ pop bc
+ cp b
+ ret
+; 3c5c5
+
+GetMovePriority: ; 3c5c5
+ ld b, a
+ cp VITAL_THROW
+ ld a, 0
+ ret z
+ call Function3c5ec
+ ld hl, .data_3c5df
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .asm_3c5dd
+ inc hl
+ cp $ff
+ jr nz, .loop
+ ld a, 1
+ ret
+
+.asm_3c5dd
+ ld a, [hl]
+ ret
+; 3c5df
+
+.data_3c5df
+ db EFFECT_PROTECT, 3
+ db EFFECT_ENDURE, 3
+ db EFFECT_PRIORITY_HIT, 2
+ db EFFECT_WHIRLWIND, 0
+ db EFFECT_COUNTER, 0
+ db EFFECT_MIRROR_COAT, 0
+ db $ff
+; 3c5ec
+
+
+Function3c5ec: ; 3c5ec
+ ld a, b
+ dec a
+ ld hl, $5afc
+ ld bc, $0007
+ call AddNTimes
+ ld a, $10
+ call GetFarByte
+ ld b, a
+ ret
+; 3c5fe
+
+Function3c5fe: ; 3c5fe
+ call Function309d
+ call Function3c543
+ jp c, Function3c0e5
+ call SetEnemyTurn
+ ld a, $1
+ ld [$c70f], a
+ callab Function38000
+ jr c, .asm_3c62f
+ call Function3c6de
+ call Function3d2e0
+ ret c
+ ld a, [$d232]
+ and a
+ ret nz
+ call Function3c710
+ jp z, Function3d14e
+ call Function3c70b
+ jp z, Function3cd55
+
+.asm_3c62f
+ call SetEnemyTurn
+ call Function3c716
+ jp z, Function3cd55
+ call RefreshBattleHuds
+ call Function3c6cf
+ call Function3d2e0
+ ret c
+ ld a, [$d232]
+ and a
+ ret nz
+ call Function3c70b
+ jp z, Function3cd55
+ call Function3c710
+ jp z, Function3d14e
+ call SetPlayerTurn
+ call Function3c716
+ jp z, Function3d14e
+ call RefreshBattleHuds
+ xor a
+ ld [$d0ec], a
+ ret
+; 3c664
+
+Function3c664: ; 3c664
+ xor a
+ ld [$c70f], a
+ call SetEnemyTurn
+ callab Function38000
+ push af
+ call Function3c6cf
+ pop bc
+ ld a, [$d232]
+ and a
+ ret nz
+ call Function3d2e0
+ ret c
+ call Function3c70b
+ jp z, Function3cd55
+ call Function3c710
+ jp z, Function3d14e
+ push bc
+ call SetPlayerTurn
+ call Function3c716
+ pop bc
+ jp z, Function3d14e
+ push bc
+ call RefreshBattleHuds
+ pop af
+ jr c, .asm_3c6be
+ call Function309d
+ call Function3c543
+ jp c, Function3c0e5
+ call Function3c6de
+ call Function3d2e0
+ ret c
+ ld a, [$d232]
+ and a
+ ret nz
+ call Function3c710
+ jp z, Function3d14e
+ call Function3c70b
+ jp z, Function3cd55
+
+.asm_3c6be
+ call SetEnemyTurn
+ call Function3c716
+ jp z, Function3cd55
+ call RefreshBattleHuds
+ xor a
+ ld [$d0ec], a
+ ret
+; 3c6cf
+
+Function3c6cf: ; 3c6cf
+ call SetPlayerTurn
+ call Function3c6fe
+ callab DoPlayerTurn
+ jp Function3c6ed
+; 3c6de
+
+Function3c6de: ; 3c6de
+ call SetEnemyTurn
+ call Function3c6fe
+ callab DoEnemyTurn
+ jp Function3c6ed
+; 3c6ed
+
+Function3c6ed: ; 3c6ed
+ ld a, $5
+ call _GetBattleVar
+ res 2, [hl]
+ res 5, [hl]
+ ld a, $9
+ call _GetBattleVar
+ res 6, [hl]
+ ret
+; 3c6fe
+
+Function3c6fe: ; 3c6fe
+ ld a, $4
+ call _GetBattleVar
+ res 6, [hl]
+ ret
+; 3c706
+
+Function3c706: ; 3c706
+ ld a, [hBattleTurn]
+ and a
+ jr z, Function3c710
+Function3c70b: ; 3c70b
+ ld hl, EnemyMonHPHi
+ jr asm_3c713
+
+Function3c710: ; 3c710
+ ld hl, BattleMonHP
+
+asm_3c713
+ ld a, [hli]
+ or [hl]
+ ret
+; 3c716
+
+Function3c716: ; 3c716
+ call Function3c706
+ ret z
+ ld a, $a
+ call GetBattleVar
+ and $18
+ jr z, .asm_3c768
+ ld hl, $47e2
+ ld de, $0106
+ and $10
+ jr z, .asm_3c733
+ ld hl, $47f8
+ ld de, $0105
+
+.asm_3c733
+ push de
+ call StdBattleTextBox
+ pop de
+ xor a
+ ld [$cfca], a
+ call Function3ee0f
+ call GetEighthMaxHP
+ ld de, $c674
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c74d
+ ld de, $c67c
+
+.asm_3c74d
+ ld a, $4
+ call GetBattleVar
+ bit 0, a
+ jr z, .asm_3c765
+ call Function3cc76
+ ld a, [de]
+ inc a
+ ld [de], a
+ ld hl, $0000
+.asm_3c75f
+ add hl, bc
+ dec a
+ jr nz, .asm_3c75f
+ ld b, h
+ ld c, l
+
+.asm_3c765
+ call Function3cc3f
+
+.asm_3c768
+ call Function3c706
+ jp z, .asm_3c7f7
+ ld a, $3
+ call _GetBattleVar
+ bit 7, [hl]
+ jr z, .asm_3c7a1
+ call Function3c8e4
+ xor a
+ ld [$cfca], a
+ ld de, $0107
+ ld a, $7
+ call GetBattleVar
+ and $60
+ call z, Function3ee0f
+ call Function3c8e4
+ call GetEighthMaxHP
+ call Function3cc3f
+ ld a, $1
+ ld [hBGMapMode], a
+ call Function3ccef
+ ld hl, $480e
+ call StdBattleTextBox
+
+.asm_3c7a1
+ call Function3c706
+ jr z, .asm_3c7f7
+ ld a, $0
+ call _GetBattleVar
+ bit 0, [hl]
+ jr z, .asm_3c7c5
+ xor a
+ ld [$cfca], a
+ ld de, $010c
+ call Function3ee0f
+ call GetQuarterMaxHP
+ call Function3cc3f
+ ld hl, $4822
+ call StdBattleTextBox
+
+.asm_3c7c5
+ call Function3c706
+ jr z, .asm_3c7f7
+ ld a, $0
+ call _GetBattleVar
+ bit 1, [hl]
+ jr z, .asm_3c7e9
+ xor a
+ ld [$cfca], a
+ ld de, $010c
+ call Function3ee0f
+ call GetQuarterMaxHP
+ call Function3cc3f
+ ld hl, $4836
+ call StdBattleTextBox
+
+.asm_3c7e9
+ ld hl, BattleMonHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c7f4
+ ld hl, EnemyMonHPHi
+
+.asm_3c7f4
+ ld a, [hli]
+ or [hl]
+ ret nz
+
+.asm_3c7f7
+ call RefreshBattleHuds
+ ld c, $14
+ call DelayFrames
+ xor a
+ ret
+; 3c801
+
+Function3c801: ; 3c801
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c813
+ call SetPlayerTurn
+ call .asm_3c81c
+ call SetEnemyTurn
+ jp .asm_3c81c
+
+.asm_3c813
+ call SetEnemyTurn
+ call .asm_3c81c
+ call SetPlayerTurn
+.asm_3c81c
+ ld hl, PlayerPerishCount
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c827
+ ld hl, EnemyPerishCount
+
+.asm_3c827
+ ld a, $0
+ call GetBattleVar
+ bit 4, a
+ ret z
+ dec [hl]
+ ld a, [hl]
+ ld [$d265], a
+ push af
+ ld hl, $4864
+ call StdBattleTextBox
+ pop af
+ ret nz
+ ld a, $0
+ call _GetBattleVar
+ res 4, [hl]
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .asm_3c85c
+ ld hl, BattleMonHP
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld hl, PartyMon1CurHP
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+
+.asm_3c85c
+ ld hl, EnemyMonHPHi
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld a, [IsInBattle]
+ dec a
+ ret z
+ ld hl, OTPartyMon1CurHP
+ ld a, [CurOTMon]
+ call GetPartyLocation
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+; 3c874
+
+Function3c874: ; 3c874
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c886
+ call SetPlayerTurn
+ call .asm_3c88f
+ call SetEnemyTurn
+ jp .asm_3c88f
+
+.asm_3c886
+ call SetEnemyTurn
+ call .asm_3c88f
+ call SetPlayerTurn
+.asm_3c88f
+ ld hl, $c730
+ ld de, $c72e
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c8a0
+ ld hl, $c731
+ ld de, $c72f
+
+.asm_3c8a0
+ ld a, [hl]
+ and a
+ ret z
+ ld a, $3
+ call GetBattleVar
+ bit 4, a
+ ret nz
+ ld a, [de]
+ ld [$d265], a
+ ld [FXAnimIDLo], a
+ call GetMoveName
+ dec [hl]
+ jr z, .asm_3c8de
+ ld a, $2
+ call GetBattleVar
+ and $60
+ jr nz, .asm_3c8d3
+ call Function3c8e4
+ xor a
+ ld [$cfca], a
+ ld [FXAnimIDHi], a
+ ld a, $37
+ call Predef
+ call Function3c8e4
+
+.asm_3c8d3
+ call Function3cc76
+ call Function3cc3f
+ ld hl, $4de2
+ jr .asm_3c8e1
+
+.asm_3c8de
+ ld hl, $4df5
+
+.asm_3c8e1
+ jp StdBattleTextBox
+; 3c8e4
+
+Function3c8e4: ; 3c8e4
+ ld a, [hBattleTurn]
+ xor $1
+ ld [hBattleTurn], a
+ ret
+; 3c8eb
+
+Function3c8eb: ; 3c8eb
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c8fd
+ call SetPlayerTurn
+ call .asm_3c906
+ call SetEnemyTurn
+ jp .asm_3c906
+
+.asm_3c8fd
+ call SetEnemyTurn
+ call .asm_3c906
+ call SetPlayerTurn
+.asm_3c906
+ callab GetUserItem
+ ld a, [hl]
+ ld [$d265], a
+ call GetItemName
+ ld a, b
+ cp $3
+ ret nz
+ ld hl, BattleMonHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c922
+ ld hl, EnemyMonHPHi
+
+.asm_3c922
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ cp b
+ jr nz, .asm_3c92d
+ ld a, [hl]
+ cp c
+ ret z
+
+.asm_3c92d
+ call Function3cc76
+ call Function3c8e4
+ call Function3ccef
+ ld hl, $4880
+ jp StdBattleTextBox
+; 3c93c
+
+Function3c93c: ; 3c93c
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c94e
+ call SetPlayerTurn
+ call .asm_3c957
+ call SetEnemyTurn
+ jp .asm_3c957
+
+.asm_3c94e
+ call SetEnemyTurn
+ call .asm_3c957
+ call SetPlayerTurn
+.asm_3c957
+ callab GetUserItem
+ ld a, b
+ cp $6
+ jr nz, .asm_3c9ae
+ ld hl, PartyMon1PP
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ ld hl, PartyMon1Move1
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c99b
+ ld de, $c739
+ ld hl, $c735
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3c99b
+ ld hl, OTPartyMon1PPMove1
+ ld a, [CurOTMon]
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ ld hl, OTPartyMon1Move1
+ ld a, [CurOTMon]
+ call GetPartyLocation
+
+.asm_3c99b
+ ld c, $0
+.asm_3c99d
+ ld a, [hl]
+ and a
+ jr z, .asm_3c9ae
+ ld a, [de]
+ and $3f
+ jr z, .asm_3c9af
+ inc hl
+ inc de
+ inc c
+ ld a, c
+ cp $4
+ jr nz, .asm_3c99d
+
+.asm_3c9ae
+ ret
+
+.asm_3c9af
+ ld a, [hl]
+ cp $a6
+ ld b, $1
+ jr z, .asm_3c9b8
+ ld b, $5
+
+.asm_3c9b8
+ ld a, [de]
+ add b
+ ld [de], a
+ push bc
+ push bc
+ ld a, [hl]
+ ld [$d265], a
+ ld de, BattleMonItem
+ ld hl, BattleMonPPMove1
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c9d2
+ ld de, EnemyMonItem
+ ld hl, EnemyMonPPMove1
+
+.asm_3c9d2
+ inc de
+ pop bc
+ ld b, $0
+ add hl, bc
+ push hl
+ ld h, d
+ ld l, e
+ add hl, bc
+ pop de
+ pop bc
+ ld a, [$d265]
+ cp [hl]
+ jr nz, .asm_3c9f5
+ ld a, [hBattleTurn]
+ and a
+ ld a, [PlayerSubStatus5]
+ jr z, .asm_3c9ee
+ ld a, [EnemySubStatus5]
+
+.asm_3c9ee
+ bit 3, a
+ jr nz, .asm_3c9f5
+ ld a, [de]
+ add b
+ ld [de], a
+
+.asm_3c9f5
+ callab GetUserItem
+ ld a, [hl]
+ ld [$d265], a
+ xor a
+ ld [hl], a
+ call Function3df12
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3ca12
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3ca14
+ call Function3df1f
+
+.asm_3ca12
+ xor a
+ ld [hl], a
+
+.asm_3ca14
+ call GetItemName
+ call Function3c8e4
+ call Function3ddc8
+ call Function3c8e4
+ ld hl, $4899
+ jp StdBattleTextBox
+; 3ca26
+
+Function3ca26: ; 3ca26
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3ca38
+ call SetPlayerTurn
+ call .asm_3ca41
+ call SetEnemyTurn
+ jp .asm_3ca41
+
+.asm_3ca38
+ call SetEnemyTurn
+ call .asm_3ca41
+ call SetPlayerTurn
+.asm_3ca41
+ ld hl, $c71d
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3ca4c
+ ld hl, $c71e
+
+.asm_3ca4c
+ ld a, [hl]
+ and a
+ ret z
+ dec a
+ ld [hl], a
+ cp $1
+ ret nz
+ ld hl, $48b6
+ call StdBattleTextBox
+ ld a, $10
+ call _GetBattleVar
+ push af
+ ld a, $f8
+ ld [hl], a
+ callab UpdateMoveData
+ xor a
+ ld [AttackMissed], a
+ ld [AlreadyDisobeyed], a
+ ld a, $a
+ ld [TypeModifier], a
+ callab DoMove
+ xor a
+ ld [CurDamage], a
+ ld [$d257], a
+ ld a, $10
+ call _GetBattleVar
+ pop af
+ ld [hl], a
+ call UpdateBattleMonInParty
+ jp UpdateEnemyMonInParty
+; 3ca8f
+
+Function3ca8f: ; 3ca8f
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3ca9a
+ call .asm_3ca9d
+ jr .asm_3cac9
+
+.asm_3ca9a
+ call .asm_3cac9
+.asm_3ca9d
+ ld a, [BattleMonStatus]
+ bit 5, a
+ ret z
+ ld a, [$c73f]
+ and a
+ ret nz
+ call BattleRandom
+ cp $19
+ ret nc
+ xor a
+ ld [BattleMonStatus], a
+ ld a, [CurBattleMon]
+ ld hl, PartyMon1Status
+ call GetPartyLocation
+ ld [hl], $0
+ call UpdateBattleHuds
+ call SetEnemyTurn
+ ld hl, $524b
+ jp StdBattleTextBox
+
+.asm_3cac9
+ ld a, [EnemyMonStatus]
+ bit 5, a
+ ret z
+ ld a, [$c740]
+ and a
+ ret nz
+ call BattleRandom
+ cp $19
+ ret nc
+ xor a
+ ld [EnemyMonStatus], a
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3caef
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1Status
+ call GetPartyLocation
+ ld [hl], $0
+
+.asm_3caef
+ call UpdateBattleHuds
+ call SetPlayerTurn
+ ld hl, $524b
+ jp StdBattleTextBox
+; 3cafb
+
+Function3cafb: ; 3cafb
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3cb06
+ call .asm_3cb09
+ jr .asm_3cb1c
+
+.asm_3cb06
+ call .asm_3cb1c
+.asm_3cb09
+ ld a, [PlayerScreens]
+ bit 2, a
+ ret z
+ ld hl, $c701
+ dec [hl]
+ ret nz
+ res 2, a
+ ld [PlayerScreens], a
+ xor a
+ jr .asm_3cb2e
+
+.asm_3cb1c
+ ld a, [EnemyScreens]
+ bit 2, a
+ ret z
+ ld hl, $c705
+ dec [hl]
+ ret nz
+ res 2, a
+ ld [EnemyScreens], a
+ ld a, $1
+
+.asm_3cb2e
+ ld [hBattleTurn], a
+ ld hl, $48d2
+ jp StdBattleTextBox
+; 3cb36
+
+
+Function3cb36: ; 3cb36
+ ld a, [$ffcb]
+ cp 1
+ jr z, .Both
+ call .CheckPlayer
+ jr .CheckEnemy
+
+.Both
+ call .CheckEnemy
+
+.CheckPlayer
+ call SetPlayerTurn
+ ld de, .Your
+ call .asm_3cb6f
+ ld hl, PlayerScreens
+ ld de, PlayerLightScreenCount
+ jr .FadeScreens
+
+.CheckEnemy
+ call SetEnemyTurn
+ ld de, .Enemy
+ call .asm_3cb6f
+ ld hl, EnemyScreens
+ ld de, EnemyLightScreenCount
+
+.FadeScreens
+ bit SCREENS_LIGHT_SCREEN, [hl]
+ call nz, FadeLightScreen
+ bit SCREENS_REFLECT, [hl]
+ call nz, FadeReflect
+ ret
+
+.asm_3cb6f
+ ld hl, StringBuffer1
+ jp CopyName2
+; 3cb75
+
+.Your
+ db "Your@"
+.Enemy
+ db "Enemy@"
+; 3cb80
+
+
+FadeLightScreen: ; 3cb80
+ ld a, [de]
+ dec a
+ ld [de], a
+ ret nz
+ res SCREENS_LIGHT_SCREEN, [hl]
+ push hl
+ push de
+ ld hl, BattleText_0x808e7
+ call StdBattleTextBox
+ pop de
+ pop hl
+ ret
+; 3cb91
+
+FadeReflect: ; 3cb91
+ inc de
+ ld a, [de]
+ dec a
+ ld [de], a
+ ret nz
+ res SCREENS_REFLECT, [hl]
+ ld hl, BattleText_0x80905
+ jp StdBattleTextBox
+; 3cb9e
+
+HandleWeather: ; 3cb9e
+
+ ld a, [Weather]
+ cp 0
+ ret z
+
+ ld hl, WeatherCount
+ dec [hl]
+ jr z, .asm_3cc13
+
+ ld hl, .WeatherMessages
+ call .asm_3cc1e
+ ld a, [Weather]
+ cp WEATHER_SANDSTORM
+ ret nz
+ ld a, [$ffcb]
+ cp 1
+ jr z, .asm_3cbc7
+
+; Player first
+ call SetPlayerTurn
+ call .asm_3cbd0
+ call SetEnemyTurn
+ jr .asm_3cbd0
+
+.asm_3cbc7
+; Enemy first
+ call SetEnemyTurn
+ call .asm_3cbd0
+ call SetPlayerTurn
+
+.asm_3cbd0
+ ld a, BATTLE_VARS_SUBSTATUS3
+ call GetBattleVar
+ bit SUBSTATUS_UNDERGROUND, a
+ ret nz
+
+ ld hl, BattleMonType1
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3cbe3
+ ld hl, EnemyMonType1
+
+.asm_3cbe3
+ ld a, [hli]
+ cp ROCK
+ ret z
+ cp GROUND
+ ret z
+ cp STEEL
+ ret z
+
+ ld a, [hl]
+ cp ROCK
+ ret z
+ cp GROUND
+ ret z
+ cp STEEL
+ ret z
+
+ call Function3c8e4
+ xor a
+ ld [$cfca], a
+ ld de, $010b
+ call Function3ee17
+ call Function3c8e4
+ call GetEighthMaxHP
+ call Function3cc3f
+
+ ld hl, BattleText_0x8084d
+ jp StdBattleTextBox
+
+.asm_3cc13
+ ld hl, .WeatherEndedMessages
+ call .asm_3cc1e
+ xor a
+ ld [Weather], a
+ ret
+
+.asm_3cc1e
+ ld a, [Weather]
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp StdBattleTextBox
+; 3cc2d
+
+.WeatherMessages
+ dw BattleText_0x8091f
+ dw BattleText_0x80938
+ dw BattleText_0x80951
+.WeatherEndedMessages
+ dw BattleText_0x80967
+ dw BattleText_0x8097a
+ dw BattleText_0x8098f
+; 3cc39
+
+Function3cc39: ; 3cc39
+ call Function3cc45
+ jp Function3cd3c
+; 3cc3f
+
+Function3cc3f: ; 3cc3f
+ call Function3cc45
+ jp Function3cd36
+; 3cc45
+
+
+
+Function3cc45: ; 3cc45
+ ld hl, BattleMonHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3cc50
+ ld hl, EnemyMonHPHi
+
+.asm_3cc50
+ inc hl
+ ld a, [hl]
+ ld [$d1ec], a
+ sub c
+ ld [hld], a
+ ld [$d1ee], a
+ ld a, [hl]
+ ld [$d1ed], a
+ sbc b
+ ld [hl], a
+ ld [$d1ef], a
+ ret nc
+ ld a, [$d1ec]
+ ld c, a
+ ld a, [$d1ed]
+ ld b, a
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld [$d1ee], a
+ ld [$d1ef], a
+ ret
+; 3cc76
+
+Function3cc76: ; 3cc76
+ call GetQuarterMaxHP
+ srl c
+ srl c
+ ld a, c
+ and a
+ jr nz, .asm_3cc82
+ inc c
+
+.asm_3cc82
+ ret
+; 3cc83
+
+
+GetEighthMaxHP: ; 3cc83
+; output: bc
+ call GetQuarterMaxHP
+; assumes nothing can have 1024 or more hp
+; halve result
+ srl c
+; round up
+ ld a, c
+ and a
+ jr nz, .end
+ inc c
+.end
+ ret
+; 3cc8e
+
+
+GetQuarterMaxHP: ; 3cc8e
+; output: bc
+ call GetMaxHP
+
+; quarter result
+ srl b
+ rr c
+ srl b
+ rr c
+
+; assumes nothing can have 1024 or more hp
+; round up
+ ld a, c
+ and a
+ jr nz, .end
+ inc c
+.end
+ ret
+; 3cc9f
+
+
+GetHalfMaxHP: ; 3cc9f
+; output: bc
+ call GetMaxHP
+
+; halve reslut
+ srl b
+ rr c
+
+; floor = 1
+ ld a, c
+ or b
+ jr nz, .end
+ inc c
+.end
+ ret
+; 3ccac
+
+
+GetMaxHP: ; 3ccac
+; output: bc, Buffer1-2
+
+; player
+ ld hl, BattleMonMaxHP
+
+; whose turn?
+ ld a, [hBattleTurn]
+ and a
+ jr z, .gethp
+
+; enemy
+ ld hl, EnemyMonMaxHP
+
+.gethp
+ ld a, [hli]
+ ld [Buffer2], a
+ ld b, a
+
+ ld a, [hl]
+ ld [Buffer1], a
+ ld c, a
+ ret
+; 3ccc2
+
+Function3ccc2: ; 3ccc2
+ ld hl, BattleMonHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3cccd
+ ld hl, EnemyMonHP
+
+.asm_3cccd
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ srl b
+ rr c
+ ld a, [hli]
+ ld [Buffer2], a
+ ld a, [hl]
+ ld [Buffer1], a
+ ret
+; 3ccde
+
+Function3ccde: ; 3ccde
+ ld hl, BattleMonHP + 1
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3cce9
+ ld hl, EnemyMonHP + 1
+
+.asm_3cce9
+ ld a, c
+ sub [hl]
+ dec hl
+ ld a, b
+ sbc [hl]
+ ret
+; 3ccef
+
+
+Function3ccef: ; 3ccef
+ ld hl, EnemyMonMaxHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3ccfa
+ ld hl, BattleMonMaxHP
+
+.asm_3ccfa
+ ld a, [hli]
+ ld [Buffer2], a
+ ld a, [hld]
+ ld [Buffer1], a
+ dec hl
+ ld a, [hl]
+ ld [$d1ec], a
+ add c
+ ld [hld], a
+ ld [$d1ee], a
+ ld a, [hl]
+ ld [$d1ed], a
+ adc b
+ ld [hli], a
+ ld [$d1ef], a
+ ld a, [Buffer1]
+ ld c, a
+ ld a, [hld]
+ sub c
+ ld a, [Buffer2]
+ ld b, a
+ ld a, [hl]
+ sbc b
+ jr c, .asm_3cd2d
+ ld a, b
+ ld [hli], a
+ ld [$d1ef], a
+ ld a, c
+ ld [hl], a
+ ld [$d1ee], a
+
+.asm_3cd2d
+ call Function3c8e4
+ call Function3cd36
+ jp Function3c8e4
+; 3cd36
+
+Function3cd36: ; 3cd36
+ call Function3cd3c
+ jp UpdateBattleHuds
+; 3cd3c
+
+
+Function3cd3c: ; 3cd3c
+ ld hl, $c55e
+ ld a, [hBattleTurn]
+ and a
+ ld a, $1
+ jr z, .asm_3cd4a
+ ld hl, $c4ca
+ xor a
+
+.asm_3cd4a
+ push bc
+ ld [$d10a], a
+ ld a, $b
+ call Predef
+ pop bc
+ ret
+; 3cd55
+
+Function3cd55: ; 3cd55
+ call Function3cf14
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ call z, Function3cef1
+ xor a
+ ld [$c6f7], a
+ call Function3ce01
+ call Function3d873
+ ld a, d
+ and a
+ jp z, LostBattle
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ call nz, Function3df48
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $3c
+ call DelayFrames
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .asm_3cd8c
+ ld a, $1
+ ld [BattleEnded], a
+ ret
+
+.asm_3cd8c
+ call Function3cf35
+ jp z, Function3cfa4
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3cdba
+ call Function3d1f8
+ jr nc, .asm_3cda4
+ ld a, $1
+ ld [BattleEnded], a
+ ret
+
+.asm_3cda4
+ call Function3d227
+ call Function3d2e0
+ jp c, Function3c0e5
+ ld a, $1
+ ld [$d0ec], a
+ call Function3cf4a
+ jp z, Function3c0e5
+ jr asm_3cdca
+
+.asm_3cdba
+ ld a, $1
+ ld [$d0ec], a
+ call Function3cf4a
+ jp z, Function3c0e5
+ xor a
+ ld [$d0ec], a
+ ret
+
+asm_3cdca
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3cde6
+ call ClearSprites
+ ld hl, $c4a1
+ ld bc, $040a
+ call ClearBox
+ call Function3d2b3
+ ld a, $1
+ call asm_3cf78
+ jr .asm_3cdfc
+
+.asm_3cde6
+ ld a, [CurPartyMon]
+ push af
+ ld a, $1
+ call asm_3cf78
+ call ClearSprites
+ call Function309d
+ pop af
+ ld [CurPartyMon], a
+ call Function3d2b3
+
+.asm_3cdfc
+ xor a
+ ld [$d0ec], a
+ ret
+; 3ce01
+
+Function3ce01: ; 3ce01
+ call UpdateBattleMonInParty
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3ce16
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1CurHP
+ call GetPartyLocation
+ xor a
+ ld [hli], a
+ ld [hl], a
+
+.asm_3ce16
+ ld hl, PlayerSubStatus3
+ res 2, [hl]
+ xor a
+ ld hl, EnemyDamageTaken
+ ld [hli], a
+ ld [hl], a
+ call Function3d834
+ call Function3dc18
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3ce2f
+ jr .asm_3ce37
+
+.asm_3ce2f
+ call Function3ceec
+ ld a, $1
+ ld [$c6fd], a
+
+.asm_3ce37
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3ce47
+ ld a, [$c6f7]
+ and a
+ jr nz, .asm_3ce47
+ call Function3d1aa
+
+.asm_3ce47
+ call Function3d873
+ ld a, d
+ and a
+ ret z
+ ld a, [IsInBattle]
+ dec a
+ call z, Function3d0ea
+ call EmptyBattleTextBox
+ call Function309d
+ ld a, [$d0ee]
+ and $c0
+ ld [$d0ee], a
+ call Function3ceaa
+ jr z, .asm_3ce72
+ ld hl, EnemyMonBaseStats
+ ld b, $7
+.asm_3ce6c
+ srl [hl]
+ inc hl
+ dec b
+ jr nz, .asm_3ce6c
+
+.asm_3ce72
+ ld hl, EnemyMonBaseStats
+ ld de, $c720
+ ld bc, $0007
+ call CopyBytes
+ xor a
+ ld [$c71f], a
+ call Function3ee3b
+ call Function3ceaa
+ ret z
+ ld a, [$c664]
+ push af
+ ld a, d
+ ld [$c664], a
+ ld hl, $c720
+ ld de, EnemyMonBaseStats
+ ld bc, $0007
+ call CopyBytes
+ ld a, $1
+ ld [$c71f], a
+ call Function3ee3b
+ pop af
+ ld [$c664], a
+ ret
+; 3ceaa
+
+Function3ceaa: ; 3ceaa
+ ld a, [PartyCount]
+ ld b, a
+ ld hl, PartyMon1Species
+ ld c, $1
+ ld d, $0
+.asm_3ceb5
+ push hl
+ push bc
+ ld bc, $0022
+ add hl, bc
+ ld a, [hli]
+ or [hl]
+ pop bc
+ pop hl
+ jr z, .asm_3ced1
+ push hl
+ push bc
+ ld bc, $0001
+ add hl, bc
+ pop bc
+ ld a, [hl]
+ pop hl
+ cp $39
+ jr nz, .asm_3ced1
+ ld a, d
+ or c
+ ld d, a
+
+.asm_3ced1
+ sla c
+ push de
+ ld de, $0030
+ add hl, de
+ pop de
+ dec b
+ jr nz, .asm_3ceb5
+ ld a, d
+ ld e, $0
+ ld b, $6
+.asm_3cee1
+ srl a
+ jr nc, .asm_3cee6
+ inc e
+
+.asm_3cee6
+ dec b
+ jr nz, .asm_3cee1
+ ld a, e
+ and a
+ ret
+; 3ceec
+
+
+
+Function3ceec: ; 3ceec
+ xor a
+ ld [Danger], a
+ ret
+; 3cef1
+
+Function3cef1: ; 3cef1
+ call Function3ceec
+ call WaitSFX
+ ld a, $f0
+ ld [CryTracks], a
+ ld a, [BattleMonSpecies]
+ call Function37b6
+ call Function3d43b
+ ld hl, $c535
+ ld bc, $050b
+ call ClearBox
+ ld hl, BattleText_0x80a75
+ jp StdBattleTextBox
+; 3cf14
+
+Function3cf14: ; 3cf14
+ call WaitSFX
+ ld de, SFX_KINESIS
+ call PlaySFX
+ call Function3d432
+ ld de, SFX_UNKNOWN_2A
+ call PlaySFX
+ hlcoord 1, 0
+ ld bc, $040a
+ call ClearBox
+ ld hl, BattleText_0x809a8
+ jp StdBattleTextBox
+; 3cf35
+
+Function3cf35: ; 3cf35
+ ld a, [OTPartyCount]
+ ld b, a
+ xor a
+ ld hl, OTPartyMon1CurHP
+ ld de, $0030
+.asm_3cf40
+ or [hl]
+ inc hl
+ or [hl]
+ dec hl
+ add hl, de
+ dec b
+ jr nz, .asm_3cf40
+ and a
+ ret
+; 3cf4a
+
+Function3cf4a: ; 3cf4a
+ ld hl, EnemyHPPal
+ ld e, $30
+ call Function3e12e
+ call WaitBGMap
+ callba Function2c012
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3cf6d
+ call Function3e8e4
+ ld a, [$d430]
+ cp $f
+ ret z
+ call Function30b4
+
+.asm_3cf6d
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ ld a, $0
+ jr nz, asm_3cf78
+ inc a
+ ret
+
+asm_3cf78
+ push af
+ xor a
+ ld [$c718], a
+ call Function3d834
+ call Function3d867
+ call Function3dc18
+ pop af
+ and a
+ jr nz, .asm_3cf8f
+ call Function3d4e1
+ jr .asm_3cf92
+
+.asm_3cf8f
+ call asm_3d517
+
+.asm_3cf92
+ call Function3d57a
+ call SetEnemyTurn
+ call Function3dc23
+ xor a
+ ld [EnemyMoveAnimation], a
+ ld [$d0ec], a
+ inc a
+ ret
+; 3cfa4
+
+Function3cfa4: ; 3cfa4
+ call Function3ceec
+ ld a, $1
+ ld [$c6fd], a
+ ld [BattleEnded], a
+ ld a, [InLinkBattle]
+ and a
+ ld a, b
+ call z, Function3d0ea
+ callab Function39939
+ ld hl, BattleText_0x809da
+ call StdBattleTextBox
+ call Function3d2f1
+ jr z, .asm_3cff5
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+ ld a, [$cfc0]
+ bit 0, a
+ jr nz, .asm_3d006
+ call Function3ebd8
+ ld c, $28
+ call DelayFrames
+ ld a, [BattleType]
+ cp $1
+ jr nz, .asm_3cfe8
+ ld a, $2
+ call Predef
+
+.asm_3cfe8
+ ld a, [$c2cc]
+ bit 0, a
+ jr nz, .asm_3cff2
+ call Function3718
+
+.asm_3cff2
+ jp Function3d02b
+
+.asm_3cff5
+ call Function3ebd8
+ ld c, $28
+ call DelayFrames
+ ld c, $4
+ callba Function4ea0a
+ ret
+
+.asm_3d006
+ call Function3ebd8
+ ld c, $28
+ call DelayFrames
+ call EmptyBattleTextBox
+ ld c, $3
+ callba Function11c000
+ call Functiona80
+ ld hl, $c6ec
+ ld a, [hli]
+ or [hl]
+ inc hl
+ or [hl]
+ ret nz
+ call ClearTileMap
+ call WhiteBGMap
+ ret
+; 3d02b
+
+Function3d02b: ; 3d02b
+ ld a, [$c73d]
+ and a
+ call nz, Function3d099
+ call Function3d0b1
+ push af
+ ld a, $0
+ jr nc, .asm_3d044
+ ld a, [$d854]
+ and $7
+ cp $3
+ jr nz, .asm_3d044
+ inc a
+
+.asm_3d044
+ ld b, a
+ ld c, $4
+.asm_3d047
+ ld a, b
+ and a
+ jr z, .asm_3d052
+ call Function3d081
+ dec c
+ dec b
+ jr .asm_3d047
+
+.asm_3d052
+ ld a, c
+ and a
+ jr z, .asm_3d05c
+ call Function3d08d
+ dec c
+ jr .asm_3d052
+
+.asm_3d05c
+ call Function3d099
+ call Function3d099
+ pop af
+ jr nc, .asm_3d07b
+ ld a, [$d854]
+ and $7
+ jr z, .asm_3d07b
+ ld hl, SentToMomTexts
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp StdBattleTextBox
+
+.asm_3d07b
+ ld hl, BattleText_0x809be
+ jp StdBattleTextBox
+; 3d081
+
+Function3d081: ; 3d081
+ push bc
+ ld hl, $c688
+ ld de, $d853
+ call Function3d0be
+ pop bc
+ ret
+; 3d08d
+
+Function3d08d: ; 3d08d
+ push bc
+ ld hl, $c688
+ ld de, $d850
+ call Function3d0be
+ pop bc
+ ret
+; 3d099
+
+Function3d099: ; 3d099
+ ld hl, $c688
+ sla [hl]
+ dec hl
+ rl [hl]
+ dec hl
+ rl [hl]
+ ret nc
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ret
+; 3d0ab
+
+SentToMomTexts: ; 3d0ab
+ dw BattleText_0x809fc
+ dw BattleText_0x80a2a
+ dw BattleText_0x80a3d
+; 3d0b1
+
+
+Function3d0b1: ; 3d0b1
+ ld hl, $d853
+ ld a, [hld]
+ cp $3f
+ ld a, [hld]
+ sbc $42
+ ld a, [hl]
+ sbc $f
+ ret
+; 3d0be
+
+Function3d0be: ; 3d0be
+ ld c, $3
+ and a
+ push de
+ push hl
+ push bc
+ ld b, h
+ ld c, l
+ callba Function106008
+ pop bc
+ pop hl
+.asm_3d0ce
+ ld a, [de]
+ adc [hl]
+ ld [de], a
+ dec de
+ dec hl
+ dec c
+ jr nz, .asm_3d0ce
+ pop hl
+ ld a, [hld]
+ cp $3f
+ ld a, [hld]
+ sbc $42
+ ld a, [hl]
+ sbc $f
+ ret c
+ ld [hl], $f
+ inc hl
+ ld [hl], $42
+ inc hl
+ ld [hl], $3f
+ ret
+; 3d0ea
+
+Function3d0ea: ; 3d0ea
+ push de
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ ld de, MUSIC_WILD_VICTORY
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .asm_3d113
+ push de
+ call Function3ceaa
+ pop de
+ jr nz, .asm_3d11e
+ ld hl, $c6ec
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3d11e
+ ld a, [$c664]
+ and a
+ jr z, .asm_3d121
+ jr .asm_3d11e
+
+.asm_3d113
+ ld de, MUSIC_GYM_VICTORY
+ call IsJohtoGymLeader
+ jr c, .asm_3d11e
+ ld de, MUSIC_TRAINER_VICTORY
+
+.asm_3d11e
+ call PlayMusic
+
+.asm_3d121
+ pop de
+ ret
+; 3d123
+
+
+
+; These functions check if the current opponent is a gym leader or one of a
+; few other special trainers.
+
+; Note: KantoGymLeaders is a subset of JohtoGymLeaders. If you wish to
+; differentiate between the two, call IsKantoGymLeader first.
+
+; The Lance and Red entries are unused for music checks; those trainers are
+; accounted for elsewhere.
+
+IsKantoGymLeader: ; 0x3d123
+ ld hl, KantoGymLeaders
+ jr IsGymLeaderCommon
+
+IsJohtoGymLeader: ; 0x3d128
+ ld hl, JohtoGymLeaders
+IsGymLeaderCommon:
+ push de
+ ld a, [OtherTrainerClass]
+ ld de, $0001
+ call IsInArray
+ pop de
+ ret
+; 0x3d137
+
+JohtoGymLeaders:
+ db FALKNER
+ db WHITNEY
+ db BUGSY
+ db MORTY
+ db PRYCE
+ db JASMINE
+ db CHUCK
+ db CLAIR
+ db WILL
+ db BRUNO
+ db KAREN
+ db KOGA
+; fallthrough
+; these two entries are unused
+ db CHAMPION
+ db RED
+; fallthrough
+KantoGymLeaders:
+ db BROCK
+ db MISTY
+ db LT_SURGE
+ db ERIKA
+ db JANINE
+ db SABRINA
+ db BLAINE
+ db BLUE
+ db $ff
+
+
+Function3d14e: ; 3d14e
+ call Function3cef1
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ call z, Function3cf14
+ ld a, $1
+ ld [$c6f7], a
+ call Function3d1aa
+ call Function3d873
+ ld a, d
+ and a
+ jp z, LostBattle
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3d185
+ call Function3ce01
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .asm_3d17f
+ ld a, $1
+ ld [BattleEnded], a
+ ret
+
+.asm_3d17f
+ call Function3cf35
+ jp z, Function3cfa4
+
+.asm_3d185
+ call Function3d1f8
+ jr nc, .asm_3d190
+ ld a, $1
+ ld [BattleEnded], a
+ ret
+
+.asm_3d190
+ call Function3d227
+ call Function3d2e0
+ jp c, Function3c0e5
+ ld a, c
+ and a
+ ret nz
+ ld a, $1
+ ld [$d0ec], a
+ call Function3cf4a
+ jp z, Function3c0e5
+ jp asm_3cdca
+; 3d1aa
+
+Function3d1aa: ; 3d1aa
+ ld a, [CurBattleMon]
+ ld c, a
+ ld hl, $c664
+ ld b, $0
+ ld a, $3
+ call Predef
+ ld hl, EnemySubStatus3
+ res 2, [hl]
+ xor a
+ ld [Danger], a
+ ld hl, PlayerDamageTaken
+ ld [hli], a
+ ld [hl], a
+ ld [BattleMonStatus], a
+ call UpdateBattleMonInParty
+ ld c, $6
+ ld a, [BattleMonLevel]
+ add $1e
+ ld b, a
+ ld a, [EnemyMonLevel]
+ cp b
+ jr c, .asm_3d1dc
+ ld c, $8
+
+.asm_3d1dc
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ callab ChangeHappiness
+ ld a, [$d0ee]
+ and $c0
+ add $1
+ ld [$d0ee], a
+ ld a, [$c6f7]
+ and a
+ ret z
+ ret
+; 3d1f8
+
+Function3d1f8: ; 3d1f8
+ call EmptyBattleTextBox
+ call Function309d
+ ld a, [IsInBattle]
+ and a
+ dec a
+ ret nz
+ ld hl, BattleText_0x80a83
+ call StdBattleTextBox
+.asm_3d20a
+ lb bc, 1, 7
+ call PlaceYesNoBox
+ ld a, [$cfa9]
+ jr c, .asm_3d217
+ and a
+ ret
+
+.asm_3d217
+ ld a, [$cfa9]
+ cp $1
+ jr z, .asm_3d20a
+ ld hl, PartyMon1Spd
+ ld de, EnemyMonSpd
+ jp Function3d8b3
+; 3d227
+
+Function3d227: ; 3d227
+ call EmptyBattleTextBox
+ call Function1d6e
+ call Function3d2f7
+ call Function3d362
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3d241
+ ld a, $1
+ ld [$d0ec], a
+ call Function3e8e4
+
+.asm_3d241
+ xor a
+ ld [$d0ec], a
+ call Function3d2e0
+ jr c, .asm_3d251
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3d26c
+
+.asm_3d251
+ call ClearSprites
+ call WhiteBGMap
+ call Function3eda6
+ call Function1c07
+ call Function309d
+ call WaitBGMap
+ call ClearSGB
+ call Function32f9
+ xor a
+ ld c, a
+ ret
+
+.asm_3d26c
+ call ClearSprites
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ call Function3d581
+ call Function3da0d
+ call Function3dab1
+ call ClearPalettes
+ call DelayFrame
+ call Function3eda6
+ call Function1c17
+ call ClearSGB
+ call Function32f9
+ call Function3f26d
+ call Function3dbde
+ call Function3dc18
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ call SetPlayerTurn
+ call Function3dc23
+ ld a, $1
+ and a
+ ld c, a
+ ret
+; 3d2b3
+
+Function3d2b3: ; 3d2b3
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ call Function3d581
+ call Function3da0d
+ call Function3dab1
+ call Function3f26d
+ call Function3dbde
+ call Function3dc18
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ call SetPlayerTurn
+ jp Function3dc23
+; 3d2e0
+
+
+
+Function3d2e0: ; 3d2e0
+ ld a, [InLinkBattle]
+ cp $4
+ jr nz, .asm_3d2ef
+ ld a, [$cd2b]
+ and a
+ jr z, .asm_3d2ef
+ scf
+ ret
+
+.asm_3d2ef
+ xor a
+ ret
+; 3d2f1
+
+Function3d2f1: ; 3d2f1
+ ld a, [InLinkBattle]
+ cp $4
+ ret
+; 3d2f7
+
+Function3d2f7: ; 3d2f7
+ call WhiteBGMap
+Function3d2fa: ; 3d2fa
+ callba Function5004f
+ callba Function50405
+ callba Function8e85
+ callba Function503e0
+ ret
+; 3d313
+
+Function3d313: ; 3d313
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuText
+ call WaitBGMap
+ call Function32f9
+ call DelayFrame
+ ret
+; 3d329
+
+Function3d329: ; 3d329
+ call Function3d2f1
+ jr z, .asm_3d335
+ callba PartyMenuSelect
+ ret
+
+.asm_3d335
+ callba Function100cb5
+ ret
+; 3d33c
+
+Function3d33c: ; 3d33c
+.asm_3d33c
+ ld a, $2
+ ld [PartyMenuActionText], a
+ call Function3d313
+ call Function3d329
+ ret c
+ call Function3d887
+ jr z, .asm_3d33c
+ xor a
+ ret
+; 3d34f
+
+Function3d34f: ; 3d34f
+ ld hl, CurBattleMon
+ ld a, [CurPartyMon]
+ cp [hl]
+ jr nz, .asm_3d360
+ ld hl, BattleText_0x80c0d
+ call StdBattleTextBox
+ scf
+ ret
+
+.asm_3d360
+ xor a
+ ret
+; 3d362
+
+Function3d362: ; 3d362
+.asm_3d362
+ call Function3d33c
+ ret nc
+ call Function3d2e0
+ ret c
+ ld de, SFX_WRONG
+ call PlaySFX
+ call WaitSFX
+ jr .asm_3d362
+; 3d375
+
+
+
+Function3d375: ; 3d375
+.asm_3d375
+ call Function3d33c
+ ret c
+ call Function3d34f
+ jr c, .asm_3d375
+ xor a
+ ret
+; 3d380
+
+Function3d380: ; 3d380
+.asm_3d380
+ call Function3d362
+ call Function3d2e0
+ ret c
+ call Function3d34f
+ jr c, .asm_3d380
+ xor a
+ ret
+; 3d38e
+
+
+LostBattle: ; 3d38e
+ ld a, 1
+ ld [BattleEnded], a
+
+ ld a, [$cfc0]
+ bit 0, a
+ jr nz, .asm_3d3bd
+
+ ld a, [BattleType]
+ cp BATTLETYPE_CANLOSE
+ jr nz, .asm_3d3e3
+
+; Remove the enemy from the screen.
+ hlcoord 0, 0
+ ld bc, $0815
+ call ClearBox
+ call Function3ebd8
+
+ ld c, 40
+ call DelayFrames
+
+ ld a, [$c2cc]
+ bit 0, a
+ jr nz, .asm_3d3bc
+ call Function3718
+.asm_3d3bc
+ ret
+
+.asm_3d3bd
+; Remove the enemy from the screen.
+ hlcoord 0, 0
+ ld bc, $0815
+ call ClearBox
+ call Function3ebd8
+
+ ld c, 40
+ call DelayFrames
+
+ call EmptyBattleTextBox
+ ld c, 2
+ callba Function11c000
+ call Functiona80
+ call ClearTileMap
+ call WhiteBGMap
+ ret
+
+.asm_3d3e3
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .LostLinkBattle
+
+; Greyscale
+ ld b, 0
+ call GetSGBLayout
+ call Function32f9
+ jr .end
+
+.LostLinkBattle
+ call UpdateEnemyMonInParty
+ call Function3cf35
+ jr nz, .asm_3d40a
+ ld hl, TiedAgainstText
+ ld a, [$d0ee]
+ and $c0
+ add 2
+ ld [$d0ee], a
+ jr .asm_3d412
+
+.asm_3d40a
+ ld hl, LostAgainstText
+ call Function3d2f1
+ jr z, .asm_3d417
+
+.asm_3d412
+ call StdBattleTextBox
+
+.end
+ scf
+ ret
+
+.asm_3d417
+; Remove the enemy from the screen.
+ hlcoord 0, 0
+ ld bc, $0815
+ call ClearBox
+ call Function3ebd8
+
+ ld c, 40
+ call DelayFrames
+
+ ld c, $3
+ callba Function4ea0a
+ scf
+ ret
+; 3d432
+
+
+Function3d432: ; 3d432
+ ld hl, $c510
+ ld de, $c524
+ jp Function3d444
+; 3d43b
+
+Function3d43b: ; 3d43b
+ ld hl, $c569
+ ld de, $c57d
+ jp Function3d444
+; 3d444
+
+Function3d444: ; 3d444
+ ld a, [$cfbe]
+ push af
+ set 6, a
+ ld [$cfbe], a
+ ld b, $7
+.asm_3d44f
+ push bc
+ push de
+ push hl
+ ld b, $6
+.asm_3d454
+ push bc
+ push hl
+ push de
+ ld bc, $0007
+ call CopyBytes
+ pop de
+ pop hl
+ ld bc, -20
+ add hl, bc
+ push hl
+ ld h, d
+ ld l, e
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ pop bc
+ dec b
+ jr nz, .asm_3d454
+ ld bc, 20
+ add hl, bc
+ ld de, .Spaces
+ call PlaceString
+ ld c, 2
+ call DelayFrames
+ pop hl
+ pop de
+ pop bc
+ dec b
+ jr nz, .asm_3d44f
+ pop af
+ ld [$cfbe], a
+ ret
+; 3d488
+
+.Spaces
+ db " @"
+; 3d490
+
+
+Function3d490: ; 3d490
+ ld [hConnectionStripLength], a
+ ld c, a
+.asm_3d493
+ push bc
+ push hl
+ ld b, $7
+.asm_3d497
+ push hl
+ call Function3d4ae
+ pop hl
+ ld de, 20
+ add hl, de
+ dec b
+ jr nz, .asm_3d497
+ ld c, 2
+ call DelayFrames
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_3d493
+ ret
+; 3d4ae
+
+Function3d4ae: ; 3d4ae
+ ld a, [hConnectionStripLength]
+ ld c, a
+ cp $8
+ jr nz, .asm_3d4bc
+.asm_3d4b5
+ ld a, [hli]
+ ld [hld], a
+ dec hl
+ dec c
+ jr nz, .asm_3d4b5
+ ret
+
+.asm_3d4bc
+ ld a, [hld]
+ ld [hli], a
+ inc hl
+ dec c
+ jr nz, .asm_3d4bc
+ ret
+; 3d4c3
+
+
+Function3d4c3: ; 3d4c3
+ call Function3d557
+ ld a, [$c718]
+ dec a
+ ld b, a
+ call Function3d6ca
+ call Function3d7a0
+ call Function3d834
+ call Function3d867
+ call Function3d7c7
+ call Function3dc18
+ call Function3d57a
+ ret
+; 3d4e1
+
+
+Function3d4e1: ; 3d4e1
+ call Function3d714
+ jr nc, asm_3d517
+ call Function3d557
+ call Function3d533
+ jr c, .asm_3d4f1
+ call Function3d599
+
+.asm_3d4f1
+ call Function3d6ca
+ call Function3d74b
+ push af
+ call Function3d7a0
+ call Function3d7b8
+ call Function3d7c7
+ pop af
+ ret c
+ xor a
+ ld [$c664], a
+ ld [$c6fc], a
+ ld [$d0ec], a
+ inc a
+ ld [$c711], a
+ call Function309d
+ jp Function3e3ad
+
+asm_3d517
+ call Function3d557
+ call Function3d533
+ jr c, .asm_3d522
+ call Function3d599
+
+.asm_3d522
+ call Function3d6ca
+ ld a, $1
+ ld [$c711], a
+ call Function3d7a0
+ call Function3d7b8
+ jp Function3d7c7
+; 3d533
+
+Function3d533: ; 3d533
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3d541
+ ld a, [$d430]
+ sub $4
+ ld b, a
+ jr .asm_3d555
+
+.asm_3d541
+ ld a, [$c718]
+ and a
+ jr z, .asm_3d54b
+ dec a
+ ld b, a
+ jr .asm_3d555
+
+.asm_3d54b
+ ld a, [$d264]
+ and a
+ ld b, $0
+ jr nz, .asm_3d555
+ and a
+ ret
+
+.asm_3d555
+ scf
+ ret
+; 3d557
+
+Function3d557: ; 3d557
+ xor a
+ ld [LastEnemyCounterMove], a
+ ld [LastPlayerCounterMove], a
+ ld [LastEnemyMove], a
+ ld [CurEnemyMove], a
+ dec a
+ ld [$c6e6], a
+ xor a
+ ld [$c730], a
+ ld hl, $c4b2
+ ld a, $8
+ call Function3d490
+ call EmptyBattleTextBox
+ jp Function1d6e
+; 3d57a
+
+Function3d57a: ; 3d57a
+ xor a
+ ld [$c664], a
+ ld [$c6fc], a
+Function3d581: ; 3d581
+ ld a, [CurBattleMon]
+ ld c, a
+ ld hl, $c664
+ ld b, $1
+ push bc
+ ld a, $3
+ call Predef
+ pop bc
+ ld hl, $c6fc
+ ld a, $3
+ jp Predef
+; 3d599
+
+Function3d599: ; 3d599
+ ld b, $ff
+ ld a, $1
+ ld [Buffer1], a
+ ld [Buffer2], a
+.asm_3d5a3
+ ld hl, Buffer1
+ sla [hl]
+ inc hl
+ sla [hl]
+ inc b
+ ld a, [OTPartyCount]
+ cp b
+ jp z, Function3d672
+ ld a, [CurOTMon]
+ cp b
+ jr z, .asm_3d5d0
+ ld hl, OTPartyMon1CurHP
+ push bc
+ ld a, b
+ call GetPartyLocation
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ or c
+ pop bc
+ jr z, .asm_3d5d0
+ call Function3d5d7
+ call Function3d618
+ jr .asm_3d5a3
+
+.asm_3d5d0
+ ld hl, Buffer2
+ set 0, [hl]
+ jr .asm_3d5a3
+; 3d5d7
+
+Function3d5d7: ; 3d5d7
+ push bc
+ ld hl, OTPartyMon1Move1
+ ld a, b
+ call GetPartyLocation
+ pop bc
+ ld e, $5
+.asm_3d5e2
+ dec e
+ jr z, .asm_3d617
+ ld a, [hli]
+ and a
+ jr z, .asm_3d617
+ push hl
+ push de
+ push bc
+ dec a
+ ld hl, $5afb
+ ld bc, $0007
+ call AddNTimes
+ ld de, EnemyMoveAnimation
+ ld a, $10
+ call FarCopyBytes
+ call SetEnemyTurn
+ callab Function0x347c8
+ pop bc
+ pop de
+ pop hl
+ ld a, [$d265]
+ cp $b
+ jr c, .asm_3d5e2
+ ld hl, Buffer1
+ set 0, [hl]
+ ret
+
+.asm_3d617
+ ret
+; 3d618
+
+Function3d618: ; 3d618
+ push bc
+ ld hl, OTPartyCount
+ ld a, b
+ inc a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ dec a
+ ld hl, $542b
+ ld bc, $0020
+ call AddNTimes
+ ld de, EnemyMonType1
+ ld bc, $0002
+ ld a, $14
+ call FarCopyBytes
+ ld a, [BattleMonType1]
+ ld [PlayerMoveType], a
+ call SetPlayerTurn
+ callab Function0x347c8
+ ld a, [$d265]
+ cp $b
+ jr nc, .asm_3d663
+ ld a, [BattleMonType2]
+ ld [PlayerMoveType], a
+ callab Function0x347c8
+ ld a, [$d265]
+ cp $b
+ jr nc, .asm_3d663
+ pop bc
+ ret
+
+.asm_3d663
+ pop bc
+ ld hl, Buffer1
+ bit 0, [hl]
+ jr nz, .asm_3d66f
+ inc hl
+ set 0, [hl]
+ ret
+
+.asm_3d66f
+ res 0, [hl]
+ ret
+; 3d672
+
+Function3d672: ; 3d672
+.asm_3d672
+ ld hl, Buffer1
+ sla [hl]
+ inc hl
+ sla [hl]
+ jr nc, .asm_3d672
+ ld a, [OTPartyCount]
+ ld b, a
+ ld c, [hl]
+.asm_3d681
+ sla c
+ jr nc, .asm_3d68a
+ dec b
+ jr z, .asm_3d6a7
+ jr .asm_3d681
+
+.asm_3d68a
+ ld a, [Buffer1]
+ and a
+ jr z, .asm_3d69a
+ ld b, $ff
+ ld c, a
+.asm_3d693
+ inc b
+ sla c
+ jr nc, .asm_3d693
+ jr .asm_3d6c9
+
+.asm_3d69a
+ ld b, $ff
+ ld a, [Buffer2]
+ ld c, a
+.asm_3d6a0
+ inc b
+ sla c
+ jr c, .asm_3d6a0
+ jr .asm_3d6c9
+
+.asm_3d6a7
+ ld a, [OTPartyCount]
+ ld b, a
+ call BattleRandom
+ and $7
+ cp b
+ jr nc, .asm_3d6a7
+ ld b, a
+ ld a, [CurOTMon]
+ cp b
+ jr z, .asm_3d6a7
+ ld hl, OTPartyMon1CurHP
+ push bc
+ ld a, b
+ call GetPartyLocation
+ pop bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ or c
+ jr z, .asm_3d6a7
+
+.asm_3d6c9
+ ret
+; 3d6ca
+
+Function3d6ca: ; 3d6ca
+ ld a, b
+ ld [CurPartyMon], a
+ ld hl, OTPartyMon1Level
+ call GetPartyLocation
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld a, [CurPartyMon]
+ inc a
+ ld hl, OTPartyCount
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [TempEnemyMonSpecies], a
+ ld [CurPartySpecies], a
+ call LoadEnemyMon
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr nz, .asm_3d708
+ ld a, [$def4]
+ and a
+ jr nz, .asm_3d708
+ ld hl, EnemyMonAtkDefDV
+ ld a, $2d
+ call Predef
+ ld a, [UnownLetter]
+ ld [$def4], a
+
+.asm_3d708
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ ld [$c6ea], a
+ ld a, [hl]
+ ld [$c6eb], a
+ ret
+; 3d714
+
+Function3d714: ; 3d714
+ ld a, [$d264]
+ dec a
+ jp z, .asm_3d749
+ ld a, [PartyCount]
+ dec a
+ jp z, .asm_3d749
+ ld a, [InLinkBattle]
+ and a
+ jp nz, .asm_3d749
+ ld a, [Options]
+ bit 6, a
+ jr nz, .asm_3d749
+ ld a, [CurPartyMon]
+ push af
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ callba Functione538
+ pop bc
+ ld a, b
+ ld [CurPartyMon], a
+ jr c, .asm_3d749
+ scf
+ ret
+
+.asm_3d749
+ and a
+ ret
+; 3d74b
+
+Function3d74b: ; 3d74b
+ ld a, [CurPartyMon]
+ push af
+ callab Function39939
+ ld hl, BattleText_0x80aca
+ call StdBattleTextBox
+ lb bc, 1, 7
+ call PlaceYesNoBox
+ ld a, [$cfa9]
+ dec a
+ jr nz, .asm_3d79a
+ call Function3d2f7
+ call Function3d375
+ jr c, .asm_3d791
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ call ClearPalettes
+ call DelayFrame
+ call Function3eda6
+ pop af
+ ld [CurPartyMon], a
+ xor a
+ ld [CurEnemyMove], a
+ ld [CurPlayerMove], a
+ and a
+ ret
+
+.asm_3d791
+ call ClearPalettes
+ call DelayFrame
+ call Function3eda6
+
+.asm_3d79a
+ pop af
+ ld [CurPartyMon], a
+ scf
+ ret
+; 3d7a0
+
+Function3d7a0: ; 3d7a0
+ xor a
+ ld [hBGMapMode], a
+ call Function1c07
+ call ClearSprites
+ ld hl, $c4a1
+ ld bc, $040a
+ call ClearBox
+ call WaitBGMap
+ jp Function3ee27
+; 3d7b8
+
+Function3d7b8: ; 3d7b8
+ callab Function39939
+ ld hl, BattleText_0x80af8
+ call StdBattleTextBox
+ jp WaitBGMap
+; 3d7c7
+
+Function3d7c7: ; 3d7c7
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, $1
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ call Function3f47c
+ xor a
+ ld [$cfca], a
+ ld [$c689], a
+ call SetEnemyTurn
+ ld de, $0101
+ call Function3ee17
+ call Function3da79
+ jr nc, .asm_3d800
+ ld a, $1
+ ld [$c689], a
+ ld de, $0101
+ call Function3ee17
+
+.asm_3d800
+ ld bc, TempMonSpecies
+ callba Function4e53f
+ jr c, .asm_3d82c
+ callba CheckBattleScene
+ jr c, .asm_3d821
+ ld hl, $c4ac
+ ld d, $0
+ ld e, $0
+ ld a, $47
+ call Predef
+ jr .asm_3d82c
+
+.asm_3d821
+ ld a, $f
+ ld [CryTracks], a
+ ld a, [TempEnemyMonSpecies]
+ call Function37b6
+
+.asm_3d82c
+ call Function3e036
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 3d834
+
+Function3d834: ; 3d834
+ xor a
+ ld [LastEnemyCounterMove], a
+ ld [LastPlayerCounterMove], a
+ ld [LastEnemyMove], a
+ ld hl, EnemySubStatus1
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld [EnemyDisableCount], a
+ ld [EnemyFuryCutterCount], a
+ ld [$c681], a
+ ld [$c72c], a
+ ld [EnemyDisabledMove], a
+ ld [$c6fa], a
+ ld [$c730], a
+ ld [$c731], a
+ ld [EnemyTurnsTaken], a
+ ld hl, PlayerSubStatus5
+ res 7, [hl]
+ ret
+; 3d867
+
+Function3d867: ; 3d867
+ ld a, $7
+ ld b, $8
+ ld hl, EnemyAtkLevel
+.asm_3d86e
+ ld [hli], a
+ dec b
+ jr nz, .asm_3d86e
+ ret
+; 3d873
+
+Function3d873: ; 3d873
+ ld a, [PartyCount]
+ ld e, a
+ xor a
+ ld hl, PartyMon1CurHP
+ ld bc, $002f
+.asm_3d87e
+ or [hl]
+ inc hl
+ or [hl]
+ add hl, bc
+ dec e
+ jr nz, .asm_3d87e
+ ld d, a
+ ret
+; 3d887
+
+
+Function3d887: ; 3d887
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1CurHP
+ call GetPartyLocation
+ ld a, [hli]
+ or [hl]
+ ret nz
+ ld a, [$d264]
+ and a
+ jr nz, .asm_3d8b1
+ ld hl, PartySpecies
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hl]
+ cp EGG
+ ld hl, BattleText_0x80b26
+ jr z, .asm_3d8ae
+ ld hl, BattleText_0x80b0b
+
+.asm_3d8ae
+ call StdBattleTextBox
+
+.asm_3d8b1
+ xor a
+ ret
+; 3d8b3
+
+
+Function3d8b3: ; 3d8b3
+ ld a, [BattleType]
+ cp $2
+ jp z, .asm_3d9a2
+ cp $6
+ jp z, .asm_3d9a2
+ cp $9
+ jp z, .asm_3d98d
+ cp $b
+ jp z, .asm_3d98d
+ cp $7
+ jp z, .asm_3d98d
+ cp $c
+ jp z, .asm_3d98d
+
+ ld a, [InLinkBattle]
+ and a
+ jp nz, .asm_3d9a2
+
+ ld a, [IsInBattle]
+ dec a
+ jp nz, .asm_3d992
+
+ ld a, [EnemySubStatus5]
+ bit 7, a
+ jp nz, .asm_3d98d
+
+ ld a, [$c730]
+ and a
+ jp nz, .asm_3d98d
+
+ push hl
+ push de
+ ld a, [BattleMonItem]
+ ld [$d265], a
+ ld b, a
+ callab GetItem
+ ld a, b
+ cp $48
+ pop de
+ pop hl
+ jr nz, .asm_3d916
+
+ call SetPlayerTurn
+ call GetItemName
+ ld hl, BattleText_0x80b89
+ call StdBattleTextBox
+ jp .asm_3d9a2
+
+.asm_3d916
+ ld a, [$d267]
+ inc a
+ ld [$d267], a
+ ld a, [hli]
+ ld [$ffb5], a
+ ld a, [hl]
+ ld [$ffb6], a
+ ld a, [de]
+ inc de
+ ld [$ffb1], a
+ ld a, [de]
+ ld [$ffb2], a
+ call Function30b4
+ ld de, $ffb5
+ ld hl, $ffb1
+ ld c, $2
+ call StringCmp
+ jr nc, .asm_3d9a2
+ xor a
+ ld [hMultiplicand], a
+ ld a, $20
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [$ffb5]
+ ld [hProduct], a
+ ld a, [$ffb6]
+ ld [hMultiplicand], a
+ ld a, [$ffb1]
+ ld b, a
+ ld a, [$ffb2]
+ srl b
+ rr a
+ srl b
+ rr a
+ and a
+ jr z, .asm_3d9a2
+ ld [hMultiplier], a
+ ld b, $2
+ call Divide
+ ld a, [$ffb5]
+ and a
+ jr nz, .asm_3d9a2
+ ld a, [$d267]
+ ld c, a
+.asm_3d96c
+ dec c
+ jr z, .asm_3d97a
+ ld b, $1e
+ ld a, [$ffb6]
+ add b
+ ld [$ffb6], a
+ jr c, .asm_3d9a2
+ jr .asm_3d96c
+
+.asm_3d97a
+ call BattleRandom
+ ld b, a
+ ld a, [$ffb6]
+ cp b
+ jr nc, .asm_3d9a2
+ ld a, $1
+ ld [$d0ec], a
+ ld hl, BattleText_0x80b3b
+ jr .asm_3d995
+
+.asm_3d98d
+ ld hl, BattleText_0x80ba0
+ jr .asm_3d995
+
+.asm_3d992
+ ld hl, BattleText_0x80b49
+
+.asm_3d995
+ call StdBattleTextBox
+ ld a, $1
+ ld [$d266], a
+ call Function309d
+ and a
+ ret
+
+.asm_3d9a2
+ ld a, [InLinkBattle]
+ and a
+ ld a, $2
+ jr z, .asm_3d9cf
+ call Function309d
+ xor a
+ ld [$d0ec], a
+ ld a, $f
+ ld [CurMoveNum], a
+ xor a
+ ld [CurPlayerMove], a
+ call Function3e8e4
+ call Function30b4
+ call Function3d2e0
+ jr c, .asm_3d9f5
+
+; Got away safely
+ ld a, [$d430]
+ cp $f
+ ld a, $2
+ jr z, .asm_3d9cf
+ dec a
+.asm_3d9cf
+ ld b, a
+ ld a, [$d0ee]
+ and $c0
+ add b
+ ld [$d0ee], a
+ call Function3ceec
+ push de
+ ld de, SFX_RUN
+ call WaitPlaySFX
+ pop de
+ call WaitSFX
+ ld hl, BattleText_0x80b77
+ call StdBattleTextBox
+ call WaitSFX
+ call Function309d
+ scf
+ ret
+
+.asm_3d9f5
+ call Function3ceec
+ ld hl, $cd2a
+ bit 4, [hl]
+ jr nz, .asm_3da05
+ ld hl, BattleText_0x81863
+ call StdBattleTextBox
+
+.asm_3da05
+ call WaitSFX
+ call Function309d
+ scf
+ ret
+; 3da0d
+
+
+Function3da0d: ; 3da0d
+ ld a, $0
+ call GetPartyParamLocation
+ ld de, BattleMonSpecies
+ ld bc, $0006
+ call CopyBytes
+ ld bc, $000f
+ add hl, bc
+ ld de, BattleMonAtkDefDV
+ ld bc, $0007
+ call CopyBytes
+ inc hl
+ inc hl
+ inc hl
+ ld de, BattleMonLevel
+ ld bc, $0011
+ call CopyBytes
+ ld a, [BattleMonSpecies]
+ ld [TempBattleMonSpecies], a
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseType1]
+ ld [BattleMonType1], a
+ ld a, [BaseType2]
+ ld [BattleMonType2], a
+ ld hl, PartyMon1Nickname
+ ld a, [CurBattleMon]
+ call SkipNames
+ ld de, BattleMonNick
+ ld bc, $000b
+ call CopyBytes
+ ld hl, BattleMonAtk
+ ld de, PlayerStats
+ ld bc, $000a
+ call CopyBytes
+ call Function3ec2c
+ call BadgeStatBoosts
+ ret
+; 3da74
+
+Function3da74: ; 3da74
+ call Function3da85
+ jr asm_3da7c
+
+Function3da79: ; 3da79
+ call Function3da97
+
+asm_3da7c
+ ld b, h
+ ld c, l
+ callab CheckShininess
+ ret
+; 3da85
+
+Function3da85: ; 3da85
+ ld hl, BattleMonAtkDefDV
+ ld a, [PlayerSubStatus5]
+ bit 3, a
+ ret z
+ ld hl, PartyMon1DVs
+ ld a, [CurBattleMon]
+ jp GetPartyLocation
+; 3da97
+
+Function3da97: ; 3da97
+ ld hl, EnemyMonAtkDefDV
+ ld a, [EnemySubStatus5]
+ bit 3, a
+ ret z
+ ld hl, $c6f2
+ ld a, [IsInBattle]
+ dec a
+ ret z
+ ld hl, OTPartyMon1AtkDefDV
+ ld a, [CurOTMon]
+ jp GetPartyLocation
+; 3dab1
+
+Function3dab1: ; 3dab1
+ ld a, $7
+ ld b, $8
+ ld hl, PlayerAtkLevel
+.asm_3dab8
+ ld [hli], a
+ dec b
+ jr nz, .asm_3dab8
+ ret
+; 3dabd
+
+
+Function3dabd: ; 3dabd
+ ld a, [CurPartyMon]
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ ld de, EnemyMonSpecies
+ ld bc, $0006
+ call CopyBytes
+ ld bc, $000f
+ add hl, bc
+ ld de, EnemyMonAtkDefDV
+ ld bc, $0007
+ call CopyBytes
+ inc hl
+ inc hl
+ inc hl
+ ld de, EnemyMonLevel
+ ld bc, $0011
+ call CopyBytes
+ ld a, [EnemyMonSpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, OTPartyMon1Nickname
+ ld a, [CurPartyMon]
+ call SkipNames
+ ld de, EnemyMonNick
+ ld bc, $000b
+ call CopyBytes
+ ld hl, EnemyMonAtk
+ ld de, EnemyStats
+ ld bc, $000a
+ call CopyBytes
+ call Function3ec30
+ ld hl, BaseType1
+ ld de, EnemyMonType1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ld hl, BaseHP
+ ld de, EnemyMonBaseStats
+ ld b, $5
+.asm_3db25
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_3db25
+ ld a, [CurPartyMon]
+ ld [CurOTMon], a
+ ret
+; 3db32
+
+
+Function3db32: ; 3db32
+ call ClearSprites
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ call Function3d581
+ call Function3da0d
+ call Function3dab1
+ call Function3dbde
+ call Function3dc18
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ ret
+; 3db5f
+
+
+Function3db5f: ; 3db5f
+ ld hl, BattleMonAtkDefDV
+ ld a, $2d
+ call Predef
+ ld hl, $c505
+ ld b, $7
+ ld c, $8
+ call ClearBox
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ call Function3f43d
+ xor a
+ ld [$ffad], a
+ ld [$d0d2], a
+ ld [CurMoveNum], a
+ ld [TypeModifier], a
+ ld [PlayerMoveAnimation], a
+ ld [LastEnemyCounterMove], a
+ ld [LastPlayerCounterMove], a
+ ld [LastPlayerMove], a
+ call Function3e4a8
+ call Function3ee27
+ xor a
+ ld [$c731], a
+ call SetPlayerTurn
+ xor a
+ ld [$cfca], a
+ ld [$c689], a
+ ld de, $0101
+ call Function3ee17
+ call Function3da74
+ jr nc, .asm_3dbbc
+ ld a, $1
+ ld [$c689], a
+ ld de, $0101
+ call Function3ee17
+
+.asm_3dbbc
+ ld a, $0
+ call GetPartyParamLocation
+ ld b, h
+ ld c, l
+ callba Function4e53f
+ jr c, .asm_3dbd6
+ ld a, $f0
+ ld [CryTracks], a
+ ld a, [CurPartySpecies]
+ call Function37b6
+
+.asm_3dbd6
+ call Function3df48
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 3dbde
+
+Function3dbde: ; 3dbde
+ xor a
+ ld [LastEnemyCounterMove], a
+ ld [LastPlayerCounterMove], a
+ ld [LastPlayerMove], a
+ ld hl, PlayerSubStatus1
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, PlayerUsedMoves
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld [PlayerDisableCount], a
+ ld [PlayerFuryCutterCount], a
+ ld [$c679], a
+ ld [$c72b], a
+ ld [DisabledMove], a
+ ld [$c6fe], a
+ ld [$c731], a
+ ld [$c730], a
+ ld [PlayerTurnsTaken], a
+ ld hl, EnemySubStatus5
+ res 7, [hl]
+ ret
+; 3dc18
+
+Function3dc18: ; 3dc18
+ ld hl, PlayerSubStatus1
+ res 7, [hl]
+ ld hl, EnemySubStatus1
+ res 7, [hl]
+ ret
+; 3dc23
+
+Function3dc23: ; 3dc23
+ ld hl, PlayerScreens
+ ld de, BattleMonType1
+ ld bc, Function3df48
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3dc3a
+ ld hl, EnemyScreens
+ ld de, EnemyMonType1
+ ld bc, Function3e036
+
+.asm_3dc3a
+ bit 0, [hl]
+ ret z
+ ld a, [de]
+ cp $2
+ ret z
+ inc de
+ ld a, [de]
+ cp $2
+ ret z
+ push bc
+ ld hl, BattleText_0x80bae
+ call StdBattleTextBox
+ call GetEighthMaxHP
+ call Function3cc39
+ pop hl
+ call Function3dc5a
+ jp WaitBGMap
+; 3dc5a
+
+Function3dc5a: ; 3dc5a
+ jp [hl]
+; 3dc5b
+
+Function3dc5b: ; 3dc5b
+ ld a, $10
+ call GetBattleVar
+ ld b, a
+ call Function3c5ec
+ ld a, b
+ cp $80
+ jr nz, .asm_3dce4
+ ld a, [CurBattleMon]
+ push af
+ ld hl, DoPlayerTurn
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3dc7e
+ ld hl, DoEnemyTurn
+ ld a, [$c71a]
+ ld [CurBattleMon], a
+
+.asm_3dc7e
+ ld a, BANK(DoPlayerTurn)
+ rst FarCall
+ ld a, $10
+ call _GetBattleVar
+ ld a, $ff
+ ld [hl], a
+ pop af
+ ld [CurBattleMon], a
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3dcc0
+ ld a, [$c71a]
+ call Function399f
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3dce4
+ ld a, $f0
+ ld [CryTracks], a
+ ld a, [BattleMonSpecies]
+ call Function37b6
+ ld a, [$c71a]
+ ld c, a
+ ld hl, $c664
+ ld b, $0
+ ld a, $3
+ call Predef
+ call Function3d43b
+ ld hl, BattleText_0x80a75
+ jr .asm_3dcdf
+
+.asm_3dcc0
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3dce4
+ ld de, SFX_KINESIS
+ call PlaySFX
+ call WaitSFX
+ ld de, SFX_UNKNOWN_2A
+ call PlaySFX
+ call WaitSFX
+ call Function3d432
+ ld hl, BattleText_0x809a8
+
+.asm_3dcdf
+ call StdBattleTextBox
+ scf
+ ret
+
+.asm_3dce4
+ and a
+ ret
+; 3dce6
+
+Function3dce6: ; 3dce6
+ ld a, [hBattleTurn]
+ push af
+ xor a
+ ld [hBattleTurn], a
+ ld [$cfca], a
+ ld de, $0102
+ call Function3ee17
+ pop af
+ ld [hBattleTurn], a
+ ret
+; 3dcf9
+
+Function3dcf9: ; 3dcf9
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3dd17
+ call SetPlayerTurn
+ call Function3dd2f
+ call Function3dde9
+ call Function3de51
+ call SetEnemyTurn
+ call Function3dd2f
+ call Function3dde9
+ jp Function3de51
+
+.asm_3dd17
+ call SetEnemyTurn
+ call Function3dd2f
+ call Function3dde9
+ call Function3de51
+ call SetPlayerTurn
+ call Function3dd2f
+ call Function3dde9
+ jp Function3de51
+; 3dd2f
+
+Function3dd2f: ; 3dd2f
+ callab GetOpponentItem
+ ld a, b
+ cp $1
+ ret nz
+ ld de, EnemyMonHPLo
+ ld hl, EnemyMonMaxHPHi
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3dd4a
+ ld de, $c63d
+ ld hl, BattleMonMaxHP
+
+.asm_3dd4a
+ push bc
+ ld a, [de]
+ ld [$d1ec], a
+ add a
+ ld c, a
+ dec de
+ ld a, [de]
+ inc de
+ ld [$d1ed], a
+ adc a
+ ld b, a
+ ld a, b
+ cp [hl]
+ ld a, c
+ pop bc
+ jr z, .asm_3dd62
+ jr c, .asm_3dd66
+ ret
+
+.asm_3dd62
+ inc hl
+ cp [hl]
+ dec hl
+ ret nc
+
+.asm_3dd66
+ call Function3ddc8
+ ld a, [hli]
+ ld [Buffer2], a
+ ld a, [hl]
+ ld [Buffer1], a
+ ld a, [de]
+ add c
+ ld [$d1ee], a
+ ld c, a
+ dec de
+ ld a, [de]
+ adc $0
+ ld [$d1ef], a
+ ld b, a
+ ld a, [hld]
+ cp c
+ ld a, [hl]
+ sbc b
+ jr nc, .asm_3dd8d
+ ld a, [hli]
+ ld [$d1ef], a
+ ld a, [hl]
+ ld [$d1ee], a
+
+.asm_3dd8d
+ ld a, [$d1ef]
+ ld [de], a
+ inc de
+ ld a, [$d1ee]
+ ld [de], a
+ ld a, [hBattleTurn]
+ ld [$d10a], a
+ and a
+ ld hl, $c4ca
+ jr z, .asm_3dda4
+ ld hl, $c55e
+
+.asm_3dda4
+ ld [$d10a], a
+ ld a, $b
+ call Predef
+Function3ddac:
+ call RefreshBattleHuds
+ callab GetOpponentItem
+ ld a, [hl]
+ ld [$d265], a
+ call GetItemName
+ callab Function27192
+ ld hl, RecoveredUsingText
+ jp StdBattleTextBox
+; 3ddc8
+
+
+Function3ddc8: ; 3ddc8
+ push hl
+ push de
+ push bc
+ call EmptyBattleTextBox
+ ld a, $69
+ ld [FXAnimIDLo], a
+ call Function3c8e4
+ xor a
+ ld [$cfca], a
+ ld [FXAnimIDHi], a
+ ld a, $37
+ call Predef
+ call Function3c8e4
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3dde9
+
+Function3dde9: ; 3dde9
+ callab GetOpponentItem
+ ld hl, .Statuses
+.asm_3ddf2
+ ld a, [hli]
+ cp $ff
+ ret z
+ inc hl
+ cp b
+ jr nz, .asm_3ddf2
+ dec hl
+ ld b, [hl]
+ ld a, $b
+ call _GetBattleVar
+ and b
+ ret z
+ xor a
+ ld [hl], a
+ push bc
+ call UpdateOpponentInParty
+ pop bc
+ ld a, $9
+ call _GetBattleVar
+ and [hl]
+ res 0, [hl]
+ ld a, $5
+ call _GetBattleVar
+ and [hl]
+ res 0, [hl]
+ ld a, b
+ cp $7f
+ jr nz, .asm_3de26
+ ld a, $7
+ call _GetBattleVar
+ res 7, [hl]
+
+.asm_3de26
+ ld hl, Function0x365fd
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3de31
+ ld hl, Function0x365d7
+
+.asm_3de31
+ call Function3c8e4
+ ld a, BANK(Function0x365fd)
+ rst FarCall
+ call Function3c8e4
+ call Function3ddc8
+ call Function3ddac
+ ld a, $1
+ and a
+ ret
+; 3de44
+
+.Statuses ; 3de44
+ db HELD_HEAL_POISON, 1 << PSN
+ db HELD_HEAL_FREEZE, 1 << FRZ
+ db HELD_HEAL_BURN, 1 << BRN
+ db HELD_HEAL_SLEEP, SLP
+ db HELD_HEAL_PARALYZE, 1 << PAR
+ db HELD_HEAL_STATUS, 1 << PSN | 1 << FRZ | 1 << BRN | SLP | 1 << PAR
+ db $ff
+; 3de51
+
+
+Function3de51: ; 3de51
+ ld a, $7
+ call GetBattleVar
+ bit 7, a
+ ret z
+ callab GetOpponentItem
+ ld a, b
+ cp $10
+ jr z, .asm_3de67
+ cp $f
+ ret nz
+
+.asm_3de67
+ ld a, [hl]
+ ld [$d265], a
+ ld a, $7
+ call _GetBattleVar
+ res 7, [hl]
+ call GetItemName
+ call Function3ddc8
+ ld hl, BattleText_0x80dab
+ call StdBattleTextBox
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .asm_3de90
+ call Function3df1f
+ xor a
+ ld [bc], a
+ ld a, [IsInBattle]
+ dec a
+ ret z
+ ld [hl], $0
+ ret
+
+.asm_3de90
+ call Function3df12
+ xor a
+ ld [bc], a
+ ld [hl], a
+ ret
+; 3de97
+
+Function3de97: ; 3de97
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3dea3
+ call Function3dea9
+ jp Function3deb1
+
+.asm_3dea3
+ call Function3deb1
+ jp Function3dea9
+; 3dea9
+
+Function3dea9: ; 3dea9
+ call Function3df12
+ ld a, $0
+ jp Function3deb6
+; 3deb1
+
+Function3deb1: ; 3deb1
+ call Function3df1f
+ ld a, $1
+Function3deb6: ; 3deb6
+ ld [hBattleTurn], a
+ ld d, h
+ ld e, l
+ push de
+ push bc
+ ld a, [bc]
+ ld b, a
+ callab GetItem
+ ld hl, .data_3defc
+.asm_3dec7
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_3def9
+ inc hl
+ inc hl
+ cp b
+ jr nz, .asm_3dec7
+ pop bc
+ ld a, [bc]
+ ld [$d265], a
+ push bc
+ dec hl
+ dec hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, BANK(BattleCommand70)
+ rst FarCall
+ pop bc
+ pop de
+ ld a, [FailedMessage]
+ and a
+ ret nz
+ xor a
+ ld [bc], a
+ ld [de], a
+ call GetItemName
+ ld hl, BattleText_0x80bde
+ call StdBattleTextBox
+ callab BattleCommand8c
+ ret
+
+.asm_3def9
+ pop bc
+ pop de
+ ret
+; 3defc
+
+.data_3defc
+ dbw $1f, BattleCommand70
+ dbw $20, BattleCommand71
+ dbw $21, BattleCommand72
+ dbw $22, BattleCommand73
+ dbw $23, BattleCommand74
+ dbw $24, BattleCommand75
+ dbw $25, BattleCommand76
+ db $ff
+; 3df12
+
+
+Function3df12: ; 3df12
+ ld hl, PartyMon1Item
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ ld bc, BattleMonItem
+ ret
+; 3df1f
+
+Function3df1f: ; 3df1f
+ ld hl, OTPartyMon1Item
+ ld a, [CurOTMon]
+ call GetPartyLocation
+ ld bc, EnemyMonItem
+ ret
+; 3df2c
+
+Function3df2c: ; 3df2c
+ push hl
+ push de
+ push bc
+ call DrawPlayerHUD
+ ld hl, PlayerHPPal
+ call SetHPPal
+ call CheckDanger
+ call Function3e043
+ ld hl, EnemyHPPal
+ call SetHPPal
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3df48
+
+
+
+Function3df48: ; 3df48
+ push hl
+ push de
+ push bc
+ call DrawPlayerHUD
+ call UpdatePlayerHPPal
+ call CheckDanger
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3df58
+
+DrawPlayerHUD: ; 3df58
+ xor a
+ ld [hBGMapMode], a
+
+; Clear the area
+ hlcoord 9, 7
+ ld bc, $050b
+ call ClearBox
+
+ callba DrawPlayerExpBar
+
+ hlcoord 18, 9
+ ld [hl], $73 ; vertical bar
+ call PrintPlayerHUD
+
+; HP bar
+ hlcoord 10, 9
+ ld b, OTPARTYMON
+ xor a
+ ld [MonType], a
+ ld a, PREDEF_DRAW_PLAYER_HP
+ call Predef
+
+; Exp bar
+ push de
+ ld a, [CurBattleMon]
+ ld hl, PartyMon1Exp + 2
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+
+ hlcoord 10, 11
+ ld a, [TempMonLevel]
+ ld b, a
+ call FillInExpBar
+ pop de
+ ret
+; 3df98
+
+UpdatePlayerHPPal: ; 3df98
+ ld hl, PlayerHPPal
+ jp Function3e12e
+; 3df9e
+
+CheckDanger: ; 3df9e
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_3dfb2
+ ld a, [$c6fd]
+ and a
+ jr nz, .asm_3dfbe
+ ld a, [PlayerHPPal]
+ cp $2
+ jr z, .asm_3dfb9
+
+.asm_3dfb2
+ ld hl, Danger
+ res 7, [hl]
+ jr .asm_3dfbe
+
+.asm_3dfb9
+ ld hl, Danger
+ set 7, [hl]
+
+.asm_3dfbe
+ ret
+; 3dfbf
+
+PrintPlayerHUD: ; 3dfbf
+ ld de, BattleMonNick
+ hlcoord 10, 7
+ call Function3e138
+ call PlaceString
+
+ push bc
+
+ ld a, [CurBattleMon]
+ ld hl, PartyMon1DVs
+ call GetPartyLocation
+ ld de, TempMonDVs
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ld hl, BattleMonLevel
+ ld de, TempMonLevel
+ ld bc, $0011
+ call CopyBytes
+ ld a, [CurBattleMon]
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+
+ pop hl
+ dec hl
+
+ ld a, $3
+ ld [MonType], a
+ callab GetGender
+ ld a, $7f
+ jr c, .asm_3e013
+ ld a, $ef
+ jr nz, .asm_3e013
+ ld a, $f5
+
+.asm_3e013
+ ld hl, $c551
+ ld [hl], a
+ ld hl, $c54e
+ push af
+ push hl
+ ld de, BattleMonStatus
+ ld a, $21
+ call Predef
+ pop hl
+ pop bc
+ ret nz
+ ld a, b
+ cp $7f
+ jr nz, .asm_3e02d
+ dec hl
+
+.asm_3e02d
+ ld a, [BattleMonLevel]
+ ld [TempMonLevel], a
+ jp PrintLevel
+; 3e036
+
+Function3e036: ; 3e036
+ push hl
+ push de
+ push bc
+ call Function3e043
+ call Function3e127
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3e043
+
+Function3e043: ; 3e043
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c4a1
+ ld bc, $040b
+ call ClearBox
+ callba Function2c0c5
+ ld a, [TempEnemyMonSpecies]
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ call GetBaseData
+ ld de, EnemyMonNick
+ ld hl, $c4a1
+ call Function3e138
+ call PlaceString
+ ld h, b
+ ld l, c
+ dec hl
+ ld hl, EnemyMonAtkDefDV
+ ld de, TempMonDVs
+ ld a, [EnemySubStatus5]
+ bit 3, a
+ jr z, .asm_3e080
+ ld hl, $c6f2
+
+.asm_3e080
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ld a, $3
+ ld [MonType], a
+ callab GetGender
+ ld a, $7f
+ jr c, .asm_3e09a
+ ld a, $ef
+ jr nz, .asm_3e09a
+ ld a, $f5
+
+.asm_3e09a
+ ld hl, $c4bd
+ ld [hl], a
+ ld hl, $c4ba
+ push af
+ push hl
+ ld de, EnemyMonStatus
+ ld a, $21
+ call Predef
+ pop hl
+ pop bc
+ jr nz, .asm_3e0be
+ ld a, b
+ cp $7f
+ jr nz, .asm_3e0b5
+ dec hl
+
+.asm_3e0b5
+ ld a, [EnemyMonLevel]
+ ld [TempMonLevel], a
+ call PrintLevel
+
+.asm_3e0be
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ ld [$ffb5], a
+ ld a, [hld]
+ ld [$ffb6], a
+ or [hl]
+ jr nz, .asm_3e0d1
+ ld c, a
+ ld e, a
+ ld d, $6
+ jp .asm_3e11a
+
+.asm_3e0d1
+ xor a
+ ld [hMultiplicand], a
+ ld a, $30
+ ld [hMultiplier], a
+ call Multiply
+ ld hl, EnemyMonMaxHPHi
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld [hMultiplier], a
+ ld a, b
+ and a
+ jr z, .asm_3e105
+ ld a, [hMultiplier]
+ srl b
+ rr a
+ srl b
+ rr a
+ ld [hMultiplier], a
+ ld a, [$ffb5]
+ ld b, a
+ srl b
+ ld a, [$ffb6]
+ rr a
+ srl b
+ rr a
+ ld [$ffb6], a
+ ld a, b
+ ld [$ffb5], a
+
+.asm_3e105
+ ld a, [$ffb5]
+ ld [hProduct], a
+ ld a, [$ffb6]
+ ld [hMultiplicand], a
+ ld a, $2
+ ld b, a
+ call Divide
+ ld a, [$ffb6]
+ ld e, a
+ ld a, $6
+ ld d, a
+ ld c, a
+.asm_3e11a
+ xor a
+ ld [$d10a], a
+ ld hl, $c4ca
+ ld b, $0
+ call DrawHPBar
+ ret
+; 3e127
+
+Function3e127: ; 3e127
+ ld hl, EnemyHPPal
+ call Function3e12e
+ ret
+; 3e12e
+
+Function3e12e: ; 3e12e
+ ld b, [hl]
+ call SetHPPal
+ ld a, [hl]
+ cp b
+ ret z
+ jp Function3ee27
+; 3e138
+
+Function3e138: ; 3e138
+ ret
+; 3e139
+
+Function3e139: ; 3e139
+ xor a
+ ld [hBGMapMode], a
+ call Function30bf
+ ld a, [BattleType]
+ cp $2
+ jr z, .asm_3e156
+ cp $3
+ jr z, .asm_3e156
+ call EmptyBattleTextBox
+ call UpdateBattleHuds
+ call EmptyBattleTextBox
+ call Function309d
+
+.asm_3e156
+ ld a, [BattleType]
+ cp $6
+ jr nz, .asm_3e165
+ callba Function24f13
+ jr .asm_3e175
+
+.asm_3e165
+ ld a, [InputType]
+ or a
+ jr z, .asm_3e171
+ callba Function1de294
+.asm_3e171
+ call Function3e19b
+ ret c
+
+.asm_3e175
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, [$d0d2]
+ cp $1
+ jp z, Function3e192
+ cp $3
+ jp z, Function3e1c7
+ cp $2
+ jp z, Function3e28d
+ cp $4
+ jp z, Function3e489
+ jr .asm_3e156
+; 3e192
+
+Function3e192: ; 3e192
+ xor a
+ ld [$d267], a
+ call Function30b4
+ and a
+ ret
+; 3e19b
+
+Function3e19b: ; 3e19b
+ call Function3d2f1
+ jr z, .asm_3e1a8
+ callba LoadBattleMenuDataHeader
+ and a
+ ret
+
+.asm_3e1a8
+ callba Function100b12
+ ld a, [$cd2b]
+ and a
+ ret z
+ ld hl, $cd2a
+ bit 4, [hl]
+ jr nz, .asm_3e1c5
+ ld hl, $5863
+ call StdBattleTextBox
+ ld c, $3c
+ call DelayFrames
+
+.asm_3e1c5
+ scf
+ ret
+; 3e1c7
+
+Function3e1c7: ; 3e1c7
+ ld a, [InLinkBattle]
+ and a
+ jp nz, Function3e22b
+ ld a, [$cfc0]
+ and a
+ jp nz, Function3e22b
+ call Function1d6e
+ ld a, [BattleType]
+ cp $3
+ jr z, .asm_3e1f1
+ cp $6
+ jr z, .asm_3e201
+ callba Function10493
+ ld a, [$d0ec]
+ and a
+ jr z, .asm_3e20d
+ jr .asm_3e209
+
+.asm_3e1f1
+ callba Function107bb
+ ld a, $5
+ ld [CurItem], a
+ call DoItemEffect
+ jr .asm_3e209
+
+.asm_3e201
+ ld a, $b1
+ ld [CurItem], a
+ call DoItemEffect
+
+.asm_3e209
+ call Function3e234
+ ret
+
+.asm_3e20d
+ call ClearPalettes
+ call DelayFrame
+ call Function3ed9f
+ call Function3f43d
+ call Function3f47c
+ call Function1c07
+ call WaitBGMap
+ call Function3ee27
+ call Function309d
+ jp Function3e139
+; 3e22b
+
+Function3e22b: ; 3e22b
+ ld hl, BattleText_0x80bf3
+ call StdBattleTextBox
+ jp Function3e139
+; 3e234
+
+Function3e234: ; 3e234
+ ld a, [$c64e]
+ and a
+ jr nz, .asm_3e279
+ callab CheckItemPocket
+ ld a, [$d142]
+ cp $3
+ jr z, .asm_3e24a
+ call WhiteBGMap
+
+.asm_3e24a
+ xor a
+ ld [hBGMapMode], a
+ call Function3ed9f
+ call ClearSprites
+ ld a, [BattleType]
+ cp $3
+ jr z, .asm_3e25d
+ call Function3f43d
+
+.asm_3e25d
+ call Function3f47c
+ ld a, $1
+ ld [$cfa9], a
+ call Function1c07
+ call Function3df2c
+ call WaitBGMap
+ call Function309d
+ call Function1fbf
+ call Function3ee27
+ and a
+ ret
+
+.asm_3e279
+ xor a
+ ld [$c64e], a
+ ld a, [$d0ee]
+ and $c0
+ ld [$d0ee], a
+ call Function1fbf
+ call Function32f9
+ scf
+ ret
+; 3e28d
+
+Function3e28d: ; 3e28d
+ call Function1d6e
+Function3e290:
+ call Function1c07
+ call Function1d6e
+ call WhiteBGMap
+Function3e299:
+ call Function3d2fa
+ xor a
+ ld [PartyMenuActionText], a
+ call Function3d313
+ call Function3d329
+ jr c, .asm_3e2da
+.asm_3e2a8
+ callba Function8ea4a
+ call Function3e2f5
+ jr c, .asm_3e2c8
+ call Function1bee
+ ld a, [$cfa9]
+ cp $1
+ jp z, Function3e358
+ cp $2
+ jr z, .asm_3e2cf
+ cp $3
+ jr z, .asm_3e2da
+ jr .asm_3e2a8
+
+.asm_3e2c8
+ call Function3d2e0
+ jr c, .asm_3e2da
+ jr Function3e299
+
+.asm_3e2cf
+ call Function3e308
+ call Function3d2e0
+ jr c, .asm_3e2da
+ jp Function3e290
+
+.asm_3e2da
+ call ClearSprites
+ call ClearPalettes
+ call DelayFrame
+ call Function3eda6
+ call Function1c17
+ call Function309d
+ call ClearSGB
+ call Function32f9
+ jp Function3e139
+; 3e2f5
+
+Function3e2f5: ; 3e2f5
+ call Function3d2f1
+ jr z, .asm_3e301
+ callba Function24e99
+ ret
+
+.asm_3e301
+ callba Function100d22
+ ret
+; 3e308
+
+Function3e308: ; 3e308
+ call DisableLCD
+ ld hl, $9310
+ ld de, VTiles0
+ ld bc, $0110
+ call CopyBytes
+ ld hl, VTiles2
+ ld de, $8110
+ ld bc, $0310
+ call CopyBytes
+ call EnableLCD
+ call ClearSprites
+ call LowVolume
+ xor a
+ ld [MonType], a
+ callba Function4dc7b
+ call MaxVolume
+ call DisableLCD
+ ld hl, VTiles0
+ ld de, $9310
+ ld bc, $0110
+ call CopyBytes
+ ld hl, $8110
+ ld de, VTiles2
+ ld bc, $0310
+ call CopyBytes
+ call EnableLCD
+ ret
+; 3e358
+
+
+Function3e358: ; 3e358
+ ld a, [CurBattleMon]
+ ld d, a
+ ld a, [CurPartyMon]
+ cp d
+ jr nz, .asm_3e36b
+ ld hl, BattleText_0x80c0d
+ call StdBattleTextBox
+ jp Function3e299
+
+.asm_3e36b
+ ld a, [$c730]
+ and a
+ jr nz, .asm_3e378
+ ld a, [EnemySubStatus5]
+ bit 7, a
+ jr z, .asm_3e381
+
+.asm_3e378
+ ld hl, BattleText_0x80c22
+ call StdBattleTextBox
+ jp Function3e299
+
+.asm_3e381
+ call Function3d887
+ jp z, Function3e299
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, $2
+ ld [$d0ec], a
+ call ClearPalettes
+ call DelayFrame
+ call ClearSprites
+ call Function3eda6
+ call Function1c17
+ call ClearSGB
+ call Function32f9
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ ; fallthrough
+; 3e3ad
+
+Function3e3ad: ; 3e3ad
+ ld a, $1
+ ld [$c710], a
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3e3c1
+ call Function1d6e
+ call Function3e8e4
+ call Function1c17
+
+.asm_3e3c1
+ call Function3e7c1
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .asm_3e3cf
+
+.asm_3e3ca
+ call Function3e40b
+ and a
+ ret
+
+.asm_3e3cf
+ ld a, [$d430]
+ cp $e
+ jp z, .asm_3e3ca
+ cp $d
+ jp z, .asm_3e3ca
+ cp $4
+ jp c, .asm_3e3ca
+ cp $f
+ jr nz, .asm_3e3e9
+ call Function3c0e5
+ ret
+
+.asm_3e3e9
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3e3f7
+ call Function3e40b
+ call Function3e3ff
+ and a
+ ret
+
+.asm_3e3f7
+ call Function3e3ff
+ call Function3e40b
+ and a
+ ret
+; 3e3ff
+
+Function3e3ff: ; 3e3ff
+ callab Function3846c
+ call SetEnemyTurn
+ jp Function3dc23
+; 3e40b
+
+Function3e40b: ; 3e40b
+ call Function3f2f4
+ ld c, $32
+ call DelayFrames
+ ld hl, PlayerSubStatus4
+ res 6, [hl]
+ call SetEnemyTurn
+ call Function3dc5b
+ jr c, .asm_3e423
+ call Function3dce6
+
+.asm_3e423
+ ld hl, $c535
+ ld bc, $050b
+ call ClearBox
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ call Function3d581
+ call Function3da0d
+ call Function3dab1
+ call Function3f26d
+ call Function3dbde
+ call Function3dc18
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ call SetPlayerTurn
+ call Function3dc23
+ ld a, $2
+ ld [$cfa9], a
+ ret
+; 3e459
+
+Function3e459: ; 3e459
+ ld c, $32
+ call DelayFrames
+ ld hl, $c535
+ ld bc, $050b
+ call ClearBox
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ call Function3d581
+ call Function3da0d
+ xor a
+ ld [$d265], a
+ call Function3ecab
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ call SetPlayerTurn
+ jp Function3dc23
+; 3e489
+
+
+
+Function3e489: ; 3e489
+ call Function30b4
+ ld a, $3
+ ld [$cfa9], a
+ ld hl, BattleMonSpd
+ ld de, EnemyMonSpd
+ call Function3d8b3
+ ld a, $0
+ ld [$d266], a
+ ret c
+ ld a, [$d0ec]
+ and a
+ ret nz
+ jp Function3e139
+; 3e4a8
+
+
+
+Function3e4a8: ; 3e4a8
+ ld a, [BattleMonItem]
+ ld b, a
+ callab GetItem
+ ld a, b
+ cp $4c
+ ret nz
+ ld a, $1
+ ld [$c73d], a
+ ret
+; 3e4bc
+
+Function3e4bc: ; 3e4bc
+ call Function3d2f1
+ jr nz, .asm_3e4c8
+ callba Function100b9f
+ ret
+
+.asm_3e4c8
+ ld hl, EnemyMonMove1
+ ld a, [$d235]
+ dec a
+ jr z, .asm_3e4e2
+ dec a
+ jr z, .asm_3e4dd
+ call Function3e786
+ ret z
+ ld hl, BattleMonMove1
+ jr .asm_3e4e2
+
+.asm_3e4dd
+ ld a, $2
+ call GetPartyParamLocation
+
+.asm_3e4e2
+ ld de, $d25e
+ ld bc, $0004
+ call CopyBytes
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c594
+ ld b, $4
+ ld c, $e
+ ld a, [$d235]
+ cp $2
+ jr nz, .asm_3e503
+ ld hl, $c544
+ ld b, $4
+ ld c, $e
+
+.asm_3e503
+ call TextBox
+ ld hl, $c5aa
+ ld a, [$d235]
+ cp $2
+ jr nz, .asm_3e513
+ ld hl, $c55a
+
+.asm_3e513
+ ld a, $14
+ ld [Buffer1], a
+ ld a, $20
+ call Predef
+ ld b, $5
+ ld a, [$d235]
+ cp $2
+ ld a, $d
+ jr nz, .asm_3e52c
+ ld b, $5
+ ld a, $9
+
+.asm_3e52c
+ ld [$cfa1], a
+ ld a, b
+ ld [$cfa2], a
+ ld a, [$d235]
+ cp $1
+ jr z, .asm_3e53e
+ ld a, [CurMoveNum]
+ inc a
+
+.asm_3e53e
+ ld [$cfa9], a
+ ld a, $1
+ ld [$cfaa], a
+ ld a, [$d0eb]
+ inc a
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld c, $2c
+ ld a, [$d235]
+ dec a
+ ld b, $c1
+ jr z, .asm_3e569
+ dec a
+ ld b, $c3
+ jr z, .asm_3e569
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .asm_3e569
+ ld b, $c7
+
+.asm_3e569
+ ld a, b
+ ld [$cfa8], a
+ ld a, c
+ ld [$cfa5], a
+ xor a
+ ld [$cfa6], a
+ ld a, $10
+ ld [$cfa7], a
+.asm_3e57a
+ ld a, [$d235]
+ and a
+ jr z, .asm_3e58e
+ dec a
+ jr nz, .asm_3e5a3
+ ld hl, $c5c3
+ ld de, .string_3e61c
+ call PlaceString
+ jr .asm_3e5a3
+
+.asm_3e58e
+ call MoveInfoBox
+ ld a, [$d0e3]
+ and a
+ jr z, .asm_3e5a3
+ ld hl, $c5a9
+ ld bc, $0014
+ dec a
+ call AddNTimes
+ ld [hl], $ec
+
+.asm_3e5a3
+ ld a, $1
+ ld [hBGMapMode], a
+ call Function1bd3
+ bit 6, a
+ jp nz, .asm_3e61d
+ bit 7, a
+ jp nz, .asm_3e62e
+ bit 2, a
+ jp nz, Function3e643
+ bit 1, a
+ push af
+ xor a
+ ld [$d0e3], a
+ ld a, [$cfa9]
+ dec a
+ ld [$cfa9], a
+ ld b, a
+ ld a, [$d235]
+ dec a
+ jr nz, .asm_3e5d0
+ pop af
+ ret
+
+.asm_3e5d0
+ dec a
+ ld a, b
+ ld [CurMoveNum], a
+ jr nz, .asm_3e5d9
+ pop af
+ ret
+
+.asm_3e5d9
+ pop af
+ ret nz
+ ld hl, BattleMonPPMove1
+ ld a, [$cfa9]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ jr z, .asm_3e610
+ ld a, [PlayerDisableCount]
+ swap a
+ and $f
+ dec a
+ cp c
+ jr z, .asm_3e60b
+ ld a, [$c6e1]
+ and a
+ jr nz, .asm_3e606
+ ld a, [$cfa9]
+ ld hl, BattleMonMove1
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+
+.asm_3e606
+ ld [CurPlayerMove], a
+ xor a
+ ret
+
+.asm_3e60b
+ ld hl, BattleText_0x80c5b
+ jr .asm_3e613
+
+.asm_3e610
+ ld hl, Function3cc39
+
+.asm_3e613
+ call StdBattleTextBox
+ call Function30b4
+ jp Function3e4bc
+; 3e61c
+
+.string_3e61c ; 3e61c
+ db "@"
+; 3e61d
+
+.asm_3e61d
+ ld a, [$cfa9]
+ and a
+ jp nz, .asm_3e57a
+ ld a, [$d0eb]
+ inc a
+ ld [$cfa9], a
+ jp .asm_3e57a
+; 3e62e
+
+.asm_3e62e: ; 3e62e
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [$d0eb]
+ inc a
+ inc a
+ cp b
+ jp nz, .asm_3e57a
+ ld a, $1
+ ld [$cfa9], a
+ jp .asm_3e57a
+; 3e643
+
+Function3e643: ; 3e643
+ ld a, [$d0e3]
+ and a
+ jr z, .asm_3e6bf
+ ld hl, BattleMonMoves
+ call .asm_3e6a5
+ ld hl, BattleMonPP
+ call .asm_3e6a5
+ ld hl, PlayerDisableCount
+ ld a, [hl]
+ swap a
+ and $f
+ ld b, a
+ ld a, [$cfa9]
+ cp b
+ jr nz, .asm_3e671
+ ld a, [hl]
+ and $f
+ ld b, a
+ ld a, [$d0e3]
+ swap a
+ add b
+ ld [hl], a
+ jr .asm_3e682
+
+.asm_3e671
+ ld a, [$d0e3]
+ cp b
+ jr nz, .asm_3e682
+ ld a, [hl]
+ and $f
+ ld b, a
+ ld a, [$cfa9]
+ swap a
+ add b
+ ld [hl], a
+
+.asm_3e682
+ ld a, [PlayerSubStatus5]
+ bit 3, a
+ jr nz, .asm_3e69e
+ ld hl, PartyMon1Moves
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ push hl
+ call .asm_3e6a5
+ pop hl
+ ld bc, $0015
+ add hl, bc
+ call .asm_3e6a5
+
+.asm_3e69e
+ xor a
+ ld [$d0e3], a
+ jp Function3e4bc
+
+.asm_3e6a5
+ push hl
+ ld a, [$d0e3]
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [$cfa9]
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [de]
+ ld b, [hl]
+ ld [hl], a
+ ld a, b
+ ld [de], a
+ ret
+
+.asm_3e6bf
+ ld a, [$cfa9]
+ ld [$d0e3], a
+ jp Function3e4bc
+; 3e6c8
+
+MoveInfoBox: ; 3e6c8
+ xor a
+ ld [hBGMapMode], a
+
+ hlcoord 0, 8
+ ld b, 3
+ ld c, 9
+ call TextBox
+ call MobileTextBorder
+
+ ld a, [PlayerDisableCount]
+ and a
+ jr z, .asm_3e6f4
+
+ swap a
+ and $f
+ ld b, a
+ ld a, [$cfa9]
+ cp b
+ jr nz, .asm_3e6f4
+
+ hlcoord 1, 10
+ ld de, .Disabled
+ call PlaceString
+ jr .done
+
+.asm_3e6f4
+ ld hl, $cfa9
+ dec [hl]
+ call SetPlayerTurn
+ ld hl, BattleMonMoves
+ ld a, [$cfa9]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hl]
+ ld [CurPlayerMove], a
+
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ ld a, WILDMON
+ ld [MonType], a
+ callab Functionf8ec
+
+ ld hl, $cfa9
+ ld c, [hl]
+ inc [hl]
+ ld b, 0
+ ld hl, BattleMonPP
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld [StringBuffer1], a
+ call Function3e75f
+
+ hlcoord 1, 9
+ ld de, .Type
+ call PlaceString
+
+ hlcoord 7, 11
+ ld [hl], "/"
+
+ callab UpdateMoveData
+ ld a, [PlayerMoveAnimation]
+ ld b, a
+ hlcoord 2, 10
+ ld a, PREDEF_PRINT_MOVE_TYPE
+ call Predef
+
+.done
+ ret
+; 3e74f
+
+.Disabled
+ db "Disabled!@"
+.Type
+ db "TYPE/@"
+; 3e75f
+
+
+Function3e75f: ; 3e75f
+ hlcoord 5, 11
+ ld a, [InLinkBattle]
+ cp $4
+ jr c, .asm_3e76c
+ hlcoord 5, 11
+
+.asm_3e76c
+ push hl
+ ld de, StringBuffer1
+ ld bc, $0102
+ call PrintNum
+ pop hl
+ inc hl
+ inc hl
+ ld [hl], "/"
+ inc hl
+ ld de, $d265
+ ld bc, $0102
+ call PrintNum
+ ret
+; 3e786
+
+Function3e786: ; 3e786
+ ld a, STRUGGLE
+ ld [CurPlayerMove], a
+ ld a, [PlayerDisableCount]
+ and a
+ ld hl, BattleMonPP
+ jr nz, .asm_3e79f
+
+ ld a, [hli]
+ or [hl]
+ inc hl
+ or [hl]
+ inc hl
+ or [hl]
+ and $3f
+ ret nz
+ jr .asm_3e7b4
+
+.asm_3e79f
+ swap a
+ and $f
+ ld b, a
+ ld d, $5
+ xor a
+.asm_3e7a7
+ dec d
+ jr z, .asm_3e7b2
+ ld c, [hl]
+ inc hl
+ dec b
+ jr z, .asm_3e7a7
+ or c
+ jr .asm_3e7a7
+
+.asm_3e7b2
+ and a
+ ret nz
+
+.asm_3e7b4
+ ld hl, BattleText_0x80c72
+ call StdBattleTextBox
+ ld c, 60
+ call DelayFrames
+ xor a
+ ret
+; 3e7c1
+
+
+
+Function3e7c1: ; 3e7c1
+ ld a, [$c711]
+ and a
+ ret nz
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3e817
+ call EmptyBattleTextBox
+ call Function309d
+ ld a, [$d0ec]
+ and a
+ call z, Function3e8e4
+ call Function30b4
+ ld a, [$d430]
+ cp $e
+ jp z, .asm_3e8bd
+ cp $d
+ jp z, .asm_3e82c
+ cp $4
+ jp nc, Function3e8c1
+ ld [CurEnemyMoveNum], a
+ ld c, a
+ ld a, [EnemySubStatus1]
+ bit 6, a
+ jp nz, .asm_3e882
+ ld a, [EnemySubStatus3]
+ and $13
+ jp nz, .asm_3e882
+ ld hl, EnemySubStatus5
+ bit 4, [hl]
+ ld a, [LastEnemyMove]
+ jp nz, .asm_3e87f
+ ld hl, EnemyMonMove1
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ jp .asm_3e87f
+
+.asm_3e817
+ ld hl, EnemySubStatus5
+ bit 4, [hl]
+ jr z, .asm_3e824
+ ld a, [LastEnemyMove]
+ jp .asm_3e87f
+
+.asm_3e824
+ call Function3e8d1
+ jp nz, Function3e8c1
+ jr .asm_3e830
+
+.asm_3e82c
+ ld a, $ff
+ jr .asm_3e87f
+
+.asm_3e830
+ ld hl, EnemyMonMove1
+ ld de, EnemyMonPPMove1
+ ld b, $4
+.asm_3e838
+ ld a, [hl]
+ and a
+ jp z, .asm_3e8bd
+ ld a, [EnemyDisabledMove]
+ cp [hl]
+ jr z, .asm_3e848
+ ld a, [de]
+ and $3f
+ jr nz, .asm_3e84f
+
+.asm_3e848
+ inc hl
+ inc de
+ dec b
+ jr nz, .asm_3e838
+ jr .asm_3e8bd
+
+.asm_3e84f
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .asm_3e882
+.asm_3e855
+ ld hl, EnemyMonMove1
+ call BattleRandom
+ and $3
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [EnemyDisableCount]
+ swap a
+ and $f
+ dec a
+ cp c
+ jr z, .asm_3e855
+ ld a, [hl]
+ and a
+ jr z, .asm_3e855
+ ld hl, EnemyMonPPMove1
+ add hl, bc
+ ld b, a
+ ld a, [hl]
+ and $3f
+ jr z, .asm_3e855
+ ld a, c
+ ld [CurEnemyMoveNum], a
+ ld a, b
+
+.asm_3e87f
+ ld [CurEnemyMove], a
+
+.asm_3e882
+ call SetEnemyTurn
+ callab UpdateMoveData
+ call Function3e8d1
+ jr nz, .asm_3e894
+ xor a
+ ld [$c733], a
+
+.asm_3e894
+ ld a, [EnemyMoveEffect]
+ cp $77
+ jr z, .asm_3e89f
+ xor a
+ ld [EnemyFuryCutterCount], a
+
+.asm_3e89f
+ ld a, [EnemyMoveEffect]
+ cp $51
+ jr z, .asm_3e8af
+ ld hl, EnemySubStatus4
+ res 6, [hl]
+ xor a
+ ld [$c72c], a
+
+.asm_3e8af
+ ld a, [EnemyMoveEffect]
+ cp $6f
+ ret z
+ cp $74
+ ret z
+ xor a
+ ld [$c681], a
+ ret
+
+.asm_3e8bd
+ ld a, $a5
+ jr .asm_3e87f
+; 3e8c1
+
+Function3e8c1: ; 3e8c1
+ xor a
+ ld [EnemyFuryCutterCount], a
+ ld [$c681], a
+ ld [$c72c], a
+ ld hl, EnemySubStatus4
+ res 6, [hl]
+ ret
+; 3e8d1
+
+Function3e8d1: ; 3e8d1
+ ld a, [EnemySubStatus4]
+ and $20
+ ret nz
+ ld hl, EnemySubStatus3
+ ld a, [hl]
+ and $13
+ ret nz
+ ld hl, EnemySubStatus1
+ bit 6, [hl]
+ ret
+; 3e8e4
+
+Function3e8e4: ; 3e8e4
+ callba Function100a09
+ ret
+; 3e8eb
+
+
+LoadEnemyMon: ; 3e8eb
+; Initialize enemy monster parameters
+; To do this we pull the species from TempEnemyMonSpecies
+
+; Notes:
+; BattleRandom is used to ensure sync between Game Boys
+
+; Clear the whole EnemyMon struct
+ xor a
+ ld hl, EnemyMonSpecies
+ ld bc, EnemyMonEnd - EnemyMon
+ call ByteFill
+
+; We don't need to be here if we're in a link battle
+ ld a, [InLinkBattle]
+ and a
+ jp nz, Function3dabd
+
+ ld a, [$cfc0] ; ????
+ bit 0, a
+ jp nz, Function3dabd
+
+; Make sure everything knows what species we're working with
+ ld a, [TempEnemyMonSpecies]
+ ld [EnemyMonSpecies], a
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+
+; Grab the BaseData for this species
+ call GetBaseData
+
+
+; Let's get the item:
+
+; Is the item predetermined?
+ ld a, [IsInBattle]
+ dec a
+ jr z, .WildItem
+
+; If we're in a trainer battle, the item is in the party struct
+ ld a, [CurPartyMon]
+ ld hl, OTPartyMon1Item
+ call GetPartyLocation ; bc = PartyMon[CurPartyMon] - PartyMons
+ ld a, [hl]
+ jr .UpdateItem
+
+
+.WildItem
+; In a wild battle, we pull from the item slots in BaseData
+
+; Force Item1
+; Used for Ho-Oh, Lugia and Snorlax encounters
+ ld a, [BattleType]
+ cp BATTLETYPE_FORCEITEM
+ ld a, [BaseItems]
+ jr z, .UpdateItem
+
+; Failing that, it's all up to chance
+; Effective chances:
+; 75% None
+; 23% Item1
+; 2% Item2
+
+; 25% chance of getting an item
+ call BattleRandom
+ cp a, $c0
+ ld a, NO_ITEM
+ jr c, .UpdateItem
+
+; From there, an 8% chance for Item2
+ call BattleRandom
+ cp a, $14 ; 8% of 25% = 2% Item2
+ ld a, [BaseItems]
+ jr nc, .UpdateItem
+ ld a, [BaseItems+1]
+
+
+.UpdateItem
+ ld [EnemyMonItem], a
+
+
+; Initialize DVs
+
+; If we're in a trainer battle, DVs are predetermined
+ ld a, [IsInBattle]
+ and a
+ jr z, .InitDVs
+
+; ????
+ ld a, [EnemySubStatus5]
+ bit 3, a
+ jr z, .InitDVs
+
+; Unknown
+ ld hl, $c6f2
+ ld de, EnemyMonDVs
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ jp .Happiness
+
+
+.InitDVs
+
+; Trainer DVs
+
+; All trainers have preset DVs, determined by class
+; See GetTrainerDVs for more on that
+ callba GetTrainerDVs
+; These are the DVs we'll use if we're actually in a trainer battle
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .UpdateDVs
+
+
+; Wild DVs
+; Here's where the fun starts
+
+; Roaming monsters (Entei, Raikou) work differently
+; They have their own structs, which are shorter than normal
+ ld a, [BattleType]
+ cp a, BATTLETYPE_ROAMING
+ jr nz, .NotRoaming
+
+; Grab HP
+ call GetRoamMonHP
+ ld a, [hl]
+; Check if the HP has been initialized
+ and a
+; We'll do something with the result in a minute
+ push af
+
+; Grab DVs
+ call GetRoamMonDVs
+ inc hl
+ ld a, [hld]
+ ld c, a
+ ld b, [hl]
+
+; Get back the result of our check
+ pop af
+; If the RoamMon struct has already been initialized, we're done
+ jr nz, .UpdateDVs
+
+; If it hasn't, we need to initialize the DVs
+; (HP is initialized at the end of the battle)
+ call GetRoamMonDVs
+ inc hl
+ call BattleRandom
+ ld [hld], a
+ ld c, a
+ call BattleRandom
+ ld [hl], a
+ ld b, a
+; We're done with DVs
+ jr .UpdateDVs
+
+
+.NotRoaming
+; Register a contains BattleType
+
+; Forced shiny battle type
+; Used by Red Gyarados at Lake of Rage
+ cp a, BATTLETYPE_SHINY
+ jr nz, .GenerateDVs
+
+ ld b, ATKDEFDV_SHINY ; $ea
+ ld c, SPDSPCDV_SHINY ; $aa
+ jr .UpdateDVs
+
+.GenerateDVs
+; Generate new random DVs
+ call BattleRandom
+ ld b, a
+ call BattleRandom
+ ld c, a
+
+.UpdateDVs
+; Input DVs in register bc
+ ld hl, EnemyMonDVs
+ ld a, b
+ ld [hli], a
+ ld [hl], c
+
+
+; We've still got more to do if we're dealing with a wild monster
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .Happiness
+
+
+; Species-specfic:
+
+
+; Unown
+ ld a, [TempEnemyMonSpecies]
+ cp a, UNOWN
+ jr nz, .Magikarp
+
+; Get letter based on DVs
+ ld hl, EnemyMonDVs
+ ld a, PREDEF_GET_UNOWN_LETTER
+ call Predef
+; Can't use any letters that haven't been unlocked
+; If combined with forced shiny battletype, causes an infinite loop
+ call CheckUnownLetter
+ jr c, .GenerateDVs ; try again
+
+
+.Magikarp
+; Skimming this part recommended
+
+ ld a, [TempEnemyMonSpecies]
+ cp a, MAGIKARP
+ jr nz, .Happiness
+
+; Get Magikarp's length
+ ld de, EnemyMonDVs
+ ld bc, PlayerID
+ callab CalcMagikarpLength
+
+; We're clear if the length is < 1536
+ ld a, [MagikarpLength]
+ cp a, $06 ; $600 = 1536
+ jr nz, .CheckMagikarpArea
+
+; 5% chance of skipping size checks
+ call Random
+ cp a, $0c ; / $100
+ jr c, .CheckMagikarpArea
+; Try again if > 1614
+ ld a, [MagikarpLength + 1]
+ cp a, $50
+ jr nc, .GenerateDVs
+
+; 20% chance of skipping this check
+ call Random
+ cp a, $32 ; / $100
+ jr c, .CheckMagikarpArea
+; Try again if > 1598
+ ld a, [MagikarpLength + 1]
+ cp a, $40
+ jr nc, .GenerateDVs
+
+.CheckMagikarpArea
+; The z checks are supposed to be nz
+; Instead, all maps in GROUP_LAKE_OF_RAGE (mahogany area)
+; and routes 20 and 44 are treated as Lake of Rage
+
+; This also means Lake of Rage Magikarp can be smaller than ones
+; caught elsewhere rather than the other way around
+
+; Intended behavior enforces a minimum size at Lake of Rage
+; The real behavior prevents size flooring in the Lake of Rage area
+ ld a, [MapGroup]
+ cp a, GROUP_LAKE_OF_RAGE
+ jr z, .Happiness
+ ld a, [MapNumber]
+ cp a, MAP_LAKE_OF_RAGE
+ jr z, .Happiness
+; 40% chance of not flooring
+ call Random
+ cp a, $64 ; / $100
+ jr c, .Happiness
+; Floor at length 1024
+ ld a, [MagikarpLength]
+ cp a, 1024 >> 8
+ jr c, .GenerateDVs ; try again
+
+
+; Finally done with DVs
+
+.Happiness
+; Set happiness
+ ld a, BASE_HAPPINESS
+ ld [EnemyMonHappiness], a
+; Set level
+ ld a, [CurPartyLevel]
+ ld [EnemyMonLevel], a
+; Fill stats
+ ld de, EnemyMonMaxHP
+ ld b, $00
+ ld hl, $d201 ; ?
+ ld a, PREDEF_FILLSTATS
+ call Predef
+
+; If we're in a trainer battle,
+; get the rest of the parameters from the party struct
+ ld a, [IsInBattle]
+ cp a, TRAINER_BATTLE
+ jr z, .OpponentParty
+
+; If we're in a wild battle, check wild-specific stuff
+ and a
+ jr z, .TreeMon
+
+; ????
+ ld a, [EnemySubStatus5]
+ bit 3, a
+ jp nz, .Moves
+
+.TreeMon
+; If we're headbutting trees, some monsters enter battle asleep
+ call CheckSleepingTreeMon
+ ld a, 7 ; Asleep for 7 turns
+ jr c, .UpdateStatus
+; Otherwise, no status
+ xor a
+
+.UpdateStatus
+ ld hl, EnemyMonStatus
+ ld [hli], a
+
+; Unused byte
+ xor a
+ ld [hli], a
+
+; Full HP...
+ ld a, [EnemyMonMaxHPHi]
+ ld [hli], a
+ ld a, [EnemyMonMaxHPLo]
+ ld [hl], a
+
+; ...unless it's a RoamMon
+ ld a, [BattleType]
+ cp a, BATTLETYPE_ROAMING
+ jr nz, .Moves
+
+; Grab HP
+ call GetRoamMonHP
+ ld a, [hl]
+; Check if it's been initialized again
+ and a
+ jr z, .InitRoamHP
+; Update from the struct if it has
+ ld a, [hl]
+ ld [EnemyMonHPLo], a
+ jr .Moves
+
+.InitRoamHP
+; HP only uses the lo byte in the RoamMon struct since
+; Raikou/Entei/Suicune will have < 256 hp at level 40
+ ld a, [EnemyMonHPLo]
+ ld [hl], a
+ jr .Moves
+
+
+.OpponentParty
+; Get HP from the party struct
+ ld hl, (PartyMon1CurHP + 1) - PartyMon1 + OTPartyMon1
+ ld a, [CurPartyMon]
+ call GetPartyLocation
+ ld a, [hld]
+ ld [EnemyMonHPLo], a
+ ld a, [hld]
+ ld [EnemyMonHPHi], a
+
+; Make sure everything knows which monster the opponent is using
+ ld a, [CurPartyMon]
+ ld [CurOTMon], a
+
+; Get status from the party struct
+ dec hl
+ ld a, [hl] ; OTPartyMonStatus
+ ld [EnemyMonStatus], a
+
+
+.Moves
+; ????
+ ld hl, BaseType1
+ ld de, EnemyMonType1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+
+; Get moves
+ ld de, EnemyMonMoves
+; Are we in a trainer battle?
+ ld a, [IsInBattle]
+ cp a, TRAINER_BATTLE
+ jr nz, .WildMoves
+; Then copy moves from the party struct
+ ld hl, OTPartyMon1Moves
+ ld a, [CurPartyMon]
+ call GetPartyLocation
+ ld bc, NUM_MOVES
+ call CopyBytes
+ jr .PP
+
+.WildMoves
+; Clear EnemyMonMoves
+ xor a
+ ld h, d
+ ld l, e
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+; Make sure the predef knows this isn't a partymon
+ ld [MagikarpLength], a
+; Fill moves based on level
+ ld a, PREDEF_FILLMOVES
+ call Predef
+
+.PP
+; Trainer battle?
+ ld a, [IsInBattle]
+ cp a, TRAINER_BATTLE
+ jr z, .TrainerPP
+
+; Fill wild PP
+ ld hl, EnemyMonMoves
+ ld de, EnemyMonPP
+ ld a, PREDEF_FILLPP
+ call Predef
+ jr .Finish
+
+.TrainerPP
+; Copy PP from the party struct
+ ld hl, OTPartyMon1PP
+ ld a, [CurPartyMon]
+ call GetPartyLocation
+ ld de, EnemyMonPP
+ ld bc, NUM_MOVES
+ call CopyBytes
+
+.Finish
+; Only the first five base stats are copied...
+ ld hl, BaseStats
+ ld de, EnemyMonBaseStats
+ ld b, BaseSpecialDefense - BaseStats
+.loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .loop
+
+ ld a, [BaseCatchRate]
+ ld [de], a
+ inc de
+
+ ld a, [BaseExp]
+ ld [de], a
+
+ ld a, [TempEnemyMonSpecies]
+ ld [$d265], a
+
+ call GetPokemonName
+
+; Did we catch it?
+ ld a, [IsInBattle]
+ and a
+ ret z
+
+; Update enemy nick
+ ld hl, StringBuffer1
+ ld de, EnemyMonNick
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+; Caught this mon
+ ld a, [TempEnemyMonSpecies]
+ dec a
+ ld c, a
+ ld b, 1 ; set
+ ld hl, PokedexSeen
+ ld a, PREDEF_FLAG
+ call Predef
+
+ ld hl, EnemyMonStats
+ ld de, EnemyStats
+ ld bc, EnemyMonStatsEnd - EnemyMonStats
+ call CopyBytes
+
+ ret
+; 3eb38
+
+
+CheckSleepingTreeMon: ; 3eb38
+; Return carry if species is in the list
+; for the current time of day
+
+; Don't do anything if this isn't a tree encounter
+ ld a, [BattleType]
+ cp a, BATTLETYPE_TREE
+ jr nz, .NotSleeping
+
+; Get list for the time of day
+ ld hl, .Morn
+ ld a, [TimeOfDay]
+ cp a, DAY
+ jr c, .Check
+ ld hl, .Day
+ jr z, .Check
+ ld hl, .Nite
+
+.Check
+ ld a, [TempEnemyMonSpecies]
+ ld de, 1 ; length of species id
+ call IsInArray
+; If it's a match, the opponent is asleep
+ ret c
+
+.NotSleeping
+ and a
+ ret
+
+.Nite
+ db CATERPIE
+ db METAPOD
+ db BUTTERFREE
+ db WEEDLE
+ db KAKUNA
+ db BEEDRILL
+ db SPEAROW
+ db EKANS
+ db EXEGGCUTE
+ db LEDYBA
+ db AIPOM
+ db $ff ; end
+
+.Day
+ db VENONAT
+ db HOOTHOOT
+ db NOCTOWL
+ db SPINARAK
+ db HERACROSS
+ db $ff ; end
+
+.Morn
+ db VENONAT
+ db HOOTHOOT
+ db NOCTOWL
+ db SPINARAK
+ db HERACROSS
+ db $ff ; end
+; 3eb75
+
+
+CheckUnownLetter: ; 3eb75
+; Return carry if the Unown letter hasn't been unlocked yet
+
+ ld a, [UnlockedUnowns]
+ ld c, a
+ ld de, 0
+
+.loop
+
+; Don't check this set unless it's been unlocked
+ srl c
+ jr nc, .next
+
+; Is our letter in the set?
+ ld hl, .LetterSets
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ push de
+ ld a, [UnownLetter]
+ ld de, 1
+ push bc
+ call IsInArray
+ pop bc
+ pop de
+
+ jr c, .match
+
+.next
+; Make sure we haven't gone past the end of the table
+ inc e
+ inc e
+ ld a, e
+ cp a, .Set1 - .LetterSets
+ jr c, .loop
+
+; Hasn't been unlocked, or the letter is invalid
+ scf
+ ret
+
+.match
+; Valid letter
+ and a
+ ret
+
+.LetterSets
+ dw .Set1
+ dw .Set2
+ dw .Set3
+ dw .Set4
+
+.Set1
+ ; A B C D E F G H I J K
+ db 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, $ff
+.Set2
+ ; L M N O P Q R
+ db 12, 13, 14, 15, 16, 17, 18, $ff
+.Set3
+ ; S T U V W
+ db 19, 20, 21, 22, 23, $ff
+.Set4
+ ; X Y Z
+ db 24, 25, 26, $ff
+
+; 3ebc7
+
+
+Function3ebc7: ; 3ebc7
+ push bc
+ ld a, [BattleMonLevel]
+ ld b, a
+ ld a, [EnemyMonLevel]
+ ld [BattleMonLevel], a
+ ld a, b
+ ld [EnemyMonLevel], a
+ pop bc
+ ret
+; 3ebd8
+
+Function3ebd8: ; 3ebd8
+ xor a
+ ld [TempEnemyMonSpecies], a
+ call Function3ee27
+ ld a, [OtherTrainerClass]
+ ld [TrainerClass], a
+ ld de, VTiles2
+ callab Function5120d
+ ld hl, $c4b3
+ ld c, $0
+.asm_3ebf3
+ inc c
+ ld a, c
+ cp $7
+ ret z
+ xor a
+ ld [hBGMapMode], a
+ ld [hBGMapThird], a
+ ld d, $0
+ push bc
+ push hl
+.asm_3ec01
+ call Function3ec1a
+ inc hl
+ ld a, $7
+ add d
+ ld d, a
+ dec c
+ jr nz, .asm_3ec01
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $4
+ call DelayFrames
+ pop hl
+ pop bc
+ dec hl
+ jr .asm_3ebf3
+; 3ec1a
+
+Function3ec1a: ; 3ec1a
+ push hl
+ push de
+ push bc
+ ld e, $7
+.asm_3ec1f
+ ld [hl], d
+ ld bc, $0014
+ add hl, bc
+ inc d
+ dec e
+ jr nz, .asm_3ec1f
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3ec2c
+
+
+Function3ec2c: ; 3ec2c
+ ld a, 1
+ jr Function3ec31
+; 3ec30
+
+Function3ec30: ; 3ec30
+ xor a
+; 3ec31
+
+Function3ec31: ; 3ec31
+ ld [hBattleTurn], a
+ call Function3ec39
+ jp Function3ec76
+; 3ec39
+
+Function3ec39: ; 3ec39
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3ec5a
+ ld a, [BattleMonStatus]
+ and $40
+ ret z
+ ld hl, $c645
+ ld a, [hld]
+ ld b, a
+ ld a, [hl]
+ srl a
+ rr b
+ srl a
+ rr b
+ ld [hli], a
+ or b
+ jr nz, .asm_3ec58
+ ld b, $1
+
+.asm_3ec58
+ ld [hl], b
+ ret
+
+.asm_3ec5a
+ ld a, [EnemyMonStatus]
+ and $40
+ ret z
+ ld hl, $d21f
+ ld a, [hld]
+ ld b, a
+ ld a, [hl]
+ srl a
+ rr b
+ srl a
+ rr b
+ ld [hli], a
+ or b
+ jr nz, .asm_3ec74
+ ld b, $1
+
+.asm_3ec74
+ ld [hl], b
+ ret
+; 3ec76
+
+Function3ec76: ; 3ec76
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3ec93
+ ld a, [BattleMonStatus]
+ and $10
+ ret z
+ ld hl, $c641
+ ld a, [hld]
+ ld b, a
+ ld a, [hl]
+ srl a
+ rr b
+ ld [hli], a
+ or b
+ jr nz, .asm_3ec91
+ ld b, $1
+
+.asm_3ec91
+ ld [hl], b
+ ret
+
+.asm_3ec93
+ ld a, [EnemyMonStatus]
+ and $10
+ ret z
+ ld hl, $d21b
+ ld a, [hld]
+ ld b, a
+ ld a, [hl]
+ srl a
+ rr b
+ ld [hli], a
+ or b
+ jr nz, .asm_3eca9
+ ld b, $1
+
+.asm_3eca9
+ ld [hl], b
+ ret
+; 3ecab
+
+Function3ecab: ; 3ecab
+ ld c, 0
+.asm_3ecad
+ call Function3ecb7
+ inc c
+ ld a, c
+ cp 5
+ jr nz, .asm_3ecad
+ ret
+; 3ecb7
+
+Function3ecb7: ; 3ecb7
+ push bc
+ push bc
+ ld a, [$d265]
+ and a
+ ld a, c
+ ld hl, BattleMonAtk
+ ld de, PlayerStats
+ ld bc, PlayerAtkLevel
+ jr z, .asm_3ecd2
+ ld hl, EnemyMonAtk
+ ld de, EnemyStats
+ ld bc, EnemyAtkLevel
+
+.asm_3ecd2
+ add c
+ ld c, a
+ jr nc, .asm_3ecd7
+ inc b
+.asm_3ecd7
+ ld a, [bc]
+ pop bc
+ ld b, a
+ push bc
+ sla c
+ ld b, 0
+ add hl, bc
+ ld a, c
+ add e
+ ld e, a
+ jr nc, .asm_3ece6
+ inc d
+.asm_3ece6
+ pop bc
+ push hl
+ ld hl, .StatLevelMultipliers
+ dec b
+ sla b
+ ld c, b
+ ld b, 0
+ add hl, bc
+ xor a
+ ld [hMultiplicand], a
+ ld a, [de]
+ ld [$ffb5], a
+ inc de
+ ld a, [de]
+ ld [$ffb6], a
+ ld a, [hli]
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [hl]
+ ld [hMultiplier], a
+ ld b, $4
+ call Divide
+ pop hl
+
+; Cap at 999.
+ ld a, [$ffb6]
+ sub 999 % $100
+ ld a, [$ffb5]
+ sbc 999 / $100
+ jp c, .asm_3ed1e
+
+ ld a, 999 / $100
+ ld [$ffb5], a
+ ld a, 999 % $100
+ ld [$ffb6], a
+
+.asm_3ed1e
+ ld a, [$ffb5]
+ ld [hli], a
+ ld b, a
+ ld a, [$ffb6]
+ ld [hl], a
+ or b
+ jr nz, .asm_3ed29
+ inc [hl]
+
+.asm_3ed29
+ pop bc
+ ret
+; 3ed2b
+
+.StatLevelMultipliers
+; /
+ db 25, 100 ; 25%
+ db 28, 100 ; 28%
+ db 33, 100 ; 33%
+ db 40, 100 ; 40%
+ db 50, 100 ; 50%
+ db 66, 100 ; 66%
+
+ db 1, 1 ; 100%
+
+ db 15, 10 ; 150%
+ db 2, 1 ; 200%
+ db 25, 10 ; 250%
+ db 3, 1 ; 300%
+ db 35, 10 ; 350%
+ db 4, 1 ; 400%
+; 3ed45
+
+
+BadgeStatBoosts: ; 3ed45
+; Raise BattleMon stats depending on which badges have been obtained.
+
+; Every other badge boosts a stat, starting from the first.
+
+; ZephyrBadge: Attack
+; PlainBadge: Speed
+; MineralBadge: Defense
+; GlacierBadge: Special Attack
+; RisingBadge: Special Defense
+
+; The boosted stats are in order, except PlainBadge and MineralBadge's boosts are swapped.
+
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+
+ ld a, [$cfc0]
+ and a
+ ret nz
+
+ ld a, [JohtoBadges]
+
+; Swap badges 3 (PlainBadge) and 5 (MineralBadge).
+ ld d, a
+ and %00000100
+ add a
+ add a
+ ld b, a
+ ld a, d
+ and %00010000
+ rrca
+ rrca
+ ld c, a
+ ld a, d
+ and %11101011
+ or b
+ or c
+ ld b, a
+
+ ld hl, BattleMonAtk
+ ld c, 4
+.CheckBadge
+ ld a, b
+ srl b
+ call c, BoostStat
+ inc hl
+ inc hl
+; Check every other badge.
+ srl b
+ dec c
+ jr nz, .CheckBadge
+; And the last one (RisingBadge) too.
+ srl a
+ call c, BoostStat
+ ret
+; 3ed7c
+
+
+BoostStat: ; 3ed7c
+; Raise stat at hl by 1/8.
+
+ ld a, [hli]
+ ld d, a
+ ld e, [hl]
+ srl d
+ rr e
+ srl d
+ rr e
+ srl d
+ rr e
+ ld a, [hl]
+ add e
+ ld [hld], a
+ ld a, [hl]
+ adc d
+ ld [hli], a
+
+; Cap at 999.
+ ld a, [hld]
+ sub 999 % $100
+ ld a, [hl]
+ sbc 999 / $100
+ ret c
+ ld a, 999 / $100
+ ld [hli], a
+ ld a, 999 % $100
+ ld [hld], a
+ ret
+; 3ed9f
+
+
+Function3ed9f: ; 3ed9f
+ callab Functionfb4f2
+ ret
+; 3eda6
+
+Function3eda6: ; 3eda6
+ callab Functionfb50d
+ ret
+; 3edad
+
+
+Function3edad: ; 3edad
+ ld de, $4ac0
+ ld hl, $96c0
+ ld bc, $3e04
+ call Get1bpp
+ ld de, $4ae0
+ ld hl, $9730
+ ld bc, $3e06
+ call Get1bpp
+ ld de, $4b10
+ ld hl, $9550
+ ld bc, $3e08
+ jp Get2bpp
+; 3edd1
+
+
+EmptyBattleTextBox: ; 3edd1
+ ld hl, .empty
+ jp BattleTextBox
+.empty
+ db "@"
+; 3edd8
+
+
+_BattleRandom: ; 3edd8
+; If the normal RNG is used in a link battle it'll desync.
+; To circumvent this a shared PRNG is used instead.
+
+; But if we're in a non-link battle we're safe to use it
+ ld a, [InLinkBattle]
+ and a
+ jp z, Random
+
+; The PRNG operates in streams of 10 values.
+
+; Which value are we trying to pull?
+ push hl
+ push bc
+ ld a, [LinkBattleRNCount]
+ ld c, a
+ ld b, 0
+ ld hl, LinkBattleRNs
+ add hl, bc
+ inc a
+ ld [LinkBattleRNCount], a
+
+; If we haven't hit the end yet, we're good
+ cp 10 - 1 ; Exclude last value. See the closing comment
+ ld a, [hl]
+ pop bc
+ pop hl
+ ret c
+
+; If we have, we have to generate new pseudorandom data
+; Instead of having multiple PRNGs, ten seeds are used
+ push hl
+ push bc
+ push af
+
+; Reset count to 0
+ xor a
+ ld [LinkBattleRNCount], a
+ ld hl, LinkBattleRNs
+ ld b, 10 ; number of seeds
+
+; Generate next number in the sequence for each seed
+; The algorithm takes the form *5 + 1 % 256
+.loop
+ ; get last #
+ ld a, [hl]
+
+ ; a * 5 + 1
+ ld c, a
+ add a
+ add a
+ add c
+ inc a
+
+ ; update #
+ ld [hli], a
+ dec b
+ jr nz, .loop
+
+; This has the side effect of pulling the last value first,
+; then wrapping around. As a result, when we check to see if
+; we've reached the end, we check the one before it.
+
+ pop af
+ pop bc
+ pop hl
+ ret
+; 3ee0f
+
+
+Function3ee0f: ; 3ee0f
+ ld a, BATTLE_VARS_SUBSTATUS3
+ call GetBattleVar
+ and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
+ ret nz
+; 3ee17
+
+Function3ee17: ; 3ee17
+ ld a, e
+ ld [FXAnimIDLo], a
+ ld a, d
+ ld [FXAnimIDHi], a
+ call WaitBGMap
+ ld a, $37
+ jp Predef
+; 3ee27
+
+Function3ee27: ; 3ee27
+ push af
+ push bc
+ push de
+ push hl
+ ld b, $1
+ call GetSGBLayout
+ call Function32f9
+ call DelayFrame
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+; 3ee3b
+
+
+Function3ee3b: ; 3ee3b
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+ ld a, [$cfc0]
+ bit 0, a
+ ret nz
+ call Function3f0d4
+ xor a
+ ld [CurPartyMon], a
+ ld bc, PartyMon1Species
+
+.asm_3ee50
+ ld hl, $0022
+ add hl, bc
+ ld a, [hli]
+ or [hl]
+ jp z, .asm_3f0b9
+ push bc
+ ld hl, $c664
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, $2
+ ld d, $0
+ ld a, $3
+ call Predef
+ ld a, c
+ and a
+ pop bc
+ jp z, .asm_3f0b9
+ ld hl, $000c
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, EnemyMonType2
+ push bc
+ ld c, $5
+.asm_3ee7c
+ inc hl
+ ld a, [de]
+ add [hl]
+ ld [de], a
+ jr nc, .asm_3ee89
+ dec de
+ ld a, [de]
+ inc a
+ jr z, .asm_3eea4
+ ld [de], a
+ inc de
+
+.asm_3ee89
+ push hl
+ push bc
+ ld a, $1c
+ call GetPartyParamLocation
+ ld a, [hl]
+ and a
+ pop bc
+ pop hl
+ jr z, .asm_3eea9
+ ld a, [de]
+ add [hl]
+ ld [de], a
+ jr nc, .asm_3eea9
+ dec de
+ ld a, [de]
+ inc a
+ jr z, .asm_3eea4
+ ld [de], a
+ inc de
+ jr .asm_3eea9
+
+.asm_3eea4
+ ld a, $ff
+ ld [de], a
+ inc de
+ ld [de], a
+
+.asm_3eea9
+ inc de
+ inc de
+ dec c
+ jr nz, .asm_3ee7c
+ xor a
+ ld [hMultiplicand], a
+ ld [$ffb5], a
+ ld a, [EnemyMonBaseExp]
+ ld [$ffb6], a
+ ld a, [EnemyMonLevel]
+ ld [hMultiplier], a
+ call Multiply
+ ld a, $7
+ ld [hMultiplier], a
+ ld b, $4
+ call Divide
+ pop bc
+ ld hl, $0006
+ add hl, bc
+ ld a, [PlayerID]
+ cp [hl]
+ jr nz, .asm_3eedd
+ inc hl
+ ld a, [$d47c]
+ cp [hl]
+ ld a, $0
+ jr z, .asm_3eee2
+
+.asm_3eedd
+ call Function3f106
+ ld a, $1
+
+.asm_3eee2
+ ld [$d088], a
+ ld a, [IsInBattle]
+ dec a
+ call nz, Function3f106
+ push bc
+ ld a, $1
+ call GetPartyParamLocation
+ ld a, [hl]
+ cp $7e
+ call z, Function3f106
+ ld a, [$ffb6]
+ ld [$d087], a
+ ld a, [$ffb5]
+ ld [StringBuffer2], a
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ ld hl, UnknownText_0x3f11b
+ call BattleTextBox
+ ld a, [$d087]
+ ld [$ffb6], a
+ ld a, [StringBuffer2]
+ ld [$ffb5], a
+ pop bc
+ call Function3f136
+ push bc
+ call Function309d
+ pop bc
+ ld hl, $000a
+ add hl, bc
+ ld d, [hl]
+ ld a, [$ffb6]
+ add d
+ ld [hld], a
+ ld d, [hl]
+ ld a, [$ffb5]
+ adc d
+ ld [hl], a
+ jr nc, .asm_3ef3d
+ dec hl
+ inc [hl]
+ jr nz, .asm_3ef3d
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.asm_3ef3d
+ ld a, [CurPartyMon]
+ ld e, a
+ ld d, $0
+ ld hl, PartySpecies
+ add hl, de
+ ld a, [hl]
+ ld [CurSpecies], a
+ call GetBaseData
+ push bc
+ ld d, $64
+ callab Function50e47
+ pop bc
+ ld hl, $000a
+ add hl, bc
+ push bc
+ ld a, [hMultiplicand]
+ ld b, a
+ ld a, [$ffb5]
+ ld c, a
+ ld a, [$ffb6]
+ ld d, a
+ ld a, [hld]
+ sub d
+ ld a, [hld]
+ sbc c
+ ld a, [hl]
+ sbc b
+ jr c, .asm_3ef74
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, d
+ ld [hld], a
+
+.asm_3ef74
+ xor a
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ callab Function50e1b
+ pop bc
+ ld hl, $001f
+ add hl, bc
+ ld a, [hl]
+ cp $64
+ jp nc, .asm_3f0b9
+ cp d
+ jp z, .asm_3f0b9
+ ld [$c719], a
+ ld a, [CurPartyLevel]
+ push af
+ ld a, d
+ ld [CurPartyLevel], a
+ ld [hl], a
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ ld [CurSpecies], a
+ ld [$d265], a
+ call GetBaseData
+ ld hl, $0025
+ add hl, bc
+ ld a, [hld]
+ ld e, a
+ ld d, [hl]
+ push de
+ ld hl, $0024
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000a
+ add hl, bc
+ push bc
+ ld b, $1
+ ld a, $c
+ call Predef
+ pop bc
+ pop de
+ ld hl, $0025
+ add hl, bc
+ ld a, [hld]
+ sub e
+ ld e, a
+ ld a, [hl]
+ sbc d
+ ld d, a
+ dec hl
+ ld a, [hl]
+ add e
+ ld [hld], a
+ ld a, [hl]
+ adc d
+ ld [hl], a
+ ld a, [CurBattleMon]
+ ld d, a
+ ld a, [CurPartyMon]
+ cp d
+ jr nz, .asm_3f035
+ ld de, BattleMonHP
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld de, BattleMonMaxHP
+ push bc
+ ld bc, $000c
+ call CopyBytes
+ pop bc
+ ld hl, $001f
+ add hl, bc
+ ld a, [hl]
+ ld [BattleMonLevel], a
+ ld a, [PlayerSubStatus5]
+ bit 3, a
+ jr nz, .asm_3f012
+ ld hl, $0026
+ add hl, bc
+ ld de, PlayerStats
+ ld bc, $000a
+ call CopyBytes
+
+.asm_3f012
+ xor a
+ ld [$d265], a
+ call Function3ecab
+ callab Function3ec2c
+ callab BadgeStatBoosts
+ callab Function3df48
+ call EmptyBattleTextBox
+ call Function309d
+ ld a, $1
+ ld [hBGMapMode], a
+
+.asm_3f035
+ callba Function2709e
+ ld a, [CurBattleMon]
+ ld b, a
+ ld a, [CurPartyMon]
+ cp b
+ jr z, .asm_3f057
+ ld de, SFX_HIT_END_OF_EXP_BAR
+ call PlaySFX
+ call WaitSFX
+ ld hl, BattleText_0x80c9c
+ call StdBattleTextBox
+ call Function309d
+
+.asm_3f057
+ xor a
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ ld hl, $c4a9
+ ld b, $a
+ ld c, $9
+ call TextBox
+ ld hl, $c4bf
+ ld bc, $0004
+ ld a, $28
+ call Predef
+ ld c, $1e
+ call DelayFrames
+ call Functiona80
+ call Function30b4
+ xor a
+ ld [MonType], a
+ ld a, [CurSpecies]
+ ld [$d265], a
+ ld a, [CurPartyLevel]
+ push af
+ ld c, a
+ ld a, [$c719]
+ ld b, a
+
+.asm_3f093
+ inc b
+ ld a, b
+ ld [CurPartyLevel], a
+ push bc
+ ld a, $1a
+ call Predef
+ pop bc
+ ld a, b
+ cp c
+ jr nz, .asm_3f093
+ pop af
+ ld [CurPartyLevel], a
+ ld hl, EvolvableFlags
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, $1
+ ld a, $3
+ call Predef
+ pop af
+ ld [CurPartyLevel], a
+
+.asm_3f0b9
+ ld a, [PartyCount]
+ ld b, a
+ ld a, [CurPartyMon]
+ inc a
+ cp b
+ jr z, .asm_3f0d1
+ ld [CurPartyMon], a
+ ld a, $0
+ call GetPartyParamLocation
+ ld b, h
+ ld c, l
+ jp .asm_3ee50
+
+.asm_3f0d1
+ jp Function3d57a
+; 3f0d4
+
+Function3f0d4: ; 3f0d4
+ ld a, [$c664]
+ ld b, a
+ ld c, $6
+ ld d, $0
+.asm_3f0dc
+ xor a
+ srl b
+ adc d
+ ld d, a
+ dec c
+ jr nz, .asm_3f0dc
+ cp $2
+ ret c
+ ld [$d265], a
+ ld hl, EnemyMonBaseStats
+ ld c, $7
+.asm_3f0ef
+ xor a
+ ld [hProduct], a
+ ld a, [hl]
+ ld [hMultiplicand], a
+ ld a, [$d265]
+ ld [hMultiplier], a
+ ld b, $2
+ call Divide
+ ld a, [$ffb6]
+ ld [hli], a
+ dec c
+ jr nz, .asm_3f0ef
+ ret
+; 3f106
+
+Function3f106: ; 3f106
+ push bc
+ ld a, [$ffb5]
+ ld b, a
+ ld a, [$ffb6]
+ ld c, a
+ srl b
+ rr c
+ add c
+ ld [$ffb6], a
+ ld a, [$ffb5]
+ adc b
+ ld [$ffb5], a
+ pop bc
+ ret
+; 3f11b
+
+UnknownText_0x3f11b: ; 3f11b
+ text_jump UnknownText_0x1c029c
+ start_asm
+ ld hl, UnknownText_0x3f131
+ ld a, [$d088] ; IsTradedMon
+ and a
+ ret z
+ ld hl, UnknownText_0x3f12c
+ ret
+; 3f12c
+
+UnknownText_0x3f12c: ; 3f12c
+ text_jump UnknownText_0x1c02a9
+ db "@"
+; 3f131
+
+UnknownText_0x3f131: ; 3f131
+ text_jump UnknownText_0x1c02c9
+ db "@"
+; 3f136
+
+
+Function3f136: ; 3f136
+
+ push bc
+
+ ld hl, CurPartyMon
+ ld a, [CurBattleMon]
+ cp [hl]
+ jp nz, .asm_3f219
+
+ ld a, [BattleMonLevel]
+ cp MAX_LEVEL
+ jp nc, .asm_3f219
+
+ ld a, [$ffb6]
+ ld [$d004], a
+ push af
+ ld a, [$ffb5]
+ ld [$d003], a
+ push af
+ xor a
+ ld [DefaultFlypoint], a
+ xor a
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ ld a, [TempMonLevel]
+ ld b, a
+ ld e, a
+ push de
+ ld de, $d118
+ call Function3f39c
+ push bc
+ ld hl, $d118
+ ld a, [$d004]
+ add [hl]
+ ld [hld], a
+ ld a, [$d003]
+ adc [hl]
+ ld [hld], a
+ jr nc, .asm_3f186
+ inc [hl]
+ jr nz, .asm_3f186
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.asm_3f186
+ ld d, $64
+ callab Function50e47
+ ld a, [hMultiplicand]
+ ld b, a
+ ld a, [$ffb5]
+ ld c, a
+ ld a, [$ffb6]
+ ld d, a
+ ld hl, $d118
+ ld a, [hld]
+ sub d
+ ld a, [hld]
+ sbc c
+ ld a, [hl]
+ sbc b
+ jr c, .asm_3f1a8
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, d
+ ld [hld], a
+
+.asm_3f1a8
+ callab Function50e1b
+ ld a, d
+ pop bc
+ pop de
+ ld d, a
+ cp e
+ jr nc, .asm_3f1b7
+ ld a, e
+ ld d, a
+
+.asm_3f1b7
+ ld a, e
+ cp $64
+ jr nc, .asm_3f1ff
+ cp d
+ jr z, .asm_3f1ff
+ inc a
+ ld [TempMonLevel], a
+ ld [CurPartyLevel], a
+ ld [BattleMonLevel], a
+ push de
+ call Function3f21b
+ ld c, $40
+ call Function3f22c
+ call PrintPlayerHUD
+ ld hl, BattleMonNick
+ ld de, StringBuffer1
+ ld bc, $000b
+ call CopyBytes
+ call Function3dfe
+ ld de, SFX_HIT_END_OF_EXP_BAR
+ call PlaySFX
+ callba Function8e79d
+ call WaitSFX
+ ld hl, BattleText_0x80c9c
+ call StdBattleTextBox
+ pop de
+ inc e
+ ld b, $0
+ jr .asm_3f1b7
+
+.asm_3f1ff
+ push bc
+ ld b, d
+ ld de, $d118
+ call Function3f39c
+ ld a, b
+ pop bc
+ ld c, a
+ call Function3f21b
+ call Function3f22c
+ call Function3dfe
+ pop af
+ ld [$ffb5], a
+ pop af
+ ld [$ffb6], a
+
+.asm_3f219
+ pop bc
+ ret
+; 3f21b
+
+Function3f21b: ; 3f21b
+ push bc
+ call WaitSFX
+ ld de, SFX_EXP_BAR
+ call PlaySFX
+ ld c, 10
+ call DelayFrames
+ pop bc
+ ret
+; 3f22c
+
+Function3f22c: ; 3f22c
+ ld d, $3
+ dec b
+.asm_3f22f
+ inc b
+ push bc
+ push de
+ ld hl, $c58d
+ call Function3f41c
+ pop de
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, d
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ pop bc
+ ld a, c
+ cp b
+ jr z, .asm_3f268
+ inc b
+ push bc
+ push de
+ ld hl, $c58d
+ call Function3f41c
+ pop de
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, d
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ dec d
+ jr nz, .asm_3f263
+ ld d, $1
+
+.asm_3f263
+ pop bc
+ ld a, c
+ cp b
+ jr nz, .asm_3f22f
+
+.asm_3f268
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 3f26d
+
+
+
+Function3f26d: ; 3f26d
+; SendOutMonText?
+
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3f27c
+ ld hl, UnknownText_0x3f2d1
+ ld a, [$d264]
+ and a
+ jr nz, .asm_3f2ce
+
+.asm_3f27c
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ ld hl, UnknownText_0x3f2d1
+ jr z, .asm_3f2ce
+ xor a
+ ld [hMultiplicand], a
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ ld [$c6ea], a
+ ld [$ffb5], a
+ ld a, [hl]
+ ld [$c6eb], a
+ ld [$ffb6], a
+ ld a, $19
+ ld [hMultiplier], a
+ call Multiply
+ ld hl, EnemyMonMaxHPHi
+ ld a, [hli]
+ ld b, [hl]
+ srl a
+ rr b
+ srl a
+ rr b
+ ld a, b
+ ld b, $4
+ ld [hMultiplier], a
+ call Divide
+ ld a, [$ffb6]
+ ld hl, UnknownText_0x3f2d1
+ cp $46
+ jr nc, .asm_3f2ce
+ ld hl, UnknownText_0x3f2d8
+ cp $28
+ jr nc, .asm_3f2ce
+ ld hl, UnknownText_0x3f2df
+ cp $a
+ jr nc, .asm_3f2ce
+ ld hl, UnknownText_0x3f2e6
+
+.asm_3f2ce
+ jp BattleTextBox
+; 3f2d1
+
+
+UnknownText_0x3f2d1: ; 3f2d1
+ text_jump UnknownText_0x1c02df
+ start_asm
+ jr Function3f2eb
+; 3f2d6
+
+UnknownText_0x3f2d8: ; 3f2d8
+ text_jump UnknownText_0x1c02e6
+ start_asm
+ jr Function3f2eb
+; 3f2dd
+
+UnknownText_0x3f2df: ; 3f2df
+ text_jump UnknownText_0x1c02f0
+ start_asm
+ jr Function3f2eb
+; 3f2e4
+
+UnknownText_0x3f2e6: ; 3f2e6
+ text_jump UnknownText_0x1c02fe
+ start_asm
+; 3f2eb
+
+Function3f2eb: ; 3f2eb
+ ld hl, UnknownText_0x3f2ef
+ ret
+; 3f2ef
+
+UnknownText_0x3f2ef: ; 3f2ef
+ text_jump UnknownText_0x1c0317
+ db "@"
+; 3f2f4
+
+
+Function3f2f4: ; 3f2f4
+ ld hl, UnknownText_0x3f2fa
+ jp BattleTextBox
+; 3f2fa
+
+UnknownText_0x3f2fa: ; 3f2fa
+ text_jump UnknownText_0x1c031d
+ start_asm
+; 3f2ff
+
+Function3f2ff: ; 3f2ff
+ push de
+ push bc
+ ld hl, EnemyMonHPLo
+ ld de, $c6eb
+ ld b, [hl]
+ dec hl
+ ld a, [de]
+ sub b
+ ld [$ffb6], a
+ dec de
+ ld b, [hl]
+ ld a, [de]
+ sbc b
+ ld [$ffb5], a
+ ld a, $19
+ ld [hMultiplier], a
+ call Multiply
+ ld hl, EnemyMonMaxHPHi
+ ld a, [hli]
+ ld b, [hl]
+ srl a
+ rr b
+ srl a
+ rr b
+ ld a, b
+ ld b, $4
+ ld [hMultiplier], a
+ call Divide
+ pop bc
+ pop de
+ ld a, [$ffb6]
+ ld hl, UnknownText_0x3f348
+ and a
+ ret z
+ ld hl, UnknownText_0x3f35b
+ cp $1e
+ ret c
+ ld hl, UnknownText_0x3f34d
+ cp $46
+ ret c
+ ld hl, UnknownText_0x3f352
+ ret
+; 3f348
+
+UnknownText_0x3f348: ; 3f348
+ text_jump UnknownText_0x1c0324
+ db "@"
+; 3f34d
+
+UnknownText_0x3f34d: ; 3f34d
+ text_jump UnknownText_0x1c0340
+ db "@"
+; 3f352
+
+UnknownText_0x3f352: ; 3f352
+ text_jump UnknownText_0x1c0352
+ db "@"
+; 3f357
+
+Function3f357: ; 3f357
+ ld hl, UnknownText_0x3f35b
+ ret
+; 3f35b
+
+UnknownText_0x3f35b: ; 3f35b
+ text_jump UnknownText_0x1c0366
+ db "@"
+; 3f360
+
+
+Function3f360: ; 3f360
+ ld hl, $c6f0
+ ld a, [hl]
+ and a
+ jr z, .asm_3f36d
+ dec [hl]
+ ld hl, BattleText_0x80cba
+ jr .asm_3f388
+
+.asm_3f36d
+ dec hl
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ld hl, BattleText_0x80cd1
+ jr nz, .asm_3f388
+ push hl
+ ld a, [EnemyMonSpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseCatchRate]
+ ld [EnemyMonCatchRate], a
+ pop hl
+
+.asm_3f388
+ push hl
+ call Function30b4
+ pop hl
+ jp StdBattleTextBox
+; 3f390
+
+
+FillInExpBar: ; 3f390
+ push hl
+ call Function3f39c
+ pop hl
+ ld de, $0007
+ add hl, de
+ jp Function3f41c
+; 3f39c
+
+Function3f39c: ; 3f39c
+ push de
+ ld d, b
+ push de
+ callab Function50e47
+ pop de
+ ld hl, hMultiplicand
+ ld a, [hli]
+ push af
+ ld a, [hli]
+ push af
+ ld a, [hl]
+ push af
+ inc d
+ callab Function50e47
+ ld hl, $ffb6
+ ld a, [hl]
+ ld [$ffba], a
+ pop bc
+ sub b
+ ld [hld], a
+ ld a, [hl]
+ ld [$ffb9], a
+ pop bc
+ sbc b
+ ld [hld], a
+ ld a, [hl]
+ ld [hMathBuffer], a
+ pop bc
+ sbc b
+ ld [hl], a
+ pop de
+ ld hl, $ffb5
+ ld a, [hli]
+ push af
+ ld a, [hl]
+ push af
+ ld a, [de]
+ dec de
+ ld c, a
+ ld a, [$ffba]
+ sub c
+ ld [hld], a
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [$ffb9]
+ sbc b
+ ld [hld], a
+ ld a, [de]
+ ld c, a
+ ld a, [hMathBuffer]
+ sbc c
+ ld [hld], a
+ xor a
+ ld [hl], a
+ ld a, $40
+ ld [hMultiplier], a
+ call Multiply
+ pop af
+ ld c, a
+ pop af
+ ld b, a
+.asm_3f3f4
+ ld a, b
+ and a
+ jr z, .asm_3f40c
+ srl b
+ rr c
+ ld hl, hProduct
+ srl [hl]
+ inc hl
+ rr [hl]
+ inc hl
+ rr [hl]
+ inc hl
+ rr [hl]
+ jr .asm_3f3f4
+
+.asm_3f40c
+ ld a, c
+ ld [hMultiplier], a
+ ld b, $4
+ call Divide
+ ld a, [$ffb6]
+ ld b, a
+ ld a, $40
+ sub b
+ ld b, a
+ ret
+; 3f41c
+
+Function3f41c: ; 3f41c
+ ld c, $8
+.asm_3f41e
+ ld a, b
+ sub $8
+ jr c, .asm_3f42c
+ ld b, a
+ ld a, $6a
+ ld [hld], a
+ dec c
+ jr z, .asm_3f43c
+ jr .asm_3f41e
+
+.asm_3f42c
+ add $8
+ jr z, .asm_3f434
+ add $54
+ jr .asm_3f436
+
+.asm_3f434
+ ld a, $62
+
+.asm_3f436
+ ld [hld], a
+ ld a, $62
+ dec c
+ jr nz, .asm_3f434
+
+.asm_3f43c
+ ret
+; 3f43d
+
+Function3f43d: ; 3f43d
+ ld a, [PlayerSubStatus4]
+ bit 4, a
+ ld hl, BattleAnimCmd_DD
+ jr nz, asm_3f46f
+Function3f447: ; 3f447
+ ld a, [$c6fe]
+ and a
+ ld hl, BattleAnimCmd_E2
+ jr nz, asm_3f46f
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [BattleMonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, BattleMonAtkDefDV
+ ld a, $2d
+ call Predef
+ ld de, $9310
+ ld a, $3d
+ call Predef
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+asm_3f46f
+ ld a, [hBattleTurn]
+ push af
+ xor a
+ ld [hBattleTurn], a
+ ld a, BANK(BattleAnimCommands)
+ rst FarCall
+ pop af
+ ld [hBattleTurn], a
+ ret
+; 3f47c
+
+Function3f47c: ; 3f47c
+ ld a, [EnemySubStatus4]
+ bit 4, a
+ ld hl, BattleAnimCmd_DD
+ jr nz, asm_3f4b4
+Function3f486: ; 3f486
+ ld a, [$c6fa]
+ and a
+ ld hl, BattleAnimCmd_E2
+ jr nz, asm_3f4b4
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [EnemyMonSpecies]
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ call GetBaseData
+ ld hl, EnemyMonAtkDefDV
+ ld a, $2d
+ call Predef
+ ld de, VTiles2
+ ld a, $3e
+ call Predef
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+asm_3f4b4
+ ld a, [hBattleTurn]
+ push af
+ call SetEnemyTurn
+ ld a, BANK(BattleAnimCommands)
+ rst FarCall
+ pop af
+ ld [hBattleTurn], a
+ ret
+; 3f4c1
+
+
+StartBattle: ; 3f4c1
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld a, [TimeOfDayPal]
+ push af
+ call Function3f4dd
+ call Function3c000
+ call Function3f69e
+ pop af
+ ld [TimeOfDayPal], a
+ scf
+ ret
+; 3f4d9
+
+
+Function3f4d9: ; 3f4d9
+ call Function3c000
+ ret
+; 3f4dd
+
+
+Function3f4dd: ; 3f4dd
+ callba Function106050
+ call Function3f54e
+ xor a
+ ld [TempBattleMonSpecies], a
+ ld [$d0d2], a
+ xor a
+ ld [$ffde], a
+ callba PlayBattleMusic
+ callba Function2ee18
+ callba Function2ee2f
+ call Function2ed3
+ callba ClearBattleRAM
+ call Function3f55e
+ call Function3f568
+ ld b, $0
+ call GetSGBLayout
+ ld hl, rLCDC
+ res 6, [hl]
+ call Function3fb6c
+ call BattleStartMessage
+ ld hl, rLCDC
+ set 6, [hl]
+ xor a
+ ld [hBGMapMode], a
+ call EmptyBattleTextBox
+ hlcoord 9, 7
+ ld bc, 5 << 8 + 11
+ call ClearBox
+ hlcoord 1, 0
+ ld bc, 4 << 8 + 10
+ call ClearBox
+ call ClearSprites
+ ld a, [IsInBattle]
+ cp $1
+ call z, Function3e036
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 3f54e
+
+Function3f54e: ; 3f54e
+ ld a, [OtherTrainerClass]
+ and a
+ jr nz, .asm_3f55a
+ ld a, [$d22e]
+ ld [CurPartySpecies], a
+
+.asm_3f55a
+ ld [TempEnemyMonSpecies], a
+ ret
+; 3f55e
+
+Function3f55e: ; 3f55e
+ ld a, [OtherTrainerClass]
+ and a
+ jp nz, Function3f594
+ jp Function3f607
+; 3f568
+
+Function3f568: ; 3f568
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, $d000
+ ld bc, VBlank5
+ ld a, $2
+ call ByteFill
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld de, $d000
+ ld hl, VBGMap0
+ ld bc, $0f40
+ call Request2bpp
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 3f594
+
+Function3f594: ; 3f594
+ ld [TrainerClass], a
+ callba Function10606a
+ xor a
+ ld [TempEnemyMonSpecies], a
+ callab Function3957b
+ callab Function39771
+ ld a, [TrainerClass]
+ cp $9
+ jr nz, .asm_3f5b8
+ xor a
+ ld [OTPartyMon1Item], a
+
+.asm_3f5b8
+ ld de, VTiles2
+ callab Function5120d
+ xor a
+ ld [$ffad], a
+ dec a
+ ld [$c6e6], a
+ ld hl, $c4ac
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ld a, $ff
+ ld [CurOTMon], a
+ ld a, $2
+ ld [IsInBattle], a
+ call IsJohtoGymLeader
+ jr nc, .asm_3f606
+ xor a
+ ld [CurPartyMon], a
+ ld a, [PartyCount]
+ ld b, a
+.asm_3f5ea
+ push bc
+ ld a, $22
+ call GetPartyParamLocation
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_3f5fc
+ ld c, $4
+ callab ChangeHappiness
+
+.asm_3f5fc
+ pop bc
+ dec b
+ jr z, .asm_3f606
+ ld hl, CurPartyMon
+ inc [hl]
+ jr .asm_3f5ea
+
+.asm_3f606
+ ret
+; 3f607
+
+Function3f607: ; 3f607
+ ld a, $1
+ ld [IsInBattle], a
+ callba Function10605d
+ call LoadEnemyMon
+ ld hl, EnemyMonMove1
+ ld de, $c735
+ ld bc, $0004
+ call CopyBytes
+ ld hl, EnemyMonPPMove1
+ ld de, $c739
+ ld bc, $0004
+ call CopyBytes
+ ld hl, EnemyMonAtkDefDV
+ ld a, $2d
+ call Predef
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr nz, .asm_3f648
+ ld a, [$def4]
+ and a
+ jr nz, .asm_3f648
+ ld a, [UnownLetter]
+ ld [$def4], a
+
+.asm_3f648
+ ld de, VTiles2
+ ld a, $3e
+ call Predef
+ xor a
+ ld [TrainerClass], a
+ ld [$ffad], a
+ ld hl, $c4ac
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ret
+; 3f662
+
+Function3f662: ; 3f662
+ ld hl, EnemyMonMove1
+ ld de, $d25e
+ ld b, $4
+.asm_3f66a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr z, .asm_3f690
+ push bc
+ push hl
+ push hl
+ dec a
+ ld hl, $5b00
+ ld bc, $0007
+ call AddNTimes
+ ld a, $10
+ call GetFarByte
+ pop hl
+ ld bc, $0005
+ add hl, bc
+ ld [hl], a
+ pop hl
+ pop bc
+ dec b
+ jr nz, .asm_3f66a
+ ret
+
+.asm_3f68e
+ xor a
+ ld [hli], a
+
+.asm_3f690
+ push bc
+ push hl
+ ld bc, $0005
+ add hl, bc
+ xor a
+ ld [hl], a
+ pop hl
+ pop bc
+ dec b
+ jr nz, .asm_3f68e
+ ret
+; 3f69e
+
+
+Function3f69e: ; 3f69e
+ call Function3f6a5
+ call Function3f6d0
+ ret
+; 3f6a5
+
+Function3f6a5: ; 3f6a5
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3f6b7
+ call Function3f759
+ ld c, $96
+ call DelayFrames
+ call Function3f77c
+ ret
+
+.asm_3f6b7
+ ld a, [$d0ee]
+ and $f
+ ret nz
+ call Function3f71d
+ xor a
+ ld [$d1e9], a
+ ld a, $1c
+ call Predef
+ callba Function2ed44
+ ret
+; 3f6d0
+
+Function3f6d0: ; 3f6d0
+ call Function3f998
+ xor a
+ ld [Danger], a
+ ld [IsInBattle], a
+ ld [BattleType], a
+ ld [AttackMissed], a
+ ld [$d22e], a
+ ld [OtherTrainerClass], a
+ ld [$d266], a
+ ld [$d267], a
+ ld [$d232], a
+ ld [$d0d8], a
+ ld [$d0da], a
+ ld [$d0d9], a
+ ld [$d0d2], a
+ ld [CurMoveNum], a
+ ld [$d0db], a
+ ld [$d0d6], a
+ ld [$d0e4], a
+ ld [$d0e0], a
+ ld [$d0df], a
+ ld [$d0e1], a
+ ld hl, PlayerSubStatus1
+ ld b, $18
+.asm_3f715
+ ld [hli], a
+ dec b
+ jr nz, .asm_3f715
+ call WaitSFX
+ ret
+; 3f71d
+
+Function3f71d: ; 3f71d
+ ld hl, $c6ec
+ ld a, [hli]
+ or [hl]
+ inc hl
+ or [hl]
+ ret z
+ ld a, [$c73d]
+ and a
+ jr z, .asm_3f73d
+ ld hl, $c6ee
+ sla [hl]
+ dec hl
+ rl [hl]
+ dec hl
+ rl [hl]
+ jr nc, .asm_3f73d
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.asm_3f73d
+ ld hl, $c6ee
+ ld de, $d850
+ call Function3d0be
+ ld hl, BattleText_0x80730
+ call StdBattleTextBox
+ ld a, [$cfc0]
+ bit 0, a
+ ret z
+ call ClearTileMap
+ call WhiteBGMap
+ ret
+; 3f759
+
+Function3f759: ; 3f759
+ callba Function1060df
+ callba Function106187
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1Status
+ call GetPartyLocation
+ ld a, [EnemyMonStatus]
+ ld [hl], a
+ call ClearTileMap
+ callba Function2c1b2
+ ret
+; 3f77c
+
+Function3f77c: ; 3f77c
+ callba Function3d2e0
+ jp c, Function3f80f
+ call Function3f830
+ jr nz, .asm_3f797
+ ld hl, $cd2a
+ bit 4, [hl]
+ jr z, .asm_3f797
+ callba Function2b930
+
+.asm_3f797
+ ld a, [$d0ee]
+ and $f
+ cp $1
+ jr c, .asm_3f7ad
+ jr z, .asm_3f7b8
+ callba Function106107
+ ld de, .Draw
+ jr .asm_3f7c3
+
+.asm_3f7ad
+ callba Function1060fb
+ ld de, .Win
+ jr .asm_3f7c3
+
+.asm_3f7b8
+ callba Function106101
+ ld de, .Lose
+ jr .asm_3f7c3
+
+.asm_3f7c3
+ ld hl, $c546
+ call PlaceString
+ callba Function106187
+ ld c, $c8
+ call DelayFrames
+ ld a, $1
+ call GetSRAMBank
+ call Function3fa42
+ call Function3f85f
+ call CloseSRAM
+ call Function3f830
+ jr z, .asm_3f7ee
+ call Functiona80
+ call ClearTileMap
+ ret
+
+.asm_3f7ee
+ ld c, $c8
+ call DelayFrames
+ call ClearTileMap
+ ret
+; 3f7f7
+
+.Win
+ db "YOU WIN@"
+.Lose
+ db "YOU LOSE@"
+.Draw
+ db " DRAW@"
+; 3f80f
+
+
+Function3f80f: ; 3f80f
+ ld hl, $c546
+ ld de, .Invalid
+ call PlaceString
+ ld c, $c8
+ call DelayFrames
+ call ClearTileMap
+ ret
+; 3f821
+
+.Invalid
+ db "INVALID BATTLE@"
+; 3f830
+
+
+Function3f830: ; 3f830
+ ld a, [InLinkBattle]
+ cp $4
+ ret
+; 3f836
+
+
+Function3f836: ; 3f836
+ ld a, $1
+ call GetSRAMBank
+ call Function3f85f
+ call CloseSRAM
+ ld hl, AttrMap
+ xor a
+ ld bc, $0168
+ call ByteFill
+ call Function3200
+ ld b, $8
+ call GetSGBLayout
+ call Function32f9
+ ld c, $8
+ call DelayFrames
+ call Functiona80
+ ret
+; 3f85f
+
+
+Function3f85f: ; 3f85f
+ call ClearTileMap
+ call ClearSprites
+ call .asm_3f8e0
+ ld hl, $c540
+ ld b, $5
+ ld de, $b268
+.asm_3f870
+ push bc
+ push hl
+ push de
+ ld a, [de]
+ and a
+ jr z, .asm_3f8c9
+ ld a, [$d4b4]
+ and a
+ jr z, .asm_3f8c9
+ push hl
+ push hl
+ ld h, d
+ ld l, e
+ ld de, DefaultFlypoint
+ ld bc, $000a
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ inc de
+ ld bc, $0006
+ call CopyBytes
+ ld de, DefaultFlypoint
+ pop hl
+ call PlaceString
+ pop hl
+ ld de, $001a
+ add hl, de
+ push hl
+ ld de, $d00d
+ ld bc, $0204
+ call PrintNum
+ pop hl
+ ld de, $0005
+ add hl, de
+ push hl
+ ld de, $d00f
+ ld bc, $0204
+ call PrintNum
+ pop hl
+ ld de, $0005
+ add hl, de
+ ld de, $d011
+ ld bc, $0204
+ call PrintNum
+ jr .asm_3f8cf
+
+.asm_3f8c9
+ ld de, .Format
+ call PlaceString
+
+.asm_3f8cf
+ pop hl
+ ld bc, $0012
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ ld bc, $0028
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_3f870
+ ret
+
+.asm_3f8e0
+ ld hl, $c4a1
+ ld de, .Record
+ call PlaceString
+
+ ld hl, $c518
+ ld de, .Result
+ call PlaceString
+
+ ld hl, $c4c8
+ ld de, .Total
+ call PlaceString
+
+ ld hl, $c4f6
+ ld de, $b260
+ call .asm_3f92b
+ jr c, .asm_3f92a
+
+ ld bc, $0204
+ call PrintNum
+
+ ld hl, $c4fb
+ ld de, $b262
+ call .asm_3f92b
+
+ ld bc, $0204
+ call PrintNum
+
+ ld hl, $c500
+ ld de, $b264
+ call .asm_3f92b
+
+ ld bc, $0204
+ call PrintNum
+
+.asm_3f92a
+ ret
+
+.asm_3f92b
+ ld a, [$d4b4]
+ and a
+ ret nz
+ ld de, .Scores
+ call PlaceString
+ scf
+ ret
+; 3f938
+
+.Scores
+ db " 0 0 0@"
+; 3f947
+
+.Format ; 3f947
+ db " --- ", $22, " - - -@"
+.Record ; 3f964
+ db $52, "'s RECORD@"
+.Result ; 3f96e
+ db "RESULT WIN LOSE DRAW@"
+.Total ; 3f983
+ db "TOTAL WIN LOSE DRAW@"
+; 3f998
+
+
+Function3f998: ; 3f998
+ ld a, [BattleType]
+ cp BATTLETYPE_ROAMING
+ jr nz, .asm_3f9c4
+ ld a, [$d0ee]
+ and $f
+ jr z, .asm_3f9af
+ call GetRoamMonHP
+ ld a, [EnemyMonHPLo]
+ ld [hl], a
+ jr .asm_3f9ca
+
+.asm_3f9af
+ call GetRoamMonHP
+ ld [hl], $0
+ call GetRoamMonMapGroup
+ ld [hl], $ff
+ call GetRoamMonMapNumber
+ ld [hl], $ff
+ call GetRoamMonSpecies
+ ld [hl], $0
+ ret
+
+.asm_3f9c4
+ call BattleRandom
+ and $f
+ ret nz
+
+.asm_3f9ca
+ callab Function2a30d
+ ret
+; 3f9d1
+
+GetRoamMonMapGroup: ; 3f9d1
+ ld a, [TempEnemyMonSpecies]
+ ld b, a
+ ld a, [RoamMon1Species]
+ cp b
+ ld hl, RoamMon1MapGroup
+ ret z
+ ld a, [RoamMon2Species]
+ cp b
+ ld hl, RoamMon2MapGroup
+ ret z
+ ld hl, RoamMon3MapGroup
+ ret
+; 3f9e9
+
+GetRoamMonMapNumber: ; 3f9e9
+ ld a, [TempEnemyMonSpecies]
+ ld b, a
+ ld a, [RoamMon1Species]
+ cp b
+ ld hl, RoamMon1MapNumber
+ ret z
+ ld a, [RoamMon2Species]
+ cp b
+ ld hl, RoamMon2MapNumber
+ ret z
+ ld hl, RoamMon3MapNumber
+ ret
+; 3fa01
+
+GetRoamMonHP: ; 3fa01
+; output: hl = RoamMonCurHP
+ ld a, [TempEnemyMonSpecies]
+ ld b, a
+ ld a, [RoamMon1Species]
+ cp b
+ ld hl, RoamMon1CurHP
+ ret z
+ ld a, [RoamMon2Species]
+ cp b
+ ld hl, RoamMon2CurHP
+ ret z
+ ld hl, RoamMon3CurHP
+ ret
+; 3fa19
+
+GetRoamMonDVs: ; 3fa19
+; output: hl = RoamMonDVs
+ ld a, [TempEnemyMonSpecies]
+ ld b, a
+ ld a, [RoamMon1Species]
+ cp b
+ ld hl, RoamMon1DVs
+ ret z
+ ld a, [RoamMon2Species]
+ cp b
+ ld hl, RoamMon2DVs
+ ret z
+ ld hl, RoamMon3DVs
+ ret
+; 3fa31
+
+GetRoamMonSpecies: ; 3fa31
+ ld a, [TempEnemyMonSpecies]
+ ld hl, RoamMon1Species
+ cp [hl]
+ ret z
+ ld hl, RoamMon2Species
+ cp [hl]
+ ret z
+ ld hl, RoamMon3Species
+ ret
+; 3fa42
+
+
+Function3fa42: ; 3fa42
+ ld hl, $d276
+ ld de, StringBuffer1
+ ld bc, $0002
+ call CopyBytes
+ ld hl, $d26b
+ ld bc, $000a
+ call CopyBytes
+ ld hl, $b254
+ call Function3faa0
+ ld hl, $b266
+ ld d, $5
+.asm_3fa62
+ push hl
+ inc hl
+ inc hl
+ ld a, [hl]
+ dec hl
+ dec hl
+ and a
+ jr z, .asm_3fa85
+ push de
+ ld bc, $000c
+ ld de, StringBuffer1
+ call CompareLong
+ pop de
+ pop hl
+ jr c, .asm_3fa99
+ ld bc, $0012
+ add hl, bc
+ dec d
+ jr nz, .asm_3fa62
+ ld bc, $ffee
+ add hl, bc
+ push hl
+
+.asm_3fa85
+ ld d, h
+ ld e, l
+ ld hl, StringBuffer1
+ ld bc, $000c
+ call CopyBytes
+ ld b, $6
+ xor a
+.asm_3fa93
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_3fa93
+ pop hl
+
+.asm_3fa99
+ call Function3faa0
+ call Function3fac8
+ ret
+; 3faa0
+
+Function3faa0: ; 3faa0
+ ld a, [$d0ee]
+ and $f
+ cp $1
+ ld bc, $000d
+ jr c, .asm_3fab4
+ ld bc, $000f
+ jr z, .asm_3fab4
+ ld bc, $0011
+
+.asm_3fab4
+ add hl, bc
+ call Function3fabe
+ ret nc
+ inc [hl]
+ ret nz
+ dec hl
+ inc [hl]
+ ret
+; 3fabe
+
+Function3fabe: ; 3fabe
+ dec hl
+ ld a, [hl]
+ inc hl
+ cp $27
+ ret c
+ ld a, [hl]
+ cp $f
+ ret
+; 3fac8
+
+Function3fac8: ; 3fac8
+ ld b, $5
+ ld hl, $b277
+ ld de, DefaultFlypoint
+.asm_3fad0
+ push bc
+ push de
+ push hl
+ call Function3fb54
+ pop hl
+ ld a, e
+ pop de
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ ld a, c
+ ld [de], a
+ inc de
+ ld bc, $0012
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_3fad0
+ ld b, $0
+ ld c, $1
+.asm_3faed
+ ld a, b
+ add b
+ add b
+ ld e, a
+ ld d, $0
+ ld hl, DefaultFlypoint
+ add hl, de
+ push hl
+ ld a, c
+ add c
+ add c
+ ld e, a
+ ld d, $0
+ ld hl, DefaultFlypoint
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ push bc
+ ld c, $3
+ call StringCmp
+ pop bc
+ jr z, .asm_3fb10
+ jr nc, .asm_3fb1f
+
+.asm_3fb10
+ inc c
+ ld a, c
+ cp $5
+ jr nz, .asm_3faed
+ inc b
+ ld c, b
+ inc c
+ ld a, b
+ cp $4
+ jr nz, .asm_3faed
+ ret
+
+.asm_3fb1f
+ push bc
+ ld a, b
+ ld bc, $0012
+ ld hl, $b266
+ call AddNTimes
+ push hl
+ ld de, DefaultFlypoint
+ ld bc, $0012
+ call CopyBytes
+ pop hl
+ pop bc
+ push hl
+ ld a, c
+ ld bc, $0012
+ ld hl, $b266
+ call AddNTimes
+ pop de
+ push hl
+ ld bc, $0012
+ call CopyBytes
+ ld hl, DefaultFlypoint
+ ld bc, $0012
+ pop de
+ call CopyBytes
+ ret
+; 3fb54
+
+Function3fb54: ; 3fb54
+ ld e, $0
+ ld a, [hld]
+ ld c, a
+ ld a, [hld]
+ ld b, a
+ ld a, [hld]
+ add c
+ ld c, a
+ ld a, [hld]
+ adc b
+ ld b, a
+ jr nc, .asm_3fb63
+ inc e
+
+.asm_3fb63
+ ld a, [hld]
+ add c
+ ld c, a
+ ld a, [hl]
+ adc b
+ ld b, a
+ ret nc
+ inc e
+ ret
+; 3fb6c
+
+Function3fb6c: ; 3fb6c
+ call Function3fbf8
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call TextBox
+ callba MobileTextBorder
+ ld hl, $c505
+ ld bc, $0307
+ call ClearBox
+ call Functione51
+ call Function3ed9f
+ call Function3fbd6
+ xor a
+ ld [$ffde], a
+ ld [hSCY], a
+ ld a, $90
+ ld [hWY], a
+ ld [rWY], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ callba Function4e980
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, $31
+ ld [$ffad], a
+ ld hl, $c51a
+ ld bc, $0606
+ ld a, $13
+ call Predef
+ xor a
+ ld [hWY], a
+ ld [rWY], a
+ call WaitBGMap
+ call HideSprites
+ ld b, $1
+ call GetSGBLayout
+ call Function32f9
+ ld a, $90
+ ld [hWY], a
+ xor a
+ ld [hSCX], a
+ ret
+; 3fbd6
+
+Function3fbd6: ; 3fbd6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, $d000
+ ld bc, VBlank5
+ ld a, $7f
+ call ByteFill
+ ld de, $d000
+ ld hl, VBGMap0
+ ld bc, $0f40
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+; 3fbf8
+
+Function3fbf8: ; 3fbf8
+ call GetBattleBackpic
+ call Function3fc30
+ ret
+; 3fbff
+
+
+GetBattleBackpic: ; 3fbff
+; Load the player character's backpic (6x6) into VRAM starting from $9310.
+
+; Special exception for Dude.
+ ld b, BANK(DudeBackpic)
+ ld hl, DudeBackpic
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ jr z, .Decompress
+
+; What gender are we?
+ ld a, [$d45b]
+ bit 2, a
+ jr nz, .Chris
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .Chris
+
+; It's a girl.
+ callba GetKrisBackpic
+ ret
+
+.Chris
+; It's a boy.
+ ld b, BANK(ChrisBackpic)
+ ld hl, ChrisBackpic
+
+.Decompress
+ ld de, $9310
+ ld c, $31
+ ld a, PREDEF_DECOMPRESS
+ call Predef
+ ret
+; 3fc30
+
+
+Function3fc30: ; 3fc30
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, VTiles0
+ ld de, $9310
+ ld a, [hROMBank]
+ ld b, a
+ ld c, $31
+ call Get2bpp
+ pop af
+ ld [rSVBK], a
+ call Function3fc5b
+ ld a, $31
+ ld [$ffad], a
+ ld hl, $c51a
+ ld bc, $0606
+ ld a, $13
+ call Predef
+ ret
+; 3fc5b
+
+Function3fc5b: ; 3fc5b
+ ld hl, Sprites
+ xor a
+ ld [hConnectionStripLength], a
+ ld b, $6
+ ld e, $a8
+.asm_3fc65
+ ld c, $3
+ ld d, $40
+.asm_3fc69
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ inc hl
+ ld a, [hConnectionStripLength]
+ ld [hli], a
+ inc a
+ ld [hConnectionStripLength], a
+ ld a, $1
+ ld [hli], a
+ ld a, d
+ add $8
+ ld d, a
+ dec c
+ jr nz, .asm_3fc69
+ ld a, [hConnectionStripLength]
+ add $3
+ ld [hConnectionStripLength], a
+ ld a, e
+ add $8
+ ld e, a
+ dec b
+ jr nz, .asm_3fc65
+ ret
+; 3fc8b
+
+
+BattleStartMessage: ; 3fc8b
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3fcaa
+
+ ld de, SFX_SHINE
+ call PlaySFX
+ call WaitSFX
+
+ ld c, 20
+ call DelayFrames
+
+ callba Function39939
+
+ ld hl, WantsToBattleText
+ jr .asm_3fd0e
+
+.asm_3fcaa
+ call Function3da79
+ jr nc, .asm_3fcc2
+
+ xor a
+ ld [$cfca], a
+ ld a, 1
+ ld [hBattleTurn], a
+ ld a, 1
+ ld [$c689], a
+ ld de, $0101
+ call Function3ee17
+
+.asm_3fcc2
+ callba CheckSleepingTreeMon
+ jr c, .asm_3fceb
+
+ callba CheckBattleScene
+ jr c, .asm_3fce0
+
+ hlcoord 12, 0
+ ld d, $0
+ ld e, $1
+ ld a, $47
+ call Predef
+ jr .asm_3fceb
+
+.asm_3fce0
+ ld a, $0f
+ ld [CryTracks], a
+ ld a, [TempEnemyMonSpecies]
+ call Function37b6
+
+.asm_3fceb
+ ld a, [BattleType]
+ cp BATTLETYPE_FISH
+ jr nz, .asm_3fcfd
+
+ callba Function106086
+
+ ld hl, HookedPokemonAttackedText
+ jr .asm_3fd0e
+
+.asm_3fcfd
+ ld hl, PokemonFellFromTreeText
+ cp BATTLETYPE_TREE
+ jr z, .asm_3fd0e
+ ld hl, WildPokemonAppearedText2
+ cp $b
+ jr z, .asm_3fd0e
+ ld hl, WildPokemonAppearedText
+
+.asm_3fd0e
+ push hl
+ callba Function2c000
+ pop hl
+ call StdBattleTextBox
+
+ call Function3f830
+ ret nz
+
+ ld c, $2
+ callba Function4ea0a
+
+ ret
+; 3fd26
+
diff --git a/battle/effect_command_pointers.asm b/battle/effect_command_pointers.asm
index a8f382693..073fe406e 100644
--- a/battle/effect_command_pointers.asm
+++ b/battle/effect_command_pointers.asm
@@ -1,4 +1,7 @@
-; 3fd28
+
+ dw $0000 ; padding
+
+BattleCommandPointers: ; 3fd28
dw BattleCommand01 ; 34084
dw BattleCommand02 ; 343db
dw BattleCommand03 ; 34541
diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm
index 52b23fddb..24eaf4288 100644
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -171,7 +171,7 @@ CheckPlayerTurn:
jr z, .WokeUp
xor a
ld [$cfca], a
- ld de, ANIM_SLEEP
+ ld de, ANIM_SLP
call FarPlayBattleAnimation
jr .FastAsleep
@@ -315,7 +315,7 @@ CheckPlayerTurn:
xor a
ld [$cfca], a
- ld de, ANIM_INLOVE
+ ld de, ANIM_IN_LOVE
call FarPlayBattleAnimation
; 50% chance of infatuation
@@ -432,7 +432,7 @@ CheckEnemyTurn: ; 3421f
call StdBattleTextBox
xor a
ld [$cfca], a
- ld de, ANIM_SLEEP
+ ld de, ANIM_SLP
call FarPlayBattleAnimation
jr .FastAsleep
@@ -594,7 +594,7 @@ CheckEnemyTurn: ; 3421f
xor a
ld [$cfca], a
- ld de, ANIM_INLOVE
+ ld de, ANIM_IN_LOVE
call FarPlayBattleAnimation
; 50% chance of infatuation
@@ -5318,7 +5318,7 @@ PlayFXAnimID: ; 35d08
ld c, 3
call DelayFrames
- callab Functioncc0d6
+ callab PlayBattleAnim
ret
; 35d1c
@@ -6634,12 +6634,12 @@ GetStatName: ; 3648f
Table0x364e6: ; 364e6
- dw $6419
- dw $641c
- dw $6421
- dw $6428
- dw $6432
- dw $6442
+ db 25, 100
+ db 28, 100
+ db 33, 100
+ db 40, 100
+ db 50, 100
+ db 66, 100
; 364f2
@@ -6806,7 +6806,7 @@ BattleCommanda6: ; 365af
xor a
ld [$ffd4], a
call CallBankF
- jp $31f6
+ jp WaitBGMap
; 365c3
@@ -6820,7 +6820,7 @@ BattleCommanda7: ; 365c3
xor a
ld [$ffd4], a
call CallBankF
- jp $31f6
+ jp WaitBGMap
; 365d7
@@ -6873,50 +6873,54 @@ Function0x3661d: ; 3661d
ld a, [hli]
push hl
push bc
+
ld c, a
dec c
ld b, 0
ld hl, Table0x364e6
add hl, bc
add hl, bc
+
xor a
- ld [$ffb4], a
+ ld [hMultiplicand], a
ld a, [de]
- ld [$ffb5], a
+ ld [hMultiplicand + 1], a
inc de
ld a, [de]
- ld [$ffb6], a
+ ld [hMultiplicand + 2], a
inc de
+
ld a, [hli]
- ld [$ffb7], a
+ ld [hMultiplier], a
call Multiply
ld a, [hl]
- ld [$ffb7], a
- ld b, $4
+ ld [hDivisor], a
+ ld b, 4
call Divide
- ld a, [$ffb5]
+ ld a, [hQuotient + 1]
ld b, a
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
or b
jr nz, .asm_36651
- ld a, $1
- ld [$ffb6], a
+ ld a, 1
+ ld [hQuotient + 2], a
jr .asm_36662
.asm_36651
- ld a, [$ffb6]
- cp $e7
+ ld a, [hQuotient + 2]
+ cp 999 % $100
ld a, b
- sbc $3
+ sbc 999 / $100
jr c, .asm_36662
- ld a, $e7
+ ld a, 999 % $100
ld [$ffb6], a
- ld a, $3
+ ld a, 999 / $100
ld [$ffb5], a
+
.asm_36662
pop bc
ld a, [$ffb5]
@@ -9139,116 +9143,14 @@ BattleCommand1a: ; 37380
ret nc
callba DrawPlayerHUD
callba Function3e043
- call $31f6
+ call WaitBGMap
jp RefreshBattleHuds
; 373c9
-BattleCommand1b: ; 373c9
-; mirrormove
-
- call Function0x372d8
- ld a, BATTLE_VARS_MOVE
- call _GetBattleVar
- ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
- call GetBattleVar
- and a
- jr z, .asm_373de ; 373d7 $5
- call CheckUserMove
- jr nz, .asm_373ea ; 373dc $c
-.asm_373de
- call Function0x37e77
- ld hl, MirrorMoveFailedText
- call StdBattleTextBox
- jp EndMoveEffect
-.asm_373ea
- ld a, b
- ld [hl], a
- ld [$d265], a
- push af
- ld a, BATTLE_VARS_MOVE_ANIM
- call _GetBattleVar
- ld d, h
- ld e, l
- pop af
- dec a
- call GetMoveData
- call GetMoveName
- call $30d6
- call Function0x34548
- jr nz, .asm_37412 ; 37405 $b
- ld a, [$c689]
- push af
- call BattleCommand0a
- pop af
- ld [$c689], a
-.asm_37412
- call BattleCommandaa
- jp ResetTurn
-; 37418
-
-
-BattleCommand34: ; 37418
-; metronome
-
- call Function0x372d8
- call Function0x34548
- jr nz, .asm_3742b
-
- ld a, [$c689]
- push af
- call BattleCommand0a
- pop af
- ld [$c689], a
-
-.asm_3742b
- call Function0x37e36
-
-.GetMove
- call BattleRandom
-
-; No invalid moves.
- cp BEAT_UP + 1
- jr nc, .GetMove
-
-; None of the moves in MetronomeExcepts.
- push af
- ld de, 1
- ld hl, MetronomeExcepts
- call IsInArray
- pop bc
- jr c, .GetMove
-
-; No moves the user already has.
- ld a, b
- call CheckUserMove
- jr z, .GetMove
-
+INCLUDE "battle/effects/mirror_move.asm"
- ld a, BATTLE_VARS_MOVE
- call _GetBattleVar
- ld [hl], b
- call UpdateMoveData
- jp ResetTurn
-; 37454
-
-
-MetronomeExcepts: ; 37454
- db $00
- db METRONOME
- db STRUGGLE
- db SKETCH
- db MIMIC
- db COUNTER
- db MIRROR_COAT
- db PROTECT
- db DETECT
- db ENDURE
- db DESTINY_BOND
- db SLEEP_TALK
- db THIEF
- db $ff
-; 37462
+INCLUDE "battle/effects/metronome.asm"
CheckUserMove: ; 37462
@@ -9293,122 +9195,7 @@ ResetTurn: ; 3747b
; 37492
-BattleCommand50: ; 37492
-; thief
-
- ld a, [hBattleTurn]
- and a
- jr nz, .enemy
-
-; The player needs to be able to steal an item.
-
- call .playeritem
- ld a, [hl]
- and a
- ret nz
-
-; The enemy needs to have an item to steal.
-
- call .enemyitem
- ld a, [hl]
- and a
- ret z
-
-; Can't steal mail.
-
- ld [$d265], a
- ld d, a
- callba ItemIsMail
- ret c
-
- ld a, [EffectFailed]
- and a
- ret nz
-
- ld a, [InLinkBattle]
- and a
- jr z, .stealenemyitem
-
- ld a, [IsInBattle]
- dec a
- ret z
-
-.stealenemyitem
- call .enemyitem
- xor a
- ld [hl], a
- ld [de], a
-
- call .playeritem
- ld a, [$d265]
- ld [hl], a
- ld [de], a
- jr .stole
-
-
-.enemy
-
-; The enemy can't already have an item.
-
- call .enemyitem
- ld a, [hl]
- and a
- ret nz
-
-; The player must have an item to steal.
-
- call .playeritem
- ld a, [hl]
- and a
- ret z
-
-; Can't steal mail!
-
- ld [$d265], a
- ld d, a
- callba ItemIsMail
- ret c
-
- ld a, [EffectFailed]
- and a
- ret nz
-
-; If the enemy steals your item,
-; it's gone for good if you don't get it back.
-
- call .playeritem
- xor a
- ld [hl], a
- ld [de], a
-
- call .enemyitem
- ld a, [$d265]
- ld [hl], a
- ld [de], a
-
-
-.stole
- call GetItemName
- ld hl, StoleText
- jp StdBattleTextBox
-
-
-.playeritem
- ld a, 1
- call BattlePartyAttr
- ld d, h
- ld e, l
- ld hl, BattleMonItem
- ret
-
-.enemyitem
- ld a, 1
- call OTPartyAttr
- ld d, h
- ld e, l
- ld hl, EnemyMonItem
- ret
-; 37517
+INCLUDE "battle/effects/thief.asm"
BattleCommand51: ; 37517
@@ -9439,44 +9226,7 @@ BattleCommand51: ; 37517
; 37536
-BattleCommand52: ; 37536
-; nightmare
-
-; Can't hit an absent opponent.
-
- call CheckHiddenOpponent
- jr nz, .failed
-
-; Can't hit a substitute.
-
- call CheckSubstituteOpp
- jr nz, .failed
-
-; Only works on a sleeping opponent.
-
- ld a, BATTLE_VARS_STATUS_OPP
- call _GetBattleVar
- and SLP
- jr z, .failed
-
-; Bail if the opponent is already having a nightmare.
-
- ld a, BATTLE_VARS_SUBSTATUS1_OPP
- call _GetBattleVar
- bit SUBSTATUS_NIGHTMARE, [hl]
- jr nz, .failed
-
-; Otherwise give the opponent a nightmare.
-
- set SUBSTATUS_NIGHTMARE, [hl]
- call Function0x37e01
- ld hl, StartedNightmareText
- jp StdBattleTextBox
-
-.failed
- call Function0x37e77
- jp PrintButItFailed
-; 37563
+INCLUDE "battle/effects/nightmare.asm"
BattleCommand53: ; 37563
@@ -9520,172 +9270,13 @@ INCLUDE "battle/effects/endure.asm"
INCLUDE "battle/effects/spikes.asm"
+INCLUDE "battle/effects/foresight.asm"
-BattleCommand57: ; 376a0
-; foresight
+INCLUDE "battle/effects/perish_song.asm"
- ld a, [AttackMissed]
- and a
- jr nz, .asm_376bf
- call CheckHiddenOpponent
- jr nz, .asm_376bf
- ld a, BATTLE_VARS_SUBSTATUS1_OPP
- call _GetBattleVar
- bit SUBSTATUS_IDENTIFIED, [hl]
- jr nz, .asm_376bf
- set SUBSTATUS_IDENTIFIED, [hl]
- call Function0x37e01
- ld hl, IdentifiedText
- jp StdBattleTextBox
-.asm_376bf
- jp Function0x37354
-; 376c2
+INCLUDE "battle/effects/sandstorm.asm"
-
-BattleCommand58: ; 376c2
-; perishsong
-
- ld hl, PlayerSubStatus1
- ld de, EnemySubStatus1
- bit SUBSTATUS_PERISH, [hl]
- jr z, .asm_376d1
- ld a, [de]
- bit SUBSTATUS_PERISH, a
- jr nz, .asm_376f2
-.asm_376d1
- bit SUBSTATUS_PERISH, [hl]
- jr nz, .asm_376dc
- set SUBSTATUS_PERISH, [hl]
- ld a, 4
- ld [PlayerPerishCount], a
-.asm_376dc
- ld a, [de]
- bit SUBSTATUS_PERISH, a
- jr nz, .asm_376e9
- set SUBSTATUS_PERISH, a
- ld [de], a
- ld a, 4
- ld [EnemyPerishCount], a
-.asm_376e9
- call Function0x37e01
- ld hl, StartPerishText
- jp StdBattleTextBox
-.asm_376f2
- call Function0x37e77
- jp PrintButItFailed
-; 376f8
-
-
-BattleCommand59: ; 376f8
-; startsandstorm
-
- ld a, [Weather]
- cp WEATHER_SANDSTORM
- jr z, .asm_37712
- ld a, WEATHER_SANDSTORM
- ld [Weather], a
- ld a, 5
- ld [WeatherCount], a
- call Function0x37e01
- ld hl, SandstormBrewedText
- jp StdBattleTextBox
-.asm_37712
- call Function0x37e77
- jp PrintButItFailed
-; 37718
-
-
-BattleCommand5b: ; 37718
-; checkcurl
-
- ld de, PlayerRolloutCount
- ld a, [hBattleTurn]
- and a
- jr z, .asm_37723
- ld de, EnemyRolloutCount
-.asm_37723
- ld a, BATTLE_VARS_SUBSTATUS1
- call GetBattleVar
- bit SUBSTATUS_ENCORED, a
- jr z, .asm_37731
-
- ld b, $4 ; doturn
- jp SkipToBattleCommand
-
-.asm_37731
- xor a
- ld [de], a
- ret
-; 37734
-
-
-BattleCommand5c: ; 37734
-; rolloutpower
-
- ld a, BATTLE_VARS_STATUS
- call GetBattleVar
- and 7
- ret nz
-
- ld hl, PlayerRolloutCount
- ld a, [hBattleTurn]
- and a
- jr z, .asm_37747
- ld hl, EnemyRolloutCount
-
-.asm_37747
- ld a, [hl]
- and a
- jr nz, .asm_37750
- ld a, 1
- ld [$c73e], a
-
-.asm_37750
- ld a, [AttackMissed]
- and a
- jr z, .hit
-
- ld a, BATTLE_VARS_SUBSTATUS1
- call _GetBattleVar
- res 6, [hl]
- ret
-
-.hit
- inc [hl]
- ld a, [hl]
- ld b, a
- cp $5
- jr c, .asm_3776e ; 37763 $9
- ld a, BATTLE_VARS_SUBSTATUS1
- call _GetBattleVar
- res 6, [hl]
- jr .asm_37775 ; 3776c $7
-
-.asm_3776e
- ld a, BATTLE_VARS_SUBSTATUS1
- call _GetBattleVar
- set 6, [hl]
-
-.asm_37775
- ld a, BATTLE_VARS_SUBSTATUS2
- call GetBattleVar
- bit 0, a
- jr z, .asm_3777f ; 3777c $1
- inc b
-.asm_3777f
- dec b
- jr z, .asm_37790 ; 37780 $e
- ld hl, CurDamage + 1
- sla [hl]
- dec hl
- rl [hl]
- jr nc, .asm_3777f ; 3778a $f3
- ld a, $ff
- ld [hli], a
- ld [hl], a
-.asm_37790
- ret
-; 37791
+INCLUDE "battle/effects/rollout.asm"
BattleCommand5d: ; 37791
@@ -10096,33 +9687,33 @@ BattleCommand67: ; 379c9
ld c, 50
call DelayFrames
- call $1d6e
+ call Function1d6e
callba Function3d2f7
callba Function3d380
- call $3317
+ call ClearPalettes
callba Function3ed9f
- call $1c17
- call $300b
+ call Function1c17
+ call ClearSprites
ld hl, $c4a1
ld bc, $040a
call ClearBox
ld b, 1
- call $3340
- call $32f9
+ call GetSGBLayout
+ call Function32f9
call Function0x37a67
callba Function3d2e0
jp c, EndMoveEffect
- ld hl, $6459
+ ld hl, Function3e459
call CallBankF
call Function0x37ab1
@@ -10911,7 +10502,7 @@ Function0x37e47: ; 37e47
push hl
push de
push bc
- callab Functioncc0d6
+ callab PlayBattleAnim
pop bc
pop de
pop hl
@@ -10932,7 +10523,7 @@ Function0x37e54: ; 37e54
push bc
call SwitchTurn
- callab Functioncc0d6
+ callab PlayBattleAnim
call SwitchTurn
pop bc
@@ -11044,7 +10635,7 @@ Function0x37ed5: ; 37ed5
push hl
push de
push bc
- callba Function4ea44
+ callba CheckBattleScene
pop bc
pop de
pop hl
diff --git a/battle/effects/foresight.asm b/battle/effects/foresight.asm
new file mode 100644
index 000000000..ed2e629a0
--- /dev/null
+++ b/battle/effects/foresight.asm
@@ -0,0 +1,24 @@
+BattleCommand57: ; 376a0
+; foresight
+
+ ld a, [AttackMissed]
+ and a
+ jr nz, .failed
+
+ call CheckHiddenOpponent
+ jr nz, .failed
+
+ ld a, BATTLE_VARS_SUBSTATUS1_OPP
+ call _GetBattleVar
+ bit SUBSTATUS_IDENTIFIED, [hl]
+ jr nz, .failed
+
+ set SUBSTATUS_IDENTIFIED, [hl]
+ call Function0x37e01
+ ld hl, IdentifiedText
+ jp StdBattleTextBox
+
+.failed
+ jp Function0x37354
+; 376c2
+
diff --git a/battle/effects/metronome.asm b/battle/effects/metronome.asm
new file mode 100644
index 000000000..fd3d151f0
--- /dev/null
+++ b/battle/effects/metronome.asm
@@ -0,0 +1,62 @@
+BattleCommand34: ; 37418
+; metronome
+
+ call Function0x372d8
+ call Function0x34548
+ jr nz, .asm_3742b
+
+ ld a, [$c689]
+ push af
+ call BattleCommand0a
+ pop af
+ ld [$c689], a
+
+.asm_3742b
+ call Function0x37e36
+
+.GetMove
+ call BattleRandom
+
+; No invalid moves.
+ cp NUM_ATTACKS + 1
+ jr nc, .GetMove
+
+; None of the moves in MetronomeExcepts.
+ push af
+ ld de, 1
+ ld hl, MetronomeExcepts
+ call IsInArray
+ pop bc
+ jr c, .GetMove
+
+; No moves the user already has.
+ ld a, b
+ call CheckUserMove
+ jr z, .GetMove
+
+
+ ld a, BATTLE_VARS_MOVE
+ call _GetBattleVar
+ ld [hl], b
+ call UpdateMoveData
+ jp ResetTurn
+; 37454
+
+
+MetronomeExcepts: ; 37454
+ db NO_MOVE
+ db METRONOME
+ db STRUGGLE
+ db SKETCH
+ db MIMIC
+ db COUNTER
+ db MIRROR_COAT
+ db PROTECT
+ db DETECT
+ db ENDURE
+ db DESTINY_BOND
+ db SLEEP_TALK
+ db THIEF
+ db -1
+; 37462
+
diff --git a/battle/effects/mirror_move.asm b/battle/effects/mirror_move.asm
new file mode 100644
index 000000000..c54977a91
--- /dev/null
+++ b/battle/effects/mirror_move.asm
@@ -0,0 +1,53 @@
+BattleCommand1b: ; 373c9
+; mirrormove
+
+ call Function0x372d8
+
+ ld a, BATTLE_VARS_MOVE
+ call _GetBattleVar
+
+ ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
+ call GetBattleVar
+ and a
+ jr z, .failed
+
+ call CheckUserMove
+ jr nz, .use
+
+.failed
+ call Function0x37e77
+
+ ld hl, MirrorMoveFailedText
+ call StdBattleTextBox
+ jp EndMoveEffect
+
+.use
+ ld a, b
+ ld [hl], a
+ ld [$d265], a
+
+ push af
+ ld a, BATTLE_VARS_MOVE_ANIM
+ call _GetBattleVar
+ ld d, h
+ ld e, l
+ pop af
+
+ dec a
+ call GetMoveData
+ call GetMoveName
+ call CopyName1
+ call Function0x34548
+ jr nz, .done
+
+ ld a, [$c689]
+ push af
+ call BattleCommand0a
+ pop af
+ ld [$c689], a
+
+.done
+ call BattleCommandaa
+ jp ResetTurn
+; 37418
+
diff --git a/battle/effects/nightmare.asm b/battle/effects/nightmare.asm
new file mode 100644
index 000000000..6cd1f0a64
--- /dev/null
+++ b/battle/effects/nightmare.asm
@@ -0,0 +1,39 @@
+BattleCommand52: ; 37536
+; nightmare
+
+; Can't hit an absent opponent.
+
+ call CheckHiddenOpponent
+ jr nz, .failed
+
+; Can't hit a substitute.
+
+ call CheckSubstituteOpp
+ jr nz, .failed
+
+; Only works on a sleeping opponent.
+
+ ld a, BATTLE_VARS_STATUS_OPP
+ call _GetBattleVar
+ and SLP
+ jr z, .failed
+
+; Bail if the opponent is already having a nightmare.
+
+ ld a, BATTLE_VARS_SUBSTATUS1_OPP
+ call _GetBattleVar
+ bit SUBSTATUS_NIGHTMARE, [hl]
+ jr nz, .failed
+
+; Otherwise give the opponent a nightmare.
+
+ set SUBSTATUS_NIGHTMARE, [hl]
+ call Function0x37e01
+ ld hl, StartedNightmareText
+ jp StdBattleTextBox
+
+.failed
+ call Function0x37e77
+ jp PrintButItFailed
+; 37563
+
diff --git a/battle/effects/perish_song.asm b/battle/effects/perish_song.asm
new file mode 100644
index 000000000..4f206d5d2
--- /dev/null
+++ b/battle/effects/perish_song.asm
@@ -0,0 +1,41 @@
+BattleCommand58: ; 376c2
+; perishsong
+
+
+ ld hl, PlayerSubStatus1
+ ld de, EnemySubStatus1
+ bit SUBSTATUS_PERISH, [hl]
+ jr z, .ok
+
+ ld a, [de]
+ bit SUBSTATUS_PERISH, a
+ jr nz, .failed
+
+.ok
+ bit SUBSTATUS_PERISH, [hl]
+ jr nz, .enemy
+
+ set SUBSTATUS_PERISH, [hl]
+ ld a, 4
+ ld [PlayerPerishCount], a
+
+.enemy
+ ld a, [de]
+ bit SUBSTATUS_PERISH, a
+ jr nz, .done
+
+ set SUBSTATUS_PERISH, a
+ ld [de], a
+ ld a, 4
+ ld [EnemyPerishCount], a
+
+.done
+ call Function0x37e01
+ ld hl, StartPerishText
+ jp StdBattleTextBox
+
+.failed
+ call Function0x37e77
+ jp PrintButItFailed
+; 376f8
+
diff --git a/battle/effects/rollout.asm b/battle/effects/rollout.asm
new file mode 100644
index 000000000..13c91a8d9
--- /dev/null
+++ b/battle/effects/rollout.asm
@@ -0,0 +1,97 @@
+BattleCommand5b: ; 37718
+; checkcurl
+
+ ld de, PlayerRolloutCount
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_37723
+ ld de, EnemyRolloutCount
+
+.asm_37723
+ ld a, BATTLE_VARS_SUBSTATUS1
+ call GetBattleVar
+ bit SUBSTATUS_ENCORED, a
+ jr z, .asm_37731
+
+ ld b, $4 ; doturn
+ jp SkipToBattleCommand
+
+.asm_37731
+ xor a
+ ld [de], a
+ ret
+; 37734
+
+
+BattleCommand5c: ; 37734
+; rolloutpower
+
+ ld a, BATTLE_VARS_STATUS
+ call GetBattleVar
+ and 7
+ ret nz
+
+ ld hl, PlayerRolloutCount
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_37747
+ ld hl, EnemyRolloutCount
+
+.asm_37747
+ ld a, [hl]
+ and a
+ jr nz, .asm_37750
+ ld a, 1
+ ld [$c73e], a
+
+.asm_37750
+ ld a, [AttackMissed]
+ and a
+ jr z, .hit
+
+ ld a, BATTLE_VARS_SUBSTATUS1
+ call _GetBattleVar
+ res 6, [hl]
+ ret
+
+.hit
+ inc [hl]
+ ld a, [hl]
+ ld b, a
+ cp $5
+ jr c, .asm_3776e
+
+ ld a, BATTLE_VARS_SUBSTATUS1
+ call _GetBattleVar
+ res 6, [hl]
+ jr .asm_37775
+
+.asm_3776e
+ ld a, BATTLE_VARS_SUBSTATUS1
+ call _GetBattleVar
+ set 6, [hl]
+
+.asm_37775
+ ld a, BATTLE_VARS_SUBSTATUS2
+ call GetBattleVar
+ bit 0, a
+ jr z, .asm_3777f
+ inc b
+.asm_3777f
+ dec b
+ jr z, .asm_37790
+
+ ld hl, CurDamage + 1
+ sla [hl]
+ dec hl
+ rl [hl]
+ jr nc, .asm_3777f
+
+ ld a, $ff
+ ld [hli], a
+ ld [hl], a
+
+.asm_37790
+ ret
+; 37791
+
diff --git a/battle/effects/sandstorm.asm b/battle/effects/sandstorm.asm
new file mode 100644
index 000000000..ad3bac9d1
--- /dev/null
+++ b/battle/effects/sandstorm.asm
@@ -0,0 +1,20 @@
+BattleCommand59: ; 376f8
+; startsandstorm
+
+ ld a, [Weather]
+ cp WEATHER_SANDSTORM
+ jr z, .failed
+
+ ld a, WEATHER_SANDSTORM
+ ld [Weather], a
+ ld a, 5
+ ld [WeatherCount], a
+ call Function0x37e01
+ ld hl, SandstormBrewedText
+ jp StdBattleTextBox
+
+.failed
+ call Function0x37e77
+ jp PrintButItFailed
+; 37718
+
diff --git a/battle/effects/thief.asm b/battle/effects/thief.asm
new file mode 100644
index 000000000..617e73e37
--- /dev/null
+++ b/battle/effects/thief.asm
@@ -0,0 +1,117 @@
+BattleCommand50: ; 37492
+; thief
+
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .enemy
+
+; The player needs to be able to steal an item.
+
+ call .playeritem
+ ld a, [hl]
+ and a
+ ret nz
+
+; The enemy needs to have an item to steal.
+
+ call .enemyitem
+ ld a, [hl]
+ and a
+ ret z
+
+; Can't steal mail.
+
+ ld [$d265], a
+ ld d, a
+ callba ItemIsMail
+ ret c
+
+ ld a, [EffectFailed]
+ and a
+ ret nz
+
+ ld a, [InLinkBattle]
+ and a
+ jr z, .stealenemyitem
+
+ ld a, [IsInBattle]
+ dec a
+ ret z
+
+.stealenemyitem
+ call .enemyitem
+ xor a
+ ld [hl], a
+ ld [de], a
+
+ call .playeritem
+ ld a, [$d265]
+ ld [hl], a
+ ld [de], a
+ jr .stole
+
+
+.enemy
+
+; The enemy can't already have an item.
+
+ call .enemyitem
+ ld a, [hl]
+ and a
+ ret nz
+
+; The player must have an item to steal.
+
+ call .playeritem
+ ld a, [hl]
+ and a
+ ret z
+
+; Can't steal mail!
+
+ ld [$d265], a
+ ld d, a
+ callba ItemIsMail
+ ret c
+
+ ld a, [EffectFailed]
+ and a
+ ret nz
+
+; If the enemy steals your item,
+; it's gone for good if you don't get it back.
+
+ call .playeritem
+ xor a
+ ld [hl], a
+ ld [de], a
+
+ call .enemyitem
+ ld a, [$d265]
+ ld [hl], a
+ ld [de], a
+
+
+.stole
+ call GetItemName
+ ld hl, StoleText
+ jp StdBattleTextBox
+
+
+.playeritem
+ ld a, 1
+ call BattlePartyAttr
+ ld d, h
+ ld e, l
+ ld hl, BattleMonItem
+ ret
+
+.enemyitem
+ ld a, 1
+ call OTPartyAttr
+ ld d, h
+ ld e, l
+ ld hl, EnemyMonItem
+ ret
+; 37517
+
diff --git a/constants.asm b/constants.asm
index 9f0b48faa..7ffaba56a 100644
--- a/constants.asm
+++ b/constants.asm
@@ -1,78 +1,21 @@
-; wram constants
-; MonType: ; cf5f
-PARTYMON EQU 0
-OTPARTYMON EQU 1
-BOXMON EQU 2
-WILDMON EQU 4
-
-; WalkingDirection: ; d043
-STANDING EQU -1
-DOWN EQU 0
-UP EQU 1
-LEFT EQU 2
-RIGHT EQU 3
-
-; FacingDirection: ; d044
-FACE_CURRENT EQU 0
-FACE_DOWN EQU 8
-FACE_UP EQU 4
-FACE_LEFT EQU 2
-FACE_RIGHT EQU 1
-
-; TimeOfDay: ; d269
-MORN EQU 0
-DAY EQU 1
-NITE EQU 2
-DARKNESS EQU 3
-
-; ScriptFlags: ; d434
-SCRIPT_RUNNING EQU 2
-
-; ScriptMode: ; d437
-SCRIPT_OFF EQU 0
-SCRIPT_READ EQU 1
-SCRIPT_WAIT_MOVEMENT EQU 2
-SCRIPT_WAIT EQU 3
-
-; CurDay: ; d4cb
-SUNDAY EQU 0
-MONDAY EQU 1
-TUESDAY EQU 2
-WEDNESDAY EQU 3
-THURSDAY EQU 4
-FRIDAY EQU 5
-SATURDAY EQU 6
-
-; MapObjects: ; d71e
-
-PLAYER_OBJECT EQU 0
-
-NUM_OBJECTS EQU $10
-OBJECT_LENGTH EQU $10
-
-; InputType: ; c2c7
-AUTO_INPUT EQU $ff
-
-; WhichRegisteredItem: ; d95b
-REGISTERED_POCKET EQU %11000000
-REGISTERED_NUMBER EQU %00111111
-
-; PlayerState: ; d95d
-PLAYER_NORMAL EQU 0
-PLAYER_BIKE EQU 1
-PLAYER_SLIP EQU 2
-PLAYER_SURF EQU 4
-PLAYER_SURF_PIKA EQU 8
+; macros require rst vectors to be defined
+FarCall EQU $08
+Bankswitch EQU $10
+JumpTable EQU $28
+INCLUDE "macros.asm"
INCLUDE "gbhw.asm"
INCLUDE "hram.asm"
+INCLUDE "constants/wram_constants.asm"
+
INCLUDE "constants/pokemon_constants.asm"
INCLUDE "constants/move_constants.asm"
INCLUDE "constants/battle_constants.asm"
INCLUDE "constants/map_constants.asm"
+INCLUDE "constants/landmark_constants.asm"
INCLUDE "constants/item_constants.asm"
INCLUDE "constants/trainer_constants.asm"
INCLUDE "constants/script_constants.asm"
@@ -80,15 +23,10 @@ INCLUDE "constants/event_flags.asm"
INCLUDE "constants/engine_flags.asm"
INCLUDE "constants/music_constants.asm"
INCLUDE "constants/sfx_constants.asm"
+INCLUDE "constants/animation_constants.asm"
+INCLUDE "constants/gfx_constants.asm"
-; macros require rst vectors to be defined
-FarCall EQU $08
-Bankswitch EQU $10
-JumpTable EQU $28
-
-INCLUDE "macros.asm"
-
NONE EQU 0
diff --git a/constants/animation_constants.asm b/constants/animation_constants.asm
new file mode 100644
index 000000000..54ab3c162
--- /dev/null
+++ b/constants/animation_constants.asm
@@ -0,0 +1,63 @@
+ANIM_SWEET_SCENT_2 EQU 255 ; unused?
+ANIM_THROW_POKE_BALL EQU 256
+ANIM_SEND_OUT_MON EQU 257 ; seems to also cover shiny
+ANIM_RETURN_MON EQU 258
+ANIM_CONFUSED EQU 259
+ANIM_SLP EQU 260
+ANIM_BRN EQU 261
+ANIM_PSN EQU 262
+ANIM_SAP EQU 263
+ANIM_FRZ EQU 264
+ANIM_PAR EQU 265
+ANIM_IN_LOVE EQU 266
+ANIM_IN_SANDSTORM EQU 267
+ANIM_IN_NIGHTMARE EQU 268
+ANIM_IN_WHIRLPOOL EQU 269
+ANIM_MISS EQU 270
+ANIM_ENEMY_DAMAGE EQU 271
+ANIM_ENEMY_STAT_DOWN EQU 272 ; vibrate horizontally
+ANIM_PLAYER_STAT_DOWN EQU 273 ; wobble horizontally
+ANIM_PLAYER_DAMAGE EQU 274
+ANIM_WOBBLE EQU 275
+ANIM_SHAKE EQU 276
+ANIM_HIT_CONFUSION EQU 277
+
+ANIM_OBJ_BURNED EQU $10
+ANIM_OBJ_FROZEN EQU $2a
+ANIM_OBJ_GUST EQU $3e
+ANIM_OBJ_CHICK EQU $52
+ANIM_OBJ_SKULL EQU $55
+ANIM_OBJ_PARALYZED EQU $59
+ANIM_OBJ_HEART EQU $7e
+ANIM_OBJ_FLOWER EQU $b6
+ANIM_OBJ_COTTON EQU $b7
+
+ANIM_BG_FLASH_INVERTED EQU $01
+ANIM_BG_FLASH_WHITE EQU $02
+ANIM_BG_WHITE_HUES EQU $03
+ANIM_BG_BLACK_HUES EQU $04
+ANIM_BG_ALTERNATE_HUES EQU $05
+; ???? EQU $06
+; ???? EQU $07
+; ???? EQU $08
+ANIM_BG_HIDE_MON EQU $09
+ANIM_BG_SHOW_MON EQU $0a
+ANIM_BG_ENTER_MON EQU $0b
+ANIM_BG_RETURN_MON EQU $0c
+ANIM_BG_SURF EQU $0d
+ANIM_BG_WHIRLPOOL EQU $0e
+ANIM_BG_TELEPORT EQU $0f
+ANIM_BG_NIGHT_SHADE EQU $10
+ANIM_BG_FEET_FOLLOW EQU $11
+ANIM_BG_HEAD_FOLLOW EQU $12
+ANIM_BG_DOUBLE_TEAM EQU $13
+ANIM_BG_ACID_ARMOR EQU $14
+ANIM_BG_RAPID_FLASH EQU $15 ; unused
+
+ANIM_BG_TACKLE EQU $24
+
+ANIM_BG_PSYCHIC EQU $29
+
+ANIM_BG_VIBRATE_MON EQU $33
+ANIM_BG_WOBBLE_MON EQU $34
+
diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm
index a1858da1f..b95991ae7 100644
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -126,10 +126,6 @@ WEATHER_RAIN_END EQU 4
WEATHER_SUN_END EQU 5
WEATHER_SANDSTORM_END EQU 6
-; move animations are 1:1 with move ids
-ANIM_CONFUSED EQU $103
-ANIM_SLEEP EQU $104
-ANIM_INLOVE EQU $10a
; move effects
EFFECT_NORMAL_HIT EQU $00
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
new file mode 100644
index 000000000..a149bdff5
--- /dev/null
+++ b/constants/gfx_constants.asm
@@ -0,0 +1,40 @@
+ANIM_GFX_HIT EQU 1
+ANIM_GFX_CUT EQU 2
+ANIM_GFX_FIRE EQU 3
+ANIM_GFX_WATER EQU 4
+ANIM_GFX_LIGHTNING EQU 5
+ANIM_GFX_PLANT EQU 6
+ANIM_GFX_SMOKE EQU 7
+ANIM_GFX_EXPLOSION EQU 8
+ANIM_GFX_ROCKS EQU 9
+ANIM_GFX_ICE EQU 10
+ANIM_GFX_POKE_BALL EQU 11
+ANIM_GFX_POISON EQU 12
+ANIM_GFX_BUBBLE EQU 13
+ANIM_GFX_NOISE EQU 14
+ANIM_GFX_POWDER EQU 15
+ANIM_GFX_BEAM EQU 16
+ANIM_GFX_SPEED EQU 17
+ANIM_GFX_CHARGE EQU 18
+ANIM_GFX_WIND EQU 19
+ANIM_GFX_WHIP EQU 20
+ANIM_GFX_EGG EQU 21
+ANIM_GFX_ROPE EQU 22
+ANIM_GFX_PSYCHIC EQU 23
+ANIM_GFX_REFLECT EQU 24
+ANIM_GFX_STATUS EQU 25
+ANIM_GFX_SAND EQU 26
+ANIM_GFX_WEB EQU 27
+ANIM_GFX_HAZE EQU 28
+ANIM_GFX_HORN EQU 29
+ANIM_GFX_FLOWER EQU 30
+ANIM_GFX_MISC EQU 31
+ANIM_GFX_SKY_ATTACK EQU 32
+ANIM_GFX_GLOBE EQU 33
+ANIM_GFX_SHAPES EQU 34
+ANIM_GFX_OBJECTS EQU 35
+ANIM_GFX_SHINE EQU 36
+ANIM_GFX_ANGELS EQU 37
+ANIM_GFX_WAVE EQU 38
+ANIM_GFX_AEROBLAST EQU 39
+
diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm
new file mode 100644
index 000000000..f7600ea7d
--- /dev/null
+++ b/constants/landmark_constants.asm
@@ -0,0 +1,103 @@
+
+ const_def
+
+ const SPECIAL_MAP
+ const NEW_BARK_TOWN
+ const ROUTE_29
+ const CHERRYGROVE_CITY
+ const ROUTE_30
+ const ROUTE_31
+ const VIOLET_CITY
+ const SPROUT_TOWER
+ const ROUTE_32
+ const RUINS_OF_ALPH
+ const UNION_CAVE
+ const ROUTE_33
+ const AZALEA_TOWN
+ const SLOWPOKE_WELL
+ const ILEX_FOREST
+ const ROUTE_34
+ const GOLDENROD_CITY
+ const RADIO_TOWER
+ const ROUTE_35
+ const NATIONAL_PARK
+ const ROUTE_36
+ const ROUTE_37
+ const ECRUTEAK_CITY
+ const TIN_TOWER
+ const BURNED_TOWER
+ const ROUTE_38
+ const ROUTE_39
+ const OLIVINE_CITY
+ const LIGHTHOUSE
+ const BATTLE_TOWER
+ const ROUTE_40
+ const WHIRL_ISLANDS
+ const ROUTE_41
+ const CIANWOOD_CITY
+ const ROUTE_42
+ const MT_MORTAR
+ const MAHOGANY_TOWN
+ const ROUTE_43
+ const LAKE_OF_RAGE
+ const ROUTE_44
+ const ICE_PATH
+ const BLACKTHORN_CITY
+ const DRAGONS_DEN
+ const ROUTE_45
+ const DARK_CAVE
+ const ROUTE_46
+ const SILVER_CAVE
+
+KANTO_LANDMARK EQU const_value
+
+ const PALLET_TOWN
+ const ROUTE_1
+ const VIRIDIAN_CITY
+ const ROUTE_2
+ const PEWTER_CITY
+ const ROUTE_3
+ const MT_MOON
+ const ROUTE_4
+ const CERULEAN_CITY
+ const ROUTE_24
+ const ROUTE_25
+ const ROUTE_5
+ const UNDERGROUND
+ const ROUTE_6
+ const VERMILION_CITY
+ const DIGLETTS_CAVE
+ const ROUTE_7
+ const ROUTE_8
+ const ROUTE_9
+ const ROCK_TUNNEL
+ const ROUTE_10
+ const POWER_PLANT
+ const LAVENDER_TOWN
+ const LAV_RADIO_TOWER
+ const CELADON_CITY
+ const SAFFRON_CITY
+ const ROUTE_11
+ const ROUTE_12
+ const ROUTE_13
+ const ROUTE_14
+ const ROUTE_15
+ const ROUTE_16
+ const ROUTE_17
+ const ROUTE_18
+ const FUCHSIA_CITY
+ const ROUTE_19
+ const ROUTE_20
+ const SEAFOAM_ISLANDS
+ const CINNABAR_ISLAND
+ const ROUTE_21
+ const ROUTE_22
+ const VICTORY_ROAD
+ const ROUTE_23
+ const INDIGO_PLATEAU
+ const ROUTE_26
+ const ROUTE_27
+ const TOHJO_FALLS
+ const ROUTE_28
+ const FAST_SHIP
+
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index 8c9d1a505..e9e00f6e6 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -1767,3 +1767,20 @@ CAVE EQU 4
GATE EQU 6
DUNGEON EQU 7
+; object struct
+OBJECT_SPRITE EQU $2
+OBJECT_FLAGS EQU $5
+OBJECT_PALETTE EQU $6
+OBJECT_STEP_DURATION EQU $a
+OBJECT_FACING EQU $d
+OBJECT_STANDING_TILE EQU $e
+OBJECT_NEXT_TILE EQU $f
+OBJECT_MAP_X EQU $10
+OBJECT_MAP_Y EQU $11
+OBJECT_NEXT_MAP_X EQU $12
+OBJECT_NEXT_MAP_Y EQU $13
+OBJECT_SPRITE_X EQU $17
+OBJECT_SPRITE_Y EQU $18
+OBJECT_SPRITE_X_OFFSET EQU $19
+OBJECT_SPRITE_Y_OFFSET EQU $1a
+
diff --git a/constants/move_constants.asm b/constants/move_constants.asm
index 302255a57..9fc237fc9 100644
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -1,251 +1,259 @@
-POUND EQU $01
-KARATE_CHOP EQU $02
-DOUBLESLAP EQU $03
-COMET_PUNCH EQU $04
-MEGA_PUNCH EQU $05
-PAY_DAY EQU $06
-FIRE_PUNCH EQU $07
-ICE_PUNCH EQU $08
-THUNDERPUNCH EQU $09
-SCRATCH EQU $0A
-VICEGRIP EQU $0B
-GUILLOTINE EQU $0C
-RAZOR_WIND EQU $0D
-SWORDS_DANCE EQU $0E
-CUT EQU $0F
-GUST EQU $10
-WING_ATTACK EQU $11
-WHIRLWIND EQU $12
-FLY EQU $13
-BIND EQU $14
-SLAM EQU $15
-VINE_WHIP EQU $16
-STOMP EQU $17
-DOUBLE_KICK EQU $18
-MEGA_KICK EQU $19
-JUMP_KICK EQU $1A
-ROLLING_KICK EQU $1B
-SAND_ATTACK EQU $1C
-HEADBUTT EQU $1D
-HORN_ATTACK EQU $1E
-FURY_ATTACK EQU $1F
-HORN_DRILL EQU $20
-TACKLE EQU $21
-BODY_SLAM EQU $22
-WRAP EQU $23
-TAKE_DOWN EQU $24
-THRASH EQU $25
-DOUBLE_EDGE EQU $26
-TAIL_WHIP EQU $27
-POISON_STING EQU $28
-TWINEEDLE EQU $29
-PIN_MISSILE EQU $2A
-LEER EQU $2B
-BITE EQU $2C
-GROWL EQU $2D
-ROAR EQU $2E
-SING EQU $2F
-SUPERSONIC EQU $30
-SONICBOOM EQU $31
-DISABLE EQU $32
-ACID EQU $33
-EMBER EQU $34
-FLAMETHROWER EQU $35
-MIST EQU $36
-WATER_GUN EQU $37
-HYDRO_PUMP EQU $38
-SURF EQU $39
-ICE_BEAM EQU $3A
-BLIZZARD EQU $3B
-PSYBEAM EQU $3C
-BUBBLEBEAM EQU $3D
-AURORA_BEAM EQU $3E
-HYPER_BEAM EQU $3F
-PECK EQU $40
-DRILL_PECK EQU $41
-SUBMISSION EQU $42
-LOW_KICK EQU $43
-COUNTER EQU $44
-SEISMIC_TOSS EQU $45
-STRENGTH EQU $46
-ABSORB EQU $47
-MEGA_DRAIN EQU $48
-LEECH_SEED EQU $49
-GROWTH EQU $4A
-RAZOR_LEAF EQU $4B
-SOLARBEAM EQU $4C
-POISONPOWDER EQU $4D
-STUN_SPORE EQU $4E
-SLEEP_POWDER EQU $4F
-PETAL_DANCE EQU $50
-STRING_SHOT EQU $51
-DRAGON_RAGE EQU $52
-FIRE_SPIN EQU $53
-THUNDERSHOCK EQU $54
-THUNDERBOLT EQU $55
-THUNDER_WAVE EQU $56
-THUNDER EQU $57
-ROCK_THROW EQU $58
-EARTHQUAKE EQU $59
-FISSURE EQU $5A
-DIG EQU $5B
-TOXIC EQU $5C
-CONFUSION EQU $5D
-PSYCHIC_M EQU $5E
-HYPNOSIS EQU $5F
-MEDITATE EQU $60
-AGILITY EQU $61
-QUICK_ATTACK EQU $62
-RAGE EQU $63
-TELEPORT EQU $64
-NIGHT_SHADE EQU $65
-MIMIC EQU $66
-SCREECH EQU $67
-DOUBLE_TEAM EQU $68
-RECOVER EQU $69
-HARDEN EQU $6A
-MINIMIZE EQU $6B
-SMOKESCREEN EQU $6C
-CONFUSE_RAY EQU $6D
-WITHDRAW EQU $6E
-DEFENSE_CURL EQU $6F
-BARRIER EQU $70
-LIGHT_SCREEN EQU $71
-HAZE EQU $72
-REFLECT EQU $73
-FOCUS_ENERGY EQU $74
-BIDE EQU $75
-METRONOME EQU $76
-MIRROR_MOVE EQU $77
-SELFDESTRUCT EQU $78
-EGG_BOMB EQU $79
-LICK EQU $7A
-SMOG EQU $7B
-SLUDGE EQU $7C
-BONE_CLUB EQU $7D
-FIRE_BLAST EQU $7E
-WATERFALL EQU $7F
-CLAMP EQU $80
-SWIFT EQU $81
-SKULL_BASH EQU $82
-SPIKE_CANNON EQU $83
-CONSTRICT EQU $84
-AMNESIA EQU $85
-KINESIS EQU $86
-SOFTBOILED EQU $87
-HI_JUMP_KICK EQU $88
-GLARE EQU $89
-DREAM_EATER EQU $8A
-POISON_GAS EQU $8B
-BARRAGE EQU $8C
-LEECH_LIFE EQU $8D
-LOVELY_KISS EQU $8E
-SKY_ATTACK EQU $8F
-TRANSFORM EQU $90
-BUBBLE EQU $91
-DIZZY_PUNCH EQU $92
-SPORE EQU $93
-FLASH EQU $94
-PSYWAVE EQU $95
-SPLASH EQU $96
-ACID_ARMOR EQU $97
-CRABHAMMER EQU $98
-EXPLOSION EQU $99
-FURY_SWIPES EQU $9A
-BONEMERANG EQU $9B
-REST EQU $9C
-ROCK_SLIDE EQU $9D
-HYPER_FANG EQU $9E
-SHARPEN EQU $9F
-CONVERSION EQU $A0
-TRI_ATTACK EQU $A1
-SUPER_FANG EQU $A2
-SLASH EQU $A3
-SUBSTITUTE EQU $A4
-STRUGGLE EQU $A5
-SKETCH EQU $A6
-TRIPLE_KICK EQU $A7
-THIEF EQU $A8
-SPIDER_WEB EQU $A9
-MIND_READER EQU $AA
-NIGHTMARE EQU $AB
-FLAME_WHEEL EQU $AC
-SNORE EQU $AD
-CURSE EQU $AE
-FLAIL EQU $AF
-CONVERSION2 EQU $B0
-AEROBLAST EQU $B1
-COTTON_SPORE EQU $B2
-REVERSAL EQU $B3
-SPITE EQU $B4
-POWDER_SNOW EQU $B5
-PROTECT EQU $B6
-MACH_PUNCH EQU $B7
-SCARY_FACE EQU $B8
-FAINT_ATTACK EQU $B9
-SWEET_KISS EQU $BA
-BELLY_DRUM EQU $BB
-SLUDGE_BOMB EQU $BC
-MUD_SLAP EQU $BD
-OCTAZOOKA EQU $BE
-SPIKES EQU $BF
-ZAP_CANNON EQU $C0
-FORESIGHT EQU $C1
-DESTINY_BOND EQU $C2
-PERISH_SONG EQU $C3
-ICY_WIND EQU $C4
-DETECT EQU $C5
-BONE_RUSH EQU $C6
-LOCK_ON EQU $C7
-OUTRAGE EQU $C8
-SANDSTORM EQU $C9
-GIGA_DRAIN EQU $CA
-ENDURE EQU $CB
-CHARM EQU $CC
-ROLLOUT EQU $CD
-FALSE_SWIPE EQU $CE
-SWAGGER EQU $CF
-MILK_DRINK EQU $D0
-SPARK EQU $D1
-FURY_CUTTER EQU $D2
-STEEL_WING EQU $D3
-MEAN_LOOK EQU $D4
-ATTRACT EQU $D5
-SLEEP_TALK EQU $D6
-HEAL_BELL EQU $D7
-RETURN EQU $D8
-PRESENT EQU $D9
-FRUSTRATION EQU $DA
-SAFEGUARD EQU $DB
-PAIN_SPLIT EQU $DC
-SACRED_FIRE EQU $DD
-MAGNITUDE EQU $DE
-DYNAMICPUNCH EQU $DF
-MEGAHORN EQU $E0
-DRAGONBREATH EQU $E1
-BATON_PASS EQU $E2
-ENCORE EQU $E3
-PURSUIT EQU $E4
-RAPID_SPIN EQU $E5
-SWEET_SCENT EQU $E6
-IRON_TAIL EQU $E7
-METAL_CLAW EQU $E8
-VITAL_THROW EQU $E9
-MORNING_SUN EQU $EA
-SYNTHESIS EQU $EB
-MOONLIGHT EQU $EC
-HIDDEN_POWER EQU $ED
-CROSS_CHOP EQU $EE
-TWISTER EQU $EF
-RAIN_DANCE EQU $F0
-SUNNY_DAY EQU $F1
-CRUNCH EQU $F2
-MIRROR_COAT EQU $F3
-PSYCH_UP EQU $F4
-EXTREMESPEED EQU $F5
-ANCIENTPOWER EQU $F6
-SHADOW_BALL EQU $F7
-FUTURE_SIGHT EQU $F8
-ROCK_SMASH EQU $F9
-WHIRLPOOL EQU $FA
-BEAT_UP EQU $FB
+
+ const_def
+ const NO_MOVE
+ const POUND
+ const KARATE_CHOP
+ const DOUBLESLAP
+ const COMET_PUNCH
+ const MEGA_PUNCH
+ const PAY_DAY
+ const FIRE_PUNCH
+ const ICE_PUNCH
+ const THUNDERPUNCH
+ const SCRATCH
+ const VICEGRIP
+ const GUILLOTINE
+ const RAZOR_WIND
+ const SWORDS_DANCE
+ const CUT
+ const GUST
+ const WING_ATTACK
+ const WHIRLWIND
+ const FLY
+ const BIND
+ const SLAM
+ const VINE_WHIP
+ const STOMP
+ const DOUBLE_KICK
+ const MEGA_KICK
+ const JUMP_KICK
+ const ROLLING_KICK
+ const SAND_ATTACK
+ const HEADBUTT
+ const HORN_ATTACK
+ const FURY_ATTACK
+ const HORN_DRILL
+ const TACKLE
+ const BODY_SLAM
+ const WRAP
+ const TAKE_DOWN
+ const THRASH
+ const DOUBLE_EDGE
+ const TAIL_WHIP
+ const POISON_STING
+ const TWINEEDLE
+ const PIN_MISSILE
+ const LEER
+ const BITE
+ const GROWL
+ const ROAR
+ const SING
+ const SUPERSONIC
+ const SONICBOOM
+ const DISABLE
+ const ACID
+ const EMBER
+ const FLAMETHROWER
+ const MIST
+ const WATER_GUN
+ const HYDRO_PUMP
+ const SURF
+ const ICE_BEAM
+ const BLIZZARD
+ const PSYBEAM
+ const BUBBLEBEAM
+ const AURORA_BEAM
+ const HYPER_BEAM
+ const PECK
+ const DRILL_PECK
+ const SUBMISSION
+ const LOW_KICK
+ const COUNTER
+ const SEISMIC_TOSS
+ const STRENGTH
+ const ABSORB
+ const MEGA_DRAIN
+ const LEECH_SEED
+ const GROWTH
+ const RAZOR_LEAF
+ const SOLARBEAM
+ const POISONPOWDER
+ const STUN_SPORE
+ const SLEEP_POWDER
+ const PETAL_DANCE
+ const STRING_SHOT
+ const DRAGON_RAGE
+ const FIRE_SPIN
+ const THUNDERSHOCK
+ const THUNDERBOLT
+ const THUNDER_WAVE
+ const THUNDER
+ const ROCK_THROW
+ const EARTHQUAKE
+ const FISSURE
+ const DIG
+ const TOXIC
+ const CONFUSION
+ const PSYCHIC_M
+ const HYPNOSIS
+ const MEDITATE
+ const AGILITY
+ const QUICK_ATTACK
+ const RAGE
+ const TELEPORT
+ const NIGHT_SHADE
+ const MIMIC
+ const SCREECH
+ const DOUBLE_TEAM
+ const RECOVER
+ const HARDEN
+ const MINIMIZE
+ const SMOKESCREEN
+ const CONFUSE_RAY
+ const WITHDRAW
+ const DEFENSE_CURL
+ const BARRIER
+ const LIGHT_SCREEN
+ const HAZE
+ const REFLECT
+ const FOCUS_ENERGY
+ const BIDE
+ const METRONOME
+ const MIRROR_MOVE
+ const SELFDESTRUCT
+ const EGG_BOMB
+ const LICK
+ const SMOG
+ const SLUDGE
+ const BONE_CLUB
+ const FIRE_BLAST
+ const WATERFALL
+ const CLAMP
+ const SWIFT
+ const SKULL_BASH
+ const SPIKE_CANNON
+ const CONSTRICT
+ const AMNESIA
+ const KINESIS
+ const SOFTBOILED
+ const HI_JUMP_KICK
+ const GLARE
+ const DREAM_EATER
+ const POISON_GAS
+ const BARRAGE
+ const LEECH_LIFE
+ const LOVELY_KISS
+ const SKY_ATTACK
+ const TRANSFORM
+ const BUBBLE
+ const DIZZY_PUNCH
+ const SPORE
+ const FLASH
+ const PSYWAVE
+ const SPLASH
+ const ACID_ARMOR
+ const CRABHAMMER
+ const EXPLOSION
+ const FURY_SWIPES
+ const BONEMERANG
+ const REST
+ const ROCK_SLIDE
+ const HYPER_FANG
+ const SHARPEN
+ const CONVERSION
+ const TRI_ATTACK
+ const SUPER_FANG
+ const SLASH
+ const SUBSTITUTE
+ const STRUGGLE
+ const SKETCH
+ const TRIPLE_KICK
+ const THIEF
+ const SPIDER_WEB
+ const MIND_READER
+ const NIGHTMARE
+ const FLAME_WHEEL
+ const SNORE
+ const CURSE
+ const FLAIL
+ const CONVERSION2
+ const AEROBLAST
+ const COTTON_SPORE
+ const REVERSAL
+ const SPITE
+ const POWDER_SNOW
+ const PROTECT
+ const MACH_PUNCH
+ const SCARY_FACE
+ const FAINT_ATTACK
+ const SWEET_KISS
+ const BELLY_DRUM
+ const SLUDGE_BOMB
+ const MUD_SLAP
+ const OCTAZOOKA
+ const SPIKES
+ const ZAP_CANNON
+ const FORESIGHT
+ const DESTINY_BOND
+ const PERISH_SONG
+ const ICY_WIND
+ const DETECT
+ const BONE_RUSH
+ const LOCK_ON
+ const OUTRAGE
+ const SANDSTORM
+ const GIGA_DRAIN
+ const ENDURE
+ const CHARM
+ const ROLLOUT
+ const FALSE_SWIPE
+ const SWAGGER
+ const MILK_DRINK
+ const SPARK
+ const FURY_CUTTER
+ const STEEL_WING
+ const MEAN_LOOK
+ const ATTRACT
+ const SLEEP_TALK
+ const HEAL_BELL
+ const RETURN
+ const PRESENT
+ const FRUSTRATION
+ const SAFEGUARD
+ const PAIN_SPLIT
+ const SACRED_FIRE
+ const MAGNITUDE
+ const DYNAMICPUNCH
+ const MEGAHORN
+ const DRAGONBREATH
+ const BATON_PASS
+ const ENCORE
+ const PURSUIT
+ const RAPID_SPIN
+ const SWEET_SCENT
+ const IRON_TAIL
+ const METAL_CLAW
+ const VITAL_THROW
+ const MORNING_SUN
+ const SYNTHESIS
+ const MOONLIGHT
+ const HIDDEN_POWER
+ const CROSS_CHOP
+ const TWISTER
+ const RAIN_DANCE
+ const SUNNY_DAY
+ const CRUNCH
+ const MIRROR_COAT
+ const PSYCH_UP
+ const EXTREMESPEED
+ const ANCIENTPOWER
+ const SHADOW_BALL
+ const FUTURE_SIGHT
+ const ROCK_SMASH
+ const WHIRLPOOL
+ const BEAT_UP
+
+const_value SET const_value + -1
+
+ const NUM_ATTACKS
+
diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm
index 29739ed46..afce2b595 100644
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -1,255 +1,257 @@
NUM_POKEMON EQU 251
-BULBASAUR EQU 1
-IVYSAUR EQU 2
-VENUSAUR EQU 3
-CHARMANDER EQU 4
-CHARMELEON EQU 5
-CHARIZARD EQU 6
-SQUIRTLE EQU 7
-WARTORTLE EQU 8
-BLASTOISE EQU 9
-CATERPIE EQU 10
-METAPOD EQU 11
-BUTTERFREE EQU 12
-WEEDLE EQU 13
-KAKUNA EQU 14
-BEEDRILL EQU 15
-PIDGEY EQU 16
-PIDGEOTTO EQU 17
-PIDGEOT EQU 18
-RATTATA EQU 19
-RATICATE EQU 20
-SPEAROW EQU 21
-FEAROW EQU 22
-EKANS EQU 23
-ARBOK EQU 24
-PIKACHU EQU 25
-RAICHU EQU 26
-SANDSHREW EQU 27
-SANDSLASH EQU 28
-NIDORAN_F EQU 29
-NIDORINA EQU 30
-NIDOQUEEN EQU 31
-NIDORAN_M EQU 32
-NIDORINO EQU 33
-NIDOKING EQU 34
-CLEFAIRY EQU 35
-CLEFABLE EQU 36
-VULPIX EQU 37
-NINETALES EQU 38
-JIGGLYPUFF EQU 39
-WIGGLYTUFF EQU 40
-ZUBAT EQU 41
-GOLBAT EQU 42
-ODDISH EQU 43
-GLOOM EQU 44
-VILEPLUME EQU 45
-PARAS EQU 46
-PARASECT EQU 47
-VENONAT EQU 48
-VENOMOTH EQU 49
-DIGLETT EQU 50
-DUGTRIO EQU 51
-MEOWTH EQU 52
-PERSIAN EQU 53
-PSYDUCK EQU 54
-GOLDUCK EQU 55
-MANKEY EQU 56
-PRIMEAPE EQU 57
-GROWLITHE EQU 58
-ARCANINE EQU 59
-POLIWAG EQU 60
-POLIWHIRL EQU 61
-POLIWRATH EQU 62
-ABRA EQU 63
-KADABRA EQU 64
-ALAKAZAM EQU 65
-MACHOP EQU 66
-MACHOKE EQU 67
-MACHAMP EQU 68
-BELLSPROUT EQU 69
-WEEPINBELL EQU 70
-VICTREEBEL EQU 71
-TENTACOOL EQU 72
-TENTACRUEL EQU 73
-GEODUDE EQU 74
-GRAVELER EQU 75
-GOLEM EQU 76
-PONYTA EQU 77
-RAPIDASH EQU 78
-SLOWPOKE EQU 79
-SLOWBRO EQU 80
-MAGNEMITE EQU 81
-MAGNETON EQU 82
-FARFETCH_D EQU 83
-DODUO EQU 84
-DODRIO EQU 85
-SEEL EQU 86
-DEWGONG EQU 87
-GRIMER EQU 88
-MUK EQU 89
-SHELLDER EQU 90
-CLOYSTER EQU 91
-GASTLY EQU 92
-HAUNTER EQU 93
-GENGAR EQU 94
-ONIX EQU 95
-DROWZEE EQU 96
-HYPNO EQU 97
-KRABBY EQU 98
-KINGLER EQU 99
-VOLTORB EQU 100
-ELECTRODE EQU 101
-EXEGGCUTE EQU 102
-EXEGGUTOR EQU 103
-CUBONE EQU 104
-MAROWAK EQU 105
-HITMONLEE EQU 106
-HITMONCHAN EQU 107
-LICKITUNG EQU 108
-KOFFING EQU 109
-WEEZING EQU 110
-RHYHORN EQU 111
-RHYDON EQU 112
-CHANSEY EQU 113
-TANGELA EQU 114
-KANGASKHAN EQU 115
-HORSEA EQU 116
-SEADRA EQU 117
-GOLDEEN EQU 118
-SEAKING EQU 119
-STARYU EQU 120
-STARMIE EQU 121
-MR__MIME EQU 122
-SCYTHER EQU 123
-JYNX EQU 124
-ELECTABUZZ EQU 125
-MAGMAR EQU 126
-PINSIR EQU 127
-TAUROS EQU 128
-MAGIKARP EQU 129
-GYARADOS EQU 130
-LAPRAS EQU 131
-DITTO EQU 132
-EEVEE EQU 133
-VAPOREON EQU 134
-JOLTEON EQU 135
-FLAREON EQU 136
-PORYGON EQU 137
-OMANYTE EQU 138
-OMASTAR EQU 139
-KABUTO EQU 140
-KABUTOPS EQU 141
-AERODACTYL EQU 142
-SNORLAX EQU 143
-ARTICUNO EQU 144
-ZAPDOS EQU 145
-MOLTRES EQU 146
-DRATINI EQU 147
-DRAGONAIR EQU 148
-DRAGONITE EQU 149
-MEWTWO EQU 150
-MEW EQU 151
-CHIKORITA EQU 152
-BAYLEEF EQU 153
-MEGANIUM EQU 154
-CYNDAQUIL EQU 155
-QUILAVA EQU 156
-TYPHLOSION EQU 157
-TOTODILE EQU 158
-CROCONAW EQU 159
-FERALIGATR EQU 160
-SENTRET EQU 161
-FURRET EQU 162
-HOOTHOOT EQU 163
-NOCTOWL EQU 164
-LEDYBA EQU 165
-LEDIAN EQU 166
-SPINARAK EQU 167
-ARIADOS EQU 168
-CROBAT EQU 169
-CHINCHOU EQU 170
-LANTURN EQU 171
-PICHU EQU 172
-CLEFFA EQU 173
-IGGLYBUFF EQU 174
-TOGEPI EQU 175
-TOGETIC EQU 176
-NATU EQU 177
-XATU EQU 178
-MAREEP EQU 179
-FLAAFFY EQU 180
-AMPHAROS EQU 181
-BELLOSSOM EQU 182
-MARILL EQU 183
-AZUMARILL EQU 184
-SUDOWOODO EQU 185
-POLITOED EQU 186
-HOPPIP EQU 187
-SKIPLOOM EQU 188
-JUMPLUFF EQU 189
-AIPOM EQU 190
-SUNKERN EQU 191
-SUNFLORA EQU 192
-YANMA EQU 193
-WOOPER EQU 194
-QUAGSIRE EQU 195
-ESPEON EQU 196
-UMBREON EQU 197
-MURKROW EQU 198
-SLOWKING EQU 199
-MISDREAVUS EQU 200
-UNOWN EQU 201
-WOBBUFFET EQU 202
-GIRAFARIG EQU 203
-PINECO EQU 204
-FORRETRESS EQU 205
-DUNSPARCE EQU 206
-GLIGAR EQU 207
-STEELIX EQU 208
-SNUBBULL EQU 209
-GRANBULL EQU 210
-QWILFISH EQU 211
-SCIZOR EQU 212
-SHUCKLE EQU 213
-HERACROSS EQU 214
-SNEASEL EQU 215
-TEDDIURSA EQU 216
-URSARING EQU 217
-SLUGMA EQU 218
-MAGCARGO EQU 219
-SWINUB EQU 220
-PILOSWINE EQU 221
-CORSOLA EQU 222
-REMORAID EQU 223
-OCTILLERY EQU 224
-DELIBIRD EQU 225
-MANTINE EQU 226
-SKARMORY EQU 227
-HOUNDOUR EQU 228
-HOUNDOOM EQU 229
-KINGDRA EQU 230
-PHANPY EQU 231
-DONPHAN EQU 232
-PORYGON2 EQU 233
-STANTLER EQU 234
-SMEARGLE EQU 235
-TYROGUE EQU 236
-HITMONTOP EQU 237
-SMOOCHUM EQU 238
-ELEKID EQU 239
-MAGBY EQU 240
-MILTANK EQU 241
-BLISSEY EQU 242
-RAIKOU EQU 243
-ENTEI EQU 244
-SUICUNE EQU 245
-LARVITAR EQU 246
-PUPITAR EQU 247
-TYRANITAR EQU 248
-LUGIA EQU 249
-HO_OH EQU 250
-CELEBI EQU 251
+const_value set 1
+ const BULBASAUR
+ const IVYSAUR
+ const VENUSAUR
+ const CHARMANDER
+ const CHARMELEON
+ const CHARIZARD
+ const SQUIRTLE
+ const WARTORTLE
+ const BLASTOISE
+ const CATERPIE
+ const METAPOD
+ const BUTTERFREE
+ const WEEDLE
+ const KAKUNA
+ const BEEDRILL
+ const PIDGEY
+ const PIDGEOTTO
+ const PIDGEOT
+ const RATTATA
+ const RATICATE
+ const SPEAROW
+ const FEAROW
+ const EKANS
+ const ARBOK
+ const PIKACHU
+ const RAICHU
+ const SANDSHREW
+ const SANDSLASH
+ const NIDORAN_F
+ const NIDORINA
+ const NIDOQUEEN
+ const NIDORAN_M
+ const NIDORINO
+ const NIDOKING
+ const CLEFAIRY
+ const CLEFABLE
+ const VULPIX
+ const NINETALES
+ const JIGGLYPUFF
+ const WIGGLYTUFF
+ const ZUBAT
+ const GOLBAT
+ const ODDISH
+ const GLOOM
+ const VILEPLUME
+ const PARAS
+ const PARASECT
+ const VENONAT
+ const VENOMOTH
+ const DIGLETT
+ const DUGTRIO
+ const MEOWTH
+ const PERSIAN
+ const PSYDUCK
+ const GOLDUCK
+ const MANKEY
+ const PRIMEAPE
+ const GROWLITHE
+ const ARCANINE
+ const POLIWAG
+ const POLIWHIRL
+ const POLIWRATH
+ const ABRA
+ const KADABRA
+ const ALAKAZAM
+ const MACHOP
+ const MACHOKE
+ const MACHAMP
+ const BELLSPROUT
+ const WEEPINBELL
+ const VICTREEBEL
+ const TENTACOOL
+ const TENTACRUEL
+ const GEODUDE
+ const GRAVELER
+ const GOLEM
+ const PONYTA
+ const RAPIDASH
+ const SLOWPOKE
+ const SLOWBRO
+ const MAGNEMITE
+ const MAGNETON
+ const FARFETCH_D
+ const DODUO
+ const DODRIO
+ const SEEL
+ const DEWGONG
+ const GRIMER
+ const MUK
+ const SHELLDER
+ const CLOYSTER
+ const GASTLY
+ const HAUNTER
+ const GENGAR
+ const ONIX
+ const DROWZEE
+ const HYPNO
+ const KRABBY
+ const KINGLER
+ const VOLTORB
+ const ELECTRODE
+ const EXEGGCUTE
+ const EXEGGUTOR
+ const CUBONE
+ const MAROWAK
+ const HITMONLEE
+ const HITMONCHAN
+ const LICKITUNG
+ const KOFFING
+ const WEEZING
+ const RHYHORN
+ const RHYDON
+ const CHANSEY
+ const TANGELA
+ const KANGASKHAN
+ const HORSEA
+ const SEADRA
+ const GOLDEEN
+ const SEAKING
+ const STARYU
+ const STARMIE
+ const MR__MIME
+ const SCYTHER
+ const JYNX
+ const ELECTABUZZ
+ const MAGMAR
+ const PINSIR
+ const TAUROS
+ const MAGIKARP
+ const GYARADOS
+ const LAPRAS
+ const DITTO
+ const EEVEE
+ const VAPOREON
+ const JOLTEON
+ const FLAREON
+ const PORYGON
+ const OMANYTE
+ const OMASTAR
+ const KABUTO
+ const KABUTOPS
+ const AERODACTYL
+ const SNORLAX
+ const ARTICUNO
+ const ZAPDOS
+ const MOLTRES
+ const DRATINI
+ const DRAGONAIR
+ const DRAGONITE
+ const MEWTWO
+ const MEW
+ const CHIKORITA
+ const BAYLEEF
+ const MEGANIUM
+ const CYNDAQUIL
+ const QUILAVA
+ const TYPHLOSION
+ const TOTODILE
+ const CROCONAW
+ const FERALIGATR
+ const SENTRET
+ const FURRET
+ const HOOTHOOT
+ const NOCTOWL
+ const LEDYBA
+ const LEDIAN
+ const SPINARAK
+ const ARIADOS
+ const CROBAT
+ const CHINCHOU
+ const LANTURN
+ const PICHU
+ const CLEFFA
+ const IGGLYBUFF
+ const TOGEPI
+ const TOGETIC
+ const NATU
+ const XATU
+ const MAREEP
+ const FLAAFFY
+ const AMPHAROS
+ const BELLOSSOM
+ const MARILL
+ const AZUMARILL
+ const SUDOWOODO
+ const POLITOED
+ const HOPPIP
+ const SKIPLOOM
+ const JUMPLUFF
+ const AIPOM
+ const SUNKERN
+ const SUNFLORA
+ const YANMA
+ const WOOPER
+ const QUAGSIRE
+ const ESPEON
+ const UMBREON
+ const MURKROW
+ const SLOWKING
+ const MISDREAVUS
+ const UNOWN
+ const WOBBUFFET
+ const GIRAFARIG
+ const PINECO
+ const FORRETRESS
+ const DUNSPARCE
+ const GLIGAR
+ const STEELIX
+ const SNUBBULL
+ const GRANBULL
+ const QWILFISH
+ const SCIZOR
+ const SHUCKLE
+ const HERACROSS
+ const SNEASEL
+ const TEDDIURSA
+ const URSARING
+ const SLUGMA
+ const MAGCARGO
+ const SWINUB
+ const PILOSWINE
+ const CORSOLA
+ const REMORAID
+ const OCTILLERY
+ const DELIBIRD
+ const MANTINE
+ const SKARMORY
+ const HOUNDOUR
+ const HOUNDOOM
+ const KINGDRA
+ const PHANPY
+ const DONPHAN
+ const PORYGON2
+ const STANTLER
+ const SMEARGLE
+ const TYROGUE
+ const HITMONTOP
+ const SMOOCHUM
+ const ELEKID
+ const MAGBY
+ const MILTANK
+ const BLISSEY
+ const RAIKOU
+ const ENTEI
+ const SUICUNE
+ const LARVITAR
+ const PUPITAR
+ const TYRANITAR
+ const LUGIA
+ const HO_OH
+ const CELEBI
+
+EGG EQU 253
-EGG EQU 253
diff --git a/constants/script_constants.asm b/constants/script_constants.asm
index 30fdff8bc..1e4145ea3 100644
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -27,7 +27,6 @@ SPECIAL_RUINCHAMBERWALL EQU $0087
SPECIAL_HOOHCHAMBER EQU $008d
SPECIAL_CELEBI EQU $008f
-
SPECIAL_AFTERCELEBI EQU $0090
SPECIAL_POKESEER EQU $0091
diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm
new file mode 100644
index 000000000..c52cdfa39
--- /dev/null
+++ b/constants/wram_constants.asm
@@ -0,0 +1,71 @@
+
+; MonType: ; cf5f
+PARTYMON EQU 0
+OTPARTYMON EQU 1
+BOXMON EQU 2
+WILDMON EQU 4
+
+; Options: ; cfcc
+NO_TEXT_SCROLL EQU 4
+BATTLE_SHIFT EQU 6
+BATTLE_SCENE EQU 7
+
+; WalkingDirection: ; d043
+STANDING EQU -1
+DOWN EQU 0
+UP EQU 1
+LEFT EQU 2
+RIGHT EQU 3
+
+; FacingDirection: ; d044
+FACE_CURRENT EQU 0
+FACE_DOWN EQU 8
+FACE_UP EQU 4
+FACE_LEFT EQU 2
+FACE_RIGHT EQU 1
+
+; TimeOfDay: ; d269
+MORN EQU 0
+DAY EQU 1
+NITE EQU 2
+DARKNESS EQU 3
+
+; ScriptFlags: ; d434
+SCRIPT_RUNNING EQU 2
+
+; ScriptMode: ; d437
+SCRIPT_OFF EQU 0
+SCRIPT_READ EQU 1
+SCRIPT_WAIT_MOVEMENT EQU 2
+SCRIPT_WAIT EQU 3
+
+; CurDay: ; d4cb
+SUNDAY EQU 0
+MONDAY EQU 1
+TUESDAY EQU 2
+WEDNESDAY EQU 3
+THURSDAY EQU 4
+FRIDAY EQU 5
+SATURDAY EQU 6
+
+; MapObjects: ; d71e
+
+PLAYER_OBJECT EQU 0
+
+NUM_OBJECTS EQU $10
+OBJECT_LENGTH EQU $10
+
+; InputType: ; c2c7
+AUTO_INPUT EQU $ff
+
+; WhichRegisteredItem: ; d95b
+REGISTERED_POCKET EQU %11000000
+REGISTERED_NUMBER EQU %00111111
+
+; PlayerState: ; d95d
+PLAYER_NORMAL EQU 0
+PLAYER_BIKE EQU 1
+PLAYER_SLIP EQU 2
+PLAYER_SURF EQU 4
+PLAYER_SURF_PIKA EQU 8
+
diff --git a/contents.asm b/contents.asm
new file mode 100644
index 000000000..62756c88d
--- /dev/null
+++ b/contents.asm
@@ -0,0 +1,131 @@
+; Doubles as bank constants.
+
+; main.o
+
+ROOFS EQU $7
+TILESETS_1 EQU $6
+TILESETS_2 EQU $7
+TILESETS_3 EQU $8
+TILESETS_4 EQU $C
+TILESETS_5 EQU $2D
+TILESETS_6 EQU $37
+TILESETS_7 EQU $77
+TILESETS_8 EQU $78
+
+
+; stats/egg_moves.o
+
+EGG_MOVES EQU $8
+
+
+; stats/evos_attacks.o
+
+EVOS_ATTACKS EQU $10
+
+
+; stats/pokedex/entries.o
+
+POKEDEX_ENTRIES_1 EQU $60
+POKEDEX_ENTRIES_2 EQU $6E
+POKEDEX_ENTRIES_3 EQU $73
+POKEDEX_ENTRIES_4 EQU $74
+
+
+; engine/events.o
+; engine/scripting.o
+; engine/events_2.o
+
+EVENTS EQU $25
+
+
+; engine/credits.o
+
+CREDITS EQU $42
+
+
+; gfx/pics.o
+
+PIC_POINTERS EQU $48
+UNOWN_PIC_POINTERS EQU $49
+TRAINER_PIC_POINTERS EQU $4A
+
+PICS_1 EQU $48
+PICS_2 EQU $49
+PICS_3 EQU $4A
+PICS_4 EQU $4B
+PICS_5 EQU $4C
+PICS_6 EQU $4D
+PICS_7 EQU $4E
+PICS_8 EQU $4F
+PICS_9 EQU $50
+PICS_10 EQU $51
+PICS_11 EQU $52
+PICS_12 EQU $53
+PICS_13 EQU $54
+PICS_14 EQU $55
+PICS_15 EQU $56
+PICS_16 EQU $57
+PICS_17 EQU $58
+PICS_18 EQU $59
+PICS_19 EQU $5A
+
+
+; maps.o
+
+MAP_HEADERS EQU $25
+
+MAPS_1 EQU $2A
+MAPS_2 EQU $2B
+MAPS_3 EQU $2C
+
+MAP_SCRIPTS_1 EQU $15
+MAP_SCRIPTS_2 EQU $16
+MAP_SCRIPTS_3 EQU $17
+MAP_SCRIPTS_4 EQU $18
+MAP_SCRIPTS_5 EQU $1A
+MAP_SCRIPTS_6 EQU $1B
+MAP_SCRIPTS_7 EQU $1C
+MAP_SCRIPTS_8 EQU $1D
+MAP_SCRIPTS_9 EQU $1E
+MAP_SCRIPTS_10 EQU $1F
+MAP_SCRIPTS_11 EQU $26
+MAP_SCRIPTS_12 EQU $27
+MAP_SCRIPTS_13 EQU $60
+MAP_SCRIPTS_14 EQU $61
+MAP_SCRIPTS_15 EQU $62
+MAP_SCRIPTS_16 EQU $63
+MAP_SCRIPTS_17 EQU $64
+MAP_SCRIPTS_18 EQU $65
+MAP_SCRIPTS_19 EQU $66
+MAP_SCRIPTS_20 EQU $67
+MAP_SCRIPTS_21 EQU $68
+MAP_SCRIPTS_22 EQU $69
+MAP_SCRIPTS_23 EQU $6A
+MAP_SCRIPTS_24 EQU $6B
+MAP_SCRIPTS_25 EQU $6C
+
+
+; audio.o
+
+AUDIO EQU $3A
+
+SONGS_1 EQU $3A
+SONGS_2 EQU $3B
+SONGS_3 EQU $3C
+SONGS_4 EQU $3D
+SONGS_5 EQU $5E
+
+EXTRA_SONGS_1 EQU $7
+EXTRA_SONGS_2 EQU $33
+
+SOUND_EFFECTS EQU $3C
+CRYSTAL_SOUND_EFFECTS EQU $5E
+
+CRIES EQU $3C
+
+
+; misc.o
+
+MISC_CRYSTAL EQU $5E
+
+
diff --git a/engine/color.asm b/engine/color.asm
index da99cd4bf..56b93cc75 100644
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -950,7 +950,7 @@ Function992c: ; 992c
; 9938
Function9938: ; 9938
- ld hl, $651e
+ ld hl, SGBBorder
ld de, $606e
ret
; 993f
@@ -1270,19 +1270,19 @@ Functionb1de: ; b1de
INCBIN "baserom.gbc", $b279, $b319 - $b279
MornPal: ; 0xb319
-INCBIN "tilesets/morn.pal"
+INCLUDE "tilesets/morn.pal"
; 0xb359
DayPal: ; 0xb359
-INCBIN "tilesets/day.pal"
+INCLUDE "tilesets/day.pal"
; 0xb399
NitePal: ; 0xb399
-INCBIN "tilesets/nite.pal"
+INCLUDE "tilesets/nite.pal"
; 0xb3d9
DarkPal: ; 0xb3d9
-INCBIN "tilesets/dark.pal"
+INCLUDE "tilesets/dark.pal"
; 0xb419
INCBIN "baserom.gbc", $b419, $b7a9 - $b419
diff --git a/engine/credits.asm b/engine/credits.asm
index c0cc72d97..677e1639b 100644
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -1,113 +1,352 @@
-SATOSHI_TAJIRI EQU 00
-JUNICHI_MASUDA EQU 01
-TETSUYA_WATANABE EQU 02
-SHIGEKI_MORIMOTO EQU 03
-SOUSUKE_TAMADA EQU 04
-TAKENORI_OOTA EQU 05
-KEN_SUGIMORI EQU 06
-MOTOFUMI_FUJIWARA EQU 07
-ATSUKO_NISHIDA EQU 08
-MUNEO_SAITO EQU 09
-SATOSHI_OOTA EQU 10
-RENA_YOSHIKAWA EQU 11
-JUN_OKUTANI EQU 12
-HIRONOBU_YOSHIDA EQU 13
-ASUKA_IWASHITA EQU 14
-GO_ICHINOSE EQU 15
-MORIKAZU_AOKI EQU 16
-KOHJI_NISHINO EQU 17
-KENJI_MATSUSHIMA EQU 18
-TOSHINOBU_MATSUMIYA EQU 19
-SATORU_IWATA EQU 20
-NOBUHIRO_SEYA EQU 21
-KAZUHITO_SEKINE EQU 22
-TETSUJI_OOTA EQU 23
-NCL_SUPER_MARIO_CLUB EQU 24
-SARUGAKUCHO EQU 25
-AKITO_MORI EQU 26
-TAKAHIRO_HARADA EQU 27
-TOHRU_HASHIMOTO EQU 28
-NOBORU_MATSUMOTO EQU 29
-TAKEHIRO_IZUSHI EQU 30
-TAKASHI_KAWAGUCHI EQU 31
-TSUNEKAZU_ISHIHARA EQU 32
-HIROSHI_YAMAUCHI EQU 33
-KENJI_SAIKI EQU 34
-ATSUSHI_TADA EQU 35
-NAOKO_KAWAKAMI EQU 36
-HIROYUKI_ZINNAI EQU 37
-KUNIMI_KAWAMURA EQU 38
-HISASHI_SOGABE EQU 39
-KEITA_KAGAYA EQU 40
-YOSHINORI_MATSUDA EQU 41
-HITOMI_SATO EQU 42
-TORU_OSAWA EQU 43
-TAKAO_OHARA EQU 44
-YUICHIRO_ITO EQU 45
-TAKAO_SHIMIZU EQU 46
-PLANNING EQU 47
-KEITA_NAKAMURA EQU 48
-HIROTAKA_UEMURA EQU 49
-HIROAKI_TAMURA EQU 50
-NORIAKI_SAKAGUCHI EQU 51
-MIYUKI_SATO EQU 52
-GAKUZI_NOMOTO EQU 53
-AI_MASHIMA EQU 54
-MIKIHIRO_ISHIKAWA EQU 55
-HIDEYUKI_HASHIMOTO EQU 56
-SATOSHI_YAMATO EQU 57
-SHIGERU_MIYAMOTO EQU 58
-GAIL_TILDEN EQU 59
-NOB_OGASAWARA EQU 60
-SETH_MCMAHILL EQU 61
-HIROTO_ALEXANDER EQU 62
-TERESA_LILLYGREN EQU 63
-THOMAS_HERTZOG EQU 64
-ERIK_JOHNSON EQU 65
-HIRO_NAKAMURA EQU 66
-TERUKI_MURAKAWA EQU 67
-KAZUYOSHI_OSAWA EQU 68
-KIMIKO_NAKAMICHI EQU 69
-END EQU 70
-CREDITS_UNKNOWN EQU 71
-STAFF EQU 72
-DIRECTOR EQU 73
-CODIRECTOR EQU 74
-PROGRAMMERS EQU 75
-GRAPHICS_DIRECTOR EQU 76
-MONSTER_DESIGN EQU 77
-GRAPHICS_DESIGN EQU 78
-MUSIC EQU 79
-SOUND_EFFECTS EQU 80
-GAME_DESIGN EQU 81
-GAME_SCENARIO EQU 82
-TOOL_PROGRAMMING EQU 83
-PARAMETRIC_DESIGN EQU 84
-SCRIPT_DESIGN EQU 85
-MAP_DATA_DESIGN EQU 86
-MAP_DESIGN EQU 87
-PRODUCT_TESTING EQU 88
-SPECIAL_THANKS EQU 89
-PRODUCERS EQU 90
-EXECUTIVE_PRODUCER EQU 91
-POKEMON_ANIMATION EQU 92
-POKEDEX_TEXT EQU 93
-MOBILE_PRJ_LEADER EQU 94
-MOBILE_SYSTEM_AD EQU 95
-MOBILE_STADIUM_DIR EQU 96
-COORDINATION EQU 97
-COPYRIGHT EQU 98
-US_VERSION_STAFF EQU 99
-US_COORDINATION EQU 100
-TEXT_TRANSLATION EQU 101
-PAAD_TESTING EQU 102
-
-CREDITS_THEEND EQU $f9
-CREDITS_WAIT2 EQU $fa
-CREDITS_MUSIC EQU $fb
-CREDITS_CLEAR EQU $fc
-CREDITS_SCENE EQU $fd
-CREDITS_WAIT EQU $fe
+
+ const_def
+ const SATOSHI_TAJIRI
+ const JUNICHI_MASUDA
+ const TETSUYA_WATANABE
+ const SHIGEKI_MORIMOTO
+ const SOUSUKE_TAMADA
+ const TAKENORI_OOTA
+ const KEN_SUGIMORI
+ const MOTOFUMI_FUJIWARA
+ const ATSUKO_NISHIDA
+ const MUNEO_SAITO
+ const SATOSHI_OOTA
+ const RENA_YOSHIKAWA
+ const JUN_OKUTANI
+ const HIRONOBU_YOSHIDA
+ const ASUKA_IWASHITA
+ const GO_ICHINOSE
+ const MORIKAZU_AOKI
+ const KOHJI_NISHINO
+ const KENJI_MATSUSHIMA
+ const TOSHINOBU_MATSUMIYA
+ const SATORU_IWATA
+ const NOBUHIRO_SEYA
+ const KAZUHITO_SEKINE
+ const TETSUJI_OOTA
+ const NCL_SUPER_MARIO_CLUB
+ const SARUGAKUCHO
+ const AKITO_MORI
+ const TAKAHIRO_HARADA
+ const TOHRU_HASHIMOTO
+ const NOBORU_MATSUMOTO
+ const TAKEHIRO_IZUSHI
+ const TAKASHI_KAWAGUCHI
+ const TSUNEKAZU_ISHIHARA
+ const HIROSHI_YAMAUCHI
+ const KENJI_SAIKI
+ const ATSUSHI_TADA
+ const NAOKO_KAWAKAMI
+ const HIROYUKI_ZINNAI
+ const KUNIMI_KAWAMURA
+ const HISASHI_SOGABE
+ const KEITA_KAGAYA
+ const YOSHINORI_MATSUDA
+ const HITOMI_SATO
+ const TORU_OSAWA
+ const TAKAO_OHARA
+ const YUICHIRO_ITO
+ const TAKAO_SHIMIZU
+ const PLANNING
+ const KEITA_NAKAMURA
+ const HIROTAKA_UEMURA
+ const HIROAKI_TAMURA
+ const NORIAKI_SAKAGUCHI
+ const MIYUKI_SATO
+ const GAKUZI_NOMOTO
+ const AI_MASHIMA
+ const MIKIHIRO_ISHIKAWA
+ const HIDEYUKI_HASHIMOTO
+ const SATOSHI_YAMATO
+ const SHIGERU_MIYAMOTO
+ const GAIL_TILDEN
+ const NOB_OGASAWARA
+ const SETH_MCMAHILL
+ const HIROTO_ALEXANDER
+ const TERESA_LILLYGREN
+ const THOMAS_HERTZOG
+ const ERIK_JOHNSON
+ const HIRO_NAKAMURA
+ const TERUKI_MURAKAWA
+ const KAZUYOSHI_OSAWA
+ const KIMIKO_NAKAMICHI
+ const CREDIT_END
+ const CREDIT_UNKNOWN
+ const STAFF
+ const DIRECTOR
+ const CODIRECTOR
+ const PROGRAMMERS
+ const GRAPHICS_DIRECTOR
+ const MONSTER_DESIGN
+ const GRAPHICS_DESIGN
+ const CREDIT_MUSIC
+ const CREDIT_SOUND_EFFECTS
+ const GAME_DESIGN
+ const GAME_SCENARIO
+ const TOOL_PROGRAMMING
+ const PARAMETRIC_DESIGN
+ const SCRIPT_DESIGN
+ const MAP_DATA_DESIGN
+ const MAP_DESIGN
+ const PRODUCT_TESTING
+ const SPECIAL_THANKS
+ const PRODUCERS
+ const EXECUTIVE_PRODUCER
+ const POKEMON_ANIMATION
+ const POKEDEX_TEXT
+ const MOBILE_PRJ_LEADER
+ const MOBILE_SYSTEM_AD
+ const MOBILE_STADIUM_DIR
+ const COORDINATION
+ const COPYRIGHT
+ const US_VERSION_STAFF
+ const US_COORDINATION
+ const TEXT_TRANSLATION
+ const PAAD_TESTING
+
+const_value SET -7
+ const CREDITS_THEEND
+ const CREDITS_WAIT2
+ const CREDITS_MUSIC
+ const CREDITS_CLEAR
+ const CREDITS_SCENE
+ const CREDITS_WAIT
+ const CREDITS_END
+
+
+Function109847: ; 109847
+ bit 6, b
+ ld a, $0
+ jr z, .asm_10984f
+ ld a, $40
+.asm_10984f
+ ld [$cf63], a
+
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+
+ ld hl, $ca00
+ ld c, $80
+ ld de, $ff00
+
+.asm_10986a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ dec c
+ jr nz, .asm_10986a
+
+ ld de, CreditsBorderGFX
+ ld hl, $9200
+ lb bc, BANK(CreditsBorderGFX), $09
+ call Request2bpp
+
+ ld de, CopyrightGFX
+ ld hl, $9600
+ lb bc, BANK(CopyrightGFX), $1d
+ call Request2bpp
+
+ ld de, TheEndGFX
+ ld hl, $9400
+ lb bc, BANK(TheEndGFX), $10
+ call Request2bpp
+
+ ld a, $ff
+ ld [$cf64], a
+ xor a
+ ld [$cf65], a
+
+ call Function109bca
+ ld e, l
+ ld d, h
+ ld hl, VTiles2
+ lb bc, BANK(CreditsMonsGFX), $10
+ call Request2bpp
+
+ call Function109a95
+ xor a
+ ld [$cf66], a
+
+ ld hl, LYOverrides
+ ld bc, $100
+ xor a
+ call ByteFill
+
+ ld a, rSCX & $ff
+ ld [hLCDStatCustom], a
+
+ call GetCreditsPalette
+ call Function32f9
+ ld a, [$ff9e]
+ push af
+ ld a, $5
+ ld [$ff9e], a
+ ld a, $1
+ ld [$ffaa], a
+ xor a
+ ld [hBGMapMode], a
+ ld [CreditsPos], a
+ ld [$cd21], a
+ ld [CreditsTimer], a
+
+.asm_1098de
+ call Function109908
+ call Function1098fd
+ jr nz, .asm_1098ee
+
+ call Function109926
+ call DelayFrame
+ jr .asm_1098de
+
+.asm_1098ee
+ call WhiteBGMap
+ xor a
+ ld [hLCDStatCustom], a
+ ld [hBGMapAddress], a
+ pop af
+ ld [$ff9e], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 1098fd
+
+Function1098fd: ; 1098fd
+ ld a, [hJoypadDown]
+ and $1
+ ret z
+ ld a, [$cf63]
+ bit 7, a
+ ret
+; 109908
+
+Function109908: ; 109908
+ ld a, [hJoypadDown]
+ and $2
+ ret z
+ ld a, [$cf63]
+ bit 6, a
+ ret z
+ ld hl, CreditsPos
+ ld a, [hli]
+ cp $d
+ jr nc, .asm_10991e
+ ld a, [hli]
+ and a
+ ret z
+
+.asm_10991e
+ ld hl, CreditsTimer
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+; 109926
+
+Function109926: ; 109926
+ ld a, [$cf63]
+ and $f
+ ld e, a
+ ld d, $0
+ ld hl, $5937
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 109937
+
+
+; no known jump sources
+Jumptable_109937: ; 109937 (42:5937)
+ dw ParseCredits
+ dw Function109951
+ dw Function109951
+ dw Function10995e
+ dw Function109964
+ dw Function10997b
+ dw Function109986
+ dw Function109951
+ dw Function109951
+ dw Function109951
+ dw Function109964
+ dw Function10997b
+ dw Function109956
+
+
+; known jump sources: 109961 (42:5961), 109983 (42:5983), 1099a0 (42:59a0), 109a62 (42:5a62)
+Function109951: ; 109951 (42:5951)
+ ld hl, $cf63
+ inc [hl]
+ ret
+
+; no known jump sources
+Function109956: ; 109956 (42:5956)
+ ld hl, $cf63
+ ld a, [hl]
+ and $f0
+ ld [hl], a
+ ret
+
+; no known jump sources
+Function10995e: ; 10995e (42:595e)
+ xor a
+ ld [hBGMapMode], a ; $ff00+$d4
+ jp Function109951
+
+; no known jump sources
+Function109964: ; 109964 (42:5964)
+ call Function109bca
+ ld a, l
+ ld [$cf68], a
+ ld a, h
+ ld [$cf69], a
+ ld a, $0
+ ld [$cf6a], a
+ ld a, $90
+ ld [$cf6b], a
+ jr Function10997b
+
+; known jump sources: 109979 (42:5979)
+Function10997b: ; 10997b (42:597b)
+ xor a
+ ld [hBGMapMode], a ; $ff00+$d4
+ ld a, $8
+ ld [$cf67], a
+ jp Function109951
+
+; known jump sources: 10998a (42:598a)
+Function109986: ; 109986 (42:5986)
+ ld a, [rLY] ; $ff00+$44
+ cp $30
+ jr c, Function109986
+ ld a, [$cf66]
+ dec a
+ dec a
+ ld [$cf66], a
+ ld hl, $d11f
+ call Function1099a3
+ ld hl, $d187
+ call Function1099a3
+ jp Function109951
+
+; known jump sources: 109997 (42:5997), 10999d (42:599d)
+Function1099a3: ; 1099a3 (42:59a3)
+ ld c, $8
+.asm_1099a5
+ ld [hli], a
+ dec c
+ jr nz, .asm_1099a5
+ ret
+; 1099aa
ParseCredits: ; 1099aa
@@ -141,7 +380,7 @@ ParseCredits: ; 1099aa
call .get
; Commands:
- cp $ff
+ cp CREDITS_END
jp z, .end
cp CREDITS_WAIT
jr z, .wait
@@ -199,7 +438,7 @@ ParseCredits: ; 1099aa
.theend
; Display "The End" graphic.
- call $5c11
+ call Function109c11
jr .loop
.scene
@@ -392,7 +631,7 @@ GetCreditsPalette: ; 109b2c
add a
ld e, a
ld d, 0
- ld hl, .CreditsPalettes
+ ld hl, CreditsPalettes
add hl, de
add hl, de ; * 3
add hl, de
@@ -403,31 +642,91 @@ GetCreditsPalette: ; 109b2c
push af
push hl
- add $00 ; lo($d000)
+ add $d000 % $100
ld e, a
ld a, 0
- adc $d0 ; hi($d000)
+ adc $d000 / $100
ld d, a
ld bc, 24
call CopyBytes
pop hl
pop af
- add $80 ; lo($d080)
+ add $d080 % $100
ld e, a
ld a, 0
- adc $d0 ; hi($d080)
+ adc $d080 / $100
ld d, a
ld bc, 24
call CopyBytes
ret
-.CreditsPalettes
-INCBIN "baserom.gbc",$109b6a,$18 ; pichu.pal
-INCBIN "baserom.gbc",$109b82,$18 ; smoochum.pal
-INCBIN "baserom.gbc",$109b9a,$18 ; ditto.pal
-INCBIN "baserom.gbc",$109bb2,$18 ; igglybuff.pal
+CreditsPalettes:
+
+; Pichu
+ RGB 31, 00, 31
+ RGB 31, 25, 00
+ RGB 11, 14, 31
+ RGB 07, 07, 07
+
+ RGB 31, 05, 05
+ RGB 11, 14, 31
+ RGB 11, 14, 31
+ RGB 31, 31, 31
+
+ RGB 31, 05, 05
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+; Smoochum
+ RGB 31, 31, 31
+ RGB 31, 27, 00
+ RGB 26, 06, 31
+ RGB 07, 07, 07
+
+ RGB 03, 13, 31
+ RGB 20, 00, 24
+ RGB 26, 06, 31
+ RGB 31, 31, 31
+
+ RGB 03, 13, 31
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+; Ditto
+ RGB 31, 31, 31
+ RGB 23, 12, 28
+ RGB 31, 22, 00
+ RGB 07, 07, 07
+
+ RGB 03, 20, 00
+ RGB 31, 22, 00
+ RGB 31, 22, 00
+ RGB 31, 31, 31
+
+ RGB 03, 20, 00
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+; Igglybuff
+ RGB 31, 31, 31
+ RGB 31, 10, 31
+ RGB 31, 00, 09
+ RGB 07, 07, 07
+
+ RGB 31, 14, 00
+ RGB 31, 00, 09
+ RGB 31, 00, 09
+ RGB 31, 31, 31
+
+ RGB 31, 14, 00
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
; 109bca
; known jump sources: 10989e (42:589e), 109964 (42:5964)
@@ -436,31 +735,50 @@ Function109bca: ; 109bca (42:5bca)
ld a, [hl]
cp $ff
jr z, .asm_109bed
- and $3
+
+ and 3
ld e, a
inc a
- and $3
+ and 3
ld [hl], a
ld a, [$cf65]
- and $3
+ and 3
add a
add a
add e
add a
ld e, a
- ld d, $0
- ld hl, $5bf1
+ ld d, 0
+ ld hl, CreditsMonsFrames
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ret
+
.asm_109bed
ld hl, $ca00
ret
; 109bf1 (42:5bf1)
-INCBIN "baserom.gbc",$109bf1,$109c11 - $109bf1
+CreditsMonsFrames: ; 109bf1
+ dw CreditsPichuGFX
+ dw CreditsPichuGFX + $100
+ dw CreditsPichuGFX + $200
+ dw CreditsPichuGFX + $300
+ dw CreditsSmoochumGFX
+ dw CreditsSmoochumGFX + $100
+ dw CreditsSmoochumGFX + $200
+ dw CreditsSmoochumGFX + $300
+ dw CreditsDittoGFX
+ dw CreditsDittoGFX + $100
+ dw CreditsDittoGFX + $200
+ dw CreditsDittoGFX + $300
+ dw CreditsIgglybuffGFX
+ dw CreditsIgglybuffGFX + $100
+ dw CreditsIgglybuffGFX + $200
+ dw CreditsIgglybuffGFX + $300
+; 109c11
; known jump sources: 109a1b (42:5a1b)
Function109c11: ; 109c11 (42:5c11)
@@ -481,12 +799,13 @@ Function109c1c: ; 109c1c (42:5c1c)
; 109c24 (42:5c24)
-CreditsGFX:
-INCBIN "gfx/credits/border.2bpp"
-INCBIN "gfx/credits/pichu.2bpp"
-INCBIN "gfx/credits/smoochum.2bpp"
-INCBIN "gfx/credits/ditto.2bpp"
-INCBIN "gfx/credits/igglybuff.2bpp"
+CreditsBorderGFX: INCBIN "gfx/credits/border.2bpp"
+
+CreditsMonsGFX:
+CreditsPichuGFX: INCBIN "gfx/credits/pichu.2bpp"
+CreditsSmoochumGFX: INCBIN "gfx/credits/smoochum.2bpp"
+CreditsDittoGFX: INCBIN "gfx/credits/ditto.2bpp"
+CreditsIgglybuffGFX: INCBIN "gfx/credits/igglybuff.2bpp"
CreditsScript: ; 10acb4
@@ -495,247 +814,286 @@ CreditsScript: ; 10acb4
db CREDITS_CLEAR
; Pokemon Crystal Version Staff
- db STAFF, 01
- db CREDITS_WAIT, 08
+ db STAFF, 1
+
+ db CREDITS_WAIT, 8
; Play the credits music.
db CREDITS_MUSIC
db CREDITS_WAIT2, 10
- db CREDITS_WAIT, 01
+ db CREDITS_WAIT, 1
; Update the banner.
- db CREDITS_SCENE, 00 ; Pichu
+ db CREDITS_SCENE, 0 ; Pichu
+
+ db DIRECTOR, 1
+ db SATOSHI_TAJIRI, 2
- db DIRECTOR, 01
- db SATOSHI_TAJIRI, 02
db CREDITS_WAIT, 12
- db CODIRECTOR, 01
- db JUNICHI_MASUDA, 02
+ db CODIRECTOR, 1
+ db JUNICHI_MASUDA, 2
+
db CREDITS_WAIT, 12
- db PROGRAMMERS, 00
- db SOUSUKE_TAMADA, 01
- db HISASHI_SOGABE, 02
- db KEITA_KAGAYA, 03
- db YOSHINORI_MATSUDA, 04
+ db PROGRAMMERS, 0
+ db SOUSUKE_TAMADA, 1
+ db HISASHI_SOGABE, 2
+ db KEITA_KAGAYA, 3
+ db YOSHINORI_MATSUDA, 4
+
db CREDITS_WAIT, 12
- db PROGRAMMERS, 00
- db SHIGEKI_MORIMOTO, 01
- db TETSUYA_WATANABE, 02
- db TAKENORI_OOTA, 03
+ db PROGRAMMERS, 0
+ db SHIGEKI_MORIMOTO, 1
+ db TETSUYA_WATANABE, 2
+ db TAKENORI_OOTA, 3
+
db CREDITS_WAIT, 12
- db GRAPHICS_DIRECTOR, 01
- db KEN_SUGIMORI, 02
+ db GRAPHICS_DIRECTOR, 1
+ db KEN_SUGIMORI, 2
+
db CREDITS_WAIT, 12
- db MONSTER_DESIGN, 00
- db KEN_SUGIMORI, 01
- db MOTOFUMI_FUJIWARA, 02
- db SHIGEKI_MORIMOTO, 03
- db HIRONOBU_YOSHIDA, 04
- db SATOSHI_OOTA, 05
+ db MONSTER_DESIGN, 0
+ db KEN_SUGIMORI, 1
+ db MOTOFUMI_FUJIWARA, 2
+ db SHIGEKI_MORIMOTO, 3
+ db HIRONOBU_YOSHIDA, 4
+ db SATOSHI_OOTA, 5
+
db CREDITS_WAIT, 12
- db MONSTER_DESIGN, 00
- db ATSUKO_NISHIDA, 01
- db MUNEO_SAITO, 02
- db RENA_YOSHIKAWA, 03
+ db MONSTER_DESIGN, 0
+ db ATSUKO_NISHIDA, 1
+ db MUNEO_SAITO, 2
+ db RENA_YOSHIKAWA, 3
+
db CREDITS_WAIT, 12
- db POKEMON_ANIMATION, 01
- db HIRONOBU_YOSHIDA, 02
- db JUN_OKUTANI, 03
+ db POKEMON_ANIMATION, 1
+ db HIRONOBU_YOSHIDA, 2
+ db JUN_OKUTANI, 3
+
db CREDITS_WAIT, 12
; Clear the banner.
db CREDITS_CLEAR
- db CREDITS_WAIT, 01
+ db CREDITS_WAIT, 1
; Update the banner.
- db CREDITS_SCENE, 01 ; Smoochum
+ db CREDITS_SCENE, 1 ; Smoochum
+
+ db GRAPHICS_DESIGN, 0
+ db HIRONOBU_YOSHIDA, 1
+ db JUN_OKUTANI, 2
+ db ASUKA_IWASHITA, 3
+ db TETSUYA_WATANABE, 4
- db GRAPHICS_DESIGN, 00
- db HIRONOBU_YOSHIDA, 01
- db JUN_OKUTANI, 02
- db ASUKA_IWASHITA, 03
- db TETSUYA_WATANABE, 04
db CREDITS_WAIT, 12
- db MUSIC, 00
- db JUNICHI_MASUDA, 01
- db MORIKAZU_AOKI, 02
- db GO_ICHINOSE, 03
+ db CREDIT_MUSIC, 0
+ db JUNICHI_MASUDA, 1
+ db MORIKAZU_AOKI, 2
+ db GO_ICHINOSE, 3
+
db CREDITS_WAIT, 12
- db SOUND_EFFECTS, 00
- db MORIKAZU_AOKI, 01
- db JUNICHI_MASUDA, 02
- db TETSUYA_WATANABE, 03
+ db CREDIT_SOUND_EFFECTS, 0
+ db MORIKAZU_AOKI, 1
+ db JUNICHI_MASUDA, 2
+ db TETSUYA_WATANABE, 3
+
db CREDITS_WAIT, 12
- db GAME_DESIGN, 00
- db JUNICHI_MASUDA, 01
- db SHIGEKI_MORIMOTO, 02
- db KOHJI_NISHINO, 03
+ db GAME_DESIGN, 0
+ db JUNICHI_MASUDA, 1
+ db SHIGEKI_MORIMOTO, 2
+ db KOHJI_NISHINO, 3
+
db CREDITS_WAIT, 12
- db GAME_DESIGN, 00
- db TETSUJI_OOTA, 01
- db HITOMI_SATO, 02
- db KENJI_MATSUSHIMA, 03
+ db GAME_DESIGN, 0
+ db TETSUJI_OOTA, 1
+ db HITOMI_SATO, 2
+ db KENJI_MATSUSHIMA, 3
+
db CREDITS_WAIT, 12
- db GAME_SCENARIO, 00
- db JUNICHI_MASUDA, 01
- db KOHJI_NISHINO, 02
- db TOSHINOBU_MATSUMIYA, 03
- db KENJI_MATSUSHIMA, 04
+ db GAME_SCENARIO, 0
+ db JUNICHI_MASUDA, 1
+ db KOHJI_NISHINO, 2
+ db TOSHINOBU_MATSUMIYA, 3
+ db KENJI_MATSUSHIMA, 4
+
db CREDITS_WAIT, 12
- db POKEDEX_TEXT, 01
- db TOSHINOBU_MATSUMIYA, 02
+ db POKEDEX_TEXT, 1
+ db TOSHINOBU_MATSUMIYA, 2
+
db CREDITS_WAIT, 12
- db TOOL_PROGRAMMING, 01
- db SOUSUKE_TAMADA, 02
- db TAKENORI_OOTA, 03
+ db TOOL_PROGRAMMING, 1
+ db SOUSUKE_TAMADA, 2
+ db TAKENORI_OOTA, 3
+
db CREDITS_WAIT, 12
- db PARAMETRIC_DESIGN, 01
- db KOHJI_NISHINO, 02
+ db PARAMETRIC_DESIGN, 1
+ db KOHJI_NISHINO, 2
+
db CREDITS_WAIT, 12
; Clear the banner.
db CREDITS_CLEAR
- db CREDITS_WAIT, 01
+ db CREDITS_WAIT, 1
; Update the banner.
- db CREDITS_SCENE, 02 ; Ditto
+ db CREDITS_SCENE, 2 ; Ditto
+
+ db SCRIPT_DESIGN, 1
+ db TETSUJI_OOTA, 2
+ db NOBUHIRO_SEYA, 3
- db SCRIPT_DESIGN, 01
- db TETSUJI_OOTA, 02
- db NOBUHIRO_SEYA, 03
db CREDITS_WAIT, 12
- db MAP_DATA_DESIGN, 01
- db TETSUJI_OOTA, 02
- db KAZUHITO_SEKINE, 03
+ db MAP_DATA_DESIGN, 1
+ db TETSUJI_OOTA, 2
+ db KAZUHITO_SEKINE, 3
+
db CREDITS_WAIT, 12
- db MAP_DESIGN, 00
- db TETSUJI_OOTA, 01
- db KOHJI_NISHINO, 02
- db NOBUHIRO_SEYA, 03
+ db MAP_DESIGN, 0
+ db TETSUJI_OOTA, 1
+ db KOHJI_NISHINO, 2
+ db NOBUHIRO_SEYA, 3
+
db CREDITS_WAIT, 12
- db COORDINATION, 01
- db HIROYUKI_ZINNAI, 02
+ db COORDINATION, 1
+ db HIROYUKI_ZINNAI, 2
+
db CREDITS_WAIT, 12
- db PRODUCERS, 00
- db SATORU_IWATA, 01
- db SATOSHI_YAMATO, 02
- db SHIGERU_MIYAMOTO, 03
+ db PRODUCERS, 0
+ db SATORU_IWATA, 1
+ db SATOSHI_YAMATO, 2
+ db SHIGERU_MIYAMOTO, 3
+
db CREDITS_WAIT, 12
- db PRODUCERS, 01
- db TSUNEKAZU_ISHIHARA, 02
+ db PRODUCERS, 1
+ db TSUNEKAZU_ISHIHARA, 2
+
db CREDITS_WAIT, 12
; Clear the banner.
db CREDITS_CLEAR
- db CREDITS_WAIT, 01
+ db CREDITS_WAIT, 1
; Update the banner.
- db CREDITS_SCENE, 03 ; Igglybuff
+ db CREDITS_SCENE, 3 ; Igglybuff
- db US_VERSION_STAFF, 02
- db CREDITS_WAIT, 09
+ db US_VERSION_STAFF, 2
+
+ db CREDITS_WAIT, 9
+
+ db US_COORDINATION, 1
+ db GAIL_TILDEN, 2
+ db HIRO_NAKAMURA, 3
- db US_COORDINATION, 01
- db GAIL_TILDEN, 02
- db HIRO_NAKAMURA, 03
db CREDITS_WAIT, 12
- db US_COORDINATION, 01
- db JUNICHI_MASUDA, 02
- db SETH_MCMAHILL, 03
+ db US_COORDINATION, 1
+ db JUNICHI_MASUDA, 2
+ db SETH_MCMAHILL, 3
+
db CREDITS_WAIT, 12
- db US_COORDINATION, 01
- db HIROTO_ALEXANDER, 02
- db TERESA_LILLYGREN, 03
+ db US_COORDINATION, 1
+ db HIROTO_ALEXANDER, 2
+ db TERESA_LILLYGREN, 3
+
db CREDITS_WAIT, 12
- db TEXT_TRANSLATION, 01
- db NOB_OGASAWARA, 02
+ db TEXT_TRANSLATION, 1
+ db NOB_OGASAWARA, 2
+
db CREDITS_WAIT, 12
- db PROGRAMMERS, 01
- db TERUKI_MURAKAWA, 02
- db KAZUYOSHI_OSAWA, 03
+ db PROGRAMMERS, 1
+ db TERUKI_MURAKAWA, 2
+ db KAZUYOSHI_OSAWA, 3
+
db CREDITS_WAIT, 12
- db PAAD_TESTING, 01
- db THOMAS_HERTZOG, 02
- db ERIK_JOHNSON, 03
+ db PAAD_TESTING, 1
+ db THOMAS_HERTZOG, 2
+ db ERIK_JOHNSON, 3
+
db CREDITS_WAIT, 12
- db PRODUCT_TESTING, 00
- db PLANNING, 01
+ db PRODUCT_TESTING, 0
+ db PLANNING, 1
+
db CREDITS_WAIT, 12
- db PRODUCT_TESTING, 00
- db KEITA_NAKAMURA, 01
- db HIROTAKA_UEMURA, 02
- db HIROAKI_TAMURA, 03
- db NORIAKI_SAKAGUCHI, 04
+ db PRODUCT_TESTING, 0
+ db KEITA_NAKAMURA, 1
+ db HIROTAKA_UEMURA, 2
+ db HIROAKI_TAMURA, 3
+ db NORIAKI_SAKAGUCHI, 4
+
db CREDITS_WAIT, 12
- db PRODUCT_TESTING, 00
- db NCL_SUPER_MARIO_CLUB, 01
- db KENJI_SAIKI, 02
- db ATSUSHI_TADA, 03
- db MIYUKI_SATO, 04
+ db PRODUCT_TESTING, 0
+ db NCL_SUPER_MARIO_CLUB, 1
+ db KENJI_SAIKI, 2
+ db ATSUSHI_TADA, 3
+ db MIYUKI_SATO, 4
+
db CREDITS_WAIT, 12
- db SPECIAL_THANKS, 00
- db KIMIKO_NAKAMICHI, 01
- db AKITO_MORI, 02
+ db SPECIAL_THANKS, 0
+ db KIMIKO_NAKAMICHI, 1
+ db AKITO_MORI, 2
+
db CREDITS_WAIT, 12
- db SPECIAL_THANKS, 00
- db GAKUZI_NOMOTO, 01
- db AI_MASHIMA, 02
- db KUNIMI_KAWAMURA, 03
+ db SPECIAL_THANKS, 0
+ db GAKUZI_NOMOTO, 1
+ db AI_MASHIMA, 2
+ db KUNIMI_KAWAMURA, 3
+
db CREDITS_WAIT, 12
- db SPECIAL_THANKS, 00
- db MIKIHIRO_ISHIKAWA, 01
- db HIDEYUKI_HASHIMOTO, 02
+ db SPECIAL_THANKS, 0
+ db MIKIHIRO_ISHIKAWA, 1
+ db HIDEYUKI_HASHIMOTO, 2
+
db CREDITS_WAIT, 12
- db EXECUTIVE_PRODUCER, 01
- db HIROSHI_YAMAUCHI, 02
+ db EXECUTIVE_PRODUCER, 1
+ db HIROSHI_YAMAUCHI, 2
+
db CREDITS_WAIT, 12
- db COPYRIGHT, 01
- db CREDITS_WAIT, 09
+ db COPYRIGHT, 1
+
+ db CREDITS_WAIT, 9
; Display "The End" graphic.
db CREDITS_THEEND
db CREDITS_WAIT, 20
- db $ff ; end
+ db CREDITS_END
; 10ae13
diff --git a/engine/credits_crystal.asm b/engine/credits_crystal.asm
new file mode 100644
index 000000000..76dc86319
--- /dev/null
+++ b/engine/credits_crystal.asm
@@ -0,0 +1,6 @@
+INCLUDE "pokecrystal.asm"
+INCLUDE "includes.asm"
+
+SECTION "Credits", ROMX, BANK[CREDITS]
+INCLUDE "engine/credits.asm"
+
diff --git a/engine/engine_flags.asm b/engine/engine_flags.asm
index 16ed58878..11414438e 100644
--- a/engine/engine_flags.asm
+++ b/engine/engine_flags.asm
@@ -69,33 +69,33 @@
dwb UnlockedUnowns, %10000000 ; 8
; fly
- dwb FlypointPerms, %00000001 ; your house
- dwb FlypointPerms, %00000010 ; viridian pokecenter
- dwb FlypointPerms, %00000100 ; pallet
- dwb FlypointPerms, %00001000 ; viridian
- dwb FlypointPerms, %00010000 ; pewter
- dwb FlypointPerms, %00100000 ; cerulean ; $38
- dwb FlypointPerms, %01000000 ; rock tunnel
- dwb FlypointPerms, %10000000 ; vermilion
- dwb FlypointPerms + 1, %00000001 ; lavender
- dwb FlypointPerms + 1, %00000010 ; saffron
- dwb FlypointPerms + 1, %00000100 ; celadon
- dwb FlypointPerms + 1, %00001000 ; fuchsia
- dwb FlypointPerms + 1, %00010000 ; cinnabar
- dwb FlypointPerms + 1, %00100000 ; indigo plateau ; $40
- dwb FlypointPerms + 1, %01000000 ; new bark
- dwb FlypointPerms + 1, %10000000 ; cherrygrove
- dwb FlypointPerms + 2, %00000001 ; violet
- dwb FlypointPerms + 2, %00000100 ; azalea
- dwb FlypointPerms + 2, %00001000 ; cianwood
- dwb FlypointPerms + 2, %00010000 ; goldenrod
- dwb FlypointPerms + 2, %00100000 ; olivine
- dwb FlypointPerms + 2, %01000000 ; ecruteak ; $48
- dwb FlypointPerms + 2, %10000000 ; mahogany
- dwb FlypointPerms + 3, %00000001 ; lake of rage
- dwb FlypointPerms + 3, %00000010 ; blackthorn
- dwb FlypointPerms + 3, %00000100 ; silver cave
- dwb FlypointPerms + 3, %00010000 ; unused
+ dwb VisitedSpawns, %00000001 ; your house
+ dwb VisitedSpawns, %00000010 ; viridian pokecenter
+ dwb VisitedSpawns, %00000100 ; pallet
+ dwb VisitedSpawns, %00001000 ; viridian
+ dwb VisitedSpawns, %00010000 ; pewter
+ dwb VisitedSpawns, %00100000 ; cerulean ; $38
+ dwb VisitedSpawns, %01000000 ; rock tunnel
+ dwb VisitedSpawns, %10000000 ; vermilion
+ dwb VisitedSpawns + 1, %00000001 ; lavender
+ dwb VisitedSpawns + 1, %00000010 ; saffron
+ dwb VisitedSpawns + 1, %00000100 ; celadon
+ dwb VisitedSpawns + 1, %00001000 ; fuchsia
+ dwb VisitedSpawns + 1, %00010000 ; cinnabar
+ dwb VisitedSpawns + 1, %00100000 ; indigo plateau ; $40
+ dwb VisitedSpawns + 1, %01000000 ; new bark
+ dwb VisitedSpawns + 1, %10000000 ; cherrygrove
+ dwb VisitedSpawns + 2, %00000001 ; violet
+ dwb VisitedSpawns + 2, %00000100 ; azalea
+ dwb VisitedSpawns + 2, %00001000 ; cianwood
+ dwb VisitedSpawns + 2, %00010000 ; goldenrod
+ dwb VisitedSpawns + 2, %00100000 ; olivine
+ dwb VisitedSpawns + 2, %01000000 ; ecruteak ; $48
+ dwb VisitedSpawns + 2, %10000000 ; mahogany
+ dwb VisitedSpawns + 3, %00000001 ; lake of rage
+ dwb VisitedSpawns + 3, %00000010 ; blackthorn
+ dwb VisitedSpawns + 3, %00000100 ; silver cave
+ dwb VisitedSpawns + 3, %00010000 ; unused
dwb $dc9d, %00000001 ; lucky number show
dwb $d84d, %00001000
diff --git a/engine/events.asm b/engine/events.asm
index d1b651f91..8a6db2773 100644
--- a/engine/events.asm
+++ b/engine/events.asm
@@ -1,6 +1,7 @@
INCLUDE "includes.asm"
-SECTION "events", ROMX, BANK[$25]
+
+SECTION "Events", ROMX, BANK[EVENTS]
Function966b0: ; 966b0
xor a
@@ -123,7 +124,7 @@ Function96724: ; 96724
ld bc, $3e
call ByteFill
callba Function113e5
- call ClearJoypadPublic
+ call ClearJoypad
; fallthrough
; 9673e
@@ -225,7 +226,7 @@ Function967c1: ; 967c1
cp 1
ret z
call UpdateTime
- call GetJoypadPublic
+ call GetJoypad
call TimeOfDayPals
ret
; 967d1
@@ -919,12 +920,12 @@ CheckMenuOW: ; 96b30
StartMenuScript: ; 96b58
- 3callasm BANK(StartMenu), StartMenu
+ 3callasm StartMenu
2jump StartMenuCallback
; 96b5f
SelectMenuScript: ; 96b5f
- 3callasm BANK(SelectMenu), SelectMenu
+ 3callasm SelectMenu
2jump SelectMenuCallback
; 96b66
@@ -1071,7 +1072,7 @@ UnknownScript_0x96c2e: ; 96c2e
; 96c2f
UnknownScript_0x96c2f: ; 96c2f
- 3callasm $05, $6f5e
+ 3callasm Function16f5e
end
; 96c34
@@ -1106,7 +1107,7 @@ UnknownScript_0x96c4d: ; 96c4d
UnknownScript_0x96c4f: ; 96c4f
deactivatefacing $3
- 3callasm BANK(Function96706), Function96706
+ 3callasm Function96706
end
; 96c56
diff --git a/engine/events_2.asm b/engine/events_2.asm
index 88b924bd7..682fd8237 100644
--- a/engine/events_2.asm
+++ b/engine/events_2.asm
@@ -1,8 +1,9 @@
INCLUDE "includes.asm"
+
; More overworld event handling.
-SECTION "events2", ROMX, BANK[$25]
+SECTION "Events 2", ROMX, BANK[EVENTS]
Function97c28: ; 97c28
ld hl, StatusFlags2
diff --git a/engine/facings.asm b/engine/facings.asm
new file mode 100644
index 000000000..7f078224e
--- /dev/null
+++ b/engine/facings.asm
@@ -0,0 +1,269 @@
+Facings: ; 4049
+ dw Facing00
+ dw Facing01
+ dw Facing02
+ dw Facing03
+ dw Facing04
+ dw Facing05
+ dw Facing06
+ dw Facing07
+ dw Facing08
+ dw Facing09
+ dw Facing10
+ dw Facing11
+ dw Facing12
+ dw Facing13
+ dw Facing14
+ dw Facing15
+ dw Facing16
+ dw Facing17
+ dw Facing18
+ dw Facing19
+ dw Facing20
+ dw Facing21
+ dw Facing22
+ dw Facing23
+ dw Facing24
+ dw Facing25
+ dw Facing26
+ dw Facing27
+ dw Facing28
+ dw Facing29
+ dw Facing30
+ dw Facing31
+FacingsEnd: dw 0
+
+NUM_FACINGS EQU (FacingsEnd - Facings) / 2
+
+
+; Tables used as a reference to transform OAM data.
+
+; Format:
+; db y, x, attributes, tile index
+
+; Attributes:
+X_FLIP EQU 1 << OAM_X_FLIP
+Y_FLIP EQU 1 << OAM_Y_FLIP
+BEHIND_BG EQU 1 << OAM_PRIORITY
+
+
+Facing00:
+Facing02:
+Facing24:
+Facing26: ; 408b
+ db 4 ; #
+ db 0, 0, 0, $00
+ db 0, 8, 0, $01
+ db 8, 0, 2, $02
+ db 8, 8, 2, $03
+; 409c
+
+Facing01: ; 409c
+ db 4 ; #
+ db 0, 0, 0, $80
+ db 0, 8, 0, $81
+ db 8, 0, 2, $82
+ db 8, 8, 2, $83
+; 40ad
+
+Facing03: ; 40ad
+ db 4 ; #
+ db 0, 8, X_FLIP, $80
+ db 0, 0, X_FLIP, $81
+ db 8, 8, 2 | X_FLIP, $82
+ db 8, 0, 2 | X_FLIP, $83
+; 40be
+
+Facing04:
+Facing06: ; 40be
+ db 4 ; #
+ db 0, 0, 0, $04
+ db 0, 8, 0, $05
+ db 8, 0, 2, $06
+ db 8, 8, 2, $07
+; 40cf
+
+Facing05: ; 40cf
+ db 4 ; #
+ db 0, 0, 0, $84
+ db 0, 8, 0, $85
+ db 8, 0, 2, $86
+ db 8, 8, 2, $87
+; 40e0
+
+Facing07: ; 40e0
+ db 4 ; #
+ db 0, 8, X_FLIP, $84
+ db 0, 0, X_FLIP, $85
+ db 8, 8, 2 | X_FLIP, $86
+ db 8, 0, 2 | X_FLIP, $87
+; 40f1
+
+Facing08:
+Facing10: ; 40f1
+ db 4 ; #
+ db 0, 0, 0, $08
+ db 0, 8, 0, $09
+ db 8, 0, 2, $0a
+ db 8, 8, 2, $0b
+; 4102
+
+Facing12:
+Facing14: ; 4102
+ db 4 ; #
+ db 0, 8, X_FLIP, $08
+ db 0, 0, X_FLIP, $09
+ db 8, 8, 2 | X_FLIP, $0a
+ db 8, 0, 2 | X_FLIP, $0b
+; 4113
+
+Facing09:
+Facing11: ; 4113
+ db 4 ; #
+ db 0, 0, 0, $88
+ db 0, 8, 0, $89
+ db 8, 0, 2, $8a
+ db 8, 8, 2, $8b
+; 4124
+
+Facing13:
+Facing15: ; 4124
+ db 4 ; #
+ db 0, 8, X_FLIP, $88
+ db 0, 0, X_FLIP, $89
+ db 8, 8, 2 | X_FLIP, $8a
+ db 8, 0, 2 | X_FLIP, $8b
+; 4135
+
+Facing16: ; 4135
+ db 5 ; #
+ db 0, 0, 0, $00
+ db 0, 8, 0, $01
+ db 8, 0, 2, $02
+ db 8, 8, 2, $03
+ db 16, 0, 4, $fc
+; 414a
+
+Facing17: ; 414a
+ db 5 ; #
+ db 0, 0, 0, $04
+ db 0, 8, 0, $05
+ db 8, 0, 2, $06
+ db 8, 8, 2, $07
+ db -8, 0, 4, $fc
+; 415f
+
+Facing18: ; 415f
+ db 5 ; #
+ db 0, 0, 0, $08
+ db 0, 8, 0, $09
+ db 8, 0, 2, $0a
+ db 8, 8, 2, $0b
+ db 5, -8, 4 | X_FLIP, $fd
+; 4174
+
+Facing19: ; 4174
+ db 5 ; #
+ db 0, 8, X_FLIP, $08
+ db 0, 0, X_FLIP, $09
+ db 8, 8, 2 | X_FLIP, $0a
+ db 8, 0, 2 | X_FLIP, $0b
+ db 5, 16, 4, $fd
+; 4189
+
+Facing20: ; 4189
+ db 4 ; #
+ db 0, 0, 4, $f8
+ db 0, 8, 4, $f9
+ db 8, 0, 4, $fa
+ db 8, 8, 4, $fb
+; 419a
+
+Facing21: ; 419a
+ db 2 ; #
+ db 0, 0, 4, $fc
+ db 0, 8, 4 | X_FLIP, $fc
+; 41a3
+
+Facing23: ; 41a3
+ db 16 ; #
+ db 0, 0, 0, $00
+ db 0, 8, 0, $01
+ db 8, 0, 0, $02
+ db 8, 8, 0, $03
+ db 16, 0, 0, $04
+ db 16, 8, 0, $05
+ db 24, 0, 0, $06
+ db 24, 8, 0, $07
+ db 0, 24, X_FLIP, $00
+ db 0, 16, X_FLIP, $01
+ db 8, 24, X_FLIP, $02
+ db 8, 16, X_FLIP, $03
+ db 16, 24, X_FLIP, $04
+ db 16, 16, X_FLIP, $05
+ db 24, 24, X_FLIP, $06
+ db 24, 16, X_FLIP, $07
+; 41e4
+
+Facing25: ; 41e4
+ db 4 ; #
+ db 0, 0, 0, $04
+ db 0, 8, 0, $05
+ db 8, 0, 0, $06
+ db 8, 8, 0, $07
+; 41f5
+
+Facing27: ; 41f5
+ db 4 ; #
+ db 0, 8, X_FLIP, $04
+ db 0, 0, X_FLIP, $05
+ db 8, 8, X_FLIP, $06
+ db 8, 0, X_FLIP, $07
+; 4206
+
+Facing22: ; 4206
+ db 14 ; #
+ db 0, 0, 0, $00
+ db 0, 8, 0, $01
+ db 8, 0, 0, $04
+ db 8, 8, 0, $05
+ db 16, 8, 0, $07
+ db 24, 8, 0, $0a
+ db 0, 24, 0, $03
+ db 0, 16, 0, $02
+ db 8, 24, X_FLIP, $02
+ db 8, 16, 0, $06
+ db 16, 24, 0, $09
+ db 16, 16, 0, $08
+ db 24, 24, X_FLIP, $04
+ db 24, 16, 0, $0b
+; 423f
+
+Facing28: ; 423f
+ db 4 ; #
+ db 0, 0, 4, $fe
+ db 0, 8, 4, $fe
+ db 8, 0, 4, $fe
+ db 8, 8, 4, $fe
+; 4250
+
+Facing29: ; 4250
+ db 4 ; #
+ db 0, 0, 4, $ff
+ db 0, 8, 4, $ff
+ db 8, 0, 4, $ff
+ db 8, 8, 4, $ff
+; 4261
+
+Facing30: ; 4261
+ db 2 ; #
+ db 8, 0, 4, $fe
+ db 8, 8, 4 | X_FLIP, $fe
+; 426a
+
+Facing31: ; 426a
+ db 2 ; #
+ db 9, -1, 4, $fe
+ db 9, 9, 4 | X_FLIP, $fe
+; 4273
+
diff --git a/engine/fruit_trees.asm b/engine/fruit_trees.asm
index a8a3b797b..50653823b 100644
--- a/engine/fruit_trees.asm
+++ b/engine/fruit_trees.asm
@@ -1,12 +1,12 @@
FruitTreeScript: ; 44000
- 3callasm BANK(GetCurTreeFruit), GetCurTreeFruit
+ 3callasm GetCurTreeFruit
loadfont
copybytetovar CurFruit
itemtotext $0, $0
2writetext FruitBearingTreeText
keeptextopen
- 3callasm BANK(TryResetFruitTrees), TryResetFruitTrees
- 3callasm BANK(CheckFruitTree), CheckFruitTree
+ 3callasm TryResetFruitTrees
+ 3callasm CheckFruitTree
iffalse .fruit
2writetext NothingHereText
closetext
@@ -19,7 +19,7 @@ FruitTreeScript: ; 44000
iffalse .packisfull
keeptextopen
2writetext ObtainedFruitText
- 3callasm BANK(PickedFruitTree), PickedFruitTree
+ 3callasm PickedFruitTree
specialsound
itemnotify
2jump .end
@@ -136,27 +136,27 @@ FruitTreeItems: ; 44097
; 440b5
FruitBearingTreeText: ; 440b5
- text_jump _FruitBearingTreeText, BANK(_FruitBearingTreeText)
+ text_jump _FruitBearingTreeText
db "@"
; 440ba
HeyItsFruitText: ; 440ba
- text_jump _HeyItsFruitText, BANK(_HeyItsFruitText)
+ text_jump _HeyItsFruitText
db "@"
; 440bf
ObtainedFruitText: ; 440bf
- text_jump _ObtainedFruitText, BANK(_ObtainedFruitText)
+ text_jump _ObtainedFruitText
db "@"
; 440c4
FruitPackIsFullText: ; 440c4
- text_jump _FruitPackIsFullText, BANK(_FruitPackIsFullText)
+ text_jump _FruitPackIsFullText
db "@"
; 440c9
NothingHereText: ; 440c9
- text_jump _NothingHereText, BANK(_NothingHereText)
+ text_jump _NothingHereText
db "@"
; 440ce
diff --git a/engine/landmarks.asm b/engine/landmarks.asm
index 2109bd556..a6ea6be68 100644
--- a/engine/landmarks.asm
+++ b/engine/landmarks.asm
@@ -1,8 +1,8 @@
GetLandmarkCoords: ; 0x1ca896
-; given a landmark id in e, return the y coord in d, and the x coord in e.
+; Return coordinates (d, e) of landmark e.
push hl
ld l, e
- ld h, $0
+ ld h, 0
add hl, hl
add hl, hl
ld de, Landmarks
@@ -12,528 +12,246 @@ GetLandmarkCoords: ; 0x1ca896
ld d, [hl]
pop hl
ret
+; 0x1ca8a5
GetLandmarkName: ; 0x1ca8a5
-; given a landmark id in e, copy its name to $d073.
+; Copy the name of landmark e to StringBuffer1.
push hl
push de
push bc
+
ld l, e
- ld h, $0
+ ld h, 0
add hl, hl
add hl, hl
- ld de, Landmarks + 2 ; skip the coordinates, we only want the string
+ ld de, Landmarks + 2
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, $d073
+
+ ld de, StringBuffer1
ld c, 18
-.loop
+.copy
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .loop
+ jr nz, .copy
+
pop bc
pop de
pop hl
ret
+; 0x1ca8c3
-Landmarks: ; 0x1ca8c3
-;db x coord, y coord
-;dw pointer to name
- db 0,0
- dw SpecialMapString
-
- db 148,116
- dw NewBarkString
-
- db 136,116
- dw Route29String
-
- db 108,116
- dw CherrygroveString
-
- db 108,96
- dw Route30String
-
- db 104,76
- dw Route31String
-
- db 92,76
- dw VioletString
-
- db 93,74
- dw SproutString
-
- db 92,108
- dw Route32String
-
- db 84,92
- dw RuinsString
-
- db 92,140
- dw UnionString
-
- db 90,140
- dw Route33String
-
- db 76,140
- dw AzaleaString
-
- db 78,138
- dw WellString
-
- db 60,136
- dw IlexString
-
- db 60,128
- dw Route34String
-
- db 60,108
- dw GoldenrodString
-
- db 58,108
- dw RadioTowerString
-
- db 60,92
- dw Route35String
-
- db 60,76
- dw ParkString
-
- db 72,76
- dw Route36String
-
- db 76,68
- dw Route37String
-
- db 76,60
- dw EcruteakString
-
- db 78,58
- dw TinString
-
- db 74,58
- dw BurnedTowerString
-
- db 60,60
- dw Route38String
-
- db 44,64
- dw Route39String
-
- db 44,76
- dw OlivineString
-
- db 46,78
- dw LighthouseString
-
- db 36,72
- dw BattleTowerString
-
- db 36,80
- dw Route40String
-
- db 36,108
- dw WhirlString
-
- db 36,116
- dw Route41String
-
- db 28,116
- dw CianwoodString
-
- db 100,60
- dw Route42String
-
- db 92,60
- dw MortarString
-
- db 116,60
- dw MahoganyString
-
- db 116,52
- dw Route43String
-
- db 116,44
- dw LakeString
-
- db 128,60
- dw Route44String
-
- db 138,54
- dw PathString
-
- db 140,60
- dw BlackthornString
-
- db 140,52
- dw DenString
-
- db 140,80
- dw Route45String
-
- db 120,88
- dw DarkString
-
- db 132,104
- dw Route46String
-
- db 156,84
- dw SilverCaveString
- db 60,124
- dw PalletString
-
- db 60,108
- dw Route1String
-
- db 60,92
- dw ViridianString
-
- db 60,80
- dw Route2String
-
- db 60,68
- dw PewterString
-
- db 72,68
- dw Route3String
-
- db 84,68
- dw MoonString
-
- db 96,68
- dw Route4String
-
- db 108,68
- dw CeruleanString
-
- db 108,60
- dw Route24String
-
- db 116,52
- dw Route25String
-
- db 108,76
- dw Route5String
-
- db 116,92
- dw UndergroundString
-
- db 108,92
- dw Route6String
-
- db 108,100
- dw VermilionString
-
- db 96,76
- dw DiglettsCaveString
-
- db 96,84
- dw Route7String
-
- db 124,84
- dw Route8String
-
- db 124,68
- dw Route9String
-
- db 140,68
- dw TunnelString
-
- db 140,72
- dw Route10String
-
- db 140,76
- dw PlantString
-
- db 140,84
- dw LavenderString
-
- db 148,84
- dw LavTowerString
-
- db 84,84
- dw CeladonString
-
- db 108,84
- dw SaffronString
-
- db 124,100
- dw Route11String
-
- db 140,96
- dw Route12String
-
- db 132,116
- dw Route13String
-
- db 124,128
- dw Route14String
-
- db 112,132
- dw Route15String
-
- db 76,84
- dw Route16String
-
- db 76,108
- dw Route17String
-
- db 88,132
- dw Route18String
-
- db 100,132
- dw FuchsiaString
-
- db 100,144
- dw Route19String
-
- db 84,148
- dw Route20String
-
- db 76,148
- dw SeafoamString
-
- db 60,148
- dw CinnabarString
-
- db 60,136
- dw Route21String
-
- db 44,84
- dw Route22String
-
- db 36,68
- dw RoadString
-
- db 36,60
- dw Route23String
-
- db 36,52
- dw IndigoString
-
- db 36,108
- dw Route26String
-
- db 28,116
- dw Route27String
-
- db 20,116
- dw FallsString
-
- db 28,84
- dw Route28String
-
- db 148,132
- dw AquaString
+Landmarks: ; 0x1ca8c3
-NewBarkString:
- db "NEW BARK",$1F,"TOWN@"
-CherrygroveString:
- db "CHERRYGROVE",$1F,"CITY@"
-VioletString:
- db "VIOLET CITY@"
-AzaleaString:
- db "AZALEA TOWN@"
-GoldenrodString:
- db "GOLDENROD",$1F,"CITY@"
-EcruteakString:
- db "ECRUTEAK",$1F,"CITY@"
-OlivineString:
- db "OLIVINE",$1F,"CITY@"
-CianwoodString:
- db "CIANWOOD",$1F,"CITY@"
-MahoganyString:
- db "MAHOGANY",$1F,"TOWN@"
-BlackthornString:
- db "BLACKTHORN",$1F,"CITY@"
-LakeString:
- db "LAKE OF",$1F,"RAGE@"
-SilverCaveString:
- db "SILVER CAVE@"
-SproutString:
- db "SPROUT",$1F,"TOWER@"
-RuinsString:
- db "RUINS",$1F,"OF ALPH@"
-UnionString:
- db "UNION CAVE@"
-WellString:
- db "SLOWPOKE",$1F,"WELL@"
-RadioTowerString:
- db "RADIO TOWER@"
-PlantString:
- db "POWER PLANT@"
-ParkString:
- db "NATIONAL",$1F,"PARK@"
-TinString:
- db "TIN TOWER@"
-LighthouseString:
- db "LIGHTHOUSE@"
-WhirlString:
- db "WHIRL",$1F,"ISLANDS@"
-MortarString:
- db "MT.MORTAR@"
-DenString:
- db "DRAGON'S",$1F,"DEN@"
-PathString:
- db "ICE PATH@"
-NotApplicableString:
- db "N/A@"
-PalletString:
- db "PALLET TOWN@"
-ViridianString:
- db "VIRIDIAN",$1F,"CITY@"
-PewterString:
- db "PEWTER CITY@"
-CeruleanString:
- db "CERULEAN",$1F,"CITY@"
-LavenderString:
- db "LAVENDER",$1F,"TOWN@"
-VermilionString:
- db "VERMILION",$1F,"CITY@"
-CeladonString:
- db "CELADON",$1F,"CITY@"
-SaffronString:
- db "SAFFRON",$1F,"CITY@"
-FuchsiaString:
- db "FUCHSIA",$1F,"CITY@"
-CinnabarString:
- db "CINNABAR",$1F,"ISLAND@"
-IndigoString:
- db "INDIGO",$1F,"PLATEAU@"
-RoadString:
- db "VICTORY",$1F,"ROAD@"
-MoonString:
- db "MT.MOON@"
-TunnelString:
- db "ROCK TUNNEL@"
-LavTowerString:
- db "LAV",$1F,"RADIO TOWER@"
-SilphString:
- db "SILPH CO.@"
-ZoneString:
- db "SAFARI ZONE@"
-SeafoamString:
- db "SEAFOAM",$1F,"ISLANDS@"
-MansionString:
- db "#MON",$1F,"MANSION@"
-DungeonString:
- db "CERULEAN",$1F,"CAVE@"
-Route1String:
- db "ROUTE 1@"
-Route2String:
- db "ROUTE 2@"
-Route3String:
- db "ROUTE 3@"
-Route4String:
- db "ROUTE 4@"
-Route5String:
- db "ROUTE 5@"
-Route6String:
- db "ROUTE 6@"
-Route7String:
- db "ROUTE 7@"
-Route8String:
- db "ROUTE 8@"
-Route9String:
- db "ROUTE 9@"
-Route10String:
- db "ROUTE 10@"
-Route11String:
- db "ROUTE 11@"
-Route12String:
- db "ROUTE 12@"
-Route13String:
- db "ROUTE 13@"
-Route14String:
- db "ROUTE 14@"
-Route15String:
- db "ROUTE 15@"
-Route16String:
- db "ROUTE 16@"
-Route17String:
- db "ROUTE 17@"
-Route18String:
- db "ROUTE 18@"
-Route19String:
- db "ROUTE 19@"
-Route20String:
- db "ROUTE 20@"
-Route21String:
- db "ROUTE 21@"
-Route22String:
- db "ROUTE 22@"
-Route23String:
- db "ROUTE 23@"
-Route24String:
- db "ROUTE 24@"
-Route25String:
- db "ROUTE 25@"
-Route26String:
- db "ROUTE 26@"
-Route27String:
- db "ROUTE 27@"
-Route28String:
- db "ROUTE 28@"
-Route29String:
- db "ROUTE 29@"
-Route30String:
- db "ROUTE 30@"
-Route31String:
- db "ROUTE 31@"
-Route32String:
- db "ROUTE 32@"
-Route33String:
- db "ROUTE 33@"
-Route34String:
- db "ROUTE 34@"
-Route35String:
- db "ROUTE 35@"
-Route36String:
- db "ROUTE 36@"
-Route37String:
- db "ROUTE 37@"
-Route38String:
- db "ROUTE 38@"
-Route39String:
- db "ROUTE 39@"
-Route40String:
- db "ROUTE 40@"
-Route41String:
- db "ROUTE 41@"
-Route42String:
- db "ROUTE 42@"
-Route43String:
- db "ROUTE 43@"
-Route44String:
- db "ROUTE 44@"
-Route45String:
- db "ROUTE 45@"
-Route46String:
- db "ROUTE 46@"
-DarkString:
- db "DARK CAVE@"
-IlexString:
- db "ILEX",$1F,"FOREST@"
-BurnedTowerString:
- db "BURNED",$1F,"TOWER@"
-AquaString:
- db "FAST SHIP@"
-ViridianForestString:
- db "VIRIDIAN",$1F,"FOREST@"
-DiglettsCaveString:
- db "DIGLETT'S",$1F,"CAVE@"
-FallsString:
- db "TOHJO FALLS@"
-UndergroundString:
- db "UNDERGROUND@"
-BattleTowerString:
- db "BATTLE",$1F,"TOWER@"
-SpecialMapString:
- db "SPECIAL@"
+landmark: MACRO
+ db \1, \2
+ dw \3
+ENDM
+
+ landmark 0, 0, SpecialMapName
+ landmark 148, 116, NewBarkTownName
+ landmark 136, 116, Route29Name
+ landmark 108, 116, CherrygroveCityName
+ landmark 108, 96, Route30Name
+ landmark 104, 76, Route31Name
+ landmark 92, 76, VioletCityName
+ landmark 93, 74, SproutTowerName
+ landmark 92, 108, Route32Name
+ landmark 84, 92, RuinsOfAlphName
+ landmark 92, 140, UnionCaveName
+ landmark 90, 140, Route33Name
+ landmark 76, 140, AzaleaTownName
+ landmark 78, 138, SlowpokeWellName
+ landmark 60, 136, IlexForestName
+ landmark 60, 128, Route34Name
+ landmark 60, 108, GoldenrodCityName
+ landmark 58, 108, RadioTowerName
+ landmark 60, 92, Route35Name
+ landmark 60, 76, NationalParkName
+ landmark 72, 76, Route36Name
+ landmark 76, 68, Route37Name
+ landmark 76, 60, EcruteakCityName
+ landmark 78, 58, TinTowerName
+ landmark 74, 58, BurnedTowerName
+ landmark 60, 60, Route38Name
+ landmark 44, 64, Route39Name
+ landmark 44, 76, OlivineCityName
+ landmark 46, 78, LighthouseName
+ landmark 36, 72, BattleTowerName
+ landmark 36, 80, Route40Name
+ landmark 36, 108, WhirlIslandsName
+ landmark 36, 116, Route41Name
+ landmark 28, 116, CianwoodCityName
+ landmark 100, 60, Route42Name
+ landmark 92, 60, MtMortarName
+ landmark 116, 60, MahoganyTownName
+ landmark 116, 52, Route43Name
+ landmark 116, 44, LakeOfRageName
+ landmark 128, 60, Route44Name
+ landmark 138, 54, IcePathName
+ landmark 140, 60, BlackthornCityName
+ landmark 140, 52, DragonsDenName
+ landmark 140, 80, Route45Name
+ landmark 120, 88, DarkCaveName
+ landmark 132, 104, Route46Name
+ landmark 156, 84, SilverCaveName
+ landmark 60, 124, PalletTownName
+ landmark 60, 108, Route1Name
+ landmark 60, 92, ViridianCityName
+ landmark 60, 80, Route2Name
+ landmark 60, 68, PewterCityName
+ landmark 72, 68, Route3Name
+ landmark 84, 68, MtMoonName
+ landmark 96, 68, Route4Name
+ landmark 108, 68, CeruleanCityName
+ landmark 108, 60, Route24Name
+ landmark 116, 52, Route25Name
+ landmark 108, 76, Route5Name
+ landmark 116, 92, UndergroundName
+ landmark 108, 92, Route6Name
+ landmark 108, 100, VermilionCityName
+ landmark 96, 76, DiglettsCaveName
+ landmark 96, 84, Route7Name
+ landmark 124, 84, Route8Name
+ landmark 124, 68, Route9Name
+ landmark 140, 68, RockTunnelName
+ landmark 140, 72, Route10Name
+ landmark 140, 76, PowerPlantName
+ landmark 140, 84, LavenderTownName
+ landmark 148, 84, LavRadioTowerName
+ landmark 84, 84, CeladonCityName
+ landmark 108, 84, SaffronCityName
+ landmark 124, 100, Route11Name
+ landmark 140, 96, Route12Name
+ landmark 132, 116, Route13Name
+ landmark 124, 128, Route14Name
+ landmark 112, 132, Route15Name
+ landmark 76, 84, Route16Name
+ landmark 76, 108, Route17Name
+ landmark 88, 132, Route18Name
+ landmark 100, 132, FuchsiaCityName
+ landmark 100, 144, Route19Name
+ landmark 84, 148, Route20Name
+ landmark 76, 148, SeafoamIslandsName
+ landmark 60, 148, CinnabarIslandName
+ landmark 60, 136, Route21Name
+ landmark 44, 84, Route22Name
+ landmark 36, 68, VictoryRoadName
+ landmark 36, 60, Route23Name
+ landmark 36, 52, IndigoPlateauName
+ landmark 36, 108, Route26Name
+ landmark 28, 116, Route27Name
+ landmark 20, 116, TohjoFallsName
+ landmark 28, 84, Route28Name
+ landmark 148, 132, FastShipName
+
+
+NewBarkTownName: db "NEW BARK", $1f, "TOWN@"
+CherrygroveCityName: db "CHERRYGROVE", $1f, "CITY@"
+VioletCityName: db "VIOLET CITY@"
+AzaleaTownName: db "AZALEA TOWN@"
+GoldenrodCityName: db "GOLDENROD", $1f, "CITY@"
+EcruteakCityName: db "ECRUTEAK", $1f, "CITY@"
+OlivineCityName: db "OLIVINE", $1f, "CITY@"
+CianwoodCityName: db "CIANWOOD", $1f, "CITY@"
+MahoganyTownName: db "MAHOGANY", $1f, "TOWN@"
+BlackthornCityName: db "BLACKTHORN", $1f, "CITY@"
+LakeOfRageName: db "LAKE OF", $1f, "RAGE@"
+SilverCaveName: db "SILVER CAVE@"
+SproutTowerName: db "SPROUT", $1f, "TOWER@"
+RuinsOfAlphName: db "RUINS", $1f, "OF ALPH@"
+UnionCaveName: db "UNION CAVE@"
+SlowpokeWellName: db "SLOWPOKE", $1f, "WELL@"
+RadioTowerName: db "RADIO TOWER@"
+PowerPlantName: db "POWER PLANT@"
+NationalParkName: db "NATIONAL", $1f, "PARK@"
+TinTowerName: db "TIN TOWER@"
+LighthouseName: db "LIGHTHOUSE@"
+WhirlIslandsName: db "WHIRL", $1f, "ISLANDS@"
+MtMortarName: db "MT.MORTAR@"
+DragonsDenName: db "DRAGON'S", $1f, "DEN@"
+IcePathName: db "ICE PATH@"
+NotApplicableName: db "N/A@"
+PalletTownName: db "PALLET TOWN@"
+ViridianCityName: db "VIRIDIAN", $1f, "CITY@"
+PewterCityName: db "PEWTER CITY@"
+CeruleanCityName: db "CERULEAN", $1f, "CITY@"
+LavenderTownName: db "LAVENDER", $1f, "TOWN@"
+VermilionCityName: db "VERMILION", $1f, "CITY@"
+CeladonCityName: db "CELADON", $1f, "CITY@"
+SaffronCityName: db "SAFFRON", $1f, "CITY@"
+FuchsiaCityName: db "FUCHSIA", $1f, "CITY@"
+CinnabarIslandName: db "CINNABAR", $1f, "ISLAND@"
+IndigoPlateauName: db "INDIGO", $1f, "PLATEAU@"
+VictoryRoadName: db "VICTORY", $1f, "ROAD@"
+MtMoonName: db "MT.MOON@"
+RockTunnelName: db "ROCK TUNNEL@"
+LavRadioTowerName: db "LAV", $1f, "RADIO TOWER@"
+SilphCoName: db "SILPH CO.@"
+SafariZoneName: db "SAFARI ZONE@"
+SeafoamIslandsName: db "SEAFOAM", $1f, "ISLANDS@"
+PokemonMansionName: db "#MON", $1f, "MANSION@"
+CeruleanCaveNane: db "CERULEAN", $1f, "CAVE@"
+Route1Name: db "ROUTE 1@"
+Route2Name: db "ROUTE 2@"
+Route3Name: db "ROUTE 3@"
+Route4Name: db "ROUTE 4@"
+Route5Name: db "ROUTE 5@"
+Route6Name: db "ROUTE 6@"
+Route7Name: db "ROUTE 7@"
+Route8Name: db "ROUTE 8@"
+Route9Name: db "ROUTE 9@"
+Route10Name: db "ROUTE 10@"
+Route11Name: db "ROUTE 11@"
+Route12Name: db "ROUTE 12@"
+Route13Name: db "ROUTE 13@"
+Route14Name: db "ROUTE 14@"
+Route15Name: db "ROUTE 15@"
+Route16Name: db "ROUTE 16@"
+Route17Name: db "ROUTE 17@"
+Route18Name: db "ROUTE 18@"
+Route19Name: db "ROUTE 19@"
+Route20Name: db "ROUTE 20@"
+Route21Name: db "ROUTE 21@"
+Route22Name: db "ROUTE 22@"
+Route23Name: db "ROUTE 23@"
+Route24Name: db "ROUTE 24@"
+Route25Name: db "ROUTE 25@"
+Route26Name: db "ROUTE 26@"
+Route27Name: db "ROUTE 27@"
+Route28Name: db "ROUTE 28@"
+Route29Name: db "ROUTE 29@"
+Route30Name: db "ROUTE 30@"
+Route31Name: db "ROUTE 31@"
+Route32Name: db "ROUTE 32@"
+Route33Name: db "ROUTE 33@"
+Route34Name: db "ROUTE 34@"
+Route35Name: db "ROUTE 35@"
+Route36Name: db "ROUTE 36@"
+Route37Name: db "ROUTE 37@"
+Route38Name: db "ROUTE 38@"
+Route39Name: db "ROUTE 39@"
+Route40Name: db "ROUTE 40@"
+Route41Name: db "ROUTE 41@"
+Route42Name: db "ROUTE 42@"
+Route43Name: db "ROUTE 43@"
+Route44Name: db "ROUTE 44@"
+Route45Name: db "ROUTE 45@"
+Route46Name: db "ROUTE 46@"
+DarkCaveName: db "DARK CAVE@"
+IlexForestName: db "ILEX", $1f, "FOREST@"
+BurnedTowerName: db "BURNED", $1f, "TOWER@"
+FastShipName: db "FAST SHIP@"
+ViridianForestName: db "VIRIDIAN", $1f, "FOREST@"
+DiglettsCaveName: db "DIGLETT'S", $1f, "CAVE@"
+TohjoFallsName: db "TOHJO FALLS@"
+UndergroundName: db "UNDERGROUND@"
+BattleTowerName: db "BATTLE", $1f, "TOWER@"
+SpecialMapName: db "SPECIAL@"
diff --git a/engine/movement.asm b/engine/movement.asm
index da08280c1..4c3e1d03b 100644
--- a/engine/movement.asm
+++ b/engine/movement.asm
@@ -205,7 +205,7 @@ Function51b8: ; 51b8
; 51c1
Movement_step_end: ; 51c1
- call $4769
+ call Function4769
ld hl, $0003
add hl, bc
ld [hl], a
@@ -221,7 +221,7 @@ Movement_step_end: ; 51c1
; 51db
Function51db: ; 51db
- call $4769
+ call Function4769
ld hl, $0003
add hl, bc
ld [hl], a
@@ -241,7 +241,7 @@ Function51db: ; 51db
; 51fd
Movement_remove_person: ; 51fd
- call $4357
+ call Function4357
ld hl, $d4cd
ld a, [hConnectionStripLength]
cp [hl]
@@ -398,12 +398,12 @@ Movement_hide_person: ; 52c0
; 52c9
Movement_hide_emote: ; 52c9
- call $5579
+ call Function5579
jp Function5065
; 52cf
Movement_show_emote: ; 52cf
- call $5547
+ call Function5547
jp Function5065
; 52d5
@@ -412,7 +412,7 @@ Movement_step_shake: ; 52d5
; displacement (DecimalParam)
call Function505e
- call $5565
+ call Function5565
jp Function5065
; 52de
@@ -719,27 +719,29 @@ Function5400: ; 5400
; 5412
Function5412: ; 5412
- call $4690
- call $463f
+ call Function4690
+ call Function463f
ld hl, $000b
add hl, bc
ld [hl], $2
- ld hl, $000e
+ ld hl, OBJECT_STANDING_TILE
add hl, bc
ld a, [hl]
- call $188e
+ call Function188e
jr z, .asm_542d
- call $1875
+
+ call Function1875
jr c, .asm_5430
.asm_542d
- call $5556
+ call Function5556
.asm_5430
ld hl, $d4cf
ld a, [hConnectionStripLength]
cp [hl]
jr z, .asm_543f
+
ld hl, $0009
add hl, bc
ld [hl], $2
@@ -753,8 +755,8 @@ Function5412: ; 5412
; 5446
Function5446: ; 5446
- call $4690
- call $463f
+ call Function4690
+ call Function463f
ld hl, $000b
add hl, bc
ld [hl], $4
@@ -776,8 +778,8 @@ Function5446: ; 5446
Function5468: ; 5468
- call $4690
- call $463f
+ call Function4690
+ call Function463f
ld hl, $000b
add hl, bc
ld [hl], $1
@@ -799,7 +801,7 @@ Function5468: ; 5468
Function548a: ; 548a
- call $4690
+ call Function4690
ld hl, $001f
add hl, bc
ld [hl], $0
@@ -809,7 +811,7 @@ Function548a: ; 548a
ld hl, $000b
add hl, bc
ld [hl], $2
- call $5529
+ call Function5529
ld hl, $d4cf
ld a, [hConnectionStripLength]
cp [hl]
diff --git a/engine/scripting.asm b/engine/scripting.asm
index 4fabec928..f0d064d8e 100644
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -455,7 +455,7 @@ Script_keeptextopen: ; 0x96edc
Script_yesorno: ; 0x96eed
; script command 0x4e
- call Function1dcf
+ call YesNoBox
ld a, $0
jr c, .asm_96ef6 ; 0x96ef2 $2
ld a, $1
@@ -573,7 +573,7 @@ Function96f76: ; 96f76
; 96f77
GiveItemScript: ; 96f77
- 3callasm BANK(Function96f76), Function96f76
+ 3callasm Function96f76
2writetext ReceivedItemText
iffalse .Full
waitbutton
@@ -589,7 +589,7 @@ GiveItemScript: ; 96f77
; 96f89
ReceivedItemText: ; 96f89
- text_jump UnknownText_0x1c4719, BANK(UnknownText_0x1c4719)
+ text_jump UnknownText_0x1c4719
db "@"
; 96f8e
@@ -706,12 +706,12 @@ CurItemName: ; 97051
PutItemInPocketText: ; 9705b
- text_jump UnknownText_0x1c472c, BANK(UnknownText_0x1c472c)
+ text_jump UnknownText_0x1c472c
db "@"
; 97060
PocketIsFullText: ; 97060
- text_jump UnknownText_0x1c474b, BANK(UnknownText_0x1c474b)
+ text_jump UnknownText_0x1c474b
db "@"
; 97065
@@ -792,7 +792,7 @@ Script_askforphonenumber: ; 0x970be
; parameters:
; number (SingleByteParam)
- call Function1dcf
+ call YesNoBox
jr c, .asm_970d6 ; 0x970c1 $13
call GetScriptByte
ld c, a
diff --git a/engine/scripting_crystal.asm b/engine/scripting_crystal.asm
index 5a7468bda..6d80455a0 100644
--- a/engine/scripting_crystal.asm
+++ b/engine/scripting_crystal.asm
@@ -1,5 +1,7 @@
INCLUDE "pokecrystal.asm"
INCLUDE "includes.asm"
-SECTION "scripting", ROMX, BANK[$25]
+
+SECTION "Event Scripting", ROMX, BANK[EVENTS]
+
INCLUDE "engine/scripting.asm"
diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm
index 7b64ebe00..95283ad19 100644
--- a/engine/std_scripts.asm
+++ b/engine/std_scripts.asm
@@ -75,12 +75,12 @@ PokeCenterNurseScript: ; bc09c
checkevent $032a
iftrue .morn_comcenter
; Good morning! Welcome to ...
- 3writetext BANK(UnknownText_0x1b0000), UnknownText_0x1b0000
+ 3writetext UnknownText_0x1b0000
keeptextopen
2jump .heal
.morn_comcenter
; Good morning! This is the ...
- 3writetext BANK(UnknownText_0x1b008a), UnknownText_0x1b008a
+ 3writetext UnknownText_0x1b008a
keeptextopen
2jump .heal
@@ -89,12 +89,12 @@ PokeCenterNurseScript: ; bc09c
checkevent $032a
iftrue .day_comcenter
; Hello! Welcome to ...
- 3writetext BANK(UnknownText_0x1b002b), UnknownText_0x1b002b
+ 3writetext UnknownText_0x1b002b
keeptextopen
2jump .heal
.day_comcenter
; Hello! This is the ...
- 3writetext BANK(UnknownText_0x1b00d6), UnknownText_0x1b00d6
+ 3writetext UnknownText_0x1b00d6
keeptextopen
2jump .heal
@@ -103,12 +103,12 @@ PokeCenterNurseScript: ; bc09c
checkevent $032a
iftrue .nite_comcenter
; Good evening! You're out late. ...
- 3writetext BANK(UnknownText_0x1b004f), UnknownText_0x1b004f
+ 3writetext UnknownText_0x1b004f
keeptextopen
2jump .heal
.nite_comcenter
; Good to see you working so late. ...
- 3writetext BANK(UnknownText_0x1b011b), UnknownText_0x1b011b
+ 3writetext UnknownText_0x1b011b
keeptextopen
2jump .heal
@@ -116,11 +116,11 @@ PokeCenterNurseScript: ; bc09c
; If we come back, don't welcome us to the com center again
clearevent $032a
; Ask if you want to heal
- 3writetext BANK(UnknownText_0x1b017a), UnknownText_0x1b017a
+ 3writetext UnknownText_0x1b017a
yesorno
iffalse .end
; Go ahead and heal
- 3writetext BANK(UnknownText_0x1b01bd), UnknownText_0x1b01bd
+ 3writetext UnknownText_0x1b01bd
pause 20
special $009d
; Turn to the machine
@@ -145,11 +145,11 @@ PokeCenterNurseScript: ; bc09c
iftrue .pokerus
.done
; Thank you for waiting. ...
- 3writetext BANK(UnknownText_0x1b01d7), UnknownText_0x1b01d7
+ 3writetext UnknownText_0x1b01d7
pause 20
.end
; We hope to see you again.
- 3writetext BANK(UnknownText_0x1b020b), UnknownText_0x1b020b
+ 3writetext UnknownText_0x1b020b
; Curtsy
spriteface $fe, $1
pause 10
@@ -167,13 +167,13 @@ PokeCenterNurseScript: ; bc09c
checkevent $032a
iftrue .pokerus_comcenter
; Your Pokemon appear to be infected ...
- 3writetext BANK(UnknownText_0x1b0241), UnknownText_0x1b0241
+ 3writetext UnknownText_0x1b0241
closetext
loadmovesprites
2jump .endpokerus
.pokerus_comcenter
; Your Pokemon appear to be infected ...
- 3writetext BANK(UnknownText_0x1b02d6), UnknownText_0x1b02d6
+ 3writetext UnknownText_0x1b02d6
closetext
loadmovesprites
.endpokerus
@@ -185,32 +185,32 @@ PokeCenterNurseScript: ; bc09c
; bc162
UnknownScript_0xbc162: ; 0xbc162
- 3jumptext $6c, $435a
+ 3jumptext UnknownText_0x1b035a
; 0xbc166
UnknownScript_0xbc166: ; 0xbc166
- 3jumptext $6c, $4378
+ 3jumptext UnknownText_0x1b0378
; 0xbc16a
UnknownScript_0xbc16a: ; 0xbc16a
- 3jumptext $6c, $43a3
+ 3jumptext UnknownText_0x1b03a3
; 0xbc16e
UnknownScript_0xbc16e: ; 0xbc16e
- 3jumptext $6c, $43d9
+ 3jumptext UnknownText_0x1b03d9
; 0xbc172
UnknownScript_0xbc172: ; 0xbc172
- 3jumptext $6c, $4448
+ 3jumptext UnknownText_0x1b0448
; 0xbc176
UnknownScript_0xbc176: ; 0xbc176
- 3jumptext $6c, $4472
+ 3jumptext UnknownText_0x1b0472
; 0xbc17a
UnknownScript_0xbc17a: ; 0xbc17a
loadfont
- 3writetext $6c, $448d
+ 3writetext UnknownText_0x1b048d
closetext
special $0026
loadmovesprites
@@ -218,19 +218,19 @@ UnknownScript_0xbc17a: ; 0xbc17a
; 0xbc185
UnknownScript_0xbc185: ; 0xbc185
- 3jumptext $6c, $44a0
+ 3jumptext UnknownText_0x1b04a0
; 0xbc189
UnknownScript_0xbc189: ; 0xbc189
loadfont
- 3writetext $6c, $44be
+ 3writetext UnknownText_0x1b04be
closetext
loadmovesprites
end
; 0xbc191
UnknownScript_0xbc191: ; 0xbc191
- 3jumptext $6c, $44c9
+ 3jumptext UnknownText_0x1b04c9
; 0xbc195
UnknownScript_0xbc195: ; 0xbc195
@@ -250,7 +250,7 @@ UnknownScript_0xbc19d: ; 0xbc19d
; 0xbc1a5
UnknownScript_0xbc1a5: ; 0xbc1a5
- 3jumptext $6c, $4526
+ 3jumptext UnknownText_0x1b0526
; 0xbc1a9
UnknownScript_0xbc1a9: ; 0xbc1a9
@@ -268,19 +268,19 @@ UnknownScript_0xbc1af: ; 0xbc1af
; 0xbc1b8
UnknownScript_0xbc1b8: ; 0xbc1b8
- 3jump BANK(UnknownScript_0xcd4b), UnknownScript_0xcd4b
+ 3jump UnknownScript_0xcd4b
; 0xbc1bc
UnknownScript_0xbc1bc: ; 0xbc1bc
- 3jump BANK(UnknownScript_0xcf5d), UnknownScript_0xcf5d
+ 3jump UnknownScript_0xcf5d
; 0xbc1c0
UnknownScript_0xbc1c0: ; 0xbc1c0
- 3jumptext $6c, $457f
+ 3jumptext UnknownText_0x1b057f
; 0xbc1c4
UnknownScript_0xbc1c4: ; 0xbc1c4
- 3jumptext $6c, $459c
+ 3jumptext UnknownText_0x1b059c
; 0xbc1c8
UnknownScript_0xbc1c8: ; 0xbc1c8
@@ -387,35 +387,35 @@ UnknownScript_0xbc274: ; bc274
clearevent $0315
clearevent $0316
loadfont
- 3writetext $6c, $45bf
+ 3writetext UnknownText_0x1b05bf
closetext
special $0014
RAM2MEM $0
if_equal $1, UnknownScript_0xbc31e
if_equal $2, UnknownScript_0xbc332
if_equal $3, UnknownScript_0xbc343
- 3writetext $6c, $4681
+ 3writetext UnknownText_0x1b0681
keeptextopen
waitbutton
verbosegiveitem BERRY, 1
iffalse UnknownScript_0xbc375
- 3writetext $6c, $46b7
+ 3writetext UnknownText_0x1b06b7
keeptextopen
2jump $42b6
; 0xbc2b1
UnknownScript_0xbc2b1: ; 0xbc2b1
- 3writetext $6c, $465b
+ 3writetext UnknownText_0x1b065b
keeptextopen
checkevent $0308
iffalse $42c4
- 3writetext $6c, $46d9
+ 3writetext UnknownText_0x1b06d9
closetext
special $0017
special $0015
if_equal $0, $42d4
if_equal $2, $42d4
- 3writetext $6c, $470d
+ 3writetext UnknownText_0x1b070d
closetext
loadmovesprites
dotrigger $0
@@ -448,7 +448,7 @@ UnknownScript_0xbc2b1: ; 0xbc2b1
UnknownScript_0xbc31e: ; 0xbc31e
setevent $0000
itemtotext SUN_STONE, $1
- 3writetext $6c, $4621
+ 3writetext UnknownText_0x1b0621
closetext
verbosegiveitem SUN_STONE, 1
iffalse UnknownScript_0xbc354
@@ -457,7 +457,7 @@ UnknownScript_0xbc31e: ; 0xbc31e
UnknownScript_0xbc332: ; 0xbc332
itemtotext EVERSTONE, $1
- 3writetext $6c, $4621
+ 3writetext UnknownText_0x1b0621
closetext
verbosegiveitem EVERSTONE, 1
iffalse UnknownScript_0xbc35f
@@ -466,7 +466,7 @@ UnknownScript_0xbc332: ; 0xbc332
UnknownScript_0xbc343: ; 0xbc343
itemtotext GOLD_BERRY, $1
- 3writetext $6c, $4621
+ 3writetext UnknownText_0x1b0621
closetext
verbosegiveitem GOLD_BERRY, 1
iffalse UnknownScript_0xbc36a
@@ -474,28 +474,28 @@ UnknownScript_0xbc343: ; 0xbc343
; 0xbc354
UnknownScript_0xbc354: ; 0xbc354
- 3writetext $6c, $48cc
+ 3writetext UnknownText_0x1b08cc
keeptextopen
setevent $0313
2jump UnknownScript_0xbc2b1
; 0xbc35f
UnknownScript_0xbc35f: ; 0xbc35f
- 3writetext $6c, $48cc
+ 3writetext UnknownText_0x1b08cc
keeptextopen
setevent $0314
2jump UnknownScript_0xbc2b1
; 0xbc36a
UnknownScript_0xbc36a: ; 0xbc36a
- 3writetext $6c, $48cc
+ 3writetext UnknownText_0x1b08cc
keeptextopen
setevent $0315
2jump UnknownScript_0xbc2b1
; 0xbc375
UnknownScript_0xbc375: ; 0xbc375
- 3writetext $6c, $48cc
+ 3writetext UnknownText_0x1b08cc
keeptextopen
setevent $0316
2jump $42a9
@@ -710,102 +710,102 @@ UnknownScript_0xbc574: ; 0xbc574
if_equal $23, UnknownScript_0xbc628
UnknownScript_0xbc5c9: ; bc5c9
- 3writetext $6c, $49fe
+ 3writetext UnknownText_0x1b09fe
end
; 0xbc5ce
UnknownScript_0xbc5ce: ; 0xbc5ce
- 3writetext $6c, $4d9f
+ 3writetext UnknownText_0x1b0d9f
end
; 0xbc5d3
UnknownScript_0xbc5d3: ; 0xbc5d3
- 3writetext $6c, $502e
+ 3writetext UnknownText_0x1b102e
end
; 0xbc5d8
UnknownScript_0xbc5d8: ; 0xbc5d8
- 3writetext $6c, $542d
+ 3writetext UnknownText_0x1b142d
end
; 0xbc5dd
UnknownScript_0xbc5dd: ; 0xbc5dd
- 3writetext $6c, $5800
+ 3writetext UnknownText_0x1b1800
end
; 0xbc5e2
UnknownScript_0xbc5e2: ; 0xbc5e2
- 3writetext $6c, $5a71
+ 3writetext UnknownText_0x1b1a71
end
; 0xbc5e7
UnknownScript_0xbc5e7: ; 0xbc5e7
- 3writetext $6c, $5cd5
+ 3writetext UnknownText_0x1b1cd5
end
; 0xbc5ec
UnknownScript_0xbc5ec: ; 0xbc5ec
- 3writetext $29, $4000
+ 3writetext UnknownText_0xa4000
end
; 0xbc5f1
UnknownScript_0xbc5f1: ; 0xbc5f1
- 3writetext $29, $41c0
+ 3writetext UnknownText_0xa41c0
end
; 0xbc5f6
UnknownScript_0xbc5f6: ; 0xbc5f6
- 3writetext $29, $4642
+ 3writetext UnknownText_0xa4642
end
; 0xbc5fb
UnknownScript_0xbc5fb: ; 0xbc5fb
- 3writetext $29, $4829
+ 3writetext UnknownText_0xa4829
end
; 0xbc600
UnknownScript_0xbc600: ; 0xbc600
- 3writetext $29, $4a31
+ 3writetext UnknownText_0xa4a31
end
; 0xbc605
UnknownScript_0xbc605: ; 0xbc605
- 3writetext $29, $4ed4
+ 3writetext UnknownText_0xa4ed4
end
; 0xbc60a
UnknownScript_0xbc60a: ; 0xbc60a
- 3writetext $29, $50d5
+ 3writetext UnknownText_0xa50d5
end
; 0xbc60f
UnknownScript_0xbc60f: ; 0xbc60f
- 3writetext $29, $52e2
+ 3writetext UnknownText_0xa52e2
end
; 0xbc614
UnknownScript_0xbc614: ; 0xbc614
- 3writetext $29, $5545
+ 3writetext UnknownText_0xa5545
end
; 0xbc619
UnknownScript_0xbc619: ; 0xbc619
- 3writetext $29, $5937
+ 3writetext UnknownText_0xa5937
end
; 0xbc61e
UnknownScript_0xbc61e: ; 0xbc61e
- 3writetext $29, $5bc4
+ 3writetext UnknownText_0xa5bc4
end
; 0xbc623
UnknownScript_0xbc623: ; 0xbc623
- 3writetext $29, $5dc6
+ 3writetext UnknownText_0xa5dc6
end
; 0xbc628
UnknownScript_0xbc628: ; 0xbc628
- 3writetext $29, $600c
+ 3writetext UnknownText_0xa600c
end
; 0xbc62d
@@ -834,107 +834,107 @@ UnknownScript_0xbc62d: ; 0xbc62d
if_equal $23, UnknownScript_0xbc6e1
UnknownScript_0xbc682: ; bc682
- 3writetext $6c, $4a82
+ 3writetext UnknownText_0x1b0a82
end
; 0xbc687
UnknownScript_0xbc687: ; 0xbc687
- 3writetext $6c, $4e2c
+ 3writetext UnknownText_0x1b0e2c
end
; 0xbc68c
UnknownScript_0xbc68c: ; 0xbc68c
- 3writetext $6c, $50d3
+ 3writetext UnknownText_0x1b10d3
end
; 0xbc691
UnknownScript_0xbc691: ; 0xbc691
- 3writetext $6c, $54e4
+ 3writetext UnknownText_0x1b14e4
end
; 0xbc696
UnknownScript_0xbc696: ; 0xbc696
- 3writetext $6c, $587b
+ 3writetext UnknownText_0x1b187b
end
; 0xbc69b
UnknownScript_0xbc69b: ; 0xbc69b
- 3writetext $6c, $5b1d
+ 3writetext UnknownText_0x1b1b1d
end
; 0xbc6a0
UnknownScript_0xbc6a0: ; 0xbc6a0
- 3writetext $6c, $5d85
+ 3writetext UnknownText_0x1b1d85
end
; 0xbc6a5
UnknownScript_0xbc6a5: ; 0xbc6a5
- 3writetext $29, $40a9
+ 3writetext UnknownText_0xa40a9
end
; 0xbc6aa
UnknownScript_0xbc6aa: ; 0xbc6aa
- 3writetext $29, $426a
+ 3writetext UnknownText_0xa426a
end
; 0xbc6af
UnknownScript_0xbc6af: ; 0xbc6af
- 3writetext $29, $470b
+ 3writetext UnknownText_0xa470b
end
; 0xbc6b4
UnknownScript_0xbc6b4: ; 0xbc6b4
- 3writetext $29, $48fc
+ 3writetext UnknownText_0xa48fc
end
; 0xbc6b9
UnknownScript_0xbc6b9: ; 0xbc6b9
- 3writetext $29, $4b03
+ 3writetext UnknownText_0xa4b03
end
; 0xbc6be
UnknownScript_0xbc6be: ; 0xbc6be
- 3writetext $29, $4fc8
+ 3writetext UnknownText_0xa4fc8
end
; 0xbc6c3
UnknownScript_0xbc6c3: ; 0xbc6c3
- 3writetext $29, $5175
+ 3writetext UnknownText_0xa5175
end
; 0xbc6c8
UnknownScript_0xbc6c8: ; 0xbc6c8
- 3writetext $29, $5383
+ 3writetext UnknownText_0xa5383
end
; 0xbc6cd
UnknownScript_0xbc6cd: ; 0xbc6cd
- 3writetext $29, $5621
+ 3writetext UnknownText_0xa5621
end
; 0xbc6d2
UnknownScript_0xbc6d2: ; 0xbc6d2
- 3writetext $29, $59bc
+ 3writetext UnknownText_0xa59bc
end
; 0xbc6d7
UnknownScript_0xbc6d7: ; 0xbc6d7
- 3writetext $29, $5c4b
+ 3writetext UnknownText_0xa5c4b
end
; 0xbc6dc
UnknownScript_0xbc6dc: ; 0xbc6dc
- 3writetext $29, $5e63
+ 3writetext UnknownText_0xa5e63
end
; 0xbc6e1
UnknownScript_0xbc6e1: ; 0xbc6e1
- 3writetext $29, $6076
+ 3writetext UnknownText_0xa6076
end
; 0xbc6e6
UnknownScript_0xbc6e6: ; 0xbc6e6
- 3writetext $6c, $49c4
+ 3writetext UnknownText_0x1b09c4
playsound $0093
waitbutton
keeptextopen
@@ -963,140 +963,140 @@ UnknownScript_0xbc6f0: ; 0xbc6f0
if_equal $21, UnknownScript_0xbc7b9
if_equal $22, UnknownScript_0xbc7c0
if_equal $23, UnknownScript_0xbc7c7
- 3writetext $6c, $4adb
+ 3writetext UnknownText_0x1b0adb
closetext
loadmovesprites
end
; 0xbc749
UnknownScript_0xbc749: ; 0xbc749
- 3writetext $6c, $4e89
+ 3writetext UnknownText_0x1b0e89
closetext
loadmovesprites
end
; 0xbc750
UnknownScript_0xbc750: ; 0xbc750
- 3writetext $6c, $5136
+ 3writetext UnknownText_0x1b1136
closetext
loadmovesprites
end
; 0xbc757
UnknownScript_0xbc757: ; 0xbc757
- 3writetext $6c, $5553
+ 3writetext UnknownText_0x1b1553
closetext
loadmovesprites
end
; 0xbc75e
UnknownScript_0xbc75e: ; 0xbc75e
- 3writetext $6c, $58d7
+ 3writetext UnknownText_0x1b18d7
closetext
loadmovesprites
end
; 0xbc765
UnknownScript_0xbc765: ; 0xbc765
- 3writetext $6c, $5b8e
+ 3writetext UnknownText_0x1b1b8e
closetext
loadmovesprites
end
; 0xbc76c
UnknownScript_0xbc76c: ; 0xbc76c
- 3writetext $6c, $5db9
+ 3writetext UnknownText_0x1b1db9
closetext
loadmovesprites
end
; 0xbc773
UnknownScript_0xbc773: ; 0xbc773
- 3writetext $29, $40f8
+ 3writetext UnknownText_0xa40f8
closetext
loadmovesprites
end
; 0xbc77a
UnknownScript_0xbc77a: ; 0xbc77a
- 3writetext $29, $42ab
+ 3writetext UnknownText_0xa42ab
closetext
loadmovesprites
end
; 0xbc781
UnknownScript_0xbc781: ; 0xbc781
- 3writetext $29, $4730
+ 3writetext UnknownText_0xa4730
closetext
loadmovesprites
end
; 0xbc788
UnknownScript_0xbc788: ; 0xbc788
- 3writetext $29, $494d
+ 3writetext UnknownText_0xa494d
closetext
loadmovesprites
end
; 0xbc78f
UnknownScript_0xbc78f: ; 0xbc78f
- 3writetext $29, $4b47
+ 3writetext UnknownText_0xa4b47
closetext
loadmovesprites
end
; 0xbc796
UnknownScript_0xbc796: ; 0xbc796
- 3writetext $29, $502e
+ 3writetext UnknownText_0xa502e
closetext
loadmovesprites
end
; 0xbc79d
UnknownScript_0xbc79d: ; 0xbc79d
- 3writetext $29, $51ac
+ 3writetext UnknownText_0xa51ac
closetext
loadmovesprites
end
; 0xbc7a4
UnknownScript_0xbc7a4: ; 0xbc7a4
- 3writetext $29, $53de
+ 3writetext UnknownText_0xa53de
closetext
loadmovesprites
end
; 0xbc7ab
UnknownScript_0xbc7ab: ; 0xbc7ab
- 3writetext $29, $5666
+ 3writetext UnknownText_0xa5666
closetext
loadmovesprites
end
; 0xbc7b2
UnknownScript_0xbc7b2: ; 0xbc7b2
- 3writetext $29, $5a28
+ 3writetext UnknownText_0xa5a28
closetext
loadmovesprites
end
; 0xbc7b9
UnknownScript_0xbc7b9: ; 0xbc7b9
- 3writetext $29, $5c8e
+ 3writetext UnknownText_0xa5c8e
closetext
loadmovesprites
end
; 0xbc7c0
UnknownScript_0xbc7c0: ; 0xbc7c0
- 3writetext $29, $5ea8
+ 3writetext UnknownText_0xa5ea8
closetext
loadmovesprites
end
; 0xbc7c7
UnknownScript_0xbc7c7: ; 0xbc7c7
- 3writetext $29, $60b5
+ 3writetext UnknownText_0xa60b5
closetext
loadmovesprites
end
@@ -1124,140 +1124,140 @@ UnknownScript_0xbc7ce: ; 0xbc7ce
if_equal $21, UnknownScript_0xbc897
if_equal $22, UnknownScript_0xbc89e
if_equal $23, UnknownScript_0xbc8a5
- 3writetext $6c, $4afd
+ 3writetext UnknownText_0x1b0afd
closetext
loadmovesprites
end
; 0xbc827
UnknownScript_0xbc827: ; 0xbc827
- 3writetext $6c, $4ea2
+ 3writetext UnknownText_0x1b0ea2
closetext
loadmovesprites
end
; 0xbc82e
UnknownScript_0xbc82e: ; 0xbc82e
- 3writetext $6c, $517b
+ 3writetext UnknownText_0x1b117b
closetext
loadmovesprites
end
; 0xbc835
UnknownScript_0xbc835: ; 0xbc835
- 3writetext $6c, $5584
+ 3writetext UnknownText_0x1b1584
closetext
loadmovesprites
end
; 0xbc83c
UnknownScript_0xbc83c: ; 0xbc83c
- 3writetext $6c, $5908
+ 3writetext UnknownText_0x1b1908
closetext
loadmovesprites
end
; 0xbc843
UnknownScript_0xbc843: ; 0xbc843
- 3writetext $6c, $5bd2
+ 3writetext UnknownText_0x1b1bd2
closetext
loadmovesprites
end
; 0xbc84a
UnknownScript_0xbc84a: ; 0xbc84a
- 3writetext $6c, $5df4
+ 3writetext UnknownText_0x1b1df4
closetext
loadmovesprites
end
; 0xbc851
UnknownScript_0xbc851: ; 0xbc851
- 3writetext $29, $4126
+ 3writetext UnknownText_0xa4126
closetext
loadmovesprites
end
; 0xbc858
UnknownScript_0xbc858: ; 0xbc858
- 3writetext $29, $42f2
+ 3writetext UnknownText_0xa42f2
closetext
loadmovesprites
end
; 0xbc85f
UnknownScript_0xbc85f: ; 0xbc85f
- 3writetext $29, $4794
+ 3writetext UnknownText_0xa4794
closetext
loadmovesprites
end
; 0xbc866
UnknownScript_0xbc866: ; 0xbc866
- 3writetext $29, $498a
+ 3writetext UnknownText_0xa498a
closetext
loadmovesprites
end
; 0xbc86d
UnknownScript_0xbc86d: ; 0xbc86d
- 3writetext $29, $4b87
+ 3writetext UnknownText_0xa4b87
closetext
loadmovesprites
end
; 0xbc874
UnknownScript_0xbc874: ; 0xbc874
- 3writetext $29, $505f
+ 3writetext UnknownText_0xa505f
closetext
loadmovesprites
end
; 0xbc87b
UnknownScript_0xbc87b: ; 0xbc87b
- 3writetext $29, $51ee
+ 3writetext UnknownText_0xa51ee
closetext
loadmovesprites
end
; 0xbc882
UnknownScript_0xbc882: ; 0xbc882
- 3writetext $29, $5412
+ 3writetext UnknownText_0xa5412
closetext
loadmovesprites
end
; 0xbc889
UnknownScript_0xbc889: ; 0xbc889
- 3writetext $29, $56b6
+ 3writetext UnknownText_0xa56b6
closetext
loadmovesprites
end
; 0xbc890
UnknownScript_0xbc890: ; 0xbc890
- 3writetext $29, $5a5a
+ 3writetext UnknownText_0xa5a5a
closetext
loadmovesprites
end
; 0xbc897
UnknownScript_0xbc897: ; 0xbc897
- 3writetext $29, $5cc5
+ 3writetext UnknownText_0xa5cc5
closetext
loadmovesprites
end
; 0xbc89e
UnknownScript_0xbc89e: ; 0xbc89e
- 3writetext $29, $5ed6
+ 3writetext UnknownText_0xa5ed6
closetext
loadmovesprites
end
; 0xbc8a5
UnknownScript_0xbc8a5: ; 0xbc8a5
- 3writetext $29, $60e2
+ 3writetext UnknownText_0xa60e2
closetext
loadmovesprites
end
@@ -1285,140 +1285,140 @@ UnknownScript_0xbc8ac: ; 0xbc8ac
if_equal $21, UnknownScript_0xbc975
if_equal $22, UnknownScript_0xbc97c
if_equal $23, UnknownScript_0xbc983
- 3writetext $6c, $4b42
+ 3writetext UnknownText_0x1b0b42
closetext
loadmovesprites
end
; 0xbc905
UnknownScript_0xbc905: ; 0xbc905
- 3writetext $6c, $4ebc
+ 3writetext UnknownText_0x1b0ebc
closetext
loadmovesprites
end
; 0xbc90c
UnknownScript_0xbc90c: ; 0xbc90c
- 3writetext $6c, $51c4
+ 3writetext UnknownText_0x1b11c4
closetext
loadmovesprites
end
; 0xbc913
UnknownScript_0xbc913: ; 0xbc913
- 3writetext $6c, $55b6
+ 3writetext UnknownText_0x1b15b6
closetext
loadmovesprites
end
; 0xbc91a
UnknownScript_0xbc91a: ; 0xbc91a
- 3writetext $6c, $5936
+ 3writetext UnknownText_0x1b1936
closetext
loadmovesprites
end
; 0xbc921
UnknownScript_0xbc921: ; 0xbc921
- 3writetext $6c, $5c06
+ 3writetext UnknownText_0x1b1c06
closetext
loadmovesprites
end
; 0xbc928
UnknownScript_0xbc928: ; 0xbc928
- 3writetext $6c, $5e50
+ 3writetext UnknownText_0x1b1e50
closetext
loadmovesprites
end
; 0xbc92f
UnknownScript_0xbc92f: ; 0xbc92f
- 3writetext $29, $4158
+ 3writetext UnknownText_0xa4158
closetext
loadmovesprites
end
; 0xbc936
UnknownScript_0xbc936: ; 0xbc936
- 3writetext $29, $434a
+ 3writetext UnknownText_0xa434a
closetext
loadmovesprites
end
; 0xbc93d
UnknownScript_0xbc93d: ; 0xbc93d
- 3writetext $29, $47eb
+ 3writetext UnknownText_0xa47eb
closetext
loadmovesprites
end
; 0xbc944
UnknownScript_0xbc944: ; 0xbc944
- 3writetext $29, $49bd
+ 3writetext UnknownText_0xa49bd
closetext
loadmovesprites
end
; 0xbc94b
UnknownScript_0xbc94b: ; 0xbc94b
- 3writetext $29, $4bcd
+ 3writetext UnknownText_0xa4bcd
closetext
loadmovesprites
end
; 0xbc952
UnknownScript_0xbc952: ; 0xbc952
- 3writetext $29, $508c
+ 3writetext UnknownText_0xa508c
closetext
loadmovesprites
end
; 0xbc959
UnknownScript_0xbc959: ; 0xbc959
- 3writetext $29, $5216
+ 3writetext UnknownText_0xa5216
closetext
loadmovesprites
end
; 0xbc960
UnknownScript_0xbc960: ; 0xbc960
- 3writetext $29, $5446
+ 3writetext UnknownText_0xa5446
closetext
loadmovesprites
end
; 0xbc967
UnknownScript_0xbc967: ; 0xbc967
- 3writetext $29, $56e2
+ 3writetext UnknownText_0xa56e2
closetext
loadmovesprites
end
; 0xbc96e
UnknownScript_0xbc96e: ; 0xbc96e
- 3writetext $29, $5aa6
+ 3writetext UnknownText_0xa5aa6
closetext
loadmovesprites
end
; 0xbc975
UnknownScript_0xbc975: ; 0xbc975
- 3writetext $29, $5cfa
+ 3writetext UnknownText_0xa5cfa
closetext
loadmovesprites
end
; 0xbc97c
UnknownScript_0xbc97c: ; 0xbc97c
- 3writetext $29, $5f06
+ 3writetext UnknownText_0xa5f06
closetext
loadmovesprites
end
; 0xbc983
UnknownScript_0xbc983: ; 0xbc983
- 3writetext $29, $6144
+ 3writetext UnknownText_0xa6144
closetext
loadmovesprites
end
@@ -1443,119 +1443,119 @@ UnknownScript_0xbc98a: ; 0xbc98a
if_equal $20, UnknownScript_0xbca32
if_equal $21, UnknownScript_0xbca39
if_equal $23, UnknownScript_0xbca40
- 3writetext $6c, $4b75
+ 3writetext UnknownText_0x1b0b75
closetext
loadmovesprites
end
; 0xbc9d7
UnknownScript_0xbc9d7: ; 0xbc9d7
- 3writetext $6c, $4edc
+ 3writetext UnknownText_0x1b0edc
closetext
loadmovesprites
end
; 0xbc9de
UnknownScript_0xbc9de: ; 0xbc9de
- 3writetext $6c, $51fe
+ 3writetext UnknownText_0x1b11fe
closetext
loadmovesprites
end
; 0xbc9e5
UnknownScript_0xbc9e5: ; 0xbc9e5
- 3writetext $6c, $55d5
+ 3writetext UnknownText_0x1b15d5
closetext
loadmovesprites
end
; 0xbc9ec
UnknownScript_0xbc9ec: ; 0xbc9ec
- 3writetext $6c, $5954
+ 3writetext UnknownText_0x1b1954
closetext
loadmovesprites
end
; 0xbc9f3
UnknownScript_0xbc9f3: ; 0xbc9f3
- 3writetext $6c, $5c32
+ 3writetext UnknownText_0x1b1c32
closetext
loadmovesprites
end
; 0xbc9fa
UnknownScript_0xbc9fa: ; 0xbc9fa
- 3writetext $6c, $5e98
+ 3writetext UnknownText_0x1b1e98
closetext
loadmovesprites
end
; 0xbca01
UnknownScript_0xbca01: ; 0xbca01
- 3writetext $29, $418d
+ 3writetext UnknownText_0xa418d
closetext
loadmovesprites
end
; 0xbca08
UnknownScript_0xbca08: ; 0xbca08
- 3writetext $29, $4382
+ 3writetext UnknownText_0xa4382
closetext
loadmovesprites
end
; 0xbca0f
UnknownScript_0xbca0f: ; 0xbca0f
- 3writetext $29, $49fc
+ 3writetext UnknownText_0xa49fc
closetext
loadmovesprites
end
; 0xbca16
UnknownScript_0xbca16: ; 0xbca16
- 3writetext $29, $4bec
+ 3writetext UnknownText_0xa4bec
closetext
loadmovesprites
end
; 0xbca1d
UnknownScript_0xbca1d: ; 0xbca1d
- 3writetext $29, $50b1
+ 3writetext UnknownText_0xa50b1
closetext
loadmovesprites
end
; 0xbca24
UnknownScript_0xbca24: ; 0xbca24
- 3writetext $29, $548c
+ 3writetext UnknownText_0xa548c
closetext
loadmovesprites
end
; 0xbca2b
UnknownScript_0xbca2b: ; 0xbca2b
- 3writetext $29, $571e
+ 3writetext UnknownText_0xa571e
closetext
loadmovesprites
end
; 0xbca32
UnknownScript_0xbca32: ; 0xbca32
- 3writetext $29, $5ada
+ 3writetext UnknownText_0xa5ada
closetext
loadmovesprites
end
; 0xbca39
UnknownScript_0xbca39: ; 0xbca39
- 3writetext $29, $5d1d
+ 3writetext UnknownText_0xa5d1d
closetext
loadmovesprites
end
; 0xbca40
UnknownScript_0xbca40: ; 0xbca40
- 3writetext $29, $6175
+ 3writetext UnknownText_0xa6175
closetext
loadmovesprites
end
@@ -1570,43 +1570,43 @@ UnknownScript_0xbca47: ; 0xbca47
if_equal $1d, UnknownScript_0xbca7d
if_equal $21, UnknownScript_0xbca83
if_equal $22, UnknownScript_0xbca89
- 3writetext $6c, $5607
+ 3writetext UnknownText_0x1b1607
keeptextopen
end
; 0xbca6b
UnknownScript_0xbca6b: ; 0xbca6b
- 3writetext $6c, $5c57
+ 3writetext UnknownText_0x1b1c57
keeptextopen
end
; 0xbca71
UnknownScript_0xbca71: ; 0xbca71
- 3writetext $29, $4c24
+ 3writetext UnknownText_0xa4c24
keeptextopen
end
; 0xbca77
UnknownScript_0xbca77: ; 0xbca77
- 3writetext $29, $523a
+ 3writetext UnknownText_0xa523a
keeptextopen
end
; 0xbca7d
UnknownScript_0xbca7d: ; 0xbca7d
- 3writetext $29, $54e3
+ 3writetext UnknownText_0xa54e3
keeptextopen
end
; 0xbca83
UnknownScript_0xbca83: ; 0xbca83
- 3writetext $29, $5d4d
+ 3writetext UnknownText_0xa5d4d
keeptextopen
end
; 0xbca89
UnknownScript_0xbca89: ; 0xbca89
- 3writetext $29, $5f37
+ 3writetext UnknownText_0xa5f37
keeptextopen
end
; 0xbca8f
@@ -1624,77 +1624,77 @@ UnknownScript_0xbca8f: ; 0xbca8f
if_equal $21, UnknownScript_0xbcaf5
if_equal $22, UnknownScript_0xbcafc
if_equal $23, UnknownScript_0xbcb03
- 3writetext $6c, $4eff
+ 3writetext UnknownText_0x1b0eff
closetext
loadmovesprites
end
; 0xbcac4
UnknownScript_0xbcac4: ; 0xbcac4
- 3writetext $6c, $564d
+ 3writetext UnknownText_0x1b164d
closetext
loadmovesprites
end
; 0xbcacb
UnknownScript_0xbcacb: ; 0xbcacb
- 3writetext $6c, $5978
+ 3writetext UnknownText_0x1b1978
closetext
loadmovesprites
end
; 0xbcad2
UnknownScript_0xbcad2: ; 0xbcad2
- 3writetext $6c, $5c91
+ 3writetext UnknownText_0x1b1c91
closetext
loadmovesprites
end
; 0xbcad9
UnknownScript_0xbcad9: ; 0xbcad9
- 3writetext $29, $4c47
+ 3writetext UnknownText_0xa4c47
closetext
loadmovesprites
end
; 0xbcae0
UnknownScript_0xbcae0: ; 0xbcae0
- 3writetext $29, $52a0
+ 3writetext UnknownText_0xa52a0
closetext
loadmovesprites
end
; 0xbcae7
UnknownScript_0xbcae7: ; 0xbcae7
- 3writetext $29, $5513
+ 3writetext UnknownText_0xa5513
closetext
loadmovesprites
end
; 0xbcaee
UnknownScript_0xbcaee: ; 0xbcaee
- 3writetext $29, $5aff
+ 3writetext UnknownText_0xa5aff
closetext
loadmovesprites
end
; 0xbcaf5
UnknownScript_0xbcaf5: ; 0xbcaf5
- 3writetext $29, $5d9a
+ 3writetext UnknownText_0xa5d9a
closetext
loadmovesprites
end
; 0xbcafc
UnknownScript_0xbcafc: ; 0xbcafc
- 3writetext $29, $5faa
+ 3writetext UnknownText_0xa5faa
closetext
loadmovesprites
end
; 0xbcb03
UnknownScript_0xbcb03: ; 0xbcb03
- 3writetext $29, $61c9
+ 3writetext UnknownText_0xa61c9
closetext
loadmovesprites
end
@@ -1707,25 +1707,25 @@ UnknownScript_0xbcb0a: ; 0xbcb0a
if_equal $f, UnknownScript_0xbcb23
if_equal $20, UnknownScript_0xbcb29
if_equal $23, UnknownScript_0xbcb2f
- 3writetext $6c, $4f2f
+ 3writetext UnknownText_0x1b0f2f
keeptextopen
end
; 0xbcb23
UnknownScript_0xbcb23: ; 0xbcb23
- 3writetext $6c, $59be
+ 3writetext UnknownText_0x1b19be
keeptextopen
end
; 0xbcb29
UnknownScript_0xbcb29: ; 0xbcb29
- 3writetext $29, $5b3f
+ 3writetext UnknownText_0xa5b3f
keeptextopen
end
; 0xbcb2f
UnknownScript_0xbcb2f: ; 0xbcb2f
- 3writetext $29, $6200
+ 3writetext UnknownText_0xa6200
keeptextopen
end
; 0xbcb35
@@ -1740,42 +1740,42 @@ UnknownScript_0xbcb35: ; 0xbcb35
if_equal $1a, UnknownScript_0xbcb70
if_equal $1f, UnknownScript_0xbcb75
if_equal $24, UnknownScript_0xbcb7a
- 3writetext $6c, $4bb6
+ 3writetext UnknownText_0x1b0bb6
end
; 0xbcb5c
UnknownScript_0xbcb5c: ; 0xbcb5c
- 3writetext $6c, $5239
+ 3writetext UnknownText_0x1b1239
end
; 0xbcb61
UnknownScript_0xbcb61: ; 0xbcb61
- 3writetext $6c, $5690
+ 3writetext UnknownText_0x1b1690
end
; 0xbcb66
UnknownScript_0xbcb66: ; 0xbcb66
- 3writetext $6c, $5ebe
+ 3writetext UnknownText_0x1b1ebe
end
; 0xbcb6b
UnknownScript_0xbcb6b: ; 0xbcb6b
- 3writetext $29, $4405
+ 3writetext UnknownText_0xa4405
end
; 0xbcb70
UnknownScript_0xbcb70: ; 0xbcb70
- 3writetext $29, $4c8c
+ 3writetext UnknownText_0xa4c8c
end
; 0xbcb75
UnknownScript_0xbcb75: ; 0xbcb75
- 3writetext $29, $574a
+ 3writetext UnknownText_0xa574a
end
; 0xbcb7a
UnknownScript_0xbcb7a: ; 0xbcb7a
- 3writetext $29, $6295
+ 3writetext UnknownText_0xa6295
end
; 0xbcb7f
@@ -1789,47 +1789,47 @@ UnknownScript_0xbcb7f: ; 0xbcb7f
if_equal $1a, UnknownScript_0xbcbba
if_equal $1f, UnknownScript_0xbcbbf
if_equal $24, UnknownScript_0xbcbc4
- 3writetext $6c, $4c37
+ 3writetext UnknownText_0x1b0c37
end
; 0xbcba6
UnknownScript_0xbcba6: ; 0xbcba6
- 3writetext $6c, $5314
+ 3writetext UnknownText_0x1b1314
end
; 0xbcbab
UnknownScript_0xbcbab: ; 0xbcbab
- 3writetext $6c, $5710
+ 3writetext UnknownText_0x1b1710
end
; 0xbcbb0
UnknownScript_0xbcbb0: ; 0xbcbb0
- 3writetext $6c, $5f4e
+ 3writetext UnknownText_0x1b1f4e
end
; 0xbcbb5
UnknownScript_0xbcbb5: ; 0xbcbb5
- 3writetext $29, $44db
+ 3writetext UnknownText_0xa44db
end
; 0xbcbba
UnknownScript_0xbcbba: ; 0xbcbba
- 3writetext $29, $4d36
+ 3writetext UnknownText_0xa4d36
end
; 0xbcbbf
UnknownScript_0xbcbbf: ; 0xbcbbf
- 3writetext $29, $57e3
+ 3writetext UnknownText_0xa57e3
end
; 0xbcbc4
UnknownScript_0xbcbc4: ; 0xbcbc4
- 3writetext $29, $6316
+ 3writetext UnknownText_0xa6316
end
; 0xbcbc9
UnknownScript_0xbcbc9: ; 0xbcbc9
- 3writetext $6c, $49e1
+ 3writetext UnknownText_0x1b09e1
playsound $0093
waitbutton
keeptextopen
@@ -1846,56 +1846,56 @@ UnknownScript_0xbcbd3: ; 0xbcbd3
if_equal $1a, UnknownScript_0xbcc18
if_equal $1f, UnknownScript_0xbcc1f
if_equal $24, UnknownScript_0xbcc26
- 3writetext $6c, $4c9b
+ 3writetext UnknownText_0x1b0c9b
closetext
loadmovesprites
end
; 0xbcbfc
UnknownScript_0xbcbfc: ; 0xbcbfc
- 3writetext $6c, $5392
+ 3writetext UnknownText_0x1b1392
closetext
loadmovesprites
end
; 0xbcc03
UnknownScript_0xbcc03: ; 0xbcc03
- 3writetext $6c, $5755
+ 3writetext UnknownText_0x1b1755
closetext
loadmovesprites
end
; 0xbcc0a
UnknownScript_0xbcc0a: ; 0xbcc0a
- 3writetext $6c, $5faa
+ 3writetext UnknownText_0x1b1faa
closetext
loadmovesprites
end
; 0xbcc11
UnknownScript_0xbcc11: ; 0xbcc11
- 3writetext $29, $451d
+ 3writetext UnknownText_0xa451d
closetext
loadmovesprites
end
; 0xbcc18
UnknownScript_0xbcc18: ; 0xbcc18
- 3writetext $29, $4d72
+ 3writetext UnknownText_0xa4d72
closetext
loadmovesprites
end
; 0xbcc1f
UnknownScript_0xbcc1f: ; 0xbcc1f
- 3writetext $29, $5820
+ 3writetext UnknownText_0xa5820
closetext
loadmovesprites
end
; 0xbcc26
UnknownScript_0xbcc26: ; 0xbcc26
- 3writetext $29, $6359
+ 3writetext UnknownText_0xa6359
closetext
loadmovesprites
end
@@ -1911,56 +1911,56 @@ UnknownScript_0xbcc2d: ; 0xbcc2d
if_equal $1a, UnknownScript_0xbcc72
if_equal $1f, UnknownScript_0xbcc79
if_equal $24, UnknownScript_0xbcc80
- 3writetext $6c, $4ce0
+ 3writetext UnknownText_0x1b0ce0
closetext
loadmovesprites
end
; 0xbcc56
UnknownScript_0xbcc56: ; 0xbcc56
- 3writetext $6c, $53af
+ 3writetext UnknownText_0x1b13af
closetext
loadmovesprites
end
; 0xbcc5d
UnknownScript_0xbcc5d: ; 0xbcc5d
- 3writetext $6c, $578a
+ 3writetext UnknownText_0x1b178a
closetext
loadmovesprites
end
; 0xbcc64
UnknownScript_0xbcc64: ; 0xbcc64
- 3writetext $6c, $5fdd
+ 3writetext UnknownText_0x1b1fdd
closetext
loadmovesprites
end
; 0xbcc6b
UnknownScript_0xbcc6b: ; 0xbcc6b
- 3writetext $29, $4542
+ 3writetext UnknownText_0xa4542
closetext
loadmovesprites
end
; 0xbcc72
UnknownScript_0xbcc72: ; 0xbcc72
- 3writetext $29, $4dcd
+ 3writetext UnknownText_0xa4dcd
closetext
loadmovesprites
end
; 0xbcc79
UnknownScript_0xbcc79: ; 0xbcc79
- 3writetext $29, $5842
+ 3writetext UnknownText_0xa5842
closetext
loadmovesprites
end
; 0xbcc80
UnknownScript_0xbcc80: ; 0xbcc80
- 3writetext $29, $638c
+ 3writetext UnknownText_0xa638c
closetext
loadmovesprites
end
@@ -1976,56 +1976,56 @@ UnknownScript_0xbcc87: ; 0xbcc87
if_equal $1a, UnknownScript_0xbcccc
if_equal $1f, UnknownScript_0xbccd3
if_equal $24, UnknownScript_0xbccda
- 3writetext $6c, $4d0b
+ 3writetext UnknownText_0x1b0d0b
closetext
loadmovesprites
end
; 0xbccb0
UnknownScript_0xbccb0: ; 0xbccb0
- 3writetext $6c, $53e4
+ 3writetext UnknownText_0x1b13e4
closetext
loadmovesprites
end
; 0xbccb7
UnknownScript_0xbccb7: ; 0xbccb7
- 3writetext $6c, $57ba
+ 3writetext UnknownText_0x1b17ba
closetext
loadmovesprites
end
; 0xbccbe
UnknownScript_0xbccbe: ; 0xbccbe
- 3writetext $6c, $5ffa
+ 3writetext UnknownText_0x1b1ffa
closetext
loadmovesprites
end
; 0xbccc5
UnknownScript_0xbccc5: ; 0xbccc5
- 3writetext $29, $4573
+ 3writetext UnknownText_0xa4573
closetext
loadmovesprites
end
; 0xbcccc
UnknownScript_0xbcccc: ; 0xbcccc
- 3writetext $29, $4e01
+ 3writetext UnknownText_0xa4e01
closetext
loadmovesprites
end
; 0xbccd3
UnknownScript_0xbccd3: ; 0xbccd3
- 3writetext $29, $5881
+ 3writetext UnknownText_0xa5881
closetext
loadmovesprites
end
; 0xbccda
UnknownScript_0xbccda: ; 0xbccda
- 3writetext $29, $63cc
+ 3writetext UnknownText_0xa63cc
closetext
loadmovesprites
end
@@ -2040,49 +2040,49 @@ UnknownScript_0xbcce1: ; 0xbcce1
if_equal $1a, UnknownScript_0xbcd1b
if_equal $1f, UnknownScript_0xbcd22
if_equal $24, UnknownScript_0xbcd29
- 3writetext $6c, $5409
+ 3writetext UnknownText_0x1b1409
closetext
loadmovesprites
end
; 0xbcd06
UnknownScript_0xbcd06: ; 0xbcd06
- 3writetext $6c, $57de
+ 3writetext UnknownText_0x1b17de
closetext
loadmovesprites
end
; 0xbcd0d
UnknownScript_0xbcd0d: ; 0xbcd0d
- 3writetext $6c, $601f
+ 3writetext UnknownText_0x1b201f
closetext
loadmovesprites
end
; 0xbcd14
UnknownScript_0xbcd14: ; 0xbcd14
- 3writetext $29, $4595
+ 3writetext UnknownText_0xa4595
closetext
loadmovesprites
end
; 0xbcd1b
UnknownScript_0xbcd1b: ; 0xbcd1b
- 3writetext $29, $4e21
+ 3writetext UnknownText_0xa4e21
closetext
loadmovesprites
end
; 0xbcd22
UnknownScript_0xbcd22: ; 0xbcd22
- 3writetext $29, $58a3
+ 3writetext UnknownText_0xa58a3
closetext
loadmovesprites
end
; 0xbcd29
UnknownScript_0xbcd29: ; 0xbcd29
- 3writetext $29, $63f1
+ 3writetext UnknownText_0xa63f1
closetext
loadmovesprites
end
@@ -2094,25 +2094,25 @@ UnknownScript_0xbcd30: ; 0xbcd30
if_equal $15, UnknownScript_0xbcd48
if_equal $1a, UnknownScript_0xbcd4e
if_equal $1f, UnknownScript_0xbcd54
- 3writetext $6c, $4d2c
+ 3writetext UnknownText_0x1b0d2c
keeptextopen
end
; 0xbcd48
UnknownScript_0xbcd48: ; 0xbcd48
- 3writetext $29, $45c9
+ 3writetext UnknownText_0xa45c9
keeptextopen
end
; 0xbcd4e
UnknownScript_0xbcd4e: ; 0xbcd4e
- 3writetext $29, $4e4c
+ 3writetext UnknownText_0xa4e4c
keeptextopen
end
; 0xbcd54
UnknownScript_0xbcd54: ; 0xbcd54
- 3writetext $29, $58d5
+ 3writetext UnknownText_0xa58d5
keeptextopen
end
; 0xbcd5a
@@ -2124,35 +2124,35 @@ UnknownScript_0xbcd5a: ; 0xbcd5a
if_equal $1a, UnknownScript_0xbcd7e
if_equal $1f, UnknownScript_0xbcd85
if_equal $24, UnknownScript_0xbcd8c
- 3writetext $6c, $4d69
+ 3writetext UnknownText_0x1b0d69
closetext
loadmovesprites
end
; 0xbcd77
UnknownScript_0xbcd77: ; 0xbcd77
- 3writetext $29, $4603
+ 3writetext UnknownText_0xa4603
closetext
loadmovesprites
end
; 0xbcd7e
UnknownScript_0xbcd7e: ; 0xbcd7e
- 3writetext $29, $4e8f
+ 3writetext UnknownText_0xa4e8f
closetext
loadmovesprites
end
; 0xbcd85
UnknownScript_0xbcd85: ; 0xbcd85
- 3writetext $29, $5914
+ 3writetext UnknownText_0xa5914
closetext
loadmovesprites
end
; 0xbcd8c
UnknownScript_0xbcd8c: ; 0xbcd8c
- 3writetext $29, $6411
+ 3writetext UnknownText_0xa6411
closetext
loadmovesprites
end
@@ -2162,7 +2162,7 @@ UnknownScript_0xbcd93: ; 0xbcd93
checkcode $17
if_equal $24, $4d99
loadfont
- 3writetext $29, $6454
+ 3writetext UnknownText_0xa6454
keeptextopen
end
; 0xbcda0
@@ -2170,7 +2170,7 @@ UnknownScript_0xbcd93: ; 0xbcd93
UnknownScript_0xbcda0: ; 0xbcda0
mapnametotext $0
loadfont
- 3writetext $6c, $474e
+ 3writetext UnknownText_0x1b074e
closetext
loadmovesprites
end
@@ -2179,9 +2179,9 @@ UnknownScript_0xbcda0: ; 0xbcda0
UnknownScript_0xbcdaa: ; 0xbcdaa
mapnametotext $0
loadfont
- 3writetext $6c, $474e
+ 3writetext UnknownText_0x1b074e
keeptextopen
- 3writetext $6c, $475c
+ 3writetext UnknownText_0x1b075c
closetext
loadmovesprites
end
@@ -2189,7 +2189,7 @@ UnknownScript_0xbcdaa: ; 0xbcdaa
UnknownScript_0xbcdb9: ; 0xbcdb9
waitbutton
- 3writetext $6c, $4648
+ 3writetext UnknownText_0x1b0648
playsound $0001
waitbutton
end
@@ -2197,7 +2197,7 @@ UnknownScript_0xbcdb9: ; 0xbcdb9
UnknownScript_0xbcdc3: ; 0xbcdc3
waitbutton
- 3writetext $6c, $4648
+ 3writetext UnknownText_0x1b0648
playsound $0096
waitbutton
end
@@ -2206,18 +2206,18 @@ UnknownScript_0xbcdc3: ; 0xbcdc3
UnknownScript_0xbcdcd: ; 0xbcdcd
faceplayer
loadfont
- 3writetext $6c, $477f
+ 3writetext UnknownText_0x1b077f
keeptextopen
checkitem COIN_CASE
iftrue UnknownScript_0xbcde0
- 3writetext $6c, $479c
+ 3writetext UnknownText_0x1b079c
closetext
loadmovesprites
end
; 0xbcde0
UnknownScript_0xbcde0: ; 0xbcde0
- 3writetext $6c, $47e3
+ 3writetext UnknownText_0x1b07e3
special $0050
loadmenudata MenuDataHeader_0xbce54
interpretmenu2
@@ -2236,7 +2236,7 @@ UnknownScript_0xbcdf7: ; 0xbcdf7
takemoney $0, 1000
waitbutton
playsound $0022
- 3writetext $6c, $4830
+ 3writetext UnknownText_0x1b0830
closetext
2jump $4de4
; 0xbce1b
@@ -2250,27 +2250,27 @@ UnknownScript_0xbce1b: ; 0xbce1b
takemoney $0, 10000
waitbutton
playsound $0022
- 3writetext $6c, $484f
+ 3writetext UnknownText_0x1b084f
closetext
2jump $4de4
; 0xbce3f
UnknownScript_0xbce3f: ; 0xbce3f
- 3writetext $6c, $486f
+ 3writetext UnknownText_0x1b086f
closetext
loadmovesprites
end
; 0xbce46
UnknownScript_0xbce46: ; 0xbce46
- 3writetext $6c, $488c
+ 3writetext UnknownText_0x1b088c
closetext
loadmovesprites
end
; 0xbce4d
UnknownScript_0xbce4d: ; 0xbce4d
- 3writetext $6c, $48ad
+ 3writetext UnknownText_0x1b08ad
closetext
loadmovesprites
end
@@ -2300,21 +2300,21 @@ UnknownScript_0xbce7f: ; 0xbce7f
special $0059
if_less_than $32, UnknownScript_0xbce9a
if_less_than $96, UnknownScript_0xbce93
- 3writetext $6c, $492a
+ 3writetext UnknownText_0x1b092a
closetext
loadmovesprites
end
; 0xbce93
UnknownScript_0xbce93: ; 0xbce93
- 3writetext $6c, $4954
+ 3writetext UnknownText_0x1b0954
closetext
loadmovesprites
end
; 0xbce9a
UnknownScript_0xbce9a: ; 0xbce9a
- 3writetext $6c, $4989
+ 3writetext UnknownText_0x1b0989
closetext
loadmovesprites
end
@@ -2328,7 +2328,7 @@ MovementData_0xbcea1: ; bcea1
; bcea5
UnusedPhoneScript: ; 0xbcea5
- 3writetext BANK(UnusedPhoneText), UnusedPhoneText
+ 3writetext UnusedPhoneText
end
MomPhoneScript: ; 0xbceaa
@@ -2345,7 +2345,7 @@ MomPhoneScript: ; 0xbceaa
.bcec5 ; 0xbcec5
checkevent $0007
iftrue MomPhoneHangUpScript
- 3writetext BANK(MomPhoneGreetingText), MomPhoneGreetingText
+ 3writetext MomPhoneGreetingText
keeptextopen
mapnametotext $0
checkcode $f
@@ -2354,7 +2354,7 @@ MomPhoneScript: ; 0xbceaa
2jump UnknownScript_0xbcf2f
UnknownScript_0xbcedf: ; 0xbcedf
- 3writetext $6d, $4021
+ 3writetext UnknownText_0x1b4021
keeptextopen
2jump UnknownScript_0xbcf37
@@ -2365,17 +2365,17 @@ UnknownScript_0xbcee7: ; 0xbcee7
if_equal GROUP_VIOLET_CITY, .violet
if_equal GROUP_AZALEA_TOWN, .azalea
if_equal GROUP_GOLDENROD_CITY, .goldenrod
- 3writetext BANK(MomPhoneGenericAreaText), MomPhoneGenericAreaText
+ 3writetext MomPhoneGenericAreaText
keeptextopen
2jump UnknownScript_0xbcf37
.newbark ; 0xbcf05
- 3writetext BANK(MomPhoneNewBarkText), MomPhoneNewBarkText
+ 3writetext MomPhoneNewBarkText
keeptextopen
2jump UnknownScript_0xbcf37
.cherrygrove ; 0xbcf0d
- 3writetext BANK(MomPhoneCherrygroveText), MomPhoneCherrygroveText
+ 3writetext MomPhoneCherrygroveText
keeptextopen
2jump UnknownScript_0xbcf37
@@ -2390,12 +2390,12 @@ UnknownScript_0xbcee7: ; 0xbcee7
2jump UnknownScript_0xbcedf
UnknownScript_0xbcf27: ; 0xbcf27
- 3writetext $6d, $411c
+ 3writetext UnknownText_0x1b411c
keeptextopen
2jump UnknownScript_0xbcf37
UnknownScript_0xbcf2f: ; 0xbcf2f
- 3writetext $6d, $4150
+ 3writetext UnknownText_0x1b4150
keeptextopen
2jump UnknownScript_0xbcf37
@@ -2413,63 +2413,63 @@ UnknownScript_0xbcf49: ; 0xbcf49
UnknownScript_0xbcf55: ; 0xbcf55
readmoney $1, $0
- 3writetext $6d, $41a7
+ 3writetext UnknownText_0x1b41a7
yesorno
iftrue MomPhoneSaveMoneyScript
2jump MomPhoneWontSaveMoneyScript
UnknownScript_0xbcf63: ; 0xbcf63
- 3writetext $6d, $41ea
+ 3writetext UnknownText_0x1b41ea
yesorno
iftrue MomPhoneSaveMoneyScript
2jump MomPhoneWontSaveMoneyScript
UnknownScript_0xbcf6e: ; 0xbcf6e
- 3writetext $6d, $420d
+ 3writetext UnknownText_0x1b420d
yesorno
iftrue MomPhoneSaveMoneyScript
2jump MomPhoneWontSaveMoneyScript
UnknownScript_0xbcf79: ; 0xbcf79
readmoney $1, $0
- 3writetext $6d, $4249
+ 3writetext UnknownText_0x1b4249
yesorno
iftrue MomPhoneSaveMoneyScript
2jump MomPhoneWontSaveMoneyScript
MomPhoneSaveMoneyScript: ; 0xbcf87
setflag $0008
- 3writetext $6d, $4289
+ 3writetext UnknownText_0x1b4289
keeptextopen
2jump MomPhoneHangUpScript
MomPhoneWontSaveMoneyScript: ; 0xbcf92
clearflag $0008
- 3writetext BANK(MomPhoneWontSaveMoneyText), MomPhoneWontSaveMoneyText
+ 3writetext MomPhoneWontSaveMoneyText
keeptextopen
2jump MomPhoneHangUpScript
MomPhoneHangUpScript: ; 0xbcf9d
- 3writetext BANK(MomPhoneHangUpText), MomPhoneHangUpText
+ 3writetext MomPhoneHangUpText
end
MomPhoneNoPokemonScript: ; 0xbcfa2
- 3writetext BANK(MomPhoneNoPokemonText), MomPhoneNoPokemonText
+ 3writetext MomPhoneNoPokemonText
end
MomPhoneNoPokedexScript: ; 0xbcfa7
- 3writetext BANK(MomPhoneNoPokedexText), MomPhoneNoPokedexText
+ 3writetext MomPhoneNoPokedexText
end
MomPhoneNoGymQuestScript: ; 0xbcfac
- 3writetext BANK(MomPhoneNoGymQuestText), MomPhoneNoGymQuestText
+ 3writetext MomPhoneNoGymQuestText
end
MomPhoneLectureScript: ; 0xbcfb1
setevent $0040
setflag $0009
specialphonecall $0000
- 3writetext BANK(MomPhoneLectureText), MomPhoneLectureText
+ 3writetext MomPhoneLectureText
yesorno
iftrue MomPhoneSaveMoneyScript
2jump MomPhoneWontSaveMoneyScript
@@ -2479,40 +2479,40 @@ BillPhoneScript1: ; 0xbcfc5
iftrue .daygreet
checktime $4
iftrue .nitegreet
- 3writetext BANK(BillPhoneMornGreetingText), BillPhoneMornGreetingText
+ 3writetext BillPhoneMornGreetingText
keeptextopen
2jump .main
.daygreet ; 0xbcfd7
- 3writetext BANK(BillPhoneDayGreetingText), BillPhoneDayGreetingText
+ 3writetext BillPhoneDayGreetingText
keeptextopen
2jump .main
.nitegreet ; 0xbcfdf
- 3writetext BANK(BillPhoneNiteGreetingText), BillPhoneNiteGreetingText
+ 3writetext BillPhoneNiteGreetingText
keeptextopen
2jump .main
.main ; 0xbcfe7
- 3writetext BANK(BillPhoneGeneriText), BillPhoneGeneriText
+ 3writetext BillPhoneGeneriText
keeptextopen
checkcode $10
RAM2MEM $0
if_equal $0, .full
if_less_than $6, .nearlyfull
- 3writetext BANK(BillPhoneNotFullText), BillPhoneNotFullText
+ 3writetext BillPhoneNotFullText
end
.nearlyfull ; 0xbcffd
- 3writetext BANK(BillPhoneNearlyFullText), BillPhoneNearlyFullText
+ 3writetext BillPhoneNearlyFullText
end
.full ; 0xbd002
- 3writetext BANK(BillPhoneFullText), BillPhoneFullText
+ 3writetext BillPhoneFullText
end
BillPhoneScript2: ; 0xbd007
- 3writetext BANK(BillPhoneNewlyFullText), BillPhoneNewlyFullText
+ 3writetext BillPhoneNewlyFullText
closetext
end
@@ -2536,46 +2536,46 @@ ElmPhoneScript1: ; 0xbd00d
iftrue .stolen
checkevent $001e
iftrue .sawmrpokemon
- 3writetext BANK(ElmPhoneStartText), ElmPhoneStartText
+ 3writetext ElmPhoneStartText
end
.sawmrpokemon ; 0xbd048
- 3writetext BANK(ElmPhoneSawMrPokemonText), ElmPhoneSawMrPokemonText
+ 3writetext ElmPhoneSawMrPokemonText
end
.stolen ; 0xbd04d
- 3writetext BANK(ElmPhonePokemonStolenText), ElmPhonePokemonStolenText
+ 3writetext ElmPhonePokemonStolenText
end
.checkingegg ; 0xbd052
- 3writetext BANK(ElmPhoneCheckingEggText), ElmPhoneCheckingEggText
+ 3writetext ElmPhoneCheckingEggText
end
.assistant ; 0xbd057
- 3writetext BANK(ElmPhoneAssistantText), ElmPhoneAssistantText
+ 3writetext ElmPhoneAssistantText
end
.eggunhatched ; 0xbd05c
- 3writetext BANK(ElmPhoneEggUnhatchedText), ElmPhoneEggUnhatchedText
+ 3writetext ElmPhoneEggUnhatchedText
end
.egghatched ; 0xbd061
- 3writetext BANK(ElmPhoneEggHatchedText), ElmPhoneEggHatchedText
+ 3writetext ElmPhoneEggHatchedText
setevent $0077
end
.discovery ; 0xbd069
random $2
if_equal $0, .nextdiscovery
- 3writetext BANK(ElmPhoneDiscovery1Text), ElmPhoneDiscovery1Text
+ 3writetext ElmPhoneDiscovery1Text
end
.nextdiscovery ; 0xbd074
- 3writetext BANK(ElmPhoneDiscovery2Text), ElmPhoneDiscovery2Text
+ 3writetext ElmPhoneDiscovery2Text
end
.pokerus ; 0xbd079
- 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText
+ 3writetext ElmPhonePokerusText
specialphonecall $0000
end
@@ -2586,35 +2586,35 @@ ElmPhoneScript2: ; 0xbd081
if_equal $4, .rocket
if_equal $5, .gift
if_equal $8, .gift
- 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText
+ 3writetext ElmPhonePokerusText
specialphonecall $0000
end
.disaster ; 0xbd09f
- 3writetext BANK(ElmPhoneDisasterText), ElmPhoneDisasterText
+ 3writetext ElmPhoneDisasterText
specialphonecall $0000
setevent $0043
end
.assistant ; 0xbd0aa
- 3writetext BANK(ElmPhoneEggAssistantText), ElmPhoneEggAssistantText
+ 3writetext ElmPhoneEggAssistantText
specialphonecall $0000
clearevent $0700
setevent $0701
end
.rocket ; 0xbd0b8
- 3writetext BANK(ElmPhoneRocketText), ElmPhoneRocketText
+ 3writetext ElmPhoneRocketText
specialphonecall $0000
end
.gift ; 0xbd0c0
- 3writetext BANK(ElmPhoneGiftText), ElmPhoneGiftText
+ 3writetext ElmPhoneGiftText
specialphonecall $0000
end
.unused ; 0xbd0c8
- 3writetext BANK(ElmPhoneUnusedText), ElmPhoneUnusedText
+ 3writetext ElmPhoneUnusedText
specialphonecall $0000
end
; bd0d0
diff --git a/event/name_rater.asm b/event/name_rater.asm
index 063376daf..3f2bf3912 100644
--- a/event/name_rater.asm
+++ b/event/name_rater.asm
@@ -1,7 +1,7 @@
NameRater: ; fb6ed
ld hl, UnknownText_0xfb80f
call PrintText
- call Function1dcf
+ call YesNoBox
jp c, .asm_fb77e
ld hl, UnknownText_0xfb814
call PrintText
@@ -15,7 +15,7 @@ NameRater: ; fb6ed
jr c, .asm_fb779
ld hl, UnknownText_0xfb819
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_fb77e
ld hl, UnknownText_0xfb81e
call PrintText
@@ -172,13 +172,13 @@ UnknownText_0xfb80f: ; 0xfb80f
; Hello, hello! I'm the NAME RATER.
; I rate the names of #MON.
; Would you like me to rate names?
- text_jump UnknownText_0x1c0043, BANK(UnknownText_0x1c0043)
+ text_jump UnknownText_0x1c0043
db "@"
; 0xfb814
UnknownText_0xfb814: ; 0xfb814
; Which #MON's nickname should I rate for you?
- text_jump UnknownText_0x1c00a0, BANK(UnknownText_0x1c00a0)
+ text_jump UnknownText_0x1c00a0
db "@"
; 0xfb819
@@ -186,51 +186,51 @@ UnknownText_0xfb819: ; 0xfb819
; Hm… @ … That's a fairly decent name.
; But, how about a slightly better nickname?
; Want me to give it a better name?
- text_jump UnknownText_0x1c00cd, BANK(UnknownText_0x1c00cd)
+ text_jump UnknownText_0x1c00cd
db "@"
; 0xfb81e
UnknownText_0xfb81e: ; 0xfb81e
; All right. What name should we give it, then?
- text_jump UnknownText_0x1c0142, BANK(UnknownText_0x1c0142)
+ text_jump UnknownText_0x1c0142
db "@"
; 0xfb823
UnknownText_0xfb823: ; 0xfb823
; That's a better name than before! Well done!
- text_jump UnknownText_0x1c0171, BANK(UnknownText_0x1c0171)
+ text_jump UnknownText_0x1c0171
db "@"
; 0xfb828
UnknownText_0xfb828: ; 0xfb828
; OK, then. Come again sometime.
- text_jump UnknownText_0x1c019e, BANK(UnknownText_0x1c019e)
+ text_jump UnknownText_0x1c019e
db "@"
; 0xfb82d
UnknownText_0xfb82d: ; 0xfb82d
; Hm… @ ? What a great name! It's perfect.
; Treat @ with loving care.
- text_jump UnknownText_0x1c01be, BANK(UnknownText_0x1c01be)
+ text_jump UnknownText_0x1c01be
db "@"
; 0xfb832
UnknownText_0xfb832: ; 0xfb832
; Whoa… That's just an EGG.
- text_jump UnknownText_0x1c0208, BANK(UnknownText_0x1c0208)
+ text_jump UnknownText_0x1c0208
db "@"
; 0xfb837
UnknownText_0xfb837: ; 0xfb837
; It might look the same as before,
; but this new name is much better! Well done!
- text_jump UnknownText_0x1c0222, BANK(UnknownText_0x1c0222)
+ text_jump UnknownText_0x1c0222
db "@"
; 0xfb83c
UnknownText_0xfb83c: ; 0xfb83c
; All right. This #MON is now named @ .
- text_jump UnknownText_0x1c0272, BANK(UnknownText_0x1c0272)
+ text_jump UnknownText_0x1c0272
db "@"
; 0xfb841
diff --git a/event/poke_seer.asm b/event/poke_seer.asm
new file mode 100644
index 000000000..f49e8ce07
--- /dev/null
+++ b/event/poke_seer.asm
@@ -0,0 +1,452 @@
+SEER_INTRO EQU 0
+SEER_CANT_TELL EQU 1
+SEER_MET_AT EQU 2
+SEER_TIME_LEVEL EQU 3
+SEER_TRADED EQU 4
+SEER_CANCEL EQU 5
+SEER_EGG EQU 6
+SEER_LEVEL_ONLY EQU 7
+
+
+SpecialPokeSeer: ; 4f0bc
+ ld a, SEER_INTRO
+ call PrintSeerText
+ call Functiona36
+
+ ld b, $6
+ callba Function50000
+ jr c, .cancel
+
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+
+ call IsAPokemon
+ jr c, .no_mon
+
+ call ReadCaughtData
+ call SeerAction
+ ret
+
+.cancel
+ ld a, SEER_CANCEL
+ call PrintSeerText
+ ret
+
+.no_mon
+ ret
+
+.egg
+ ld a, SEER_EGG
+ call PrintSeerText
+ ret
+; 4f0ee
+
+
+SeerAction: ; 4f0ee
+ ld a, [$d002]
+ ld hl, SeerActions
+ rst JumpTable
+ ret
+; 4f0f6
+
+SeerActions: ; 4f0f6
+ dw SeerAction0
+ dw SeerAction1
+ dw SeerAction2
+ dw SeerAction3
+ dw SeerAction4
+; 4f100
+
+SeerAction0: ; 4f100
+ ld a, SEER_MET_AT
+ call PrintSeerText
+ ld a, SEER_TIME_LEVEL
+ call PrintSeerText
+ call SeerAdvice
+ ret
+; 4f10e
+
+SeerAction1: ; 4f10e
+ call GetCaughtOT
+ ld a, SEER_TRADED
+ call PrintSeerText
+ ld a, SEER_TIME_LEVEL
+ call PrintSeerText
+ call SeerAdvice
+ ret
+; 4f11f
+
+SeerAction2: ; 4f11f
+ ld a, SEER_CANT_TELL
+ call PrintSeerText
+ ret
+; 4f125
+
+SeerAction3: ; 4f125
+ ld a, SEER_CANT_TELL
+ call PrintSeerText
+ ret
+; 4f12b
+
+SeerAction4: ; 4f12b
+ ld a, SEER_LEVEL_ONLY
+ call PrintSeerText
+ call SeerAdvice
+ ret
+; 4f134
+
+ReadCaughtData: ; 4f134
+ ld a, PartyMon1CaughtData - PartyMon1
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [$d03b], a
+ ld a, [hld]
+ ld [$d03c], a
+ or [hl]
+ jr z, .asm_4f170
+
+ ld a, 1
+ ld [$d002], a
+
+ ld a, PartyMon1ID - PartyMon1
+ call GetPartyParamLocation
+ ld a, [PlayerID]
+ cp [hl]
+ jr nz, .asm_4f15f
+
+ inc hl
+ ld a, [$d47c]
+ jr nz, .asm_4f15f
+
+ ld a, 0
+ ld [$d002], a
+
+.asm_4f15f
+ call GetCaughtLevel
+ call GetCaughtOT
+ call GetCaughtName
+ call GetCaughtTime
+ call GetCaughtLocation
+ and a
+ ret
+
+.asm_4f170
+ ld a, 2
+ ld [$d002], a
+ ret
+; 4f176
+
+GetCaughtName: ; 4f176
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ ld bc, PKMN_NAME_LENGTH
+ call AddNTimes
+ ld de, $d003
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ ret
+; 4f18c
+
+GetCaughtLevel: ; 4f18c
+ ld a, "@"
+ ld hl, $d036
+ ld bc, 4
+ call ByteFill
+
+ ; caught level
+ ld a, [$d03b]
+ and $3f
+ jr z, .unknown
+ cp 1 ; hatched from an egg
+ jr nz, .print
+ ld a, 5 ; egg hatch level
+
+.print
+ ld [$d03a], a
+ ld hl, $d036
+ ld de, $d03a
+ ld bc, $4103
+ call PrintNum
+ ret
+
+.unknown
+ ld de, $d036
+ ld hl, .unknown_level
+ ld bc, 4
+ call CopyBytes
+ ret
+; 4f1c1
+
+.unknown_level ; 4f1c1
+ db "???@"
+; 4f1c5
+
+GetCaughtTime: ; 4f1c5
+ ld a, [$d03b]
+ and $c0
+ jr z, .none
+
+ rlca
+ rlca
+ dec a
+ ld hl, .times
+ call GetNthString
+ ld d, h
+ ld e, l
+ ld hl, $d01f
+ call CopyName2
+ and a
+ ret
+
+.none
+ ld de, $d01f
+ call UnknownCaughtData
+ ret
+; 4f1e6
+
+.times ; 4f1e6
+ db "Morning@"
+ db "Day@"
+ db "Night@"
+; 4f1f8
+
+UnknownCaughtData: ; 4f1f8
+ ld hl, .unknown
+ ld bc, $000b
+ call CopyBytes
+ ret
+; 4f202
+
+.unknown ; 4f202
+ db "Unknown@"
+; 4f20a
+
+GetCaughtLocation: ; 4f20a
+ ld a, [$d03c]
+ and $7f
+ jr z, .asm_4f22e
+ cp $7f
+ jr z, .asm_4f234
+ cp $7e
+ jr z, .asm_4f23b
+ ld e, a
+ callba GetLandmarkName
+ ld hl, StringBuffer1
+ ld de, $d00e
+ ld bc, $0011
+ call CopyBytes
+ and a
+ ret
+
+.asm_4f22e
+ ld de, $d00e
+ jp UnknownCaughtData
+
+.asm_4f234
+ ld a, $4
+ ld [$d002], a
+ scf
+ ret
+
+.asm_4f23b
+ ld a, $3
+ ld [$d002], a
+ scf
+ ret
+; 4f242
+
+GetCaughtOT: ; 4f242
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1OT
+ ld bc, $000b
+ call AddNTimes
+ ld de, $d02a
+ ld bc, $000b
+ call CopyBytes
+ ld hl, .male
+ ld a, [$d03c]
+ bit 7, a
+ jr z, .asm_4f264
+ ld hl, .female
+
+.asm_4f264
+ ld de, $d035
+ ld a, "@"
+ ld [de], a
+ ret
+; 4f26b
+
+.male ; 4f26b
+ db "@"
+.female ; 4f26c
+ db "@"
+; 4f26d
+
+PrintSeerText: ; 4f26d
+ ld e, a
+ ld d, 0
+ ld hl, SeerTexts
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 4f27c
+
+SeerTexts: ; 4f27c
+ dw SeerIntroText
+ dw SeerCantTellText
+ dw SeerMetAtText
+ dw SeerTimeLevelText
+ dw SeerTradedText
+ dw SeerCancelText
+ dw SeerEggText
+ dw SeerLevelOnlyText
+; 4f28c
+
+SeerIntroText: ; 0x4f28c
+ ; I see all. I know all… Certainly, I know of your #MON!
+ text_jump UnknownText_0x1c475f
+ db "@"
+; 0x4f291
+
+SeerCantTellText: ; 0x4f291
+ ; Whaaaat? I can't tell a thing! How could I not know of this?
+ text_jump UnknownText_0x1c4797
+ db "@"
+; 0x4f296
+
+SeerMetAtText: ; 0x4f296
+ ; Hm… I see you met @ here: @ !
+ text_jump UnknownText_0x1c47d4
+ db "@"
+; 0x4f29b
+
+SeerTimeLevelText: ; 0x4f29b
+ ; The time was @ ! Its level was @ ! Am I good or what?
+ text_jump UnknownText_0x1c47fa
+ db "@"
+; 0x4f2a0
+
+SeerTradedText: ; 0x4f2a0
+ ; Hm… @ came from @ in a trade? @ was where @ met @ !
+ text_jump UnknownText_0x1c4837
+ db "@"
+; 0x4f2a5
+
+SeerLevelOnlyText: ; 0x4f2a5
+ ; What!? Incredible! I don't understand how, but it is incredible! You are special. I can't tell where you met it, but it was at level @ . Am I good or what?
+ text_jump UnknownText_0x1c487f
+ db "@"
+; 0x4f2aa
+
+SeerEggText: ; 0x4f2aa
+ ; Hey! That's an EGG! You can't say that you've met it yet…
+ text_jump UnknownText_0x1c491d
+ db "@"
+; 0x4f2af
+
+SeerCancelText: ; 0x4f2af
+ ; Fufufu! I saw that you'd do nothing!
+ text_jump UnknownText_0x1c4955
+ db "@"
+; 0x4f2b4
+
+
+SeerAdvice: ; 4f2b4
+ ld a, PartyMon1Level - PartyMon1
+ call GetPartyParamLocation
+ ld a, [$d03a]
+ ld c, a
+ ld a, [hl]
+ sub c
+ ld c, a
+
+ ld hl, SeerAdviceTexts
+ ld de, 3
+.next
+ cp [hl]
+ jr c, .print
+ jr z, .print
+ add hl, de
+ jr .next
+
+.print
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 4f2d6
+
+SeerAdviceTexts: ; 4f2d6
+; level, text
+ dbw 9, SeerAdvice1
+ dbw 29, SeerAdvice2
+ dbw 59, SeerAdvice3
+ dbw 89, SeerAdvice4
+ dbw 100, SeerAdvice5
+ dbw 255, SeerAdvice1
+; 4f2e8
+
+SeerAdvice1: ; 0x4f2e8
+ ; Incidentally… It would be wise to raise your #MON with a little more care.
+ text_jump UnknownText_0x1c497a
+ db "@"
+; 0x4f2ed
+
+SeerAdvice2: ; 0x4f2ed
+ ; Incidentally… It seems to have grown a little. @ seems to be becoming more confident.
+ text_jump UnknownText_0x1c49c6
+ db "@"
+; 0x4f2f2
+
+SeerAdvice3: ; 0x4f2f2
+ ; Incidentally… @ has grown. It's gained much strength.
+ text_jump UnknownText_0x1c4a21
+ db "@"
+; 0x4f2f7
+
+SeerAdvice4: ; 0x4f2f7
+ ; Incidentally… It certainly has grown mighty! This @ must have come through numerous #MON battles. It looks brimming with confidence.
+ text_jump UnknownText_0x1c4a5b
+ db "@"
+; 0x4f2fc
+
+SeerAdvice5: ; 0x4f2fc
+ ; Incidentally… I'm impressed by your dedication. It's been a long time since I've seen a #MON as mighty as this @ . I'm sure that seeing @ in battle would excite anyone.
+ text_jump UnknownText_0x1c4ae5
+ db "@"
+; 0x4f301
+
+
+GetCaughtGender: ; 4f301
+ ld hl, PartyMon1CaughtGender - PartyMon1
+ add hl, bc
+
+ ld a, [hl]
+ and $7f
+ jr z, .genderless
+ cp $7f
+ jr z, .genderless
+
+ ld a, [hl]
+ and $80
+ jr nz, .male
+ ld c, 1
+ ret
+
+.male
+ ld c, 2
+ ret
+
+.genderless
+ ld c, 0
+ ret
+; 4f31c
+
+
diff --git a/extras b/extras
-Subproject 3dac619f2d08f22b31e51311e27225c9f97d642
+Subproject 9dc5b70cac00b23b8f61d485bd938a7adc30abf
diff --git a/gbhw.asm b/gbhw.asm
index 0f12e4842..a2156c5b8 100644
--- a/gbhw.asm
+++ b/gbhw.asm
@@ -28,6 +28,15 @@ TIMER EQU 2
SERIAL EQU 3
JOYPAD EQU 4
+; OAM attribute flags
+OAM_PALETTE EQU %111
+OAM_TILE_BANK EQU 3
+OAM_OBP_NUM EQU 4 ; Non CGB Mode Only
+OAM_X_FLIP EQU 5
+OAM_Y_FLIP EQU 6
+OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
+
+
; Hardware registers
rJOYP EQU $ff00 ; Joypad (R/W)
rSB EQU $ff01 ; Serial transfer data (R/W)
diff --git a/gfx/battle/minimize.2bpp b/gfx/battle/minimize.2bpp
new file mode 100644
index 000000000..66b554de4
--- /dev/null
+++ b/gfx/battle/minimize.2bpp
Binary files differ
diff --git a/gfx/credits/theend.2bpp b/gfx/credits/theend.2bpp
new file mode 100644
index 000000000..b689688ba
--- /dev/null
+++ b/gfx/credits/theend.2bpp
Binary files differ
diff --git a/gfx/misc/fast_ship.2bpp b/gfx/misc/fast_ship.2bpp
new file mode 100644
index 000000000..e4a5525b6
--- /dev/null
+++ b/gfx/misc/fast_ship.2bpp
Binary files differ
diff --git a/gfx/misc/gbc_only.lz b/gfx/misc/gbc_only.lz
new file mode 100644
index 000000000..9533fbe6d
--- /dev/null
+++ b/gfx/misc/gbc_only.lz
Binary files differ
diff --git a/gfx/mobile/havewant.2bpp b/gfx/mobile/havewant.2bpp
new file mode 100644
index 000000000..02cb8bb2c
--- /dev/null
+++ b/gfx/mobile/havewant.2bpp
Binary files differ
diff --git a/gfx/mobile/hp.1bpp b/gfx/mobile/hp.1bpp
new file mode 100644
index 000000000..6ba57017b
--- /dev/null
+++ b/gfx/mobile/hp.1bpp
Binary files differ
diff --git a/gfx/mobile/lv.1bpp b/gfx/mobile/lv.1bpp
new file mode 100644
index 000000000..467a12dea
--- /dev/null
+++ b/gfx/mobile/lv.1bpp
Binary files differ
diff --git a/gfx/mobile/pokemon_news.2bpp b/gfx/mobile/pokemon_news.2bpp
new file mode 100644
index 000000000..cb67b634e
--- /dev/null
+++ b/gfx/mobile/pokemon_news.2bpp
Binary files differ
diff --git a/gfx/mobile/select.2bpp b/gfx/mobile/select.2bpp
new file mode 100644
index 000000000..53144abf9
--- /dev/null
+++ b/gfx/mobile/select.2bpp
Binary files differ
diff --git a/gfx/pics.asm b/gfx/pics.asm
new file mode 100644
index 000000000..375d28ac5
--- /dev/null
+++ b/gfx/pics.asm
@@ -0,0 +1,798 @@
+INCLUDE "includes.asm"
+
+
+SECTION "Pic Pointers", ROMX, BANK[PIC_POINTERS]
+
+PicPointers:
+INCLUDE "gfx/pics/pic_pointers.asm"
+
+
+SECTION "Unown Pic Pointers", ROMX, BANK[UNOWN_PIC_POINTERS]
+
+UnownPicPointers:
+INCLUDE "gfx/pics/unown_pic_pointers.asm"
+
+
+SECTION "Trainer Pic Pointers", ROMX, BANK[TRAINER_PIC_POINTERS]
+
+TrainerPicPointers:
+INCLUDE "gfx/pics/trainer_pic_pointers.asm"
+
+
+
+SECTION "Pics 1", ROMX, BANK[PICS_1]
+
+HoOhFrontpic: INCBIN "gfx/pics/250/front.lz"
+MachampFrontpic: INCBIN "gfx/pics/068/front.lz"
+NinetalesFrontpic: INCBIN "gfx/pics/038/front.lz"
+FeraligatrFrontpic: INCBIN "gfx/pics/160/front.lz"
+NidokingFrontpic: INCBIN "gfx/pics/034/front.lz"
+RaikouFrontpic: INCBIN "gfx/pics/243/front.lz"
+LugiaFrontpic: INCBIN "gfx/pics/249/front.lz"
+ArticunoFrontpic: INCBIN "gfx/pics/144/front.lz"
+TaurosFrontpic: INCBIN "gfx/pics/128/front.lz"
+VenusaurFrontpic: INCBIN "gfx/pics/003/front.lz"
+EnteiFrontpic: INCBIN "gfx/pics/244/front.lz"
+SuicuneFrontpic: INCBIN "gfx/pics/245/front.lz"
+TyphlosionFrontpic: INCBIN "gfx/pics/157/front.lz"
+; 123ffa
+
+
+SECTION "Pics 2", ROMX, BANK[PICS_2]
+
+BlastoiseFrontpic: INCBIN "gfx/pics/009/front.lz"
+RapidashFrontpic: INCBIN "gfx/pics/078/front.lz"
+MeganiumFrontpic: INCBIN "gfx/pics/154/front.lz"
+NidoqueenFrontpic: INCBIN "gfx/pics/031/front.lz"
+HitmonleeFrontpic: INCBIN "gfx/pics/106/front.lz"
+ScizorFrontpic: INCBIN "gfx/pics/212/front.lz"
+BeedrillFrontpic: INCBIN "gfx/pics/015/front.lz"
+ArcanineFrontpic: INCBIN "gfx/pics/059/front.lz"
+TyranitarFrontpic: INCBIN "gfx/pics/248/front.lz"
+MoltresFrontpic: INCBIN "gfx/pics/146/front.lz"
+ZapdosFrontpic: INCBIN "gfx/pics/145/front.lz"
+ArbokFrontpic: INCBIN "gfx/pics/024/front.lz"
+MewtwoFrontpic: INCBIN "gfx/pics/150/front.lz"
+FearowFrontpic: INCBIN "gfx/pics/022/front.lz"
+CharizardFrontpic: INCBIN "gfx/pics/006/front.lz"
+QuilavaFrontpic: INCBIN "gfx/pics/156/front.lz"
+; 127ffe
+
+
+SECTION "Pics 3", ROMX, BANK[PICS_3]
+
+SteelixFrontpic: INCBIN "gfx/pics/208/front.lz"
+AlakazamFrontpic: INCBIN "gfx/pics/065/front.lz"
+GyaradosFrontpic: INCBIN "gfx/pics/130/front.lz"
+KangaskhanFrontpic: INCBIN "gfx/pics/115/front.lz"
+RhydonFrontpic: INCBIN "gfx/pics/112/front.lz"
+GolduckFrontpic: INCBIN "gfx/pics/055/front.lz"
+RhyhornFrontpic: INCBIN "gfx/pics/111/front.lz"
+PidgeotFrontpic: INCBIN "gfx/pics/018/front.lz"
+SlowbroFrontpic: INCBIN "gfx/pics/080/front.lz"
+ButterfreeFrontpic: INCBIN "gfx/pics/012/front.lz"
+WeezingFrontpic: INCBIN "gfx/pics/110/front.lz"
+CloysterFrontpic: INCBIN "gfx/pics/091/front.lz"
+SkarmoryFrontpic: INCBIN "gfx/pics/227/front.lz"
+DewgongFrontpic: INCBIN "gfx/pics/087/front.lz"
+VictreebelFrontpic: INCBIN "gfx/pics/071/front.lz"
+RaichuFrontpic: INCBIN "gfx/pics/026/front.lz"
+PrimeapeFrontpic: INCBIN "gfx/pics/057/front.lz"
+OmastarBackpic: INCBIN "gfx/pics/139/back.lz"
+; 12bffe
+
+
+SECTION "Pics 4", ROMX, BANK[PICS_4]
+
+DodrioFrontpic: INCBIN "gfx/pics/085/front.lz"
+SlowkingFrontpic: INCBIN "gfx/pics/199/front.lz"
+HitmontopFrontpic: INCBIN "gfx/pics/237/front.lz"
+OnixFrontpic: INCBIN "gfx/pics/095/front.lz"
+BlisseyFrontpic: INCBIN "gfx/pics/242/front.lz"
+MachokeFrontpic: INCBIN "gfx/pics/067/front.lz"
+DragoniteFrontpic: INCBIN "gfx/pics/149/front.lz"
+PoliwrathFrontpic: INCBIN "gfx/pics/062/front.lz"
+ScytherFrontpic: INCBIN "gfx/pics/123/front.lz"
+AerodactylFrontpic: INCBIN "gfx/pics/142/front.lz"
+SeakingFrontpic: INCBIN "gfx/pics/119/front.lz"
+MukFrontpic: INCBIN "gfx/pics/089/front.lz"
+CroconawFrontpic: INCBIN "gfx/pics/159/front.lz"
+HypnoFrontpic: INCBIN "gfx/pics/097/front.lz"
+NidorinoFrontpic: INCBIN "gfx/pics/033/front.lz"
+SandslashFrontpic: INCBIN "gfx/pics/028/front.lz"
+JolteonFrontpic: INCBIN "gfx/pics/135/front.lz"
+DonphanFrontpic: INCBIN "gfx/pics/232/front.lz"
+PinsirFrontpic: INCBIN "gfx/pics/127/front.lz"
+UnownEFrontpic: INCBIN "gfx/pics/201e/front.lz"
+; 130000
+
+
+SECTION "Pics 5", ROMX, BANK[PICS_5]
+
+GolbatFrontpic: INCBIN "gfx/pics/042/front.lz"
+KinglerFrontpic: INCBIN "gfx/pics/099/front.lz"
+ExeggcuteFrontpic: INCBIN "gfx/pics/102/front.lz"
+MagcargoFrontpic: INCBIN "gfx/pics/219/front.lz"
+PersianFrontpic: INCBIN "gfx/pics/053/front.lz"
+StantlerFrontpic: INCBIN "gfx/pics/234/front.lz"
+RaticateFrontpic: INCBIN "gfx/pics/020/front.lz"
+VenomothFrontpic: INCBIN "gfx/pics/049/front.lz"
+PolitoedFrontpic: INCBIN "gfx/pics/186/front.lz"
+ElectabuzzFrontpic: INCBIN "gfx/pics/125/front.lz"
+MantineFrontpic: INCBIN "gfx/pics/226/front.lz"
+LickitungFrontpic: INCBIN "gfx/pics/108/front.lz"
+KingdraFrontpic: INCBIN "gfx/pics/230/front.lz"
+CharmeleonFrontpic: INCBIN "gfx/pics/005/front.lz"
+KadabraFrontpic: INCBIN "gfx/pics/064/front.lz"
+ExeggutorFrontpic: INCBIN "gfx/pics/103/front.lz"
+GastlyFrontpic: INCBIN "gfx/pics/092/front.lz"
+AzumarillFrontpic: INCBIN "gfx/pics/184/front.lz"
+ParasectFrontpic: INCBIN "gfx/pics/047/front.lz"
+MrMimeFrontpic: INCBIN "gfx/pics/122/front.lz"
+HeracrossFrontpic: INCBIN "gfx/pics/214/front.lz"
+; 133fff
+
+
+SECTION "Pics 6", ROMX, BANK[PICS_6]
+
+AriadosFrontpic: INCBIN "gfx/pics/168/front.lz"
+NoctowlFrontpic: INCBIN "gfx/pics/164/front.lz"
+WartortleFrontpic: INCBIN "gfx/pics/008/front.lz"
+LaprasFrontpic: INCBIN "gfx/pics/131/front.lz"
+GolemFrontpic: INCBIN "gfx/pics/076/front.lz"
+PoliwhirlFrontpic: INCBIN "gfx/pics/061/front.lz"
+UrsaringFrontpic: INCBIN "gfx/pics/217/front.lz"
+HoundoomFrontpic: INCBIN "gfx/pics/229/front.lz"
+KabutopsFrontpic: INCBIN "gfx/pics/141/front.lz"
+AmpharosFrontpic: INCBIN "gfx/pics/181/front.lz"
+NidorinaFrontpic: INCBIN "gfx/pics/030/front.lz"
+FlareonFrontpic: INCBIN "gfx/pics/136/front.lz"
+FarfetchDFrontpic: INCBIN "gfx/pics/083/front.lz"
+VileplumeFrontpic: INCBIN "gfx/pics/045/front.lz"
+BayleefFrontpic: INCBIN "gfx/pics/153/front.lz"
+MagmarFrontpic: INCBIN "gfx/pics/126/front.lz"
+TentacruelFrontpic: INCBIN "gfx/pics/073/front.lz"
+ElekidFrontpic: INCBIN "gfx/pics/239/front.lz"
+JumpluffFrontpic: INCBIN "gfx/pics/189/front.lz"
+MarowakFrontpic: INCBIN "gfx/pics/105/front.lz"
+VulpixFrontpic: INCBIN "gfx/pics/037/front.lz"
+GligarFrontpic: INCBIN "gfx/pics/207/front.lz"
+DunsparceFrontpic: INCBIN "gfx/pics/206/front.lz"
+; 137fff
+
+
+SECTION "Pics 7", ROMX, BANK[PICS_7]
+
+VaporeonFrontpic: INCBIN "gfx/pics/134/front.lz"
+GirafarigFrontpic: INCBIN "gfx/pics/203/front.lz"
+DrowzeeFrontpic: INCBIN "gfx/pics/096/front.lz"
+SneaselFrontpic: INCBIN "gfx/pics/215/front.lz"
+BellossomFrontpic: INCBIN "gfx/pics/182/front.lz"
+SnorlaxFrontpic: INCBIN "gfx/pics/143/front.lz"
+WigglytuffFrontpic: INCBIN "gfx/pics/040/front.lz"
+YanmaFrontpic: INCBIN "gfx/pics/193/front.lz"
+SmeargleFrontpic: INCBIN "gfx/pics/235/front.lz"
+ClefableFrontpic: INCBIN "gfx/pics/036/front.lz"
+PonytaFrontpic: INCBIN "gfx/pics/077/front.lz"
+MurkrowFrontpic: INCBIN "gfx/pics/198/front.lz"
+GravelerFrontpic: INCBIN "gfx/pics/075/front.lz"
+StarmieFrontpic: INCBIN "gfx/pics/121/front.lz"
+PidgeottoFrontpic: INCBIN "gfx/pics/017/front.lz"
+LedybaFrontpic: INCBIN "gfx/pics/165/front.lz"
+GengarFrontpic: INCBIN "gfx/pics/094/front.lz"
+OmastarFrontpic: INCBIN "gfx/pics/139/front.lz"
+PiloswineFrontpic: INCBIN "gfx/pics/221/front.lz"
+DugtrioFrontpic: INCBIN "gfx/pics/051/front.lz"
+MagnetonFrontpic: INCBIN "gfx/pics/082/front.lz"
+DragonairFrontpic: INCBIN "gfx/pics/148/front.lz"
+ForretressFrontpic: INCBIN "gfx/pics/205/front.lz"
+TogeticFrontpic: INCBIN "gfx/pics/176/front.lz"
+KangaskhanBackpic: INCBIN "gfx/pics/115/back.lz"
+; 13c000
+
+
+SECTION "Pics 8", ROMX, BANK[PICS_8]
+
+SeelFrontpic: INCBIN "gfx/pics/086/front.lz"
+CrobatFrontpic: INCBIN "gfx/pics/169/front.lz"
+ChanseyFrontpic: INCBIN "gfx/pics/113/front.lz"
+TangelaFrontpic: INCBIN "gfx/pics/114/front.lz"
+SnubbullFrontpic: INCBIN "gfx/pics/209/front.lz"
+GranbullFrontpic: INCBIN "gfx/pics/210/front.lz"
+MiltankFrontpic: INCBIN "gfx/pics/241/front.lz"
+HaunterFrontpic: INCBIN "gfx/pics/093/front.lz"
+SunfloraFrontpic: INCBIN "gfx/pics/192/front.lz"
+UmbreonFrontpic: INCBIN "gfx/pics/197/front.lz"
+ChikoritaFrontpic: INCBIN "gfx/pics/152/front.lz"
+GoldeenFrontpic: INCBIN "gfx/pics/118/front.lz"
+EspeonFrontpic: INCBIN "gfx/pics/196/front.lz"
+XatuFrontpic: INCBIN "gfx/pics/178/front.lz"
+MewFrontpic: INCBIN "gfx/pics/151/front.lz"
+OctilleryFrontpic: INCBIN "gfx/pics/224/front.lz"
+JynxFrontpic: INCBIN "gfx/pics/124/front.lz"
+WobbuffetFrontpic: INCBIN "gfx/pics/202/front.lz"
+DelibirdFrontpic: INCBIN "gfx/pics/225/front.lz"
+LedianFrontpic: INCBIN "gfx/pics/166/front.lz"
+GloomFrontpic: INCBIN "gfx/pics/044/front.lz"
+FlaaffyFrontpic: INCBIN "gfx/pics/180/front.lz"
+IvysaurFrontpic: INCBIN "gfx/pics/002/front.lz"
+FurretFrontpic: INCBIN "gfx/pics/162/front.lz"
+CyndaquilFrontpic: INCBIN "gfx/pics/155/front.lz"
+HitmonchanFrontpic: INCBIN "gfx/pics/107/front.lz"
+QuagsireFrontpic: INCBIN "gfx/pics/195/front.lz"
+; 13fff7
+
+
+SECTION "Pics 9", ROMX, BANK[PICS_9]
+
+EkansFrontpic: INCBIN "gfx/pics/023/front.lz"
+SudowoodoFrontpic: INCBIN "gfx/pics/185/front.lz"
+PikachuFrontpic: INCBIN "gfx/pics/025/front.lz"
+SeadraFrontpic: INCBIN "gfx/pics/117/front.lz"
+MagbyFrontpic: INCBIN "gfx/pics/240/front.lz"
+WeepinbellFrontpic: INCBIN "gfx/pics/070/front.lz"
+TotodileFrontpic: INCBIN "gfx/pics/158/front.lz"
+CorsolaFrontpic: INCBIN "gfx/pics/222/front.lz"
+FirebreatherPic: INCBIN "gfx/trainers/047.lz"
+MachopFrontpic: INCBIN "gfx/pics/066/front.lz"
+ChinchouFrontpic: INCBIN "gfx/pics/170/front.lz"
+RattataFrontpic: INCBIN "gfx/pics/019/front.lz"
+ChampionPic: INCBIN "gfx/trainers/015.lz"
+SpearowFrontpic: INCBIN "gfx/pics/021/front.lz"
+MagikarpFrontpic: INCBIN "gfx/pics/129/front.lz"
+CharmanderFrontpic: INCBIN "gfx/pics/004/front.lz"
+CuboneFrontpic: INCBIN "gfx/pics/104/front.lz"
+BlackbeltTPic: INCBIN "gfx/trainers/049.lz"
+BikerPic: INCBIN "gfx/trainers/044.lz"
+NidoranMFrontpic: INCBIN "gfx/pics/032/front.lz"
+PorygonFrontpic: INCBIN "gfx/pics/137/front.lz"
+BrunoPic: INCBIN "gfx/trainers/012.lz"
+GrimerFrontpic: INCBIN "gfx/pics/088/front.lz"
+StaryuFrontpic: INCBIN "gfx/pics/120/front.lz"
+HikerPic: INCBIN "gfx/trainers/043.lz"
+MeowthFrontpic: INCBIN "gfx/pics/052/front.lz"
+Porygon2Frontpic: INCBIN "gfx/pics/233/front.lz"
+SandshrewFrontpic: INCBIN "gfx/pics/027/front.lz"
+NidoranFFrontpic: INCBIN "gfx/pics/029/front.lz"
+PidgeyFrontpic: INCBIN "gfx/pics/016/front.lz"
+ParasectBackpic: INCBIN "gfx/pics/047/back.lz"
+; 144000
+
+
+SECTION "Pics 10", ROMX, BANK[PICS_10]
+
+MisdreavusFrontpic: INCBIN "gfx/pics/200/front.lz"
+HoundourFrontpic: INCBIN "gfx/pics/228/front.lz"
+MankeyFrontpic: INCBIN "gfx/pics/056/front.lz"
+CelebiFrontpic: INCBIN "gfx/pics/251/front.lz"
+MediumPic: INCBIN "gfx/trainers/056.lz"
+PinecoFrontpic: INCBIN "gfx/pics/204/front.lz"
+KrabbyFrontpic: INCBIN "gfx/pics/098/front.lz"
+FisherPic: INCBIN "gfx/trainers/036.lz"
+JigglypuffFrontpic: INCBIN "gfx/pics/039/front.lz"
+ParasFrontpic: INCBIN "gfx/pics/046/front.lz"
+NidokingBackpic: INCBIN "gfx/pics/034/back.lz"
+PokefanmPic: INCBIN "gfx/trainers/058.lz"
+BoarderPic: INCBIN "gfx/trainers/057.lz"
+PsyduckFrontpic: INCBIN "gfx/pics/054/front.lz"
+SquirtleFrontpic: INCBIN "gfx/pics/007/front.lz"
+MachampBackpic: INCBIN "gfx/pics/068/back.lz"
+KoffingFrontpic: INCBIN "gfx/pics/109/front.lz"
+VenonatFrontpic: INCBIN "gfx/pics/048/front.lz"
+ExeggutorBackpic: INCBIN "gfx/pics/103/back.lz"
+LanturnFrontpic: INCBIN "gfx/pics/171/front.lz"
+TyrogueFrontpic: INCBIN "gfx/pics/236/front.lz"
+SkiploomFrontpic: INCBIN "gfx/pics/188/front.lz"
+MareepFrontpic: INCBIN "gfx/pics/179/front.lz"
+ChuckPic: INCBIN "gfx/trainers/006.lz"
+EeveeFrontpic: INCBIN "gfx/pics/133/front.lz"
+ButterfreeBackpic: INCBIN "gfx/pics/012/back.lz"
+ZubatFrontpic: INCBIN "gfx/pics/041/front.lz"
+KimonoGirlPic: INCBIN "gfx/trainers/059.lz"
+AlakazamBackpic: INCBIN "gfx/pics/065/back.lz"
+AipomFrontpic: INCBIN "gfx/pics/190/front.lz"
+AbraFrontpic: INCBIN "gfx/pics/063/front.lz"
+HitmontopBackpic: INCBIN "gfx/pics/237/back.lz"
+CloysterBackpic: INCBIN "gfx/pics/091/back.lz"
+HoothootFrontpic: INCBIN "gfx/pics/163/front.lz"
+UnownFBackpic: INCBIN "gfx/pics/201f/back.lz"
+; 148000
+
+
+SECTION "Pics 11", ROMX, BANK[PICS_11]
+
+DodrioBackpic: INCBIN "gfx/pics/085/back.lz"
+ClefairyFrontpic: INCBIN "gfx/pics/035/front.lz"
+SlugmaFrontpic: INCBIN "gfx/pics/218/front.lz"
+GrowlitheFrontpic: INCBIN "gfx/pics/058/front.lz"
+SlowpokeFrontpic: INCBIN "gfx/pics/079/front.lz"
+SmoochumFrontpic: INCBIN "gfx/pics/238/front.lz"
+JugglerPic: INCBIN "gfx/trainers/048.lz"
+MarillFrontpic: INCBIN "gfx/pics/183/front.lz"
+GuitaristPic: INCBIN "gfx/trainers/042.lz"
+PokefanfPic: INCBIN "gfx/trainers/061.lz"
+VenomothBackpic: INCBIN "gfx/pics/049/back.lz"
+ClairPic: INCBIN "gfx/trainers/007.lz"
+PokemaniacPic: INCBIN "gfx/trainers/029.lz"
+OmanyteFrontpic: INCBIN "gfx/pics/138/front.lz"
+SkierPic: INCBIN "gfx/trainers/032.lz"
+PupitarFrontpic: INCBIN "gfx/pics/247/front.lz"
+BellsproutFrontpic: INCBIN "gfx/pics/069/front.lz"
+ShellderFrontpic: INCBIN "gfx/pics/090/front.lz"
+TentacoolFrontpic: INCBIN "gfx/pics/072/front.lz"
+CleffaFrontpic: INCBIN "gfx/pics/173/front.lz"
+GyaradosBackpic: INCBIN "gfx/pics/130/back.lz"
+NinetalesBackpic: INCBIN "gfx/pics/038/back.lz"
+YanmaBackpic: INCBIN "gfx/pics/193/back.lz"
+PinsirBackpic: INCBIN "gfx/pics/127/back.lz"
+LassPic: INCBIN "gfx/trainers/024.lz"
+ClefableBackpic: INCBIN "gfx/pics/036/back.lz"
+DoduoFrontpic: INCBIN "gfx/pics/084/front.lz"
+FeraligatrBackpic: INCBIN "gfx/pics/160/back.lz"
+DratiniFrontpic: INCBIN "gfx/pics/147/front.lz"
+MagnetonBackpic: INCBIN "gfx/pics/082/back.lz"
+QwilfishFrontpic: INCBIN "gfx/pics/211/front.lz"
+SuicuneBackpic: INCBIN "gfx/pics/245/back.lz"
+SlowkingBackpic: INCBIN "gfx/pics/199/back.lz"
+ElekidBackpic: INCBIN "gfx/pics/239/back.lz"
+CelebiBackpic: INCBIN "gfx/pics/251/back.lz"
+KrabbyBackpic: INCBIN "gfx/pics/098/back.lz"
+BugCatcherPic: INCBIN "gfx/trainers/035.lz"
+SnorlaxBackpic: INCBIN "gfx/pics/143/back.lz"
+; 14bffb
+
+
+SECTION "Pics 12", ROMX, BANK[PICS_12]
+
+VenusaurBackpic: INCBIN "gfx/pics/003/back.lz"
+MoltresBackpic: INCBIN "gfx/pics/146/back.lz"
+SunfloraBackpic: INCBIN "gfx/pics/192/back.lz"
+PhanpyFrontpic: INCBIN "gfx/pics/231/front.lz"
+RhydonBackpic: INCBIN "gfx/pics/112/back.lz"
+LarvitarFrontpic: INCBIN "gfx/pics/246/front.lz"
+TyranitarBackpic: INCBIN "gfx/pics/248/back.lz"
+SandslashBackpic: INCBIN "gfx/pics/028/back.lz"
+SeadraBackpic: INCBIN "gfx/pics/117/back.lz"
+TwinsPic: INCBIN "gfx/trainers/060.lz"
+FarfetchDBackpic: INCBIN "gfx/pics/083/back.lz"
+NidoranMBackpic: INCBIN "gfx/pics/032/back.lz"
+LedybaBackpic: INCBIN "gfx/pics/165/back.lz"
+CyndaquilBackpic: INCBIN "gfx/pics/155/back.lz"
+BayleefBackpic: INCBIN "gfx/pics/153/back.lz"
+OddishFrontpic: INCBIN "gfx/pics/043/front.lz"
+RapidashBackpic: INCBIN "gfx/pics/078/back.lz"
+DoduoBackpic: INCBIN "gfx/pics/084/back.lz"
+HoppipFrontpic: INCBIN "gfx/pics/187/front.lz"
+MankeyBackpic: INCBIN "gfx/pics/056/back.lz"
+MagmarBackpic: INCBIN "gfx/pics/126/back.lz"
+HypnoBackpic: INCBIN "gfx/pics/097/back.lz"
+QuilavaBackpic: INCBIN "gfx/pics/156/back.lz"
+CroconawBackpic: INCBIN "gfx/pics/159/back.lz"
+SandshrewBackpic: INCBIN "gfx/pics/027/back.lz"
+SailorPic: INCBIN "gfx/trainers/039.lz"
+BeautyPic: INCBIN "gfx/trainers/028.lz"
+ShellderBackpic: INCBIN "gfx/pics/090/back.lz"
+ZubatBackpic: INCBIN "gfx/pics/041/back.lz"
+TeddiursaFrontpic: INCBIN "gfx/pics/216/front.lz"
+CuboneBackpic: INCBIN "gfx/pics/104/back.lz"
+GruntmPic: INCBIN "gfx/trainers/030.lz"
+GloomBackpic: INCBIN "gfx/pics/044/back.lz"
+MagcargoBackpic: INCBIN "gfx/pics/219/back.lz"
+KabutopsBackpic: INCBIN "gfx/pics/141/back.lz"
+BeedrillBackpic: INCBIN "gfx/pics/015/back.lz"
+ArcanineBackpic: INCBIN "gfx/pics/059/back.lz"
+FlareonBackpic: INCBIN "gfx/pics/136/back.lz"
+GoldeenBackpic: INCBIN "gfx/pics/118/back.lz"
+BulbasaurFrontpic: INCBIN "gfx/pics/001/front.lz"
+StarmieBackpic: INCBIN "gfx/pics/121/back.lz"
+; 150000
+
+
+SECTION "Pics 13", ROMX, BANK[PICS_13]
+
+OmanyteBackpic: INCBIN "gfx/pics/138/back.lz"
+PidgeyBackpic: INCBIN "gfx/pics/016/back.lz"
+ScientistPic: INCBIN "gfx/trainers/019.lz"
+QwilfishBackpic: INCBIN "gfx/pics/211/back.lz"
+GligarBackpic: INCBIN "gfx/pics/207/back.lz"
+TyphlosionBackpic: INCBIN "gfx/pics/157/back.lz"
+CharmeleonBackpic: INCBIN "gfx/pics/005/back.lz"
+NidoqueenBackpic: INCBIN "gfx/pics/031/back.lz"
+PichuFrontpic: INCBIN "gfx/pics/172/front.lz"
+ElectabuzzBackpic: INCBIN "gfx/pics/125/back.lz"
+LedianBackpic: INCBIN "gfx/pics/166/back.lz"
+PupitarBackpic: INCBIN "gfx/pics/247/back.lz"
+HeracrossBackpic: INCBIN "gfx/pics/214/back.lz"
+UnownDFrontpic: INCBIN "gfx/pics/201d/front.lz"
+MiltankBackpic: INCBIN "gfx/pics/241/back.lz"
+SteelixBackpic: INCBIN "gfx/pics/208/back.lz"
+PersianBackpic: INCBIN "gfx/pics/053/back.lz"
+LtSurgePic: INCBIN "gfx/trainers/018.lz"
+TeacherPic: INCBIN "gfx/trainers/033.lz"
+EggPic: INCBIN "gfx/pics/egg/front.lz"
+EeveeBackpic: INCBIN "gfx/pics/133/back.lz"
+ShuckleFrontpic: INCBIN "gfx/pics/213/front.lz"
+PonytaBackpic: INCBIN "gfx/pics/077/back.lz"
+RemoraidFrontpic: INCBIN "gfx/pics/223/front.lz"
+PoliwagFrontpic: INCBIN "gfx/pics/060/front.lz"
+OnixBackpic: INCBIN "gfx/pics/095/back.lz"
+KoffingBackpic: INCBIN "gfx/pics/109/back.lz"
+BirdKeeperPic: INCBIN "gfx/trainers/023.lz"
+FalknerPic: INCBIN "gfx/trainers/000.lz"
+KarenPic: INCBIN "gfx/trainers/013.lz"
+NidorinaBackpic: INCBIN "gfx/pics/030/back.lz"
+TentacruelBackpic: INCBIN "gfx/pics/073/back.lz"
+GrowlitheBackpic: INCBIN "gfx/pics/058/back.lz"
+KogaPic: INCBIN "gfx/trainers/014.lz"
+MachokeBackpic: INCBIN "gfx/pics/067/back.lz"
+RaichuBackpic: INCBIN "gfx/pics/026/back.lz"
+PoliwrathBackpic: INCBIN "gfx/pics/062/back.lz"
+SwimmermPic: INCBIN "gfx/trainers/037.lz"
+SunkernFrontpic: INCBIN "gfx/pics/191/front.lz"
+NidorinoBackpic: INCBIN "gfx/pics/033/back.lz"
+MysticalmanPic: INCBIN "gfx/trainers/066.lz"
+CooltrainerfPic: INCBIN "gfx/trainers/027.lz"
+ElectrodeFrontpic: INCBIN "gfx/pics/101/front.lz"
+; 153fe3
+
+
+SECTION "Pics 14", ROMX, BANK[PICS_14]
+
+SudowoodoBackpic: INCBIN "gfx/pics/185/back.lz"
+FlaaffyBackpic: INCBIN "gfx/pics/180/back.lz"
+SentretFrontpic: INCBIN "gfx/pics/161/front.lz"
+TogeticBackpic: INCBIN "gfx/pics/176/back.lz"
+BugsyPic: INCBIN "gfx/trainers/002.lz"
+MarowakBackpic: INCBIN "gfx/pics/105/back.lz"
+GeodudeBackpic: INCBIN "gfx/pics/074/back.lz"
+ScytherBackpic: INCBIN "gfx/pics/123/back.lz"
+VileplumeBackpic: INCBIN "gfx/pics/045/back.lz"
+HitmonchanBackpic: INCBIN "gfx/pics/107/back.lz"
+JumpluffBackpic: INCBIN "gfx/pics/189/back.lz"
+CooltrainermPic: INCBIN "gfx/trainers/026.lz"
+BlastoiseBackpic: INCBIN "gfx/pics/009/back.lz"
+MisdreavusBackpic: INCBIN "gfx/pics/200/back.lz"
+TyrogueBackpic: INCBIN "gfx/pics/236/back.lz"
+GeodudeFrontpic: INCBIN "gfx/pics/074/front.lz"
+ScizorBackpic: INCBIN "gfx/pics/212/back.lz"
+GirafarigBackpic: INCBIN "gfx/pics/203/back.lz"
+StantlerBackpic: INCBIN "gfx/pics/234/back.lz"
+SmeargleBackpic: INCBIN "gfx/pics/235/back.lz"
+CharizardBackpic: INCBIN "gfx/pics/006/back.lz"
+KadabraBackpic: INCBIN "gfx/pics/064/back.lz"
+PrimeapeBackpic: INCBIN "gfx/pics/057/back.lz"
+FurretBackpic: INCBIN "gfx/pics/162/back.lz"
+WartortleBackpic: INCBIN "gfx/pics/008/back.lz"
+ExeggcuteBackpic: INCBIN "gfx/pics/102/back.lz"
+IgglybuffFrontpic: INCBIN "gfx/pics/174/front.lz"
+RaticateBackpic: INCBIN "gfx/pics/020/back.lz"
+VulpixBackpic: INCBIN "gfx/pics/037/back.lz"
+EkansBackpic: INCBIN "gfx/pics/023/back.lz"
+SeakingBackpic: INCBIN "gfx/pics/119/back.lz"
+BurglarPic: INCBIN "gfx/trainers/046.lz"
+PsyduckBackpic: INCBIN "gfx/pics/054/back.lz"
+PikachuBackpic: INCBIN "gfx/pics/025/back.lz"
+KabutoFrontpic: INCBIN "gfx/pics/140/front.lz"
+MareepBackpic: INCBIN "gfx/pics/179/back.lz"
+RemoraidBackpic: INCBIN "gfx/pics/223/back.lz"
+DittoFrontpic: INCBIN "gfx/pics/132/front.lz"
+KingdraBackpic: INCBIN "gfx/pics/230/back.lz"
+CamperPic: INCBIN "gfx/trainers/053.lz"
+WooperFrontpic: INCBIN "gfx/pics/194/front.lz"
+ClefairyBackpic: INCBIN "gfx/pics/035/back.lz"
+VenonatBackpic: INCBIN "gfx/pics/048/back.lz"
+BellossomBackpic: INCBIN "gfx/pics/182/back.lz"
+Rival1Pic: INCBIN "gfx/trainers/008.lz"
+SwinubBackpic: INCBIN "gfx/pics/220/back.lz"
+; 158000
+
+
+SECTION "Pics 15", ROMX, BANK[PICS_15]
+
+MewtwoBackpic: INCBIN "gfx/pics/150/back.lz"
+PokemonProfPic: INCBIN "gfx/trainers/009.lz"
+CalPic: INCBIN "gfx/trainers/011.lz"
+SwimmerfPic: INCBIN "gfx/trainers/038.lz"
+DiglettFrontpic: INCBIN "gfx/pics/050/front.lz"
+OfficerPic: INCBIN "gfx/trainers/064.lz"
+MukBackpic: INCBIN "gfx/pics/089/back.lz"
+DelibirdBackpic: INCBIN "gfx/pics/225/back.lz"
+SabrinaPic: INCBIN "gfx/trainers/034.lz"
+MagikarpBackpic: INCBIN "gfx/pics/129/back.lz"
+AriadosBackpic: INCBIN "gfx/pics/168/back.lz"
+SneaselBackpic: INCBIN "gfx/pics/215/back.lz"
+UmbreonBackpic: INCBIN "gfx/pics/197/back.lz"
+MurkrowBackpic: INCBIN "gfx/pics/198/back.lz"
+IvysaurBackpic: INCBIN "gfx/pics/002/back.lz"
+SlowbroBackpic: INCBIN "gfx/pics/080/back.lz"
+PsychicTPic: INCBIN "gfx/trainers/051.lz"
+GolduckBackpic: INCBIN "gfx/pics/055/back.lz"
+WeezingBackpic: INCBIN "gfx/pics/110/back.lz"
+EnteiBackpic: INCBIN "gfx/pics/244/back.lz"
+GruntfPic: INCBIN "gfx/trainers/065.lz"
+HorseaFrontpic: INCBIN "gfx/pics/116/front.lz"
+PidgeotBackpic: INCBIN "gfx/pics/018/back.lz"
+HoOhBackpic: INCBIN "gfx/pics/250/back.lz"
+PoliwhirlBackpic: INCBIN "gfx/pics/061/back.lz"
+MewBackpic: INCBIN "gfx/pics/151/back.lz"
+MachopBackpic: INCBIN "gfx/pics/066/back.lz"
+AbraBackpic: INCBIN "gfx/pics/063/back.lz"
+AerodactylBackpic: INCBIN "gfx/pics/142/back.lz"
+KakunaFrontpic: INCBIN "gfx/pics/014/front.lz"
+DugtrioBackpic: INCBIN "gfx/pics/051/back.lz"
+WeepinbellBackpic: INCBIN "gfx/pics/070/back.lz"
+NidoranFBackpic: INCBIN "gfx/pics/029/back.lz"
+GravelerBackpic: INCBIN "gfx/pics/075/back.lz"
+AipomBackpic: INCBIN "gfx/pics/190/back.lz"
+EspeonBackpic: INCBIN "gfx/pics/196/back.lz"
+WeedleFrontpic: INCBIN "gfx/pics/013/front.lz"
+TotodileBackpic: INCBIN "gfx/pics/158/back.lz"
+SnubbullBackpic: INCBIN "gfx/pics/209/back.lz"
+KinglerBackpic: INCBIN "gfx/pics/099/back.lz"
+GengarBackpic: INCBIN "gfx/pics/094/back.lz"
+RattataBackpic: INCBIN "gfx/pics/019/back.lz"
+YoungsterPic: INCBIN "gfx/trainers/021.lz"
+WillPic: INCBIN "gfx/trainers/010.lz"
+SchoolboyPic: INCBIN "gfx/trainers/022.lz"
+MagnemiteFrontpic: INCBIN "gfx/pics/081/front.lz"
+ErikaPic: INCBIN "gfx/trainers/020.lz"
+JaninePic: INCBIN "gfx/trainers/025.lz"
+MagnemiteBackpic: INCBIN "gfx/pics/081/back.lz"
+; 15bffa
+
+
+SECTION "Pics 16", ROMX, BANK[PICS_16]
+
+HoothootBackpic: INCBIN "gfx/pics/163/back.lz"
+NoctowlBackpic: INCBIN "gfx/pics/164/back.lz"
+MortyPic: INCBIN "gfx/trainers/003.lz"
+SlugmaBackpic: INCBIN "gfx/pics/218/back.lz"
+KabutoBackpic: INCBIN "gfx/pics/140/back.lz"
+VictreebelBackpic: INCBIN "gfx/pics/071/back.lz"
+MeowthBackpic: INCBIN "gfx/pics/052/back.lz"
+MeganiumBackpic: INCBIN "gfx/pics/154/back.lz"
+PicnickerPic: INCBIN "gfx/trainers/052.lz"
+LickitungBackpic: INCBIN "gfx/pics/108/back.lz"
+TogepiFrontpic: INCBIN "gfx/pics/175/front.lz"
+SuperNerdPic: INCBIN "gfx/trainers/040.lz"
+HaunterBackpic: INCBIN "gfx/pics/093/back.lz"
+XatuBackpic: INCBIN "gfx/pics/178/back.lz"
+RedPic: INCBIN "gfx/trainers/062.lz"
+Porygon2Backpic: INCBIN "gfx/pics/233/back.lz"
+JasminePic: INCBIN "gfx/trainers/005.lz"
+PinecoBackpic: INCBIN "gfx/pics/204/back.lz"
+MetapodFrontpic: INCBIN "gfx/pics/011/front.lz"
+SeelBackpic: INCBIN "gfx/pics/086/back.lz"
+QuagsireBackpic: INCBIN "gfx/pics/195/back.lz"
+WhitneyPic: INCBIN "gfx/trainers/001.lz"
+JolteonBackpic: INCBIN "gfx/pics/135/back.lz"
+CaterpieFrontpic: INCBIN "gfx/pics/010/front.lz"
+HoppipBackpic: INCBIN "gfx/pics/187/back.lz"
+BluePic: INCBIN "gfx/trainers/063.lz"
+GranbullBackpic: INCBIN "gfx/pics/210/back.lz"
+GentlemanPic: INCBIN "gfx/trainers/031.lz"
+ExecutivemPic: INCBIN "gfx/trainers/050.lz"
+SpearowBackpic: INCBIN "gfx/pics/021/back.lz"
+SunkernBackpic: INCBIN "gfx/pics/191/back.lz"
+LaprasBackpic: INCBIN "gfx/pics/131/back.lz"
+MagbyBackpic: INCBIN "gfx/pics/240/back.lz"
+DragonairBackpic: INCBIN "gfx/pics/148/back.lz"
+ZapdosBackpic: INCBIN "gfx/pics/145/back.lz"
+ChikoritaBackpic: INCBIN "gfx/pics/152/back.lz"
+CorsolaBackpic: INCBIN "gfx/pics/222/back.lz"
+ChinchouBackpic: INCBIN "gfx/pics/170/back.lz"
+ChanseyBackpic: INCBIN "gfx/pics/113/back.lz"
+SkiploomBackpic: INCBIN "gfx/pics/188/back.lz"
+SpinarakFrontpic: INCBIN "gfx/pics/167/front.lz"
+Rival2Pic: INCBIN "gfx/trainers/041.lz"
+UnownWFrontpic: INCBIN "gfx/pics/201w/front.lz"
+CharmanderBackpic: INCBIN "gfx/pics/004/back.lz"
+RhyhornBackpic: INCBIN "gfx/pics/111/back.lz"
+UnownCFrontpic: INCBIN "gfx/pics/201c/front.lz"
+MistyPic: INCBIN "gfx/trainers/017.lz"
+BlainePic: INCBIN "gfx/trainers/045.lz"
+UnownZFrontpic: INCBIN "gfx/pics/201z/front.lz"
+SwinubFrontpic: INCBIN "gfx/pics/220/front.lz"
+LarvitarBackpic: INCBIN "gfx/pics/246/back.lz"
+PorygonBackpic: INCBIN "gfx/pics/137/back.lz"
+UnownHBackpic: INCBIN "gfx/pics/201h/back.lz"
+; 15ffff
+
+
+SECTION "Pics 17", ROMX, BANK[PICS_17]
+
+ParasBackpic: INCBIN "gfx/pics/046/back.lz"
+VaporeonBackpic: INCBIN "gfx/pics/134/back.lz"
+TentacoolBackpic: INCBIN "gfx/pics/072/back.lz"
+ExecutivefPic: INCBIN "gfx/trainers/054.lz"
+BulbasaurBackpic: INCBIN "gfx/pics/001/back.lz"
+SmoochumBackpic: INCBIN "gfx/pics/238/back.lz"
+PichuBackpic: INCBIN "gfx/pics/172/back.lz"
+HoundoomBackpic: INCBIN "gfx/pics/229/back.lz"
+BellsproutBackpic: INCBIN "gfx/pics/069/back.lz"
+GrimerBackpic: INCBIN "gfx/pics/088/back.lz"
+LanturnBackpic: INCBIN "gfx/pics/171/back.lz"
+PidgeottoBackpic: INCBIN "gfx/pics/017/back.lz"
+StaryuBackpic: INCBIN "gfx/pics/120/back.lz"
+MrMimeBackpic: INCBIN "gfx/pics/122/back.lz"
+CaterpieBackpic: INCBIN "gfx/pics/010/back.lz"
+VoltorbFrontpic: INCBIN "gfx/pics/100/front.lz"
+LugiaBackpic: INCBIN "gfx/pics/249/back.lz"
+PrycePic: INCBIN "gfx/trainers/004.lz"
+BrockPic: INCBIN "gfx/trainers/016.lz"
+UnownGFrontpic: INCBIN "gfx/pics/201g/front.lz"
+ArbokBackpic: INCBIN "gfx/pics/024/back.lz"
+PolitoedBackpic: INCBIN "gfx/pics/186/back.lz"
+DragoniteBackpic: INCBIN "gfx/pics/149/back.lz"
+HitmonleeBackpic: INCBIN "gfx/pics/106/back.lz"
+NatuFrontpic: INCBIN "gfx/pics/177/front.lz"
+UrsaringBackpic: INCBIN "gfx/pics/217/back.lz"
+SagePic: INCBIN "gfx/trainers/055.lz"
+TeddiursaBackpic: INCBIN "gfx/pics/216/back.lz"
+PhanpyBackpic: INCBIN "gfx/pics/231/back.lz"
+UnownVFrontpic: INCBIN "gfx/pics/201v/front.lz"
+KakunaBackpic: INCBIN "gfx/pics/014/back.lz"
+WobbuffetBackpic: INCBIN "gfx/pics/202/back.lz"
+TogepiBackpic: INCBIN "gfx/pics/175/back.lz"
+CrobatBackpic: INCBIN "gfx/pics/169/back.lz"
+BlisseyBackpic: INCBIN "gfx/pics/242/back.lz"
+AmpharosBackpic: INCBIN "gfx/pics/181/back.lz"
+IgglybuffBackpic: INCBIN "gfx/pics/174/back.lz"
+AzumarillBackpic: INCBIN "gfx/pics/184/back.lz"
+OctilleryBackpic: INCBIN "gfx/pics/224/back.lz"
+UnownSFrontpic: INCBIN "gfx/pics/201s/front.lz"
+HorseaBackpic: INCBIN "gfx/pics/116/back.lz"
+SentretBackpic: INCBIN "gfx/pics/161/back.lz"
+UnownOFrontpic: INCBIN "gfx/pics/201o/front.lz"
+UnownTFrontpic: INCBIN "gfx/pics/201t/front.lz"
+WigglytuffBackpic: INCBIN "gfx/pics/040/back.lz"
+ArticunoBackpic: INCBIN "gfx/pics/144/back.lz"
+DittoBackpic: INCBIN "gfx/pics/132/back.lz"
+WeedleBackpic: INCBIN "gfx/pics/013/back.lz"
+UnownHFrontpic: INCBIN "gfx/pics/201h/front.lz"
+CleffaBackpic: INCBIN "gfx/pics/173/back.lz"
+DrowzeeBackpic: INCBIN "gfx/pics/096/back.lz"
+GastlyBackpic: INCBIN "gfx/pics/092/back.lz"
+FearowBackpic: INCBIN "gfx/pics/022/back.lz"
+MarillBackpic: INCBIN "gfx/pics/183/back.lz"
+DratiniBackpic: INCBIN "gfx/pics/147/back.lz"
+ElectrodeBackpic: INCBIN "gfx/pics/101/back.lz"
+SkarmoryBackpic: INCBIN "gfx/pics/227/back.lz"
+MetapodBackpic: INCBIN "gfx/pics/011/back.lz"
+JigglypuffBackpic: INCBIN "gfx/pics/039/back.lz"
+OddishBackpic: INCBIN "gfx/pics/043/back.lz"
+UnownDBackpic: INCBIN "gfx/pics/201d/back.lz"
+; 163ffc
+
+
+SECTION "Pics 18", ROMX, BANK[PICS_18]
+
+SpinarakBackpic: INCBIN "gfx/pics/167/back.lz"
+RaikouBackpic: INCBIN "gfx/pics/243/back.lz"
+UnownKFrontpic: INCBIN "gfx/pics/201k/front.lz"
+HoundourBackpic: INCBIN "gfx/pics/228/back.lz"
+PoliwagBackpic: INCBIN "gfx/pics/060/back.lz"
+SquirtleBackpic: INCBIN "gfx/pics/007/back.lz"
+ShuckleBackpic: INCBIN "gfx/pics/213/back.lz"
+DewgongBackpic: INCBIN "gfx/pics/087/back.lz"
+UnownBFrontpic: INCBIN "gfx/pics/201b/front.lz"
+SlowpokeBackpic: INCBIN "gfx/pics/079/back.lz"
+DunsparceBackpic: INCBIN "gfx/pics/206/back.lz"
+DonphanBackpic: INCBIN "gfx/pics/232/back.lz"
+WooperBackpic: INCBIN "gfx/pics/194/back.lz"
+TaurosBackpic: INCBIN "gfx/pics/128/back.lz"
+UnownXFrontpic: INCBIN "gfx/pics/201x/front.lz"
+UnownNFrontpic: INCBIN "gfx/pics/201n/front.lz"
+TangelaBackpic: INCBIN "gfx/pics/114/back.lz"
+VoltorbBackpic: INCBIN "gfx/pics/100/back.lz"
+UnownJFrontpic: INCBIN "gfx/pics/201j/front.lz"
+MantineBackpic: INCBIN "gfx/pics/226/back.lz"
+UnownLFrontpic: INCBIN "gfx/pics/201l/front.lz"
+PiloswineBackpic: INCBIN "gfx/pics/221/back.lz"
+UnownMFrontpic: INCBIN "gfx/pics/201m/front.lz"
+UnownFFrontpic: INCBIN "gfx/pics/201f/front.lz"
+NatuBackpic: INCBIN "gfx/pics/177/back.lz"
+UnownAFrontpic: INCBIN "gfx/pics/201a/front.lz"
+GolemBackpic: INCBIN "gfx/pics/076/back.lz"
+UnownUFrontpic: INCBIN "gfx/pics/201u/front.lz"
+DiglettBackpic: INCBIN "gfx/pics/050/back.lz"
+UnownQFrontpic: INCBIN "gfx/pics/201q/front.lz"
+UnownPFrontpic: INCBIN "gfx/pics/201p/front.lz"
+UnownCBackpic: INCBIN "gfx/pics/201c/back.lz"
+JynxBackpic: INCBIN "gfx/pics/124/back.lz"
+GolbatBackpic: INCBIN "gfx/pics/042/back.lz"
+UnownYFrontpic: INCBIN "gfx/pics/201y/front.lz"
+UnownGBackpic: INCBIN "gfx/pics/201g/back.lz"
+UnownIFrontpic: INCBIN "gfx/pics/201i/front.lz"
+UnownVBackpic: INCBIN "gfx/pics/201v/back.lz"
+ForretressBackpic: INCBIN "gfx/pics/205/back.lz"
+UnownSBackpic: INCBIN "gfx/pics/201s/back.lz"
+UnownRFrontpic: INCBIN "gfx/pics/201r/front.lz"
+UnownEBackpic: INCBIN "gfx/pics/201e/back.lz"
+UnownJBackpic: INCBIN "gfx/pics/201j/back.lz"
+UnownBBackpic: INCBIN "gfx/pics/201b/back.lz"
+UnownOBackpic: INCBIN "gfx/pics/201o/back.lz"
+UnownZBackpic: INCBIN "gfx/pics/201z/back.lz"
+UnownWBackpic: INCBIN "gfx/pics/201w/back.lz"
+UnownNBackpic: INCBIN "gfx/pics/201n/back.lz"
+UnownABackpic: INCBIN "gfx/pics/201a/back.lz"
+UnownMBackpic: INCBIN "gfx/pics/201m/back.lz"
+UnownKBackpic: INCBIN "gfx/pics/201k/back.lz"
+UnownTBackpic: INCBIN "gfx/pics/201t/back.lz"
+UnownXBackpic: INCBIN "gfx/pics/201x/back.lz"
+UnownLBackpic: INCBIN "gfx/pics/201l/back.lz"
+UnownUBackpic: INCBIN "gfx/pics/201u/back.lz"
+UnownQBackpic: INCBIN "gfx/pics/201q/back.lz"
+UnownYBackpic: INCBIN "gfx/pics/201y/back.lz"
+UnownPBackpic: INCBIN "gfx/pics/201p/back.lz"
+UnownIBackpic: INCBIN "gfx/pics/201i/back.lz"
+UnownRBackpic: INCBIN "gfx/pics/201r/back.lz"
+; 1669d3
+
+
+SECTION "Pics 19", ROMX, BANK[PICS_19]
+
+; Seems to be an accidental copy of the previous bank
+
+INCBIN "gfx/pics/167/back.lz"
+INCBIN "gfx/pics/243/back.lz"
+INCBIN "gfx/pics/201k/front.lz"
+INCBIN "gfx/pics/228/back.lz"
+INCBIN "gfx/pics/060/back.lz"
+INCBIN "gfx/pics/007/back.lz"
+INCBIN "gfx/pics/213/back.lz"
+INCBIN "gfx/pics/087/back.lz"
+INCBIN "gfx/pics/201b/front.lz"
+INCBIN "gfx/pics/079/back.lz"
+INCBIN "gfx/pics/206/back.lz"
+INCBIN "gfx/pics/232/back.lz"
+INCBIN "gfx/pics/194/back.lz"
+INCBIN "gfx/pics/128/back.lz"
+INCBIN "gfx/pics/201x/front.lz"
+INCBIN "gfx/pics/201n/front.lz"
+INCBIN "gfx/pics/114/back.lz"
+INCBIN "gfx/pics/100/back.lz"
+INCBIN "gfx/pics/201j/front.lz"
+INCBIN "gfx/pics/226/back.lz"
+INCBIN "gfx/pics/201l/front.lz"
+INCBIN "gfx/pics/221/back.lz"
+INCBIN "gfx/pics/201m/front.lz"
+INCBIN "gfx/pics/201f/front.lz"
+INCBIN "gfx/pics/177/back.lz"
+INCBIN "gfx/pics/201a/front.lz"
+INCBIN "gfx/pics/076/back.lz"
+INCBIN "gfx/pics/201u/front.lz"
+INCBIN "gfx/pics/050/back.lz"
+INCBIN "gfx/pics/201q/front.lz"
+INCBIN "gfx/pics/201p/front.lz"
+INCBIN "gfx/pics/201c/back.lz"
+INCBIN "gfx/pics/124/back.lz"
+INCBIN "gfx/pics/042/back.lz"
+INCBIN "gfx/pics/201y/front.lz"
+INCBIN "gfx/pics/201g/back.lz"
+INCBIN "gfx/pics/201i/front.lz"
+INCBIN "gfx/pics/201v/back.lz"
+INCBIN "gfx/pics/205/back.lz"
+INCBIN "gfx/pics/201s/back.lz"
+INCBIN "gfx/pics/201r/front.lz"
+INCBIN "gfx/pics/201e/back.lz"
+INCBIN "gfx/pics/201j/back.lz"
+INCBIN "gfx/pics/201b/back.lz"
+INCBIN "gfx/pics/201o/back.lz"
+INCBIN "gfx/pics/201z/back.lz"
+INCBIN "gfx/pics/201w/back.lz"
+INCBIN "gfx/pics/201n/back.lz"
+INCBIN "gfx/pics/201a/back.lz"
+INCBIN "gfx/pics/201m/back.lz"
+INCBIN "gfx/pics/201k/back.lz"
+INCBIN "gfx/pics/201t/back.lz"
+INCBIN "gfx/pics/201x/back.lz"
+INCBIN "gfx/pics/201l/back.lz"
+INCBIN "gfx/pics/201u/back.lz"
+INCBIN "gfx/pics/201q/back.lz"
+INCBIN "gfx/pics/201y/back.lz"
+INCBIN "gfx/pics/201p/back.lz"
+INCBIN "gfx/pics/201i/back.lz"
+INCBIN "gfx/pics/201r/back.lz"
+
+
diff --git a/gfx/pics/001/normal.pal b/gfx/pics/001/normal.pal
index 87dbf21c7..75bb2a401 100644
--- a/gfx/pics/001/normal.pal
+++ b/gfx/pics/001/normal.pal
Binary files differ
diff --git a/gfx/pics/001/shiny.pal b/gfx/pics/001/shiny.pal
index c8ff4b413..bcd5ad011 100644
--- a/gfx/pics/001/shiny.pal
+++ b/gfx/pics/001/shiny.pal
Binary files differ
diff --git a/gfx/pics/002/normal.pal b/gfx/pics/002/normal.pal
index 2d24ef7c2..31f0796cb 100644
--- a/gfx/pics/002/normal.pal
+++ b/gfx/pics/002/normal.pal
Binary files differ
diff --git a/gfx/pics/002/shiny.pal b/gfx/pics/002/shiny.pal
index 0a0e9e156..04c81cf45 100644
--- a/gfx/pics/002/shiny.pal
+++ b/gfx/pics/002/shiny.pal
Binary files differ
diff --git a/gfx/pics/003/normal.pal b/gfx/pics/003/normal.pal
index 5a976a7dc..3d53b905f 100644
--- a/gfx/pics/003/normal.pal
+++ b/gfx/pics/003/normal.pal
Binary files differ
diff --git a/gfx/pics/003/shiny.pal b/gfx/pics/003/shiny.pal
index 14a77e0c9..6cffe65cb 100644
--- a/gfx/pics/003/shiny.pal
+++ b/gfx/pics/003/shiny.pal
Binary files differ
diff --git a/gfx/pics/004/normal.pal b/gfx/pics/004/normal.pal
index 5af3ac8ff..9edccc40a 100644
--- a/gfx/pics/004/normal.pal
+++ b/gfx/pics/004/normal.pal
Binary files differ
diff --git a/gfx/pics/004/shiny.pal b/gfx/pics/004/shiny.pal
index 94ed4c900..d7a346bd8 100644
--- a/gfx/pics/004/shiny.pal
+++ b/gfx/pics/004/shiny.pal
Binary files differ
diff --git a/gfx/pics/005/normal.pal b/gfx/pics/005/normal.pal
index b92452b86..5de328616 100644
--- a/gfx/pics/005/normal.pal
+++ b/gfx/pics/005/normal.pal
Binary files differ
diff --git a/gfx/pics/005/shiny.pal b/gfx/pics/005/shiny.pal
index e060e327b..7a86d2cb1 100644
--- a/gfx/pics/005/shiny.pal
+++ b/gfx/pics/005/shiny.pal
Binary files differ
diff --git a/gfx/pics/006/normal.pal b/gfx/pics/006/normal.pal
index 392260a7b..e0658358b 100644
--- a/gfx/pics/006/normal.pal
+++ b/gfx/pics/006/normal.pal
Binary files differ
diff --git a/gfx/pics/006/shiny.pal b/gfx/pics/006/shiny.pal
index 59ef82839..88c195d74 100644
--- a/gfx/pics/006/shiny.pal
+++ b/gfx/pics/006/shiny.pal
Binary files differ
diff --git a/gfx/pics/007/normal.pal b/gfx/pics/007/normal.pal
index 39accab14..04b589372 100644
--- a/gfx/pics/007/normal.pal
+++ b/gfx/pics/007/normal.pal
Binary files differ
diff --git a/gfx/pics/007/shiny.pal b/gfx/pics/007/shiny.pal
index e933ff3dd..8df9f8263 100644
--- a/gfx/pics/007/shiny.pal
+++ b/gfx/pics/007/shiny.pal
Binary files differ
diff --git a/gfx/pics/008/normal.pal b/gfx/pics/008/normal.pal
index 4a275a308..0615b9ec0 100644
--- a/gfx/pics/008/normal.pal
+++ b/gfx/pics/008/normal.pal
Binary files differ
diff --git a/gfx/pics/008/shiny.pal b/gfx/pics/008/shiny.pal
index 8c68f6fbc..c108dfdbf 100644
--- a/gfx/pics/008/shiny.pal
+++ b/gfx/pics/008/shiny.pal
Binary files differ
diff --git a/gfx/pics/009/normal.pal b/gfx/pics/009/normal.pal
index fd914d477..2198d5946 100644
--- a/gfx/pics/009/normal.pal
+++ b/gfx/pics/009/normal.pal
Binary files differ
diff --git a/gfx/pics/009/shiny.pal b/gfx/pics/009/shiny.pal
index 74d9c55d4..dbde45ec9 100644
--- a/gfx/pics/009/shiny.pal
+++ b/gfx/pics/009/shiny.pal
Binary files differ
diff --git a/gfx/pics/010/normal.pal b/gfx/pics/010/normal.pal
index 2d1dc1057..51093dd01 100644
--- a/gfx/pics/010/normal.pal
+++ b/gfx/pics/010/normal.pal
Binary files differ
diff --git a/gfx/pics/010/shiny.pal b/gfx/pics/010/shiny.pal
index ab1bda673..32410e492 100644
--- a/gfx/pics/010/shiny.pal
+++ b/gfx/pics/010/shiny.pal
Binary files differ
diff --git a/gfx/pics/011/normal.pal b/gfx/pics/011/normal.pal
index 682860905..c171dafcc 100644
--- a/gfx/pics/011/normal.pal
+++ b/gfx/pics/011/normal.pal
Binary files differ
diff --git a/gfx/pics/011/shiny.pal b/gfx/pics/011/shiny.pal
index c4ce829be..4d0b72658 100644
--- a/gfx/pics/011/shiny.pal
+++ b/gfx/pics/011/shiny.pal
Binary files differ
diff --git a/gfx/pics/012/normal.pal b/gfx/pics/012/normal.pal
index 045707c20..bd2d494a2 100644
--- a/gfx/pics/012/normal.pal
+++ b/gfx/pics/012/normal.pal
Binary files differ
diff --git a/gfx/pics/012/shiny.pal b/gfx/pics/012/shiny.pal
index bcca04ae2..75a74906b 100644
--- a/gfx/pics/012/shiny.pal
+++ b/gfx/pics/012/shiny.pal
Binary files differ
diff --git a/gfx/pics/013/normal.pal b/gfx/pics/013/normal.pal
index 1eb27958e..9adb83b51 100644
--- a/gfx/pics/013/normal.pal
+++ b/gfx/pics/013/normal.pal
Binary files differ
diff --git a/gfx/pics/013/shiny.pal b/gfx/pics/013/shiny.pal
index 580f715cc..45cc7073c 100644
--- a/gfx/pics/013/shiny.pal
+++ b/gfx/pics/013/shiny.pal
Binary files differ
diff --git a/gfx/pics/014/normal.pal b/gfx/pics/014/normal.pal
index 1cd3122d6..6760123ec 100644
--- a/gfx/pics/014/normal.pal
+++ b/gfx/pics/014/normal.pal
Binary files differ
diff --git a/gfx/pics/014/shiny.pal b/gfx/pics/014/shiny.pal
index 297f44f80..335bdffe9 100644
--- a/gfx/pics/014/shiny.pal
+++ b/gfx/pics/014/shiny.pal
Binary files differ
diff --git a/gfx/pics/015/normal.pal b/gfx/pics/015/normal.pal
index 9555eb6d1..fefb75c12 100644
--- a/gfx/pics/015/normal.pal
+++ b/gfx/pics/015/normal.pal
Binary files differ
diff --git a/gfx/pics/015/shiny.pal b/gfx/pics/015/shiny.pal
index a8cb62b7f..cfbc9997a 100644
--- a/gfx/pics/015/shiny.pal
+++ b/gfx/pics/015/shiny.pal
Binary files differ
diff --git a/gfx/pics/016/normal.pal b/gfx/pics/016/normal.pal
index 1f964fbae..affaa4265 100644
--- a/gfx/pics/016/normal.pal
+++ b/gfx/pics/016/normal.pal
Binary files differ
diff --git a/gfx/pics/016/shiny.pal b/gfx/pics/016/shiny.pal
index 358c51a62..e209bc93f 100644
--- a/gfx/pics/016/shiny.pal
+++ b/gfx/pics/016/shiny.pal
Binary files differ
diff --git a/gfx/pics/017/normal.pal b/gfx/pics/017/normal.pal
index dfbcc7b16..70fd6b8ce 100644
--- a/gfx/pics/017/normal.pal
+++ b/gfx/pics/017/normal.pal
Binary files differ
diff --git a/gfx/pics/017/shiny.pal b/gfx/pics/017/shiny.pal
index 8a29f2922..56a28e867 100644
--- a/gfx/pics/017/shiny.pal
+++ b/gfx/pics/017/shiny.pal
Binary files differ
diff --git a/gfx/pics/018/normal.pal b/gfx/pics/018/normal.pal
index dfbcc7b16..70fd6b8ce 100644
--- a/gfx/pics/018/normal.pal
+++ b/gfx/pics/018/normal.pal
Binary files differ
diff --git a/gfx/pics/018/shiny.pal b/gfx/pics/018/shiny.pal
index eb8ab0010..68eefb13f 100644
--- a/gfx/pics/018/shiny.pal
+++ b/gfx/pics/018/shiny.pal
Binary files differ
diff --git a/gfx/pics/019/normal.pal b/gfx/pics/019/normal.pal
index 8649a0a9f..8b71d7ccc 100644
--- a/gfx/pics/019/normal.pal
+++ b/gfx/pics/019/normal.pal
Binary files differ
diff --git a/gfx/pics/019/shiny.pal b/gfx/pics/019/shiny.pal
index d90f5deb3..834a29cf0 100644
--- a/gfx/pics/019/shiny.pal
+++ b/gfx/pics/019/shiny.pal
Binary files differ
diff --git a/gfx/pics/020/normal.pal b/gfx/pics/020/normal.pal
index dbc19fac7..769c93f9e 100644
--- a/gfx/pics/020/normal.pal
+++ b/gfx/pics/020/normal.pal
Binary files differ
diff --git a/gfx/pics/020/shiny.pal b/gfx/pics/020/shiny.pal
index ab3079428..a0c0f5546 100644
--- a/gfx/pics/020/shiny.pal
+++ b/gfx/pics/020/shiny.pal
Binary files differ
diff --git a/gfx/pics/021/normal.pal b/gfx/pics/021/normal.pal
index 678c03950..4f4bcc66b 100644
--- a/gfx/pics/021/normal.pal
+++ b/gfx/pics/021/normal.pal
Binary files differ
diff --git a/gfx/pics/021/shiny.pal b/gfx/pics/021/shiny.pal
index d4b36b3fb..188394e5f 100644
--- a/gfx/pics/021/shiny.pal
+++ b/gfx/pics/021/shiny.pal
Binary files differ
diff --git a/gfx/pics/022/normal.pal b/gfx/pics/022/normal.pal
index 4ccbed8df..1d4c56a45 100644
--- a/gfx/pics/022/normal.pal
+++ b/gfx/pics/022/normal.pal
Binary files differ
diff --git a/gfx/pics/022/shiny.pal b/gfx/pics/022/shiny.pal
index 2724155c0..abc40692b 100644
--- a/gfx/pics/022/shiny.pal
+++ b/gfx/pics/022/shiny.pal
Binary files differ
diff --git a/gfx/pics/023/normal.pal b/gfx/pics/023/normal.pal
index 792ae12cd..a98f678b9 100644
--- a/gfx/pics/023/normal.pal
+++ b/gfx/pics/023/normal.pal
Binary files differ
diff --git a/gfx/pics/023/shiny.pal b/gfx/pics/023/shiny.pal
index 75562404a..6f71f8cbb 100644
--- a/gfx/pics/023/shiny.pal
+++ b/gfx/pics/023/shiny.pal
Binary files differ
diff --git a/gfx/pics/024/normal.pal b/gfx/pics/024/normal.pal
index c41b02616..adae838d4 100644
--- a/gfx/pics/024/normal.pal
+++ b/gfx/pics/024/normal.pal
Binary files differ
diff --git a/gfx/pics/024/shiny.pal b/gfx/pics/024/shiny.pal
index af799ff23..3c731f915 100644
--- a/gfx/pics/024/shiny.pal
+++ b/gfx/pics/024/shiny.pal
Binary files differ
diff --git a/gfx/pics/025/normal.pal b/gfx/pics/025/normal.pal
index f9f342d11..0ec212f83 100644
--- a/gfx/pics/025/normal.pal
+++ b/gfx/pics/025/normal.pal
Binary files differ
diff --git a/gfx/pics/025/shiny.pal b/gfx/pics/025/shiny.pal
index 5644bb0c7..a89172f54 100644
--- a/gfx/pics/025/shiny.pal
+++ b/gfx/pics/025/shiny.pal
Binary files differ
diff --git a/gfx/pics/026/normal.pal b/gfx/pics/026/normal.pal
index 3a0beaca5..f03f62b08 100644
--- a/gfx/pics/026/normal.pal
+++ b/gfx/pics/026/normal.pal
Binary files differ
diff --git a/gfx/pics/026/shiny.pal b/gfx/pics/026/shiny.pal
index 2ba32b279..0491d1ee2 100644
--- a/gfx/pics/026/shiny.pal
+++ b/gfx/pics/026/shiny.pal
Binary files differ
diff --git a/gfx/pics/027/normal.pal b/gfx/pics/027/normal.pal
index 1d31860a8..8039e0086 100644
--- a/gfx/pics/027/normal.pal
+++ b/gfx/pics/027/normal.pal
Binary files differ
diff --git a/gfx/pics/027/shiny.pal b/gfx/pics/027/shiny.pal
index 99804a47e..86d48731e 100644
--- a/gfx/pics/027/shiny.pal
+++ b/gfx/pics/027/shiny.pal
Binary files differ
diff --git a/gfx/pics/028/normal.pal b/gfx/pics/028/normal.pal
index 8fcbd5352..0c2b451d9 100644
--- a/gfx/pics/028/normal.pal
+++ b/gfx/pics/028/normal.pal
Binary files differ
diff --git a/gfx/pics/028/shiny.pal b/gfx/pics/028/shiny.pal
index e29f2c24c..db584124b 100644
--- a/gfx/pics/028/shiny.pal
+++ b/gfx/pics/028/shiny.pal
Binary files differ
diff --git a/gfx/pics/029/normal.pal b/gfx/pics/029/normal.pal
index 07def7ad6..d70e16ccb 100644
--- a/gfx/pics/029/normal.pal
+++ b/gfx/pics/029/normal.pal
Binary files differ
diff --git a/gfx/pics/029/shiny.pal b/gfx/pics/029/shiny.pal
index 1217b8c44..06dc1de15 100644
--- a/gfx/pics/029/shiny.pal
+++ b/gfx/pics/029/shiny.pal
Binary files differ
diff --git a/gfx/pics/030/normal.pal b/gfx/pics/030/normal.pal
index 3c218831b..917840667 100644
--- a/gfx/pics/030/normal.pal
+++ b/gfx/pics/030/normal.pal
Binary files differ
diff --git a/gfx/pics/030/shiny.pal b/gfx/pics/030/shiny.pal
index 11b672938..ae93e6242 100644
--- a/gfx/pics/030/shiny.pal
+++ b/gfx/pics/030/shiny.pal
Binary files differ
diff --git a/gfx/pics/031/normal.pal b/gfx/pics/031/normal.pal
index 52b2b30fe..3e1053bfb 100644
--- a/gfx/pics/031/normal.pal
+++ b/gfx/pics/031/normal.pal
Binary files differ
diff --git a/gfx/pics/031/shiny.pal b/gfx/pics/031/shiny.pal
index 23f5100d3..b27c118a6 100644
--- a/gfx/pics/031/shiny.pal
+++ b/gfx/pics/031/shiny.pal
Binary files differ
diff --git a/gfx/pics/032/normal.pal b/gfx/pics/032/normal.pal
index b2a801d2d..6b057e894 100644
--- a/gfx/pics/032/normal.pal
+++ b/gfx/pics/032/normal.pal
Binary files differ
diff --git a/gfx/pics/032/shiny.pal b/gfx/pics/032/shiny.pal
index 5e9dde226..771fd4e31 100644
--- a/gfx/pics/032/shiny.pal
+++ b/gfx/pics/032/shiny.pal
Binary files differ
diff --git a/gfx/pics/033/normal.pal b/gfx/pics/033/normal.pal
index 416d858a7..039e46d34 100644
--- a/gfx/pics/033/normal.pal
+++ b/gfx/pics/033/normal.pal
Binary files differ
diff --git a/gfx/pics/033/shiny.pal b/gfx/pics/033/shiny.pal
index aa1fd6f41..b6d2e6fe9 100644
--- a/gfx/pics/033/shiny.pal
+++ b/gfx/pics/033/shiny.pal
Binary files differ
diff --git a/gfx/pics/034/normal.pal b/gfx/pics/034/normal.pal
index cd1c2d27f..b9ab02b8c 100644
--- a/gfx/pics/034/normal.pal
+++ b/gfx/pics/034/normal.pal
Binary files differ
diff --git a/gfx/pics/034/shiny.pal b/gfx/pics/034/shiny.pal
index e9e0543a4..61991fb6f 100644
--- a/gfx/pics/034/shiny.pal
+++ b/gfx/pics/034/shiny.pal
Binary files differ
diff --git a/gfx/pics/035/normal.pal b/gfx/pics/035/normal.pal
index 4223e6c7b..295fe98ff 100644
--- a/gfx/pics/035/normal.pal
+++ b/gfx/pics/035/normal.pal
Binary files differ
diff --git a/gfx/pics/035/shiny.pal b/gfx/pics/035/shiny.pal
index 8751befbf..1c0871557 100644
--- a/gfx/pics/035/shiny.pal
+++ b/gfx/pics/035/shiny.pal
Binary files differ
diff --git a/gfx/pics/036/normal.pal b/gfx/pics/036/normal.pal
index 4223e6c7b..295fe98ff 100644
--- a/gfx/pics/036/normal.pal
+++ b/gfx/pics/036/normal.pal
Binary files differ
diff --git a/gfx/pics/036/shiny.pal b/gfx/pics/036/shiny.pal
index 8751befbf..1c0871557 100644
--- a/gfx/pics/036/shiny.pal
+++ b/gfx/pics/036/shiny.pal
Binary files differ
diff --git a/gfx/pics/037/normal.pal b/gfx/pics/037/normal.pal
index b8720511d..bd887146d 100644
--- a/gfx/pics/037/normal.pal
+++ b/gfx/pics/037/normal.pal
Binary files differ
diff --git a/gfx/pics/037/shiny.pal b/gfx/pics/037/shiny.pal
index 903dac000..0084507cd 100644
--- a/gfx/pics/037/shiny.pal
+++ b/gfx/pics/037/shiny.pal
Binary files differ
diff --git a/gfx/pics/038/normal.pal b/gfx/pics/038/normal.pal
index 1d536dc69..54de8db00 100644
--- a/gfx/pics/038/normal.pal
+++ b/gfx/pics/038/normal.pal
Binary files differ
diff --git a/gfx/pics/038/shiny.pal b/gfx/pics/038/shiny.pal
index 4ff12abde..6b0dafcc8 100644
--- a/gfx/pics/038/shiny.pal
+++ b/gfx/pics/038/shiny.pal
Binary files differ
diff --git a/gfx/pics/039/normal.pal b/gfx/pics/039/normal.pal
index 446437576..47aab43ae 100644
--- a/gfx/pics/039/normal.pal
+++ b/gfx/pics/039/normal.pal
Binary files differ
diff --git a/gfx/pics/039/shiny.pal b/gfx/pics/039/shiny.pal
index 4b64a688c..38ce5d76d 100644
--- a/gfx/pics/039/shiny.pal
+++ b/gfx/pics/039/shiny.pal
Binary files differ
diff --git a/gfx/pics/040/normal.pal b/gfx/pics/040/normal.pal
index 446437576..47aab43ae 100644
--- a/gfx/pics/040/normal.pal
+++ b/gfx/pics/040/normal.pal
Binary files differ
diff --git a/gfx/pics/040/shiny.pal b/gfx/pics/040/shiny.pal
index 4b64a688c..38ce5d76d 100644
--- a/gfx/pics/040/shiny.pal
+++ b/gfx/pics/040/shiny.pal
Binary files differ
diff --git a/gfx/pics/041/normal.pal b/gfx/pics/041/normal.pal
index e04dd2f0d..d36d0449c 100644
--- a/gfx/pics/041/normal.pal
+++ b/gfx/pics/041/normal.pal
Binary files differ
diff --git a/gfx/pics/041/shiny.pal b/gfx/pics/041/shiny.pal
index dd9190f69..722f84ed2 100644
--- a/gfx/pics/041/shiny.pal
+++ b/gfx/pics/041/shiny.pal
Binary files differ
diff --git a/gfx/pics/042/normal.pal b/gfx/pics/042/normal.pal
index e04dd2f0d..d36d0449c 100644
--- a/gfx/pics/042/normal.pal
+++ b/gfx/pics/042/normal.pal
Binary files differ
diff --git a/gfx/pics/042/shiny.pal b/gfx/pics/042/shiny.pal
index 74d8ba663..2cb1d6ced 100644
--- a/gfx/pics/042/shiny.pal
+++ b/gfx/pics/042/shiny.pal
Binary files differ
diff --git a/gfx/pics/043/normal.pal b/gfx/pics/043/normal.pal
index be46323c9..9371027e6 100644
--- a/gfx/pics/043/normal.pal
+++ b/gfx/pics/043/normal.pal
Binary files differ
diff --git a/gfx/pics/043/shiny.pal b/gfx/pics/043/shiny.pal
index c7b0c7d5d..6e1d339b4 100644
--- a/gfx/pics/043/shiny.pal
+++ b/gfx/pics/043/shiny.pal
Binary files differ
diff --git a/gfx/pics/044/normal.pal b/gfx/pics/044/normal.pal
index 27727c43b..28d801aaa 100644
--- a/gfx/pics/044/normal.pal
+++ b/gfx/pics/044/normal.pal
Binary files differ
diff --git a/gfx/pics/044/shiny.pal b/gfx/pics/044/shiny.pal
index 02de2ca5c..998bfce6e 100644
--- a/gfx/pics/044/shiny.pal
+++ b/gfx/pics/044/shiny.pal
Binary files differ
diff --git a/gfx/pics/045/normal.pal b/gfx/pics/045/normal.pal
index d8fe44520..4af23de91 100644
--- a/gfx/pics/045/normal.pal
+++ b/gfx/pics/045/normal.pal
Binary files differ
diff --git a/gfx/pics/045/shiny.pal b/gfx/pics/045/shiny.pal
index a51b07257..d65151640 100644
--- a/gfx/pics/045/shiny.pal
+++ b/gfx/pics/045/shiny.pal
Binary files differ
diff --git a/gfx/pics/046/normal.pal b/gfx/pics/046/normal.pal
index 52a76c361..dcfb3fd8e 100644
--- a/gfx/pics/046/normal.pal
+++ b/gfx/pics/046/normal.pal
Binary files differ
diff --git a/gfx/pics/046/shiny.pal b/gfx/pics/046/shiny.pal
index 9820462e0..7a63c68d7 100644
--- a/gfx/pics/046/shiny.pal
+++ b/gfx/pics/046/shiny.pal
Binary files differ
diff --git a/gfx/pics/047/normal.pal b/gfx/pics/047/normal.pal
index 86d603437..91c779584 100644
--- a/gfx/pics/047/normal.pal
+++ b/gfx/pics/047/normal.pal
Binary files differ
diff --git a/gfx/pics/047/shiny.pal b/gfx/pics/047/shiny.pal
index a19e1361e..343a793bb 100644
--- a/gfx/pics/047/shiny.pal
+++ b/gfx/pics/047/shiny.pal
Binary files differ
diff --git a/gfx/pics/048/normal.pal b/gfx/pics/048/normal.pal
index 753b70af6..90e24bc9d 100644
--- a/gfx/pics/048/normal.pal
+++ b/gfx/pics/048/normal.pal
Binary files differ
diff --git a/gfx/pics/048/shiny.pal b/gfx/pics/048/shiny.pal
index 8b19cc243..0660ed752 100644
--- a/gfx/pics/048/shiny.pal
+++ b/gfx/pics/048/shiny.pal
Binary files differ
diff --git a/gfx/pics/049/normal.pal b/gfx/pics/049/normal.pal
index c48aa8b14..8b1e77e73 100644
--- a/gfx/pics/049/normal.pal
+++ b/gfx/pics/049/normal.pal
Binary files differ
diff --git a/gfx/pics/049/shiny.pal b/gfx/pics/049/shiny.pal
index a4e20d640..50d971276 100644
--- a/gfx/pics/049/shiny.pal
+++ b/gfx/pics/049/shiny.pal
Binary files differ
diff --git a/gfx/pics/050/normal.pal b/gfx/pics/050/normal.pal
index 7681cb66c..9eaf1baf0 100644
--- a/gfx/pics/050/normal.pal
+++ b/gfx/pics/050/normal.pal
Binary files differ
diff --git a/gfx/pics/050/shiny.pal b/gfx/pics/050/shiny.pal
index d4fc910dc..ce41b3928 100644
--- a/gfx/pics/050/shiny.pal
+++ b/gfx/pics/050/shiny.pal
Binary files differ
diff --git a/gfx/pics/051/normal.pal b/gfx/pics/051/normal.pal
index 7681cb66c..9eaf1baf0 100644
--- a/gfx/pics/051/normal.pal
+++ b/gfx/pics/051/normal.pal
Binary files differ
diff --git a/gfx/pics/051/shiny.pal b/gfx/pics/051/shiny.pal
index d4fc910dc..ce41b3928 100644
--- a/gfx/pics/051/shiny.pal
+++ b/gfx/pics/051/shiny.pal
Binary files differ
diff --git a/gfx/pics/052/normal.pal b/gfx/pics/052/normal.pal
index 46edc1ba9..ed418e46d 100644
--- a/gfx/pics/052/normal.pal
+++ b/gfx/pics/052/normal.pal
Binary files differ
diff --git a/gfx/pics/052/shiny.pal b/gfx/pics/052/shiny.pal
index b0ceb7754..3ca34fc76 100644
--- a/gfx/pics/052/shiny.pal
+++ b/gfx/pics/052/shiny.pal
Binary files differ
diff --git a/gfx/pics/053/normal.pal b/gfx/pics/053/normal.pal
index 41a6ed038..3c3a068a9 100644
--- a/gfx/pics/053/normal.pal
+++ b/gfx/pics/053/normal.pal
Binary files differ
diff --git a/gfx/pics/053/shiny.pal b/gfx/pics/053/shiny.pal
index caacd28ab..6ede92a01 100644
--- a/gfx/pics/053/shiny.pal
+++ b/gfx/pics/053/shiny.pal
Binary files differ
diff --git a/gfx/pics/054/normal.pal b/gfx/pics/054/normal.pal
index 165996a10..794efb73e 100644
--- a/gfx/pics/054/normal.pal
+++ b/gfx/pics/054/normal.pal
Binary files differ
diff --git a/gfx/pics/054/shiny.pal b/gfx/pics/054/shiny.pal
index c23159d57..27cbf08c4 100644
--- a/gfx/pics/054/shiny.pal
+++ b/gfx/pics/054/shiny.pal
Binary files differ
diff --git a/gfx/pics/055/normal.pal b/gfx/pics/055/normal.pal
index 9d0c1ed03..22099e9bf 100644
--- a/gfx/pics/055/normal.pal
+++ b/gfx/pics/055/normal.pal
Binary files differ
diff --git a/gfx/pics/055/shiny.pal b/gfx/pics/055/shiny.pal
index 074a1041c..cfd29e90e 100644
--- a/gfx/pics/055/shiny.pal
+++ b/gfx/pics/055/shiny.pal
Binary files differ
diff --git a/gfx/pics/056/normal.pal b/gfx/pics/056/normal.pal
index b313d200f..3e432d117 100644
--- a/gfx/pics/056/normal.pal
+++ b/gfx/pics/056/normal.pal
Binary files differ
diff --git a/gfx/pics/056/shiny.pal b/gfx/pics/056/shiny.pal
index ce3444bbb..455125489 100644
--- a/gfx/pics/056/shiny.pal
+++ b/gfx/pics/056/shiny.pal
Binary files differ
diff --git a/gfx/pics/057/normal.pal b/gfx/pics/057/normal.pal
index bff46b959..9888864e2 100644
--- a/gfx/pics/057/normal.pal
+++ b/gfx/pics/057/normal.pal
Binary files differ
diff --git a/gfx/pics/057/shiny.pal b/gfx/pics/057/shiny.pal
index 9c035f819..ee3d37e93 100644
--- a/gfx/pics/057/shiny.pal
+++ b/gfx/pics/057/shiny.pal
Binary files differ
diff --git a/gfx/pics/058/normal.pal b/gfx/pics/058/normal.pal
index 59c1e2d4d..07a6b3878 100644
--- a/gfx/pics/058/normal.pal
+++ b/gfx/pics/058/normal.pal
Binary files differ
diff --git a/gfx/pics/058/shiny.pal b/gfx/pics/058/shiny.pal
index 8b833be15..5033bfda2 100644
--- a/gfx/pics/058/shiny.pal
+++ b/gfx/pics/058/shiny.pal
Binary files differ
diff --git a/gfx/pics/059/normal.pal b/gfx/pics/059/normal.pal
index 3721aa578..c7a4f497a 100644
--- a/gfx/pics/059/normal.pal
+++ b/gfx/pics/059/normal.pal
Binary files differ
diff --git a/gfx/pics/059/shiny.pal b/gfx/pics/059/shiny.pal
index 496fe9d6f..78da21464 100644
--- a/gfx/pics/059/shiny.pal
+++ b/gfx/pics/059/shiny.pal
Binary files differ
diff --git a/gfx/pics/060/normal.pal b/gfx/pics/060/normal.pal
index f661c55a4..20896080e 100644
--- a/gfx/pics/060/normal.pal
+++ b/gfx/pics/060/normal.pal
Binary files differ
diff --git a/gfx/pics/060/shiny.pal b/gfx/pics/060/shiny.pal
index a11db6d89..a6dbd0cfd 100644
--- a/gfx/pics/060/shiny.pal
+++ b/gfx/pics/060/shiny.pal
Binary files differ
diff --git a/gfx/pics/061/normal.pal b/gfx/pics/061/normal.pal
index 097a5363a..37c6af44e 100644
--- a/gfx/pics/061/normal.pal
+++ b/gfx/pics/061/normal.pal
Binary files differ
diff --git a/gfx/pics/061/shiny.pal b/gfx/pics/061/shiny.pal
index f70358c88..1a5ee7b27 100644
--- a/gfx/pics/061/shiny.pal
+++ b/gfx/pics/061/shiny.pal
Binary files differ
diff --git a/gfx/pics/062/normal.pal b/gfx/pics/062/normal.pal
index d7b695489..9968e69e6 100644
--- a/gfx/pics/062/normal.pal
+++ b/gfx/pics/062/normal.pal
Binary files differ
diff --git a/gfx/pics/062/shiny.pal b/gfx/pics/062/shiny.pal
index ead43d5bb..f9da6007b 100644
--- a/gfx/pics/062/shiny.pal
+++ b/gfx/pics/062/shiny.pal
Binary files differ
diff --git a/gfx/pics/063/normal.pal b/gfx/pics/063/normal.pal
index 395101f78..23f50e983 100644
--- a/gfx/pics/063/normal.pal
+++ b/gfx/pics/063/normal.pal
Binary files differ
diff --git a/gfx/pics/063/shiny.pal b/gfx/pics/063/shiny.pal
index aa1bd3109..328319095 100644
--- a/gfx/pics/063/shiny.pal
+++ b/gfx/pics/063/shiny.pal
Binary files differ
diff --git a/gfx/pics/064/normal.pal b/gfx/pics/064/normal.pal
index 395101f78..23f50e983 100644
--- a/gfx/pics/064/normal.pal
+++ b/gfx/pics/064/normal.pal
Binary files differ
diff --git a/gfx/pics/064/shiny.pal b/gfx/pics/064/shiny.pal
index aa1bd3109..328319095 100644
--- a/gfx/pics/064/shiny.pal
+++ b/gfx/pics/064/shiny.pal
Binary files differ
diff --git a/gfx/pics/065/normal.pal b/gfx/pics/065/normal.pal
index 395101f78..23f50e983 100644
--- a/gfx/pics/065/normal.pal
+++ b/gfx/pics/065/normal.pal
Binary files differ
diff --git a/gfx/pics/065/shiny.pal b/gfx/pics/065/shiny.pal
index afd42cde6..2e52d97de 100644
--- a/gfx/pics/065/shiny.pal
+++ b/gfx/pics/065/shiny.pal
Binary files differ
diff --git a/gfx/pics/066/normal.pal b/gfx/pics/066/normal.pal
index 2b5a6aa69..75548c0a3 100644
--- a/gfx/pics/066/normal.pal
+++ b/gfx/pics/066/normal.pal
Binary files differ
diff --git a/gfx/pics/066/shiny.pal b/gfx/pics/066/shiny.pal
index caeb3e478..0b940effd 100644
--- a/gfx/pics/066/shiny.pal
+++ b/gfx/pics/066/shiny.pal
Binary files differ
diff --git a/gfx/pics/067/normal.pal b/gfx/pics/067/normal.pal
index c2d981082..85f98ff06 100644
--- a/gfx/pics/067/normal.pal
+++ b/gfx/pics/067/normal.pal
Binary files differ
diff --git a/gfx/pics/067/shiny.pal b/gfx/pics/067/shiny.pal
index c68a04636..7dceaa4c1 100644
--- a/gfx/pics/067/shiny.pal
+++ b/gfx/pics/067/shiny.pal
Binary files differ
diff --git a/gfx/pics/068/normal.pal b/gfx/pics/068/normal.pal
index d94c3b6d2..d9ba2de40 100644
--- a/gfx/pics/068/normal.pal
+++ b/gfx/pics/068/normal.pal
Binary files differ
diff --git a/gfx/pics/068/shiny.pal b/gfx/pics/068/shiny.pal
index f970d224a..afe8a06a6 100644
--- a/gfx/pics/068/shiny.pal
+++ b/gfx/pics/068/shiny.pal
Binary files differ
diff --git a/gfx/pics/069/normal.pal b/gfx/pics/069/normal.pal
index 0ab79baf7..92f55f832 100644
--- a/gfx/pics/069/normal.pal
+++ b/gfx/pics/069/normal.pal
Binary files differ
diff --git a/gfx/pics/069/shiny.pal b/gfx/pics/069/shiny.pal
index 38c2b8ff2..5a2b267f1 100644
--- a/gfx/pics/069/shiny.pal
+++ b/gfx/pics/069/shiny.pal
Binary files differ
diff --git a/gfx/pics/070/normal.pal b/gfx/pics/070/normal.pal
index 55ffe6cde..803367e69 100644
--- a/gfx/pics/070/normal.pal
+++ b/gfx/pics/070/normal.pal
Binary files differ
diff --git a/gfx/pics/070/shiny.pal b/gfx/pics/070/shiny.pal
index ace435733..e4f10596c 100644
--- a/gfx/pics/070/shiny.pal
+++ b/gfx/pics/070/shiny.pal
Binary files differ
diff --git a/gfx/pics/071/normal.pal b/gfx/pics/071/normal.pal
index 36719041c..6e9844ba3 100644
--- a/gfx/pics/071/normal.pal
+++ b/gfx/pics/071/normal.pal
Binary files differ
diff --git a/gfx/pics/071/shiny.pal b/gfx/pics/071/shiny.pal
index 79afd8644..c538a41fa 100644
--- a/gfx/pics/071/shiny.pal
+++ b/gfx/pics/071/shiny.pal
Binary files differ
diff --git a/gfx/pics/072/normal.pal b/gfx/pics/072/normal.pal
index af2c79d4c..91a11c6b7 100644
--- a/gfx/pics/072/normal.pal
+++ b/gfx/pics/072/normal.pal
Binary files differ
diff --git a/gfx/pics/072/shiny.pal b/gfx/pics/072/shiny.pal
index a0d61c5b1..1fec33a22 100644
--- a/gfx/pics/072/shiny.pal
+++ b/gfx/pics/072/shiny.pal
Binary files differ
diff --git a/gfx/pics/073/normal.pal b/gfx/pics/073/normal.pal
index 1ba3d0eb7..98f28bd61 100644
--- a/gfx/pics/073/normal.pal
+++ b/gfx/pics/073/normal.pal
Binary files differ
diff --git a/gfx/pics/073/shiny.pal b/gfx/pics/073/shiny.pal
index 9b565a2c6..afe40aff6 100644
--- a/gfx/pics/073/shiny.pal
+++ b/gfx/pics/073/shiny.pal
Binary files differ
diff --git a/gfx/pics/074/normal.pal b/gfx/pics/074/normal.pal
index cdc68419e..8df6a1104 100644
--- a/gfx/pics/074/normal.pal
+++ b/gfx/pics/074/normal.pal
Binary files differ
diff --git a/gfx/pics/074/shiny.pal b/gfx/pics/074/shiny.pal
index 4f2fe0884..305e1a362 100644
--- a/gfx/pics/074/shiny.pal
+++ b/gfx/pics/074/shiny.pal
Binary files differ
diff --git a/gfx/pics/075/normal.pal b/gfx/pics/075/normal.pal
index dc246e18c..fb55478b1 100644
--- a/gfx/pics/075/normal.pal
+++ b/gfx/pics/075/normal.pal
Binary files differ
diff --git a/gfx/pics/075/shiny.pal b/gfx/pics/075/shiny.pal
index 022bbd67f..36ba603c5 100644
--- a/gfx/pics/075/shiny.pal
+++ b/gfx/pics/075/shiny.pal
Binary files differ
diff --git a/gfx/pics/076/normal.pal b/gfx/pics/076/normal.pal
index 12740cdf0..be50f4de6 100644
--- a/gfx/pics/076/normal.pal
+++ b/gfx/pics/076/normal.pal
Binary files differ
diff --git a/gfx/pics/076/shiny.pal b/gfx/pics/076/shiny.pal
index 4e8802480..d50b44fa6 100644
--- a/gfx/pics/076/shiny.pal
+++ b/gfx/pics/076/shiny.pal
Binary files differ
diff --git a/gfx/pics/077/normal.pal b/gfx/pics/077/normal.pal
index 13c379ae3..da67a88f7 100644
--- a/gfx/pics/077/normal.pal
+++ b/gfx/pics/077/normal.pal
Binary files differ
diff --git a/gfx/pics/077/shiny.pal b/gfx/pics/077/shiny.pal
index b0243090a..0358f40dd 100644
--- a/gfx/pics/077/shiny.pal
+++ b/gfx/pics/077/shiny.pal
Binary files differ
diff --git a/gfx/pics/078/normal.pal b/gfx/pics/078/normal.pal
index 13c379ae3..da67a88f7 100644
--- a/gfx/pics/078/normal.pal
+++ b/gfx/pics/078/normal.pal
Binary files differ
diff --git a/gfx/pics/078/shiny.pal b/gfx/pics/078/shiny.pal
index f76ff3224..f6ae96e3c 100644
--- a/gfx/pics/078/shiny.pal
+++ b/gfx/pics/078/shiny.pal
Binary files differ
diff --git a/gfx/pics/079/normal.pal b/gfx/pics/079/normal.pal
index c661d262b..e11055a37 100644
--- a/gfx/pics/079/normal.pal
+++ b/gfx/pics/079/normal.pal
Binary files differ
diff --git a/gfx/pics/079/shiny.pal b/gfx/pics/079/shiny.pal
index b84ed32c0..a70e0d0ed 100644
--- a/gfx/pics/079/shiny.pal
+++ b/gfx/pics/079/shiny.pal
Binary files differ
diff --git a/gfx/pics/080/normal.pal b/gfx/pics/080/normal.pal
index 2e249737f..5f6dd1da4 100644
--- a/gfx/pics/080/normal.pal
+++ b/gfx/pics/080/normal.pal
Binary files differ
diff --git a/gfx/pics/080/shiny.pal b/gfx/pics/080/shiny.pal
index 33dab4050..7c1a1e020 100644
--- a/gfx/pics/080/shiny.pal
+++ b/gfx/pics/080/shiny.pal
Binary files differ
diff --git a/gfx/pics/081/normal.pal b/gfx/pics/081/normal.pal
index ffd51d365..0ac1c9c8e 100644
--- a/gfx/pics/081/normal.pal
+++ b/gfx/pics/081/normal.pal
Binary files differ
diff --git a/gfx/pics/081/shiny.pal b/gfx/pics/081/shiny.pal
index 579e53c5e..1ebbee13f 100644
--- a/gfx/pics/081/shiny.pal
+++ b/gfx/pics/081/shiny.pal
Binary files differ
diff --git a/gfx/pics/082/normal.pal b/gfx/pics/082/normal.pal
index ffd51d365..0ac1c9c8e 100644
--- a/gfx/pics/082/normal.pal
+++ b/gfx/pics/082/normal.pal
Binary files differ
diff --git a/gfx/pics/082/shiny.pal b/gfx/pics/082/shiny.pal
index 73f610a59..54c3a94ac 100644
--- a/gfx/pics/082/shiny.pal
+++ b/gfx/pics/082/shiny.pal
Binary files differ
diff --git a/gfx/pics/083/normal.pal b/gfx/pics/083/normal.pal
index d3746467c..17e60c4ce 100644
--- a/gfx/pics/083/normal.pal
+++ b/gfx/pics/083/normal.pal
Binary files differ
diff --git a/gfx/pics/083/shiny.pal b/gfx/pics/083/shiny.pal
index 821ad12e2..2bae03e7f 100644
--- a/gfx/pics/083/shiny.pal
+++ b/gfx/pics/083/shiny.pal
Binary files differ
diff --git a/gfx/pics/084/normal.pal b/gfx/pics/084/normal.pal
index f22efcc7a..e32cb088f 100644
--- a/gfx/pics/084/normal.pal
+++ b/gfx/pics/084/normal.pal
Binary files differ
diff --git a/gfx/pics/084/shiny.pal b/gfx/pics/084/shiny.pal
index 75c6e2cbc..f8093f636 100644
--- a/gfx/pics/084/shiny.pal
+++ b/gfx/pics/084/shiny.pal
Binary files differ
diff --git a/gfx/pics/085/normal.pal b/gfx/pics/085/normal.pal
index d70654816..a38c0466c 100644
--- a/gfx/pics/085/normal.pal
+++ b/gfx/pics/085/normal.pal
Binary files differ
diff --git a/gfx/pics/085/shiny.pal b/gfx/pics/085/shiny.pal
index ba2fcb035..521bc017b 100644
--- a/gfx/pics/085/shiny.pal
+++ b/gfx/pics/085/shiny.pal
Binary files differ
diff --git a/gfx/pics/086/normal.pal b/gfx/pics/086/normal.pal
index ffe97615a..9c09450cb 100644
--- a/gfx/pics/086/normal.pal
+++ b/gfx/pics/086/normal.pal
Binary files differ
diff --git a/gfx/pics/086/shiny.pal b/gfx/pics/086/shiny.pal
index e5119edd0..bee98179f 100644
--- a/gfx/pics/086/shiny.pal
+++ b/gfx/pics/086/shiny.pal
Binary files differ
diff --git a/gfx/pics/087/normal.pal b/gfx/pics/087/normal.pal
index df7bdf0bd..80bca6734 100644
--- a/gfx/pics/087/normal.pal
+++ b/gfx/pics/087/normal.pal
Binary files differ
diff --git a/gfx/pics/087/shiny.pal b/gfx/pics/087/shiny.pal
index 20f11d749..b9da48134 100644
--- a/gfx/pics/087/shiny.pal
+++ b/gfx/pics/087/shiny.pal
Binary files differ
diff --git a/gfx/pics/088/normal.pal b/gfx/pics/088/normal.pal
index 93009f30e..32df6345f 100644
--- a/gfx/pics/088/normal.pal
+++ b/gfx/pics/088/normal.pal
Binary files differ
diff --git a/gfx/pics/088/shiny.pal b/gfx/pics/088/shiny.pal
index 0f6989947..893276df4 100644
--- a/gfx/pics/088/shiny.pal
+++ b/gfx/pics/088/shiny.pal
Binary files differ
diff --git a/gfx/pics/089/normal.pal b/gfx/pics/089/normal.pal
index 93009f30e..32df6345f 100644
--- a/gfx/pics/089/normal.pal
+++ b/gfx/pics/089/normal.pal
Binary files differ
diff --git a/gfx/pics/089/shiny.pal b/gfx/pics/089/shiny.pal
index 92cb4a6e0..34c8de27e 100644
--- a/gfx/pics/089/shiny.pal
+++ b/gfx/pics/089/shiny.pal
Binary files differ
diff --git a/gfx/pics/090/normal.pal b/gfx/pics/090/normal.pal
index 7a7db7276..c36e0c685 100644
--- a/gfx/pics/090/normal.pal
+++ b/gfx/pics/090/normal.pal
Binary files differ
diff --git a/gfx/pics/090/shiny.pal b/gfx/pics/090/shiny.pal
index f37180377..21c389b28 100644
--- a/gfx/pics/090/shiny.pal
+++ b/gfx/pics/090/shiny.pal
Binary files differ
diff --git a/gfx/pics/091/normal.pal b/gfx/pics/091/normal.pal
index 2706c8188..a0061617c 100644
--- a/gfx/pics/091/normal.pal
+++ b/gfx/pics/091/normal.pal
Binary files differ
diff --git a/gfx/pics/091/shiny.pal b/gfx/pics/091/shiny.pal
index aea55aee0..973ccfb8a 100644
--- a/gfx/pics/091/shiny.pal
+++ b/gfx/pics/091/shiny.pal
Binary files differ
diff --git a/gfx/pics/092/normal.pal b/gfx/pics/092/normal.pal
index 1421a65a0..d91233a51 100644
--- a/gfx/pics/092/normal.pal
+++ b/gfx/pics/092/normal.pal
Binary files differ
diff --git a/gfx/pics/092/shiny.pal b/gfx/pics/092/shiny.pal
index 252b21125..50e42ab4a 100644
--- a/gfx/pics/092/shiny.pal
+++ b/gfx/pics/092/shiny.pal
Binary files differ
diff --git a/gfx/pics/093/normal.pal b/gfx/pics/093/normal.pal
index 13534da1f..7ef36a1c6 100644
--- a/gfx/pics/093/normal.pal
+++ b/gfx/pics/093/normal.pal
Binary files differ
diff --git a/gfx/pics/093/shiny.pal b/gfx/pics/093/shiny.pal
index 2a7678e45..b8ea0d809 100644
--- a/gfx/pics/093/shiny.pal
+++ b/gfx/pics/093/shiny.pal
Binary files differ
diff --git a/gfx/pics/094/normal.pal b/gfx/pics/094/normal.pal
index 1c7bbbb0e..16a51fce3 100644
--- a/gfx/pics/094/normal.pal
+++ b/gfx/pics/094/normal.pal
Binary files differ
diff --git a/gfx/pics/094/shiny.pal b/gfx/pics/094/shiny.pal
index a1f45b769..ccf6bf685 100644
--- a/gfx/pics/094/shiny.pal
+++ b/gfx/pics/094/shiny.pal
Binary files differ
diff --git a/gfx/pics/095/normal.pal b/gfx/pics/095/normal.pal
index 858019a00..2b8c1b6b9 100644
--- a/gfx/pics/095/normal.pal
+++ b/gfx/pics/095/normal.pal
Binary files differ
diff --git a/gfx/pics/095/shiny.pal b/gfx/pics/095/shiny.pal
index afaa67dff..66935962c 100644
--- a/gfx/pics/095/shiny.pal
+++ b/gfx/pics/095/shiny.pal
Binary files differ
diff --git a/gfx/pics/096/normal.pal b/gfx/pics/096/normal.pal
index 8077570dc..e1e6b8d0c 100644
--- a/gfx/pics/096/normal.pal
+++ b/gfx/pics/096/normal.pal
Binary files differ
diff --git a/gfx/pics/096/shiny.pal b/gfx/pics/096/shiny.pal
index 47e0e3835..2b0946ece 100644
--- a/gfx/pics/096/shiny.pal
+++ b/gfx/pics/096/shiny.pal
Binary files differ
diff --git a/gfx/pics/097/normal.pal b/gfx/pics/097/normal.pal
index 5a7cb7480..ddcd2b573 100644
--- a/gfx/pics/097/normal.pal
+++ b/gfx/pics/097/normal.pal
Binary files differ
diff --git a/gfx/pics/097/shiny.pal b/gfx/pics/097/shiny.pal
index 912466394..51f14601f 100644
--- a/gfx/pics/097/shiny.pal
+++ b/gfx/pics/097/shiny.pal
Binary files differ
diff --git a/gfx/pics/098/normal.pal b/gfx/pics/098/normal.pal
index d91b45e81..a347ecf9c 100644
--- a/gfx/pics/098/normal.pal
+++ b/gfx/pics/098/normal.pal
Binary files differ
diff --git a/gfx/pics/098/shiny.pal b/gfx/pics/098/shiny.pal
index c5973cb33..57fd91a81 100644
--- a/gfx/pics/098/shiny.pal
+++ b/gfx/pics/098/shiny.pal
Binary files differ
diff --git a/gfx/pics/099/normal.pal b/gfx/pics/099/normal.pal
index d91b45e81..a347ecf9c 100644
--- a/gfx/pics/099/normal.pal
+++ b/gfx/pics/099/normal.pal
Binary files differ
diff --git a/gfx/pics/099/shiny.pal b/gfx/pics/099/shiny.pal
index 0b20aa210..9a9c3818b 100644
--- a/gfx/pics/099/shiny.pal
+++ b/gfx/pics/099/shiny.pal
Binary files differ
diff --git a/gfx/pics/100/normal.pal b/gfx/pics/100/normal.pal
index 71936fd2c..07658abee 100644
--- a/gfx/pics/100/normal.pal
+++ b/gfx/pics/100/normal.pal
Binary files differ
diff --git a/gfx/pics/100/shiny.pal b/gfx/pics/100/shiny.pal
index 3c64ad56e..b8509a81f 100644
--- a/gfx/pics/100/shiny.pal
+++ b/gfx/pics/100/shiny.pal
Binary files differ
diff --git a/gfx/pics/101/normal.pal b/gfx/pics/101/normal.pal
index 71936fd2c..07658abee 100644
--- a/gfx/pics/101/normal.pal
+++ b/gfx/pics/101/normal.pal
Binary files differ
diff --git a/gfx/pics/101/shiny.pal b/gfx/pics/101/shiny.pal
index 3c64ad56e..b8509a81f 100644
--- a/gfx/pics/101/shiny.pal
+++ b/gfx/pics/101/shiny.pal
Binary files differ
diff --git a/gfx/pics/102/normal.pal b/gfx/pics/102/normal.pal
index b74da31f6..539432719 100644
--- a/gfx/pics/102/normal.pal
+++ b/gfx/pics/102/normal.pal
Binary files differ
diff --git a/gfx/pics/102/shiny.pal b/gfx/pics/102/shiny.pal
index 9ba6fb35b..63686e6f0 100644
--- a/gfx/pics/102/shiny.pal
+++ b/gfx/pics/102/shiny.pal
Binary files differ
diff --git a/gfx/pics/103/normal.pal b/gfx/pics/103/normal.pal
index c4dac2948..0318f71a5 100644
--- a/gfx/pics/103/normal.pal
+++ b/gfx/pics/103/normal.pal
Binary files differ
diff --git a/gfx/pics/103/shiny.pal b/gfx/pics/103/shiny.pal
index ceaab7176..c580552e0 100644
--- a/gfx/pics/103/shiny.pal
+++ b/gfx/pics/103/shiny.pal
Binary files differ
diff --git a/gfx/pics/104/normal.pal b/gfx/pics/104/normal.pal
index 584faad18..eb2ec4b7b 100644
--- a/gfx/pics/104/normal.pal
+++ b/gfx/pics/104/normal.pal
Binary files differ
diff --git a/gfx/pics/104/shiny.pal b/gfx/pics/104/shiny.pal
index eb27736c8..e27abe43a 100644
--- a/gfx/pics/104/shiny.pal
+++ b/gfx/pics/104/shiny.pal
Binary files differ
diff --git a/gfx/pics/105/normal.pal b/gfx/pics/105/normal.pal
index 584faad18..eb2ec4b7b 100644
--- a/gfx/pics/105/normal.pal
+++ b/gfx/pics/105/normal.pal
Binary files differ
diff --git a/gfx/pics/105/shiny.pal b/gfx/pics/105/shiny.pal
index 99b32a0cf..2f2093469 100644
--- a/gfx/pics/105/shiny.pal
+++ b/gfx/pics/105/shiny.pal
Binary files differ
diff --git a/gfx/pics/106/normal.pal b/gfx/pics/106/normal.pal
index 7ed63b8ff..f9973fcfd 100644
--- a/gfx/pics/106/normal.pal
+++ b/gfx/pics/106/normal.pal
Binary files differ
diff --git a/gfx/pics/106/shiny.pal b/gfx/pics/106/shiny.pal
index 6776568e9..c0ee7cc2e 100644
--- a/gfx/pics/106/shiny.pal
+++ b/gfx/pics/106/shiny.pal
Binary files differ
diff --git a/gfx/pics/107/normal.pal b/gfx/pics/107/normal.pal
index 0e8b46582..b735101e8 100644
--- a/gfx/pics/107/normal.pal
+++ b/gfx/pics/107/normal.pal
Binary files differ
diff --git a/gfx/pics/107/shiny.pal b/gfx/pics/107/shiny.pal
index c8f0a4604..ff930b7a5 100644
--- a/gfx/pics/107/shiny.pal
+++ b/gfx/pics/107/shiny.pal
Binary files differ
diff --git a/gfx/pics/108/normal.pal b/gfx/pics/108/normal.pal
index 2a5aa126e..75782a5b8 100644
--- a/gfx/pics/108/normal.pal
+++ b/gfx/pics/108/normal.pal
Binary files differ
diff --git a/gfx/pics/108/shiny.pal b/gfx/pics/108/shiny.pal
index 168141f65..214a63264 100644
--- a/gfx/pics/108/shiny.pal
+++ b/gfx/pics/108/shiny.pal
Binary files differ
diff --git a/gfx/pics/109/normal.pal b/gfx/pics/109/normal.pal
index 68d868bdc..a4df75fdc 100644
--- a/gfx/pics/109/normal.pal
+++ b/gfx/pics/109/normal.pal
Binary files differ
diff --git a/gfx/pics/109/shiny.pal b/gfx/pics/109/shiny.pal
index e30629fdf..8132fea04 100644
--- a/gfx/pics/109/shiny.pal
+++ b/gfx/pics/109/shiny.pal
Binary files differ
diff --git a/gfx/pics/110/normal.pal b/gfx/pics/110/normal.pal
index 2bc228336..38c816da2 100644
--- a/gfx/pics/110/normal.pal
+++ b/gfx/pics/110/normal.pal
Binary files differ
diff --git a/gfx/pics/110/shiny.pal b/gfx/pics/110/shiny.pal
index e30629fdf..8132fea04 100644
--- a/gfx/pics/110/shiny.pal
+++ b/gfx/pics/110/shiny.pal
Binary files differ
diff --git a/gfx/pics/111/normal.pal b/gfx/pics/111/normal.pal
index a72fb5b31..5dbf17032 100644
--- a/gfx/pics/111/normal.pal
+++ b/gfx/pics/111/normal.pal
Binary files differ
diff --git a/gfx/pics/111/shiny.pal b/gfx/pics/111/shiny.pal
index b00706024..4b11a7f20 100644
--- a/gfx/pics/111/shiny.pal
+++ b/gfx/pics/111/shiny.pal
Binary files differ
diff --git a/gfx/pics/112/normal.pal b/gfx/pics/112/normal.pal
index a72fb5b31..5dbf17032 100644
--- a/gfx/pics/112/normal.pal
+++ b/gfx/pics/112/normal.pal
Binary files differ
diff --git a/gfx/pics/112/shiny.pal b/gfx/pics/112/shiny.pal
index 76bb7a1c4..b036be1f3 100644
--- a/gfx/pics/112/shiny.pal
+++ b/gfx/pics/112/shiny.pal
Binary files differ
diff --git a/gfx/pics/113/normal.pal b/gfx/pics/113/normal.pal
index 5233d1aba..f7fafd1f7 100644
--- a/gfx/pics/113/normal.pal
+++ b/gfx/pics/113/normal.pal
Binary files differ
diff --git a/gfx/pics/113/shiny.pal b/gfx/pics/113/shiny.pal
index b9f815faf..4d52ad934 100644
--- a/gfx/pics/113/shiny.pal
+++ b/gfx/pics/113/shiny.pal
Binary files differ
diff --git a/gfx/pics/114/normal.pal b/gfx/pics/114/normal.pal
index de91e0c0c..c742f093f 100644
--- a/gfx/pics/114/normal.pal
+++ b/gfx/pics/114/normal.pal
Binary files differ
diff --git a/gfx/pics/114/shiny.pal b/gfx/pics/114/shiny.pal
index 0f8beb311..089ec35c4 100644
--- a/gfx/pics/114/shiny.pal
+++ b/gfx/pics/114/shiny.pal
Binary files differ
diff --git a/gfx/pics/115/normal.pal b/gfx/pics/115/normal.pal
index 309accfde..06a80fc6d 100644
--- a/gfx/pics/115/normal.pal
+++ b/gfx/pics/115/normal.pal
Binary files differ
diff --git a/gfx/pics/115/shiny.pal b/gfx/pics/115/shiny.pal
index 1f20d4666..492559959 100644
--- a/gfx/pics/115/shiny.pal
+++ b/gfx/pics/115/shiny.pal
Binary files differ
diff --git a/gfx/pics/116/normal.pal b/gfx/pics/116/normal.pal
index b6b3e7360..7a8344a06 100644
--- a/gfx/pics/116/normal.pal
+++ b/gfx/pics/116/normal.pal
Binary files differ
diff --git a/gfx/pics/116/shiny.pal b/gfx/pics/116/shiny.pal
index 14371c022..9b9875302 100644
--- a/gfx/pics/116/shiny.pal
+++ b/gfx/pics/116/shiny.pal
Binary files differ
diff --git a/gfx/pics/117/normal.pal b/gfx/pics/117/normal.pal
index bb159158b..93b323071 100644
--- a/gfx/pics/117/normal.pal
+++ b/gfx/pics/117/normal.pal
Binary files differ
diff --git a/gfx/pics/117/shiny.pal b/gfx/pics/117/shiny.pal
index 7f78e3c4b..7dab3b2ec 100644
--- a/gfx/pics/117/shiny.pal
+++ b/gfx/pics/117/shiny.pal
Binary files differ
diff --git a/gfx/pics/118/normal.pal b/gfx/pics/118/normal.pal
index f42a9204f..4ada439c0 100644
--- a/gfx/pics/118/normal.pal
+++ b/gfx/pics/118/normal.pal
Binary files differ
diff --git a/gfx/pics/118/shiny.pal b/gfx/pics/118/shiny.pal
index 0e26308af..14910020e 100644
--- a/gfx/pics/118/shiny.pal
+++ b/gfx/pics/118/shiny.pal
Binary files differ
diff --git a/gfx/pics/119/normal.pal b/gfx/pics/119/normal.pal
index 9f5675e35..2adfee5c9 100644
--- a/gfx/pics/119/normal.pal
+++ b/gfx/pics/119/normal.pal
Binary files differ
diff --git a/gfx/pics/119/shiny.pal b/gfx/pics/119/shiny.pal
index 9b2b7425e..be7291e84 100644
--- a/gfx/pics/119/shiny.pal
+++ b/gfx/pics/119/shiny.pal
Binary files differ
diff --git a/gfx/pics/120/normal.pal b/gfx/pics/120/normal.pal
index 1c55899e3..59f7cc477 100644
--- a/gfx/pics/120/normal.pal
+++ b/gfx/pics/120/normal.pal
Binary files differ
diff --git a/gfx/pics/120/shiny.pal b/gfx/pics/120/shiny.pal
index 8709e9fd0..11546faee 100644
--- a/gfx/pics/120/shiny.pal
+++ b/gfx/pics/120/shiny.pal
Binary files differ
diff --git a/gfx/pics/121/normal.pal b/gfx/pics/121/normal.pal
index 4b63f777e..caaf43505 100644
--- a/gfx/pics/121/normal.pal
+++ b/gfx/pics/121/normal.pal
Binary files differ
diff --git a/gfx/pics/121/shiny.pal b/gfx/pics/121/shiny.pal
index 48749f54e..c9932cd86 100644
--- a/gfx/pics/121/shiny.pal
+++ b/gfx/pics/121/shiny.pal
Binary files differ
diff --git a/gfx/pics/122/normal.pal b/gfx/pics/122/normal.pal
index 975e9df72..8dd10edc5 100644
--- a/gfx/pics/122/normal.pal
+++ b/gfx/pics/122/normal.pal
Binary files differ
diff --git a/gfx/pics/122/shiny.pal b/gfx/pics/122/shiny.pal
index f9204da7f..d9a2accd2 100644
--- a/gfx/pics/122/shiny.pal
+++ b/gfx/pics/122/shiny.pal
Binary files differ
diff --git a/gfx/pics/123/normal.pal b/gfx/pics/123/normal.pal
index ba62c5abb..ce30374e5 100644
--- a/gfx/pics/123/normal.pal
+++ b/gfx/pics/123/normal.pal
Binary files differ
diff --git a/gfx/pics/123/shiny.pal b/gfx/pics/123/shiny.pal
index 55778c79c..550d6dece 100644
--- a/gfx/pics/123/shiny.pal
+++ b/gfx/pics/123/shiny.pal
Binary files differ
diff --git a/gfx/pics/124/normal.pal b/gfx/pics/124/normal.pal
index cf7ea7081..6ae162f94 100644
--- a/gfx/pics/124/normal.pal
+++ b/gfx/pics/124/normal.pal
Binary files differ
diff --git a/gfx/pics/124/shiny.pal b/gfx/pics/124/shiny.pal
index 703db102f..7e6ad315e 100644
--- a/gfx/pics/124/shiny.pal
+++ b/gfx/pics/124/shiny.pal
Binary files differ
diff --git a/gfx/pics/125/normal.pal b/gfx/pics/125/normal.pal
index d13af3bb3..71fecfa13 100644
--- a/gfx/pics/125/normal.pal
+++ b/gfx/pics/125/normal.pal
Binary files differ
diff --git a/gfx/pics/125/shiny.pal b/gfx/pics/125/shiny.pal
index 944420b27..e932aa461 100644
--- a/gfx/pics/125/shiny.pal
+++ b/gfx/pics/125/shiny.pal
Binary files differ
diff --git a/gfx/pics/126/normal.pal b/gfx/pics/126/normal.pal
index 1007ba6ff..71372fd59 100644
--- a/gfx/pics/126/normal.pal
+++ b/gfx/pics/126/normal.pal
Binary files differ
diff --git a/gfx/pics/126/shiny.pal b/gfx/pics/126/shiny.pal
index 8839b90a2..0ccf2a2dd 100644
--- a/gfx/pics/126/shiny.pal
+++ b/gfx/pics/126/shiny.pal
Binary files differ
diff --git a/gfx/pics/127/normal.pal b/gfx/pics/127/normal.pal
index eff04a699..09bf39ff4 100644
--- a/gfx/pics/127/normal.pal
+++ b/gfx/pics/127/normal.pal
Binary files differ
diff --git a/gfx/pics/127/shiny.pal b/gfx/pics/127/shiny.pal
index d5d452269..4f586775a 100644
--- a/gfx/pics/127/shiny.pal
+++ b/gfx/pics/127/shiny.pal
Binary files differ
diff --git a/gfx/pics/128/normal.pal b/gfx/pics/128/normal.pal
index d397893e0..396e765e2 100644
--- a/gfx/pics/128/normal.pal
+++ b/gfx/pics/128/normal.pal
Binary files differ
diff --git a/gfx/pics/128/shiny.pal b/gfx/pics/128/shiny.pal
index 7b6f143fb..cc360615c 100644
--- a/gfx/pics/128/shiny.pal
+++ b/gfx/pics/128/shiny.pal
Binary files differ
diff --git a/gfx/pics/129/normal.pal b/gfx/pics/129/normal.pal
index 3ed057ed6..225333e20 100644
--- a/gfx/pics/129/normal.pal
+++ b/gfx/pics/129/normal.pal
Binary files differ
diff --git a/gfx/pics/129/shiny.pal b/gfx/pics/129/shiny.pal
index d12ba7a99..24fb00761 100644
--- a/gfx/pics/129/shiny.pal
+++ b/gfx/pics/129/shiny.pal
Binary files differ
diff --git a/gfx/pics/130/normal.pal b/gfx/pics/130/normal.pal
index bbdc11e5f..51cc26df9 100644
--- a/gfx/pics/130/normal.pal
+++ b/gfx/pics/130/normal.pal
Binary files differ
diff --git a/gfx/pics/130/shiny.pal b/gfx/pics/130/shiny.pal
index 359a6acc3..d0599722d 100644
--- a/gfx/pics/130/shiny.pal
+++ b/gfx/pics/130/shiny.pal
Binary files differ
diff --git a/gfx/pics/131/normal.pal b/gfx/pics/131/normal.pal
index 51698d6de..9e617a3ef 100644
--- a/gfx/pics/131/normal.pal
+++ b/gfx/pics/131/normal.pal
Binary files differ
diff --git a/gfx/pics/131/shiny.pal b/gfx/pics/131/shiny.pal
index aa3c561cc..58fa3bc59 100644
--- a/gfx/pics/131/shiny.pal
+++ b/gfx/pics/131/shiny.pal
Binary files differ
diff --git a/gfx/pics/132/normal.pal b/gfx/pics/132/normal.pal
index ef030d1a7..00cb0d5e6 100644
--- a/gfx/pics/132/normal.pal
+++ b/gfx/pics/132/normal.pal
Binary files differ
diff --git a/gfx/pics/132/shiny.pal b/gfx/pics/132/shiny.pal
index b933a8bbd..bcc063864 100644
--- a/gfx/pics/132/shiny.pal
+++ b/gfx/pics/132/shiny.pal
Binary files differ
diff --git a/gfx/pics/133/normal.pal b/gfx/pics/133/normal.pal
index 37f4db6bd..d09dba19e 100644
--- a/gfx/pics/133/normal.pal
+++ b/gfx/pics/133/normal.pal
Binary files differ
diff --git a/gfx/pics/133/shiny.pal b/gfx/pics/133/shiny.pal
index 6e22a95a9..69759609c 100644
--- a/gfx/pics/133/shiny.pal
+++ b/gfx/pics/133/shiny.pal
Binary files differ
diff --git a/gfx/pics/134/normal.pal b/gfx/pics/134/normal.pal
index 3b8f8b979..b910e1146 100644
--- a/gfx/pics/134/normal.pal
+++ b/gfx/pics/134/normal.pal
Binary files differ
diff --git a/gfx/pics/134/shiny.pal b/gfx/pics/134/shiny.pal
index 821429c6b..b8571c740 100644
--- a/gfx/pics/134/shiny.pal
+++ b/gfx/pics/134/shiny.pal
Binary files differ
diff --git a/gfx/pics/135/normal.pal b/gfx/pics/135/normal.pal
index d8f43dbda..81c384474 100644
--- a/gfx/pics/135/normal.pal
+++ b/gfx/pics/135/normal.pal
Binary files differ
diff --git a/gfx/pics/135/shiny.pal b/gfx/pics/135/shiny.pal
index 526826eb8..81d8eda41 100644
--- a/gfx/pics/135/shiny.pal
+++ b/gfx/pics/135/shiny.pal
Binary files differ
diff --git a/gfx/pics/136/normal.pal b/gfx/pics/136/normal.pal
index 7c484f11c..2156fb420 100644
--- a/gfx/pics/136/normal.pal
+++ b/gfx/pics/136/normal.pal
Binary files differ
diff --git a/gfx/pics/136/shiny.pal b/gfx/pics/136/shiny.pal
index e9dc7a850..7e840a3cd 100644
--- a/gfx/pics/136/shiny.pal
+++ b/gfx/pics/136/shiny.pal
Binary files differ
diff --git a/gfx/pics/137/normal.pal b/gfx/pics/137/normal.pal
index c3bba346e..61ca2eef9 100644
--- a/gfx/pics/137/normal.pal
+++ b/gfx/pics/137/normal.pal
Binary files differ
diff --git a/gfx/pics/137/shiny.pal b/gfx/pics/137/shiny.pal
index 95c3e55ca..bea4751bf 100644
--- a/gfx/pics/137/shiny.pal
+++ b/gfx/pics/137/shiny.pal
Binary files differ
diff --git a/gfx/pics/138/normal.pal b/gfx/pics/138/normal.pal
index 68b252db1..b0df7149b 100644
--- a/gfx/pics/138/normal.pal
+++ b/gfx/pics/138/normal.pal
Binary files differ
diff --git a/gfx/pics/138/shiny.pal b/gfx/pics/138/shiny.pal
index 7cf46bc34..cc1531b57 100644
--- a/gfx/pics/138/shiny.pal
+++ b/gfx/pics/138/shiny.pal
Binary files differ
diff --git a/gfx/pics/139/normal.pal b/gfx/pics/139/normal.pal
index 68b252db1..b0df7149b 100644
--- a/gfx/pics/139/normal.pal
+++ b/gfx/pics/139/normal.pal
Binary files differ
diff --git a/gfx/pics/139/shiny.pal b/gfx/pics/139/shiny.pal
index 90a696978..2b8017338 100644
--- a/gfx/pics/139/shiny.pal
+++ b/gfx/pics/139/shiny.pal
Binary files differ
diff --git a/gfx/pics/140/normal.pal b/gfx/pics/140/normal.pal
index 8f9c894df..a8935ce9c 100644
--- a/gfx/pics/140/normal.pal
+++ b/gfx/pics/140/normal.pal
Binary files differ
diff --git a/gfx/pics/140/shiny.pal b/gfx/pics/140/shiny.pal
index 0732d83c5..1248ce809 100644
--- a/gfx/pics/140/shiny.pal
+++ b/gfx/pics/140/shiny.pal
Binary files differ
diff --git a/gfx/pics/141/normal.pal b/gfx/pics/141/normal.pal
index 8f9c894df..a8935ce9c 100644
--- a/gfx/pics/141/normal.pal
+++ b/gfx/pics/141/normal.pal
Binary files differ
diff --git a/gfx/pics/141/shiny.pal b/gfx/pics/141/shiny.pal
index 36e615635..5c7ac28cf 100644
--- a/gfx/pics/141/shiny.pal
+++ b/gfx/pics/141/shiny.pal
Binary files differ
diff --git a/gfx/pics/142/normal.pal b/gfx/pics/142/normal.pal
index 9720c150b..a816937e3 100644
--- a/gfx/pics/142/normal.pal
+++ b/gfx/pics/142/normal.pal
Binary files differ
diff --git a/gfx/pics/142/shiny.pal b/gfx/pics/142/shiny.pal
index bee021013..6dade0490 100644
--- a/gfx/pics/142/shiny.pal
+++ b/gfx/pics/142/shiny.pal
Binary files differ
diff --git a/gfx/pics/143/normal.pal b/gfx/pics/143/normal.pal
index 4ae8279ae..af1845a65 100644
--- a/gfx/pics/143/normal.pal
+++ b/gfx/pics/143/normal.pal
Binary files differ
diff --git a/gfx/pics/143/shiny.pal b/gfx/pics/143/shiny.pal
index e6d406586..9a3ed5d55 100644
--- a/gfx/pics/143/shiny.pal
+++ b/gfx/pics/143/shiny.pal
Binary files differ
diff --git a/gfx/pics/144/normal.pal b/gfx/pics/144/normal.pal
index 06be755e7..121620e3c 100644
--- a/gfx/pics/144/normal.pal
+++ b/gfx/pics/144/normal.pal
Binary files differ
diff --git a/gfx/pics/144/shiny.pal b/gfx/pics/144/shiny.pal
index 9d054dccc..d6c56f521 100644
--- a/gfx/pics/144/shiny.pal
+++ b/gfx/pics/144/shiny.pal
Binary files differ
diff --git a/gfx/pics/145/normal.pal b/gfx/pics/145/normal.pal
index 06a121a65..fdfcd0418 100644
--- a/gfx/pics/145/normal.pal
+++ b/gfx/pics/145/normal.pal
Binary files differ
diff --git a/gfx/pics/145/shiny.pal b/gfx/pics/145/shiny.pal
index a5361d394..e73dbe6ff 100644
--- a/gfx/pics/145/shiny.pal
+++ b/gfx/pics/145/shiny.pal
Binary files differ
diff --git a/gfx/pics/146/normal.pal b/gfx/pics/146/normal.pal
index 78f2349d7..74fbaa204 100644
--- a/gfx/pics/146/normal.pal
+++ b/gfx/pics/146/normal.pal
Binary files differ
diff --git a/gfx/pics/146/shiny.pal b/gfx/pics/146/shiny.pal
index 338ecacca..523732d45 100644
--- a/gfx/pics/146/shiny.pal
+++ b/gfx/pics/146/shiny.pal
Binary files differ
diff --git a/gfx/pics/147/normal.pal b/gfx/pics/147/normal.pal
index e19e45b35..d4e9f5109 100644
--- a/gfx/pics/147/normal.pal
+++ b/gfx/pics/147/normal.pal
Binary files differ
diff --git a/gfx/pics/147/shiny.pal b/gfx/pics/147/shiny.pal
index 512c852c2..e7c9b58a1 100644
--- a/gfx/pics/147/shiny.pal
+++ b/gfx/pics/147/shiny.pal
Binary files differ
diff --git a/gfx/pics/148/normal.pal b/gfx/pics/148/normal.pal
index d902aae69..ee0234a5e 100644
--- a/gfx/pics/148/normal.pal
+++ b/gfx/pics/148/normal.pal
Binary files differ
diff --git a/gfx/pics/148/shiny.pal b/gfx/pics/148/shiny.pal
index 5b065ac5e..744429411 100644
--- a/gfx/pics/148/shiny.pal
+++ b/gfx/pics/148/shiny.pal
Binary files differ
diff --git a/gfx/pics/149/normal.pal b/gfx/pics/149/normal.pal
index 71298dc64..40f8cf8c8 100644
--- a/gfx/pics/149/normal.pal
+++ b/gfx/pics/149/normal.pal
Binary files differ
diff --git a/gfx/pics/149/shiny.pal b/gfx/pics/149/shiny.pal
index 0134d11bf..f12fb4a7b 100644
--- a/gfx/pics/149/shiny.pal
+++ b/gfx/pics/149/shiny.pal
Binary files differ
diff --git a/gfx/pics/150/normal.pal b/gfx/pics/150/normal.pal
index cfa58fc4e..b32f017f5 100644
--- a/gfx/pics/150/normal.pal
+++ b/gfx/pics/150/normal.pal
Binary files differ
diff --git a/gfx/pics/150/shiny.pal b/gfx/pics/150/shiny.pal
index fbf05b5bb..c5dec4c3b 100644
--- a/gfx/pics/150/shiny.pal
+++ b/gfx/pics/150/shiny.pal
Binary files differ
diff --git a/gfx/pics/151/normal.pal b/gfx/pics/151/normal.pal
index b88b6f7a0..c01d4ab54 100644
--- a/gfx/pics/151/normal.pal
+++ b/gfx/pics/151/normal.pal
Binary files differ
diff --git a/gfx/pics/151/shiny.pal b/gfx/pics/151/shiny.pal
index d486192ef..9b1a1cced 100644
--- a/gfx/pics/151/shiny.pal
+++ b/gfx/pics/151/shiny.pal
Binary files differ
diff --git a/gfx/pics/152/normal.pal b/gfx/pics/152/normal.pal
index 8180f413d..06fdb2171 100644
--- a/gfx/pics/152/normal.pal
+++ b/gfx/pics/152/normal.pal
Binary files differ
diff --git a/gfx/pics/152/shiny.pal b/gfx/pics/152/shiny.pal
index 7aa98110b..c2ff6a3f8 100644
--- a/gfx/pics/152/shiny.pal
+++ b/gfx/pics/152/shiny.pal
Binary files differ
diff --git a/gfx/pics/153/normal.pal b/gfx/pics/153/normal.pal
index 3c0545091..03123d2d2 100644
--- a/gfx/pics/153/normal.pal
+++ b/gfx/pics/153/normal.pal
Binary files differ
diff --git a/gfx/pics/153/shiny.pal b/gfx/pics/153/shiny.pal
index 71a6f3cad..fcacccc19 100644
--- a/gfx/pics/153/shiny.pal
+++ b/gfx/pics/153/shiny.pal
Binary files differ
diff --git a/gfx/pics/154/normal.pal b/gfx/pics/154/normal.pal
index 66b42f4d3..2186bdc28 100644
--- a/gfx/pics/154/normal.pal
+++ b/gfx/pics/154/normal.pal
Binary files differ
diff --git a/gfx/pics/154/shiny.pal b/gfx/pics/154/shiny.pal
index 06e7fff9d..b09a172f6 100644
--- a/gfx/pics/154/shiny.pal
+++ b/gfx/pics/154/shiny.pal
Binary files differ
diff --git a/gfx/pics/155/normal.pal b/gfx/pics/155/normal.pal
index 434dffec2..38028335c 100644
--- a/gfx/pics/155/normal.pal
+++ b/gfx/pics/155/normal.pal
Binary files differ
diff --git a/gfx/pics/155/shiny.pal b/gfx/pics/155/shiny.pal
index b48c37a41..5b3df0b4e 100644
--- a/gfx/pics/155/shiny.pal
+++ b/gfx/pics/155/shiny.pal
Binary files differ
diff --git a/gfx/pics/156/normal.pal b/gfx/pics/156/normal.pal
index 9ef797dad..bee6c6eba 100644
--- a/gfx/pics/156/normal.pal
+++ b/gfx/pics/156/normal.pal
Binary files differ
diff --git a/gfx/pics/156/shiny.pal b/gfx/pics/156/shiny.pal
index b48c37a41..5b3df0b4e 100644
--- a/gfx/pics/156/shiny.pal
+++ b/gfx/pics/156/shiny.pal
Binary files differ
diff --git a/gfx/pics/157/normal.pal b/gfx/pics/157/normal.pal
index 17e85a17c..6b3f9efe7 100644
--- a/gfx/pics/157/normal.pal
+++ b/gfx/pics/157/normal.pal
Binary files differ
diff --git a/gfx/pics/157/shiny.pal b/gfx/pics/157/shiny.pal
index b48c37a41..5b3df0b4e 100644
--- a/gfx/pics/157/shiny.pal
+++ b/gfx/pics/157/shiny.pal
Binary files differ
diff --git a/gfx/pics/158/normal.pal b/gfx/pics/158/normal.pal
index 602977dc8..a07351f43 100644
--- a/gfx/pics/158/normal.pal
+++ b/gfx/pics/158/normal.pal
Binary files differ
diff --git a/gfx/pics/158/shiny.pal b/gfx/pics/158/shiny.pal
index 3c2cd84b1..c947fe43a 100644
--- a/gfx/pics/158/shiny.pal
+++ b/gfx/pics/158/shiny.pal
Binary files differ
diff --git a/gfx/pics/159/normal.pal b/gfx/pics/159/normal.pal
index eca750545..933593e9f 100644
--- a/gfx/pics/159/normal.pal
+++ b/gfx/pics/159/normal.pal
Binary files differ
diff --git a/gfx/pics/159/shiny.pal b/gfx/pics/159/shiny.pal
index 2b824eef5..efba52bea 100644
--- a/gfx/pics/159/shiny.pal
+++ b/gfx/pics/159/shiny.pal
Binary files differ
diff --git a/gfx/pics/160/normal.pal b/gfx/pics/160/normal.pal
index 78ec4fd30..2cbc9b1f5 100644
--- a/gfx/pics/160/normal.pal
+++ b/gfx/pics/160/normal.pal
Binary files differ
diff --git a/gfx/pics/160/shiny.pal b/gfx/pics/160/shiny.pal
index 5de362aa3..afe21b2b2 100644
--- a/gfx/pics/160/shiny.pal
+++ b/gfx/pics/160/shiny.pal
Binary files differ
diff --git a/gfx/pics/161/normal.pal b/gfx/pics/161/normal.pal
index b298aa2b8..2d0891fb6 100644
--- a/gfx/pics/161/normal.pal
+++ b/gfx/pics/161/normal.pal
Binary files differ
diff --git a/gfx/pics/161/shiny.pal b/gfx/pics/161/shiny.pal
index 39f471d15..86ba2ffba 100644
--- a/gfx/pics/161/shiny.pal
+++ b/gfx/pics/161/shiny.pal
Binary files differ
diff --git a/gfx/pics/162/normal.pal b/gfx/pics/162/normal.pal
index 74384fea0..d0bf474c9 100644
--- a/gfx/pics/162/normal.pal
+++ b/gfx/pics/162/normal.pal
Binary files differ
diff --git a/gfx/pics/162/shiny.pal b/gfx/pics/162/shiny.pal
index 75f4f1810..fe5870bd6 100644
--- a/gfx/pics/162/shiny.pal
+++ b/gfx/pics/162/shiny.pal
Binary files differ
diff --git a/gfx/pics/163/normal.pal b/gfx/pics/163/normal.pal
index 2a80e9e6f..af1d96c2d 100644
--- a/gfx/pics/163/normal.pal
+++ b/gfx/pics/163/normal.pal
Binary files differ
diff --git a/gfx/pics/163/shiny.pal b/gfx/pics/163/shiny.pal
index c3ad78a92..360685581 100644
--- a/gfx/pics/163/shiny.pal
+++ b/gfx/pics/163/shiny.pal
Binary files differ
diff --git a/gfx/pics/164/normal.pal b/gfx/pics/164/normal.pal
index ed39c4c2d..93785d70f 100644
--- a/gfx/pics/164/normal.pal
+++ b/gfx/pics/164/normal.pal
Binary files differ
diff --git a/gfx/pics/164/shiny.pal b/gfx/pics/164/shiny.pal
index c59485648..d53a230e7 100644
--- a/gfx/pics/164/shiny.pal
+++ b/gfx/pics/164/shiny.pal
Binary files differ
diff --git a/gfx/pics/165/normal.pal b/gfx/pics/165/normal.pal
index 51800cd91..e761d076a 100644
--- a/gfx/pics/165/normal.pal
+++ b/gfx/pics/165/normal.pal
Binary files differ
diff --git a/gfx/pics/165/shiny.pal b/gfx/pics/165/shiny.pal
index 1d4890db9..f404bc1d1 100644
--- a/gfx/pics/165/shiny.pal
+++ b/gfx/pics/165/shiny.pal
Binary files differ
diff --git a/gfx/pics/166/normal.pal b/gfx/pics/166/normal.pal
index eb965c0ac..09164a55c 100644
--- a/gfx/pics/166/normal.pal
+++ b/gfx/pics/166/normal.pal
Binary files differ
diff --git a/gfx/pics/166/shiny.pal b/gfx/pics/166/shiny.pal
index 1d4890db9..f404bc1d1 100644
--- a/gfx/pics/166/shiny.pal
+++ b/gfx/pics/166/shiny.pal
Binary files differ
diff --git a/gfx/pics/167/normal.pal b/gfx/pics/167/normal.pal
index 876863bba..92041eaac 100644
--- a/gfx/pics/167/normal.pal
+++ b/gfx/pics/167/normal.pal
Binary files differ
diff --git a/gfx/pics/167/shiny.pal b/gfx/pics/167/shiny.pal
index c33693ce8..931425e3c 100644
--- a/gfx/pics/167/shiny.pal
+++ b/gfx/pics/167/shiny.pal
Binary files differ
diff --git a/gfx/pics/168/normal.pal b/gfx/pics/168/normal.pal
index d5b055cea..211e75004 100644
--- a/gfx/pics/168/normal.pal
+++ b/gfx/pics/168/normal.pal
Binary files differ
diff --git a/gfx/pics/168/shiny.pal b/gfx/pics/168/shiny.pal
index c531cc421..1dae64a4f 100644
--- a/gfx/pics/168/shiny.pal
+++ b/gfx/pics/168/shiny.pal
Binary files differ
diff --git a/gfx/pics/169/normal.pal b/gfx/pics/169/normal.pal
index 3d4df8085..667255211 100644
--- a/gfx/pics/169/normal.pal
+++ b/gfx/pics/169/normal.pal
Binary files differ
diff --git a/gfx/pics/169/shiny.pal b/gfx/pics/169/shiny.pal
index 74d8ba663..2cb1d6ced 100644
--- a/gfx/pics/169/shiny.pal
+++ b/gfx/pics/169/shiny.pal
Binary files differ
diff --git a/gfx/pics/170/normal.pal b/gfx/pics/170/normal.pal
index 0994fae63..1749e7238 100644
--- a/gfx/pics/170/normal.pal
+++ b/gfx/pics/170/normal.pal
Binary files differ
diff --git a/gfx/pics/170/shiny.pal b/gfx/pics/170/shiny.pal
index f1ea06147..334561248 100644
--- a/gfx/pics/170/shiny.pal
+++ b/gfx/pics/170/shiny.pal
Binary files differ
diff --git a/gfx/pics/171/normal.pal b/gfx/pics/171/normal.pal
index 533adfd39..a61eb7237 100644
--- a/gfx/pics/171/normal.pal
+++ b/gfx/pics/171/normal.pal
Binary files differ
diff --git a/gfx/pics/171/shiny.pal b/gfx/pics/171/shiny.pal
index b6739192f..e1e3e4fe8 100644
--- a/gfx/pics/171/shiny.pal
+++ b/gfx/pics/171/shiny.pal
Binary files differ
diff --git a/gfx/pics/172/normal.pal b/gfx/pics/172/normal.pal
index f9f342d11..0ec212f83 100644
--- a/gfx/pics/172/normal.pal
+++ b/gfx/pics/172/normal.pal
Binary files differ
diff --git a/gfx/pics/172/shiny.pal b/gfx/pics/172/shiny.pal
index 5644bb0c7..a89172f54 100644
--- a/gfx/pics/172/shiny.pal
+++ b/gfx/pics/172/shiny.pal
Binary files differ
diff --git a/gfx/pics/173/normal.pal b/gfx/pics/173/normal.pal
index e91d2b943..7c1e3c7f2 100644
--- a/gfx/pics/173/normal.pal
+++ b/gfx/pics/173/normal.pal
Binary files differ
diff --git a/gfx/pics/173/shiny.pal b/gfx/pics/173/shiny.pal
index 8751befbf..1c0871557 100644
--- a/gfx/pics/173/shiny.pal
+++ b/gfx/pics/173/shiny.pal
Binary files differ
diff --git a/gfx/pics/174/normal.pal b/gfx/pics/174/normal.pal
index 0b88c2e72..e9935054a 100644
--- a/gfx/pics/174/normal.pal
+++ b/gfx/pics/174/normal.pal
Binary files differ
diff --git a/gfx/pics/174/shiny.pal b/gfx/pics/174/shiny.pal
index 4b64a688c..38ce5d76d 100644
--- a/gfx/pics/174/shiny.pal
+++ b/gfx/pics/174/shiny.pal
Binary files differ
diff --git a/gfx/pics/175/normal.pal b/gfx/pics/175/normal.pal
index 81884a82c..670ccdfaa 100644
--- a/gfx/pics/175/normal.pal
+++ b/gfx/pics/175/normal.pal
Binary files differ
diff --git a/gfx/pics/175/shiny.pal b/gfx/pics/175/shiny.pal
index 6947424c0..6e194e5d9 100644
--- a/gfx/pics/175/shiny.pal
+++ b/gfx/pics/175/shiny.pal
Binary files differ
diff --git a/gfx/pics/176/normal.pal b/gfx/pics/176/normal.pal
index be9af83ac..c968300f4 100644
--- a/gfx/pics/176/normal.pal
+++ b/gfx/pics/176/normal.pal
Binary files differ
diff --git a/gfx/pics/176/shiny.pal b/gfx/pics/176/shiny.pal
index bc9bae96c..10e7182f5 100644
--- a/gfx/pics/176/shiny.pal
+++ b/gfx/pics/176/shiny.pal
Binary files differ
diff --git a/gfx/pics/177/normal.pal b/gfx/pics/177/normal.pal
index 0d6c59b01..9f85159c1 100644
--- a/gfx/pics/177/normal.pal
+++ b/gfx/pics/177/normal.pal
Binary files differ
diff --git a/gfx/pics/177/shiny.pal b/gfx/pics/177/shiny.pal
index 5f7a198ec..0ee2b82af 100644
--- a/gfx/pics/177/shiny.pal
+++ b/gfx/pics/177/shiny.pal
Binary files differ
diff --git a/gfx/pics/178/normal.pal b/gfx/pics/178/normal.pal
index 0d6c59b01..9f85159c1 100644
--- a/gfx/pics/178/normal.pal
+++ b/gfx/pics/178/normal.pal
Binary files differ
diff --git a/gfx/pics/178/shiny.pal b/gfx/pics/178/shiny.pal
index 8d44f3162..00ac32371 100644
--- a/gfx/pics/178/shiny.pal
+++ b/gfx/pics/178/shiny.pal
Binary files differ
diff --git a/gfx/pics/179/normal.pal b/gfx/pics/179/normal.pal
index d8ff66263..9b9174f67 100644
--- a/gfx/pics/179/normal.pal
+++ b/gfx/pics/179/normal.pal
Binary files differ
diff --git a/gfx/pics/179/shiny.pal b/gfx/pics/179/shiny.pal
index 5f04c3dcc..7e4fe925b 100644
--- a/gfx/pics/179/shiny.pal
+++ b/gfx/pics/179/shiny.pal
Binary files differ
diff --git a/gfx/pics/180/normal.pal b/gfx/pics/180/normal.pal
index 3dd730e33..68cae7d28 100644
--- a/gfx/pics/180/normal.pal
+++ b/gfx/pics/180/normal.pal
Binary files differ
diff --git a/gfx/pics/180/shiny.pal b/gfx/pics/180/shiny.pal
index 5fe6c472d..50c88df2e 100644
--- a/gfx/pics/180/shiny.pal
+++ b/gfx/pics/180/shiny.pal
Binary files differ
diff --git a/gfx/pics/181/normal.pal b/gfx/pics/181/normal.pal
index d6111725c..8620983c9 100644
--- a/gfx/pics/181/normal.pal
+++ b/gfx/pics/181/normal.pal
Binary files differ
diff --git a/gfx/pics/181/shiny.pal b/gfx/pics/181/shiny.pal
index 59996b4cd..67451112f 100644
--- a/gfx/pics/181/shiny.pal
+++ b/gfx/pics/181/shiny.pal
Binary files differ
diff --git a/gfx/pics/182/normal.pal b/gfx/pics/182/normal.pal
index 3fa54ee12..ac7b655f6 100644
--- a/gfx/pics/182/normal.pal
+++ b/gfx/pics/182/normal.pal
Binary files differ
diff --git a/gfx/pics/182/shiny.pal b/gfx/pics/182/shiny.pal
index 7f173746e..a099a594e 100644
--- a/gfx/pics/182/shiny.pal
+++ b/gfx/pics/182/shiny.pal
Binary files differ
diff --git a/gfx/pics/183/normal.pal b/gfx/pics/183/normal.pal
index 403c52163..048adb0fd 100644
--- a/gfx/pics/183/normal.pal
+++ b/gfx/pics/183/normal.pal
Binary files differ
diff --git a/gfx/pics/183/shiny.pal b/gfx/pics/183/shiny.pal
index 15e98e3d6..e75fe9208 100644
--- a/gfx/pics/183/shiny.pal
+++ b/gfx/pics/183/shiny.pal
Binary files differ
diff --git a/gfx/pics/184/normal.pal b/gfx/pics/184/normal.pal
index 7d894bf84..794d19341 100644
--- a/gfx/pics/184/normal.pal
+++ b/gfx/pics/184/normal.pal
Binary files differ
diff --git a/gfx/pics/184/shiny.pal b/gfx/pics/184/shiny.pal
index 395be8b43..18cfd1195 100644
--- a/gfx/pics/184/shiny.pal
+++ b/gfx/pics/184/shiny.pal
Binary files differ
diff --git a/gfx/pics/185/normal.pal b/gfx/pics/185/normal.pal
index 0a4086c5e..009408311 100644
--- a/gfx/pics/185/normal.pal
+++ b/gfx/pics/185/normal.pal
Binary files differ
diff --git a/gfx/pics/185/shiny.pal b/gfx/pics/185/shiny.pal
index 4c5c0ea47..b82128b50 100644
--- a/gfx/pics/185/shiny.pal
+++ b/gfx/pics/185/shiny.pal
Binary files differ
diff --git a/gfx/pics/186/normal.pal b/gfx/pics/186/normal.pal
index 97a0c4ea4..31ed84e91 100644
--- a/gfx/pics/186/normal.pal
+++ b/gfx/pics/186/normal.pal
Binary files differ
diff --git a/gfx/pics/186/shiny.pal b/gfx/pics/186/shiny.pal
index 58caa06f4..1ba49cbc5 100644
--- a/gfx/pics/186/shiny.pal
+++ b/gfx/pics/186/shiny.pal
Binary files differ
diff --git a/gfx/pics/187/normal.pal b/gfx/pics/187/normal.pal
index 6212f9bed..6f44a59ec 100644
--- a/gfx/pics/187/normal.pal
+++ b/gfx/pics/187/normal.pal
Binary files differ
diff --git a/gfx/pics/187/shiny.pal b/gfx/pics/187/shiny.pal
index 21d097a3a..4a4afec42 100644
--- a/gfx/pics/187/shiny.pal
+++ b/gfx/pics/187/shiny.pal
Binary files differ
diff --git a/gfx/pics/188/normal.pal b/gfx/pics/188/normal.pal
index 665efe853..d03c99e28 100644
--- a/gfx/pics/188/normal.pal
+++ b/gfx/pics/188/normal.pal
Binary files differ
diff --git a/gfx/pics/188/shiny.pal b/gfx/pics/188/shiny.pal
index 0fdcb4776..3165d8ee7 100644
--- a/gfx/pics/188/shiny.pal
+++ b/gfx/pics/188/shiny.pal
Binary files differ
diff --git a/gfx/pics/189/normal.pal b/gfx/pics/189/normal.pal
index ecd1bebe2..582553eb9 100644
--- a/gfx/pics/189/normal.pal
+++ b/gfx/pics/189/normal.pal
Binary files differ
diff --git a/gfx/pics/189/shiny.pal b/gfx/pics/189/shiny.pal
index 49cc2620c..c553ebebf 100644
--- a/gfx/pics/189/shiny.pal
+++ b/gfx/pics/189/shiny.pal
Binary files differ
diff --git a/gfx/pics/190/normal.pal b/gfx/pics/190/normal.pal
index f52fe12d8..7af3a8f3b 100644
--- a/gfx/pics/190/normal.pal
+++ b/gfx/pics/190/normal.pal
Binary files differ
diff --git a/gfx/pics/190/shiny.pal b/gfx/pics/190/shiny.pal
index b82196c31..a01f18d1a 100644
--- a/gfx/pics/190/shiny.pal
+++ b/gfx/pics/190/shiny.pal
Binary files differ
diff --git a/gfx/pics/191/normal.pal b/gfx/pics/191/normal.pal
index fe80486e2..51e641e15 100644
--- a/gfx/pics/191/normal.pal
+++ b/gfx/pics/191/normal.pal
Binary files differ
diff --git a/gfx/pics/191/shiny.pal b/gfx/pics/191/shiny.pal
index 80c72ccb0..3215a861c 100644
--- a/gfx/pics/191/shiny.pal
+++ b/gfx/pics/191/shiny.pal
Binary files differ
diff --git a/gfx/pics/192/normal.pal b/gfx/pics/192/normal.pal
index 01dd5df1b..24b040e73 100644
--- a/gfx/pics/192/normal.pal
+++ b/gfx/pics/192/normal.pal
Binary files differ
diff --git a/gfx/pics/192/shiny.pal b/gfx/pics/192/shiny.pal
index 57e1e7ba6..a52ad6f96 100644
--- a/gfx/pics/192/shiny.pal
+++ b/gfx/pics/192/shiny.pal
Binary files differ
diff --git a/gfx/pics/193/normal.pal b/gfx/pics/193/normal.pal
index 3d923426d..dc054a54f 100644
--- a/gfx/pics/193/normal.pal
+++ b/gfx/pics/193/normal.pal
Binary files differ
diff --git a/gfx/pics/193/shiny.pal b/gfx/pics/193/shiny.pal
index 141bf1a62..cbbdc755b 100644
--- a/gfx/pics/193/shiny.pal
+++ b/gfx/pics/193/shiny.pal
Binary files differ
diff --git a/gfx/pics/194/normal.pal b/gfx/pics/194/normal.pal
index 0c9869e3b..ec098b1cf 100644
--- a/gfx/pics/194/normal.pal
+++ b/gfx/pics/194/normal.pal
Binary files differ
diff --git a/gfx/pics/194/shiny.pal b/gfx/pics/194/shiny.pal
index e42cd92a4..aa3475256 100644
--- a/gfx/pics/194/shiny.pal
+++ b/gfx/pics/194/shiny.pal
Binary files differ
diff --git a/gfx/pics/195/normal.pal b/gfx/pics/195/normal.pal
index d799e48ae..22f75da58 100644
--- a/gfx/pics/195/normal.pal
+++ b/gfx/pics/195/normal.pal
Binary files differ
diff --git a/gfx/pics/195/shiny.pal b/gfx/pics/195/shiny.pal
index 2dc9c97ec..05ed0f64a 100644
--- a/gfx/pics/195/shiny.pal
+++ b/gfx/pics/195/shiny.pal
Binary files differ
diff --git a/gfx/pics/196/normal.pal b/gfx/pics/196/normal.pal
index 01861777c..d730e22ce 100644
--- a/gfx/pics/196/normal.pal
+++ b/gfx/pics/196/normal.pal
Binary files differ
diff --git a/gfx/pics/196/shiny.pal b/gfx/pics/196/shiny.pal
index a5233d371..8f2343d89 100644
--- a/gfx/pics/196/shiny.pal
+++ b/gfx/pics/196/shiny.pal
Binary files differ
diff --git a/gfx/pics/197/normal.pal b/gfx/pics/197/normal.pal
index ede23bb51..b3d692a12 100644
--- a/gfx/pics/197/normal.pal
+++ b/gfx/pics/197/normal.pal
Binary files differ
diff --git a/gfx/pics/197/shiny.pal b/gfx/pics/197/shiny.pal
index 0806b8529..9173bbb15 100644
--- a/gfx/pics/197/shiny.pal
+++ b/gfx/pics/197/shiny.pal
Binary files differ
diff --git a/gfx/pics/198/normal.pal b/gfx/pics/198/normal.pal
index 646bfbad0..c32f0fa7b 100644
--- a/gfx/pics/198/normal.pal
+++ b/gfx/pics/198/normal.pal
Binary files differ
diff --git a/gfx/pics/198/shiny.pal b/gfx/pics/198/shiny.pal
index d682fc416..8f015f0fe 100644
--- a/gfx/pics/198/shiny.pal
+++ b/gfx/pics/198/shiny.pal
Binary files differ
diff --git a/gfx/pics/199/normal.pal b/gfx/pics/199/normal.pal
index 8269aedb8..1b1aa9fbe 100644
--- a/gfx/pics/199/normal.pal
+++ b/gfx/pics/199/normal.pal
Binary files differ
diff --git a/gfx/pics/199/shiny.pal b/gfx/pics/199/shiny.pal
index 73d7f2c41..6a893a090 100644
--- a/gfx/pics/199/shiny.pal
+++ b/gfx/pics/199/shiny.pal
Binary files differ
diff --git a/gfx/pics/200/normal.pal b/gfx/pics/200/normal.pal
index 1f916304b..dc04cfdbf 100644
--- a/gfx/pics/200/normal.pal
+++ b/gfx/pics/200/normal.pal
Binary files differ
diff --git a/gfx/pics/200/shiny.pal b/gfx/pics/200/shiny.pal
index c1851b8f5..dbd1aac54 100644
--- a/gfx/pics/200/shiny.pal
+++ b/gfx/pics/200/shiny.pal
Binary files differ
diff --git a/gfx/pics/201/normal.pal b/gfx/pics/201/normal.pal
index 467e93bde..19f5252a7 100644
--- a/gfx/pics/201/normal.pal
+++ b/gfx/pics/201/normal.pal
Binary files differ
diff --git a/gfx/pics/201/shiny.pal b/gfx/pics/201/shiny.pal
index f720f6d91..6a30f11e6 100644
--- a/gfx/pics/201/shiny.pal
+++ b/gfx/pics/201/shiny.pal
Binary files differ
diff --git a/gfx/pics/202/normal.pal b/gfx/pics/202/normal.pal
index 8ef2b1a62..71304f147 100644
--- a/gfx/pics/202/normal.pal
+++ b/gfx/pics/202/normal.pal
Binary files differ
diff --git a/gfx/pics/202/shiny.pal b/gfx/pics/202/shiny.pal
index 184a8b74f..c721c9ba6 100644
--- a/gfx/pics/202/shiny.pal
+++ b/gfx/pics/202/shiny.pal
Binary files differ
diff --git a/gfx/pics/203/normal.pal b/gfx/pics/203/normal.pal
index d9f2a834a..d882c3aeb 100644
--- a/gfx/pics/203/normal.pal
+++ b/gfx/pics/203/normal.pal
Binary files differ
diff --git a/gfx/pics/203/shiny.pal b/gfx/pics/203/shiny.pal
index 4aa8b6b1f..51b7f3847 100644
--- a/gfx/pics/203/shiny.pal
+++ b/gfx/pics/203/shiny.pal
Binary files differ
diff --git a/gfx/pics/204/normal.pal b/gfx/pics/204/normal.pal
index fcf7b0e0c..159e2d51f 100644
--- a/gfx/pics/204/normal.pal
+++ b/gfx/pics/204/normal.pal
Binary files differ
diff --git a/gfx/pics/204/shiny.pal b/gfx/pics/204/shiny.pal
index 9195acb3d..33ee632d5 100644
--- a/gfx/pics/204/shiny.pal
+++ b/gfx/pics/204/shiny.pal
Binary files differ
diff --git a/gfx/pics/205/normal.pal b/gfx/pics/205/normal.pal
index 8d838480d..79761d2c0 100644
--- a/gfx/pics/205/normal.pal
+++ b/gfx/pics/205/normal.pal
Binary files differ
diff --git a/gfx/pics/205/shiny.pal b/gfx/pics/205/shiny.pal
index 0021de643..84aa229d2 100644
--- a/gfx/pics/205/shiny.pal
+++ b/gfx/pics/205/shiny.pal
Binary files differ
diff --git a/gfx/pics/206/normal.pal b/gfx/pics/206/normal.pal
index 6e6a95878..c0c5b25d7 100644
--- a/gfx/pics/206/normal.pal
+++ b/gfx/pics/206/normal.pal
Binary files differ
diff --git a/gfx/pics/206/shiny.pal b/gfx/pics/206/shiny.pal
index ca84cd945..a86589ee4 100644
--- a/gfx/pics/206/shiny.pal
+++ b/gfx/pics/206/shiny.pal
Binary files differ
diff --git a/gfx/pics/207/normal.pal b/gfx/pics/207/normal.pal
index dbfa06229..c6d87495d 100644
--- a/gfx/pics/207/normal.pal
+++ b/gfx/pics/207/normal.pal
Binary files differ
diff --git a/gfx/pics/207/shiny.pal b/gfx/pics/207/shiny.pal
index e061b88fc..b33b2c373 100644
--- a/gfx/pics/207/shiny.pal
+++ b/gfx/pics/207/shiny.pal
Binary files differ
diff --git a/gfx/pics/208/normal.pal b/gfx/pics/208/normal.pal
index 00d1ad21f..ee5eb6d6f 100644
--- a/gfx/pics/208/normal.pal
+++ b/gfx/pics/208/normal.pal
Binary files differ
diff --git a/gfx/pics/208/shiny.pal b/gfx/pics/208/shiny.pal
index c2206f287..d929c214f 100644
--- a/gfx/pics/208/shiny.pal
+++ b/gfx/pics/208/shiny.pal
Binary files differ
diff --git a/gfx/pics/209/normal.pal b/gfx/pics/209/normal.pal
index 9afe0d8a5..52aee4079 100644
--- a/gfx/pics/209/normal.pal
+++ b/gfx/pics/209/normal.pal
Binary files differ
diff --git a/gfx/pics/209/shiny.pal b/gfx/pics/209/shiny.pal
index bc1327b06..04cda49ec 100644
--- a/gfx/pics/209/shiny.pal
+++ b/gfx/pics/209/shiny.pal
Binary files differ
diff --git a/gfx/pics/210/normal.pal b/gfx/pics/210/normal.pal
index aa904bdc7..4073c9c79 100644
--- a/gfx/pics/210/normal.pal
+++ b/gfx/pics/210/normal.pal
Binary files differ
diff --git a/gfx/pics/210/shiny.pal b/gfx/pics/210/shiny.pal
index 6256fc69f..b15bd641c 100644
--- a/gfx/pics/210/shiny.pal
+++ b/gfx/pics/210/shiny.pal
Binary files differ
diff --git a/gfx/pics/211/normal.pal b/gfx/pics/211/normal.pal
index 229667386..e6ba82ca6 100644
--- a/gfx/pics/211/normal.pal
+++ b/gfx/pics/211/normal.pal
Binary files differ
diff --git a/gfx/pics/211/shiny.pal b/gfx/pics/211/shiny.pal
index 732203033..97c36795e 100644
--- a/gfx/pics/211/shiny.pal
+++ b/gfx/pics/211/shiny.pal
Binary files differ
diff --git a/gfx/pics/212/normal.pal b/gfx/pics/212/normal.pal
index 26621d0f8..6dd98afbb 100644
--- a/gfx/pics/212/normal.pal
+++ b/gfx/pics/212/normal.pal
Binary files differ
diff --git a/gfx/pics/212/shiny.pal b/gfx/pics/212/shiny.pal
index 166c24d49..e4f5cf30e 100644
--- a/gfx/pics/212/shiny.pal
+++ b/gfx/pics/212/shiny.pal
Binary files differ
diff --git a/gfx/pics/213/normal.pal b/gfx/pics/213/normal.pal
index ac76ed994..b52e7ed89 100644
--- a/gfx/pics/213/normal.pal
+++ b/gfx/pics/213/normal.pal
Binary files differ
diff --git a/gfx/pics/213/shiny.pal b/gfx/pics/213/shiny.pal
index 2cf70710d..63b3644ab 100644
--- a/gfx/pics/213/shiny.pal
+++ b/gfx/pics/213/shiny.pal
Binary files differ
diff --git a/gfx/pics/214/normal.pal b/gfx/pics/214/normal.pal
index 25450a716..cfc263f77 100644
--- a/gfx/pics/214/normal.pal
+++ b/gfx/pics/214/normal.pal
Binary files differ
diff --git a/gfx/pics/214/shiny.pal b/gfx/pics/214/shiny.pal
index bc2524ae8..3bc81cbdc 100644
--- a/gfx/pics/214/shiny.pal
+++ b/gfx/pics/214/shiny.pal
Binary files differ
diff --git a/gfx/pics/215/normal.pal b/gfx/pics/215/normal.pal
index 174ca7057..1d1728090 100644
--- a/gfx/pics/215/normal.pal
+++ b/gfx/pics/215/normal.pal
Binary files differ
diff --git a/gfx/pics/215/shiny.pal b/gfx/pics/215/shiny.pal
index 408e44b2a..951cc3786 100644
--- a/gfx/pics/215/shiny.pal
+++ b/gfx/pics/215/shiny.pal
Binary files differ
diff --git a/gfx/pics/216/normal.pal b/gfx/pics/216/normal.pal
index e3d018b58..07a1d3622 100644
--- a/gfx/pics/216/normal.pal
+++ b/gfx/pics/216/normal.pal
Binary files differ
diff --git a/gfx/pics/216/shiny.pal b/gfx/pics/216/shiny.pal
index f7486ead8..f3b997329 100644
--- a/gfx/pics/216/shiny.pal
+++ b/gfx/pics/216/shiny.pal
Binary files differ
diff --git a/gfx/pics/217/normal.pal b/gfx/pics/217/normal.pal
index 460d813e6..ce64ebf28 100644
--- a/gfx/pics/217/normal.pal
+++ b/gfx/pics/217/normal.pal
Binary files differ
diff --git a/gfx/pics/217/shiny.pal b/gfx/pics/217/shiny.pal
index 95d296b12..b2e472ea3 100644
--- a/gfx/pics/217/shiny.pal
+++ b/gfx/pics/217/shiny.pal
Binary files differ
diff --git a/gfx/pics/218/normal.pal b/gfx/pics/218/normal.pal
index 6b6245468..e20c176a3 100644
--- a/gfx/pics/218/normal.pal
+++ b/gfx/pics/218/normal.pal
Binary files differ
diff --git a/gfx/pics/218/shiny.pal b/gfx/pics/218/shiny.pal
index 282447f31..b66ef094d 100644
--- a/gfx/pics/218/shiny.pal
+++ b/gfx/pics/218/shiny.pal
Binary files differ
diff --git a/gfx/pics/219/normal.pal b/gfx/pics/219/normal.pal
index 069c05e8c..572d0464a 100644
--- a/gfx/pics/219/normal.pal
+++ b/gfx/pics/219/normal.pal
Binary files differ
diff --git a/gfx/pics/219/shiny.pal b/gfx/pics/219/shiny.pal
index 3796643f3..a31d8288f 100644
--- a/gfx/pics/219/shiny.pal
+++ b/gfx/pics/219/shiny.pal
Binary files differ
diff --git a/gfx/pics/220/normal.pal b/gfx/pics/220/normal.pal
index 11d7a0930..c560793f1 100644
--- a/gfx/pics/220/normal.pal
+++ b/gfx/pics/220/normal.pal
Binary files differ
diff --git a/gfx/pics/220/shiny.pal b/gfx/pics/220/shiny.pal
index 322bf09b7..4e3eadacb 100644
--- a/gfx/pics/220/shiny.pal
+++ b/gfx/pics/220/shiny.pal
Binary files differ
diff --git a/gfx/pics/221/normal.pal b/gfx/pics/221/normal.pal
index d4f91e2c8..6df5615c0 100644
--- a/gfx/pics/221/normal.pal
+++ b/gfx/pics/221/normal.pal
Binary files differ
diff --git a/gfx/pics/221/shiny.pal b/gfx/pics/221/shiny.pal
index 5e3104148..3afb0539d 100644
--- a/gfx/pics/221/shiny.pal
+++ b/gfx/pics/221/shiny.pal
Binary files differ
diff --git a/gfx/pics/222/normal.pal b/gfx/pics/222/normal.pal
index 975e9df72..8dd10edc5 100644
--- a/gfx/pics/222/normal.pal
+++ b/gfx/pics/222/normal.pal
Binary files differ
diff --git a/gfx/pics/222/shiny.pal b/gfx/pics/222/shiny.pal
index 3c4083868..8aec60de2 100644
--- a/gfx/pics/222/shiny.pal
+++ b/gfx/pics/222/shiny.pal
Binary files differ
diff --git a/gfx/pics/223/normal.pal b/gfx/pics/223/normal.pal
index b7f0a041d..5373535b1 100644
--- a/gfx/pics/223/normal.pal
+++ b/gfx/pics/223/normal.pal
Binary files differ
diff --git a/gfx/pics/223/shiny.pal b/gfx/pics/223/shiny.pal
index ca3895a32..669e14e4a 100644
--- a/gfx/pics/223/shiny.pal
+++ b/gfx/pics/223/shiny.pal
Binary files differ
diff --git a/gfx/pics/224/normal.pal b/gfx/pics/224/normal.pal
index eaca3b11b..8073454d1 100644
--- a/gfx/pics/224/normal.pal
+++ b/gfx/pics/224/normal.pal
Binary files differ
diff --git a/gfx/pics/224/shiny.pal b/gfx/pics/224/shiny.pal
index a4e7d19c2..a5bdc9b71 100644
--- a/gfx/pics/224/shiny.pal
+++ b/gfx/pics/224/shiny.pal
Binary files differ
diff --git a/gfx/pics/225/normal.pal b/gfx/pics/225/normal.pal
index a2302baf8..fb24bd4e1 100644
--- a/gfx/pics/225/normal.pal
+++ b/gfx/pics/225/normal.pal
Binary files differ
diff --git a/gfx/pics/225/shiny.pal b/gfx/pics/225/shiny.pal
index 12239dc33..4c4ee713f 100644
--- a/gfx/pics/225/shiny.pal
+++ b/gfx/pics/225/shiny.pal
Binary files differ
diff --git a/gfx/pics/226/normal.pal b/gfx/pics/226/normal.pal
index e23863214..ff9214da9 100644
--- a/gfx/pics/226/normal.pal
+++ b/gfx/pics/226/normal.pal
Binary files differ
diff --git a/gfx/pics/226/shiny.pal b/gfx/pics/226/shiny.pal
index 6e876925b..cd743d8ba 100644
--- a/gfx/pics/226/shiny.pal
+++ b/gfx/pics/226/shiny.pal
Binary files differ
diff --git a/gfx/pics/227/normal.pal b/gfx/pics/227/normal.pal
index eba255e2f..92f01660d 100644
--- a/gfx/pics/227/normal.pal
+++ b/gfx/pics/227/normal.pal
Binary files differ
diff --git a/gfx/pics/227/shiny.pal b/gfx/pics/227/shiny.pal
index 1f6071a3d..80c53554d 100644
--- a/gfx/pics/227/shiny.pal
+++ b/gfx/pics/227/shiny.pal
Binary files differ
diff --git a/gfx/pics/228/normal.pal b/gfx/pics/228/normal.pal
index c338c672e..7ea34334c 100644
--- a/gfx/pics/228/normal.pal
+++ b/gfx/pics/228/normal.pal
Binary files differ
diff --git a/gfx/pics/228/shiny.pal b/gfx/pics/228/shiny.pal
index 38f906dff..c7296ab33 100644
--- a/gfx/pics/228/shiny.pal
+++ b/gfx/pics/228/shiny.pal
Binary files differ
diff --git a/gfx/pics/229/normal.pal b/gfx/pics/229/normal.pal
index 1080eebd6..6fbf714ba 100644
--- a/gfx/pics/229/normal.pal
+++ b/gfx/pics/229/normal.pal
Binary files differ
diff --git a/gfx/pics/229/shiny.pal b/gfx/pics/229/shiny.pal
index 90d0319fe..cf16faf2c 100644
--- a/gfx/pics/229/shiny.pal
+++ b/gfx/pics/229/shiny.pal
Binary files differ
diff --git a/gfx/pics/230/normal.pal b/gfx/pics/230/normal.pal
index 45d85d47c..3e7449818 100644
--- a/gfx/pics/230/normal.pal
+++ b/gfx/pics/230/normal.pal
Binary files differ
diff --git a/gfx/pics/230/shiny.pal b/gfx/pics/230/shiny.pal
index e3cd2d8d0..2a65783f1 100644
--- a/gfx/pics/230/shiny.pal
+++ b/gfx/pics/230/shiny.pal
Binary files differ
diff --git a/gfx/pics/231/normal.pal b/gfx/pics/231/normal.pal
index 9141eaa73..1952a6537 100644
--- a/gfx/pics/231/normal.pal
+++ b/gfx/pics/231/normal.pal
Binary files differ
diff --git a/gfx/pics/231/shiny.pal b/gfx/pics/231/shiny.pal
index 5c22d001b..64b15d904 100644
--- a/gfx/pics/231/shiny.pal
+++ b/gfx/pics/231/shiny.pal
Binary files differ
diff --git a/gfx/pics/232/normal.pal b/gfx/pics/232/normal.pal
index 1e882b969..12e7844dd 100644
--- a/gfx/pics/232/normal.pal
+++ b/gfx/pics/232/normal.pal
Binary files differ
diff --git a/gfx/pics/232/shiny.pal b/gfx/pics/232/shiny.pal
index 4b4ce3721..d705694c2 100644
--- a/gfx/pics/232/shiny.pal
+++ b/gfx/pics/232/shiny.pal
Binary files differ
diff --git a/gfx/pics/233/normal.pal b/gfx/pics/233/normal.pal
index 46ba8c0c8..8dafc26b4 100644
--- a/gfx/pics/233/normal.pal
+++ b/gfx/pics/233/normal.pal
Binary files differ
diff --git a/gfx/pics/233/shiny.pal b/gfx/pics/233/shiny.pal
index 06396b077..3b0c4dabe 100644
--- a/gfx/pics/233/shiny.pal
+++ b/gfx/pics/233/shiny.pal
Binary files differ
diff --git a/gfx/pics/234/normal.pal b/gfx/pics/234/normal.pal
index 1c82d4a9d..3d036062d 100644
--- a/gfx/pics/234/normal.pal
+++ b/gfx/pics/234/normal.pal
Binary files differ
diff --git a/gfx/pics/234/shiny.pal b/gfx/pics/234/shiny.pal
index e8480a466..efdc404e9 100644
--- a/gfx/pics/234/shiny.pal
+++ b/gfx/pics/234/shiny.pal
Binary files differ
diff --git a/gfx/pics/235/normal.pal b/gfx/pics/235/normal.pal
index b8c80ea94..76ba4c95c 100644
--- a/gfx/pics/235/normal.pal
+++ b/gfx/pics/235/normal.pal
Binary files differ
diff --git a/gfx/pics/235/shiny.pal b/gfx/pics/235/shiny.pal
index b4056e444..3b0290ba1 100644
--- a/gfx/pics/235/shiny.pal
+++ b/gfx/pics/235/shiny.pal
Binary files differ
diff --git a/gfx/pics/236/normal.pal b/gfx/pics/236/normal.pal
index 8873ee5d1..686526e1b 100644
--- a/gfx/pics/236/normal.pal
+++ b/gfx/pics/236/normal.pal
Binary files differ
diff --git a/gfx/pics/236/shiny.pal b/gfx/pics/236/shiny.pal
index 24cf7a9f7..53e0a5c1e 100644
--- a/gfx/pics/236/shiny.pal
+++ b/gfx/pics/236/shiny.pal
Binary files differ
diff --git a/gfx/pics/237/normal.pal b/gfx/pics/237/normal.pal
index 0b7cd878e..a6621cff6 100644
--- a/gfx/pics/237/normal.pal
+++ b/gfx/pics/237/normal.pal
Binary files differ
diff --git a/gfx/pics/237/shiny.pal b/gfx/pics/237/shiny.pal
index 1f8b4780a..5c88a27e0 100644
--- a/gfx/pics/237/shiny.pal
+++ b/gfx/pics/237/shiny.pal
Binary files differ
diff --git a/gfx/pics/238/normal.pal b/gfx/pics/238/normal.pal
index 838ed2480..21867063d 100644
--- a/gfx/pics/238/normal.pal
+++ b/gfx/pics/238/normal.pal
Binary files differ
diff --git a/gfx/pics/238/shiny.pal b/gfx/pics/238/shiny.pal
index 85e1b9314..ee3baba53 100644
--- a/gfx/pics/238/shiny.pal
+++ b/gfx/pics/238/shiny.pal
Binary files differ
diff --git a/gfx/pics/239/normal.pal b/gfx/pics/239/normal.pal
index 04936e045..f670fee1c 100644
--- a/gfx/pics/239/normal.pal
+++ b/gfx/pics/239/normal.pal
Binary files differ
diff --git a/gfx/pics/239/shiny.pal b/gfx/pics/239/shiny.pal
index e8189490c..4eb42c6d4 100644
--- a/gfx/pics/239/shiny.pal
+++ b/gfx/pics/239/shiny.pal
Binary files differ
diff --git a/gfx/pics/240/normal.pal b/gfx/pics/240/normal.pal
index 2408dbf15..3a37ffe0d 100644
--- a/gfx/pics/240/normal.pal
+++ b/gfx/pics/240/normal.pal
Binary files differ
diff --git a/gfx/pics/240/shiny.pal b/gfx/pics/240/shiny.pal
index eff8d8053..ee96fafd2 100644
--- a/gfx/pics/240/shiny.pal
+++ b/gfx/pics/240/shiny.pal
Binary files differ
diff --git a/gfx/pics/241/normal.pal b/gfx/pics/241/normal.pal
index 6163c1f3d..a3669a307 100644
--- a/gfx/pics/241/normal.pal
+++ b/gfx/pics/241/normal.pal
Binary files differ
diff --git a/gfx/pics/241/shiny.pal b/gfx/pics/241/shiny.pal
index 0810545ab..37792fe7e 100644
--- a/gfx/pics/241/shiny.pal
+++ b/gfx/pics/241/shiny.pal
Binary files differ
diff --git a/gfx/pics/242/normal.pal b/gfx/pics/242/normal.pal
index 64fdd502e..af97ddab4 100644
--- a/gfx/pics/242/normal.pal
+++ b/gfx/pics/242/normal.pal
Binary files differ
diff --git a/gfx/pics/242/shiny.pal b/gfx/pics/242/shiny.pal
index 68c3265d2..862858e75 100644
--- a/gfx/pics/242/shiny.pal
+++ b/gfx/pics/242/shiny.pal
Binary files differ
diff --git a/gfx/pics/243/normal.pal b/gfx/pics/243/normal.pal
index be3a5b17c..d357a2df0 100644
--- a/gfx/pics/243/normal.pal
+++ b/gfx/pics/243/normal.pal
Binary files differ
diff --git a/gfx/pics/243/shiny.pal b/gfx/pics/243/shiny.pal
index e9abc9aa0..509a54c48 100644
--- a/gfx/pics/243/shiny.pal
+++ b/gfx/pics/243/shiny.pal
Binary files differ
diff --git a/gfx/pics/244/normal.pal b/gfx/pics/244/normal.pal
index 43a927695..509503c68 100644
--- a/gfx/pics/244/normal.pal
+++ b/gfx/pics/244/normal.pal
Binary files differ
diff --git a/gfx/pics/244/shiny.pal b/gfx/pics/244/shiny.pal
index 91509ff3b..e806f7e00 100644
--- a/gfx/pics/244/shiny.pal
+++ b/gfx/pics/244/shiny.pal
Binary files differ
diff --git a/gfx/pics/245/normal.pal b/gfx/pics/245/normal.pal
index 56145031f..aaa246989 100644
--- a/gfx/pics/245/normal.pal
+++ b/gfx/pics/245/normal.pal
Binary files differ
diff --git a/gfx/pics/245/shiny.pal b/gfx/pics/245/shiny.pal
index 792200046..776effbc3 100644
--- a/gfx/pics/245/shiny.pal
+++ b/gfx/pics/245/shiny.pal
Binary files differ
diff --git a/gfx/pics/246/normal.pal b/gfx/pics/246/normal.pal
index 7f825830b..04a460b3e 100644
--- a/gfx/pics/246/normal.pal
+++ b/gfx/pics/246/normal.pal
Binary files differ
diff --git a/gfx/pics/246/shiny.pal b/gfx/pics/246/shiny.pal
index 606497ef3..025a819dc 100644
--- a/gfx/pics/246/shiny.pal
+++ b/gfx/pics/246/shiny.pal
Binary files differ
diff --git a/gfx/pics/247/normal.pal b/gfx/pics/247/normal.pal
index b093ddd06..2b92d0804 100644
--- a/gfx/pics/247/normal.pal
+++ b/gfx/pics/247/normal.pal
Binary files differ
diff --git a/gfx/pics/247/shiny.pal b/gfx/pics/247/shiny.pal
index fead4e87c..a8c6cb74f 100644
--- a/gfx/pics/247/shiny.pal
+++ b/gfx/pics/247/shiny.pal
Binary files differ
diff --git a/gfx/pics/248/normal.pal b/gfx/pics/248/normal.pal
index 0de69a9ec..5c02e7683 100644
--- a/gfx/pics/248/normal.pal
+++ b/gfx/pics/248/normal.pal
Binary files differ
diff --git a/gfx/pics/248/shiny.pal b/gfx/pics/248/shiny.pal
index dadd8e96a..4eebd8b4f 100644
--- a/gfx/pics/248/shiny.pal
+++ b/gfx/pics/248/shiny.pal
Binary files differ
diff --git a/gfx/pics/249/normal.pal b/gfx/pics/249/normal.pal
index 7ed7170c4..74bf84625 100644
--- a/gfx/pics/249/normal.pal
+++ b/gfx/pics/249/normal.pal
Binary files differ
diff --git a/gfx/pics/249/shiny.pal b/gfx/pics/249/shiny.pal
index e79c88d04..22a7970ff 100644
--- a/gfx/pics/249/shiny.pal
+++ b/gfx/pics/249/shiny.pal
Binary files differ
diff --git a/gfx/pics/250/normal.pal b/gfx/pics/250/normal.pal
index 5928323bf..be2b43d0d 100644
--- a/gfx/pics/250/normal.pal
+++ b/gfx/pics/250/normal.pal
Binary files differ
diff --git a/gfx/pics/250/shiny.pal b/gfx/pics/250/shiny.pal
index f56594c20..64a56ec52 100644
--- a/gfx/pics/250/shiny.pal
+++ b/gfx/pics/250/shiny.pal
Binary files differ
diff --git a/gfx/pics/251/normal.pal b/gfx/pics/251/normal.pal
index 3e744012e..df26077cd 100644
--- a/gfx/pics/251/normal.pal
+++ b/gfx/pics/251/normal.pal
Binary files differ
diff --git a/gfx/pics/251/shiny.pal b/gfx/pics/251/shiny.pal
index 142b9fb04..1d73c8043 100644
--- a/gfx/pics/251/shiny.pal
+++ b/gfx/pics/251/shiny.pal
Binary files differ
diff --git a/gfx/pics/anim_pointers.asm b/gfx/pics/anim_pointers.asm
index b608d5d5a..c14cf56ea 100644
--- a/gfx/pics/anim_pointers.asm
+++ b/gfx/pics/anim_pointers.asm
@@ -1,3 +1,4 @@
+AnimationPointers:
dw BulbasaurAnimation
dw IvysaurAnimation
dw VenusaurAnimation
diff --git a/gfx/pics/animation.asm b/gfx/pics/animation.asm
new file mode 100644
index 000000000..c9b3e4436
--- /dev/null
+++ b/gfx/pics/animation.asm
@@ -0,0 +1,1029 @@
+; Pic animation arrangement.
+
+
+Functiond0000: ; d0000
+ ld hl, $c4ac
+ ld a, [IsInBattle]
+ cp $1
+ jr z, .asm_d0012
+ ld e, $0
+ ld d, $0
+ call Functiond008e
+ ret
+
+.asm_d0012
+ ld e, $1
+ ld d, $0
+ call Functiond008e
+ ret
+; d001a
+
+INCBIN "baserom.gbc",$d001a,$d008e - $d001a
+
+Functiond008e: ; d008e
+ call Functiond01c6
+ ret c
+ call Functiond00a3
+.asm_d0095
+ call Functiond00b4
+ push af
+ callba Function10402d
+ pop af
+ jr nc, .asm_d0095
+ ret
+; d00a3
+
+Functiond00a3: ; d00a3
+ push hl
+ ld c, e
+ ld b, $0
+ ld hl, $4042
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld b, [hl]
+ ld c, a
+ pop hl
+ call Functiond01d6
+ ret
+; d00b4
+
+Functiond00b4: ; d00b4
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ ld a, [$d168]
+ ld c, a
+ ld b, $0
+ ld hl, $d169
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+ ld a, [hl]
+ ld hl, $40da
+ rst JumpTable
+ ld a, [$d168]
+ ld c, a
+ pop af
+ ld [rSVBK], a
+ ld a, c
+ and $80
+ ret z
+ scf
+ ret
+; d00da
+
+Tabled00da: ; d00da
+ dw Functiond0171
+ dw Functiond0166
+ dw Functiond00f2
+ dw Functiond00fe
+ dw Functiond010b
+ dw Functiond011d
+ dw Functiond012f
+ dw Functiond0141
+ dw Functiond0155
+ dw Functiond017a
+ dw Functiond0188
+ dw Functiond0196
+; d00f2
+
+Functiond00f2: ; d00f2
+ ld a, $12
+ ld [$d181], a
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+
+Functiond00fe: ; d00fe
+ ld hl, $d181
+ dec [hl]
+ ret nz
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d010b
+
+Functiond010b: ; d010b
+ ld c, $0
+ ld b, $0
+ call Functiond0228
+ call Functiond0504
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d011d
+
+Functiond011d: ; d011d
+ ld c, $0
+ ld b, $4
+ call Functiond0228
+ call Functiond0504
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d012f
+
+Functiond012f: ; d012f
+ ld c, $1
+ ld b, $0
+ call Functiond0228
+ call Functiond0504
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0141
+
+Functiond0141: ; d0141
+ call Functiond0250
+ ld a, [$d17e]
+ bit 7, a
+ ret z
+ call Functiond04bd
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0155
+
+Functiond0155: ; d0155
+ call Functiond0250
+ ld a, [$d17e]
+ bit 7, a
+ ret z
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0166
+
+Functiond0166: ; d0166
+ call Functiond01a9
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0171
+
+Functiond0171: ; d0171
+ call Functiond01a9
+ ld hl, $d168
+ set 7, [hl]
+ ret
+; d017a
+
+Functiond017a: ; d017a
+ ld a, [$d16b]
+ call Function37e2
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0188
+
+Functiond0188: ; d0188
+ ld a, [$d16b]
+ call Function37d5
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0196
+
+Functiond0196: ; d0196
+ ld a, $f
+ ld [CryTracks], a
+ ld a, [$d16b]
+ call Function37c4
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d01a9
+
+Functiond01a9: ; d01a9
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ call Functiond04bd
+ callba Function10402d
+ call Functiond0536
+ callba Function104047
+ pop af
+ ld [rSVBK], a
+ ret
+; d01c6
+
+Functiond01c6: ; d01c6
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_d01d4
+ call IsAPokemon
+ jr c, .asm_d01d4
+ and a
+ ret
+
+.asm_d01d4
+ scf
+ ret
+; d01d6
+
+Functiond01d6: ; d01d6
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ push bc
+ push de
+ push hl
+ ld hl, $d168
+ ld bc, $0029
+ xor a
+ call ByteFill
+ pop hl
+ pop de
+ pop bc
+ ld a, c
+ ld [$d169], a
+ ld a, b
+ ld [$d16a], a
+ ld a, l
+ ld [$d16f], a
+ ld a, h
+ ld [$d170], a
+ ld a, d
+ ld [$d16e], a
+ ld a, $1
+ ld hl, CurPartySpecies
+ call GetFarWRAMByte
+ ld [$d16b], a
+ ld a, $1
+ ld hl, UnownLetter
+ call GetFarWRAMByte
+ ld [$d16c], a
+ call Functiond065c
+ ld [$d16d], a
+ call Functiond05b4
+ ld a, c
+ ld [$d171], a
+ pop af
+ ld [rSVBK], a
+ ret
+; d0228
+
+Functiond0228: ; d0228
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ push bc
+ ld hl, $d172
+ ld bc, $001f
+ xor a
+ call ByteFill
+ pop bc
+ ld a, b
+ ld [$d173], a
+ ld a, c
+ ld [$d172], a
+ call Functiond055c
+ call Functiond05ce
+ call Functiond061b
+ pop af
+ ld [rSVBK], a
+ ret
+; d0250
+
+Functiond0250: ; d0250
+ xor a
+ ld [hBGMapMode], a
+
+Functiond0253: ; d0253
+ ld a, [$d17e]
+ and $7f
+ ld hl, Tabled025d
+ rst JumpTable
+ ret
+; d025d
+
+Tabled025d: ; d025d
+ dw Functiond0261
+ dw Functiond0282
+; d0261
+
+Functiond0261: ; d0261
+ call Functiond02f8
+ ld a, [$d182]
+ cp $ff
+ jr z, Functiond02a8
+ cp $fe
+ jr z, Functiond028e
+ cp $fd
+ jr z, Functiond0296
+ call Functiond02c8
+ ld a, [$d183]
+ call Functiond02ae
+ ld [$d181], a
+ call Functiond02dc
+
+Functiond0282: ; d0282
+ ld a, [$d181]
+ dec a
+ ld [$d181], a
+ ret nz
+ call Functiond02e4
+ ret
+; d028e
+
+Functiond028e: ; d028e
+ ld a, [$d183]
+ ld [$d17f], a
+ jr Functiond0253
+; d0296
+
+Functiond0296: ; d0296
+ ld a, [$d17f]
+ and a
+ ret z
+ dec a
+ ld [$d17f], a
+ ret z
+ ld a, [$d183]
+ ld [$d17d], a
+ jr Functiond0253
+; d02a8
+
+Functiond02a8: ; d02a8
+ ld hl, $d17e
+ set 7, [hl]
+ ret
+; d02ae
+
+Functiond02ae: ; d02ae
+ ld c, a
+ ld b, $0
+ ld hl, $0000
+ ld a, [$d173]
+ call AddNTimes
+ ld a, h
+ swap a
+ and $f0
+ ld h, a
+ ld a, l
+ swap a
+ and $f
+ or h
+ add c
+ ret
+; d02c8
+
+Functiond02c8: ; d02c8
+ call Functiond04bd
+ ld a, [$d182]
+ and a
+ ret z
+ call Functiond031b
+ push hl
+ call Functiond033b
+ pop hl
+ call Functiond036b
+ ret
+; d02dc
+
+Functiond02dc: ; d02dc
+ ld a, [$d17e]
+ inc a
+ ld [$d17e], a
+ ret
+; d02e4
+
+Functiond02e4: ; d02e4
+ ld a, [$d17e]
+ dec a
+ ld [$d17e], a
+ ret
+; d02ec
+
+Functiond02ec: ; d02ec
+ ld a, [$d16b]
+ cp $c9
+ ret
+; d02f2
+
+Functiond02f2: ; d02f2
+ ld a, [$d16b]
+ cp $fd
+ ret
+; d02f8
+
+Functiond02f8: ; d02f8
+ push hl
+ ld a, [$d17d]
+ ld e, a
+ ld d, $0
+ ld hl, $d175
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ add hl, de
+ ld a, [$d174]
+ call GetFarHalfword
+ ld a, l
+ ld [$d182], a
+ ld a, h
+ ld [$d183], a
+ ld hl, $d17d
+ inc [hl]
+ pop hl
+ ret
+; d031b
+
+Functiond031b: ; d031b
+ ld a, [$d182]
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, $d178
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+ add hl, bc
+ ld a, [$d177]
+ call GetFarHalfword
+ ld a, [$d177]
+ call GetFarByte
+ ld [$d180], a
+ inc hl
+ ret
+; d033b
+
+Functiond033b: ; d033b
+ call Functiond0356
+ push bc
+ ld hl, $d17b
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d180]
+ call AddNTimes
+ pop bc
+ ld de, $d188
+ ld a, [$d17a]
+ call FarCopyBytes
+ ret
+; d0356
+
+Functiond0356: ; d0356
+ push hl
+ ld a, [$d171]
+ sub $5
+ ld c, a
+ ld b, $0
+ ld hl, $4368
+ add hl, bc
+ ld c, [hl]
+ ld b, $0
+ pop hl
+ ret
+; d0368
+
+INCBIN "baserom.gbc",$d0368,$d036b - $d0368
+
+Functiond036b: ; d036b
+ xor a
+ ld [$d187], a
+ ld [$d186], a
+ ld [$d185], a
+.asm_d0375
+ push hl
+ call Functiond0392
+ pop hl
+ ld a, b
+ and a
+ jr z, .asm_d038a
+ ld a, [$d177]
+ call GetFarByte
+ inc hl
+ push hl
+ call Functiond03bd
+ pop hl
+
+.asm_d038a
+ push hl
+ call Functiond0499
+ pop hl
+ jr nc, .asm_d0375
+ ret
+; d0392
+
+Functiond0392: ; d0392
+ ld a, [$d187]
+ and $f8
+ rrca
+ rrca
+ rrca
+ ld e, a
+ ld d, $0
+ ld hl, $d188
+ add hl, de
+ ld b, [hl]
+ ld a, [$d187]
+ and $7
+ jr z, .asm_d03b0
+ ld c, a
+ ld a, b
+.asm_d03ab
+ rrca
+ dec c
+ jr nz, .asm_d03ab
+ ld b, a
+
+.asm_d03b0
+ xor a
+ bit 0, b
+ jr z, .asm_d03b7
+ ld a, $1
+
+.asm_d03b7
+ ld b, a
+ ld hl, $d187
+ inc [hl]
+ ret
+; d03bd
+
+Functiond03bd: ; d03bd
+ push af
+ call Functiond03cd
+ pop af
+ push hl
+ call Functiond03f7
+ ld hl, $d16e
+ add [hl]
+ pop hl
+ ld [hl], a
+ ret
+; d03cd
+
+Functiond03cd: ; d03cd
+ call Functiond046c
+ ld a, [$d186]
+ ld bc, $0014
+ call AddNTimes
+ ld a, [$c2c6]
+ and a
+ jr nz, .asm_d03e8
+ ld a, [$d185]
+ ld e, a
+ ld d, $0
+ add hl, de
+ jr .asm_d03f3
+
+.asm_d03e8
+ ld a, [$d185]
+ ld e, a
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc $0
+ ld h, a
+
+.asm_d03f3
+ ret
+; d03f4
+
+INCBIN "baserom.gbc",$d03f4,$d03f7 - $d03f4
+
+Functiond03f7: ; d03f7
+ push af
+ ld a, [$d171]
+ cp $5
+ jr z, .asm_d0405
+ cp $6
+ jr z, .asm_d041a
+ pop af
+ ret
+
+.asm_d0405
+ pop af
+ cp $19
+ jr nc, .asm_d0417
+ push hl
+ push de
+ ld hl, $442f
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ pop de
+ pop hl
+ ret
+
+.asm_d0417
+ add $18
+ ret
+
+.asm_d041a
+ pop af
+ cp $24
+ jr nc, .asm_d042c
+ push hl
+ push de
+ ld hl, $4448
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ pop de
+ pop hl
+ ret
+
+.asm_d042c
+ add $d
+ ret
+; d042f
+
+INCBIN "baserom.gbc",$d042f,$d046c - $d042f
+
+Functiond046c: ; d046c
+ ld hl, $d16f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d171]
+ ld de, $0000
+ ld bc, $0006
+ cp $7
+ jr z, .asm_d048f
+ ld de, $0015
+ ld bc, $0019
+ cp $6
+ jr z, .asm_d048f
+ ld de, $0029
+ ld bc, $002d
+
+.asm_d048f
+ ld a, [$c2c6]
+ and a
+ jr nz, .asm_d0497
+ add hl, de
+ ret
+
+.asm_d0497
+ add hl, bc
+ ret
+; d0499
+
+Functiond0499: ; d0499
+ ld a, [$d186]
+ inc a
+ ld [$d186], a
+ ld c, a
+ ld a, [$d171]
+ cp c
+ jr nz, .asm_d04bb
+ xor a
+ ld [$d186], a
+ ld a, [$d185]
+ inc a
+ ld [$d185], a
+ ld c, a
+ ld a, [$d171]
+ cp c
+ jr nz, .asm_d04bb
+ scf
+ ret
+
+.asm_d04bb
+ xor a
+ ret
+; d04bd
+
+Functiond04bd: ; d04bd
+ call Functiond04f6
+ ld a, [$c2c6]
+ and a
+ jr nz, .asm_d04ce
+ ld de, $0001
+ ld bc, $0000
+ jr .asm_d04d4
+
+.asm_d04ce
+ ld de, rIE
+ ld bc, $0006
+
+.asm_d04d4
+ ld hl, $d16f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+ ld c, $7
+ ld b, $7
+ ld a, [$d16e]
+.asm_d04e2
+ push bc
+ push hl
+ push de
+ ld de, $0014
+.asm_d04e8
+ ld [hl], a
+ inc a
+ add hl, de
+ dec b
+ jr nz, .asm_d04e8
+ pop de
+ pop hl
+ add hl, de
+ pop bc
+ dec c
+ jr nz, .asm_d04e2
+ ret
+; d04f6
+
+Functiond04f6: ; d04f6
+ ld hl, $d16f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld b, $7
+ ld c, $7
+ call ClearBox
+ ret
+; d0504
+
+Functiond0504: ; d0504
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ xor a
+ ld [hBGMapMode], a
+ call Functiond051b
+ callba Function104047
+ pop af
+ ld [rSVBK], a
+ ret
+; d051b
+
+Functiond051b: ; d051b
+ call Functiond0551
+ ld b, $7
+ ld c, $7
+ ld de, $0014
+.asm_d0525
+ push bc
+ push hl
+.asm_d0527
+ ld a, [hl]
+ or $8
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_d0527
+ pop hl
+ inc hl
+ pop bc
+ dec b
+ jr nz, .asm_d0525
+ ret
+; d0536
+
+Functiond0536: ; d0536
+ call Functiond0551
+ ld b, $7
+ ld c, $7
+ ld de, $0014
+.asm_d0540
+ push bc
+ push hl
+.asm_d0542
+ ld a, [hl]
+ and $f7
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_d0542
+ pop hl
+ inc hl
+ pop bc
+ dec b
+ jr nz, .asm_d0540
+ ret
+; d0551
+
+Functiond0551: ; d0551
+ ld hl, $d16f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $0939
+ add hl, de
+ ret
+; d055c
+
+Functiond055c: ; d055c
+ call Functiond02f2
+ jr z, .asm_d0597
+ ld c, $34
+ ld hl, UnownAnimationPointers
+ ld de, UnownAnimationExtraPointers
+ call Functiond02ec
+ jr z, .asm_d0576
+ ld c, $34
+ ld hl, AnimationPointers
+ ld de, AnimationExtraPointers
+
+.asm_d0576
+ ld a, [$d172]
+ and a
+ jr z, .asm_d057e
+ ld h, d
+ ld l, e
+
+.asm_d057e
+ ld a, [$d16d]
+ dec a
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, c
+ ld [$d174], a
+ call GetFarHalfword
+ ld a, l
+ ld [$d175], a
+ ld a, h
+ ld [$d176], a
+ ret
+
+.asm_d0597
+ ld hl, EggAnimation
+ ld c, $34
+ ld a, [$d172]
+ and a
+ jr z, .asm_d05a7
+ ld hl, EggAnimationExtra
+ ld c, $34
+
+.asm_d05a7
+ ld a, c
+ ld [$d174], a
+ ld a, l
+ ld [$d175], a
+ ld a, h
+ ld [$d176], a
+ ret
+; d05b4
+
+Functiond05b4: ; d05b4
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BasePicSize]
+ and $f
+ ld c, a
+ pop af
+ ld [rSVBK], a
+ ret
+; d05ce
+
+Functiond05ce: ; d05ce
+ call Functiond02f2
+ jr z, .asm_d0609
+ call Functiond02ec
+ ld b, $36
+ ld c, $36
+ ld hl, PikachuAnimationExtra
+ jr z, .asm_d05ef
+ ld a, [$d16b]
+ cp $98
+ ld b, $35
+ ld c, $35
+ ld hl, $4000
+ jr c, .asm_d05ef
+ ld c, $36
+
+.asm_d05ef
+ ld a, c
+ ld [$d177], a
+ ld a, [$d16d]
+ dec a
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, b
+ call GetFarHalfword
+ ld a, l
+ ld [$d178], a
+ ld a, h
+ ld [$d179], a
+ ret
+
+.asm_d0609
+ ld hl, $598b
+ ld c, $36
+ ld a, c
+ ld [$d177], a
+ ld a, l
+ ld [$d178], a
+ ld a, h
+ ld [$d179], a
+ ret
+; d061b
+
+Functiond061b: ; d061b
+ call Functiond02f2
+ jr z, .asm_d064a
+ call Functiond02ec
+ ld a, $34
+ ld hl, UnownBitmasksPointers
+ jr z, .asm_d062f
+ ld a, $34
+ ld hl, BitmasksPointers
+
+.asm_d062f
+ ld [$d17a], a
+ ld a, [$d16d]
+ dec a
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [$d17a]
+ call GetFarHalfword
+ ld a, l
+ ld [$d17b], a
+ ld a, h
+ ld [$d17c], a
+ ret
+
+.asm_d064a
+ ld c, $34
+ ld hl, EggBitmasks
+ ld a, c
+ ld [$d17a], a
+ ld a, l
+ ld [$d17b], a
+ ld a, h
+ ld [$d17c], a
+ ret
+; d065c
+
+Functiond065c: ; d065c
+ call Functiond02ec
+ jr z, .asm_d0665
+ ld a, [$d16b]
+ ret
+
+.asm_d0665
+ ld a, [$d16c]
+ ret
+; d0669
+
+Functiond0669: ; d0669
+ ld a, $1
+ ld [$c2c6], a
+
+Functiond066e: ; d066e
+ call Functiond01c6
+ jr c, .asm_d068c
+ ld h, d
+ ld l, e
+ push bc
+ push hl
+ ld de, VTiles2
+ ld a, $3e
+ call Predef
+ pop hl
+ pop bc
+ ld d, $0
+ ld e, c
+ call Functiond008e
+ xor a
+ ld [$c2c6], a
+ ret
+
+.asm_d068c
+ xor a
+ ld [$c2c6], a
+ inc a
+ ld [CurPartySpecies], a
+ ret
+; d0695
+
+
diff --git a/gfx/pics/bitmask_pointers.asm b/gfx/pics/bitmask_pointers.asm
index 8d9b32e85..7d87ad8d9 100644
--- a/gfx/pics/bitmask_pointers.asm
+++ b/gfx/pics/bitmask_pointers.asm
@@ -1,3 +1,4 @@
+BitmasksPointers:
dw BulbasaurBitmasks
dw IvysaurBitmasks
dw VenusaurBitmasks
diff --git a/gfx/pics/extra_pointers.asm b/gfx/pics/extra_pointers.asm
index f1abc4f19..7afd95148 100644
--- a/gfx/pics/extra_pointers.asm
+++ b/gfx/pics/extra_pointers.asm
@@ -1,3 +1,4 @@
+AnimationExtraPointers:
dw BulbasaurAnimationExtra
dw IvysaurAnimationExtra
dw VenusaurAnimationExtra
diff --git a/gfx/pics/frame_pointers.asm b/gfx/pics/frame_pointers.asm
index a5b595b0e..cff10ef33 100644
--- a/gfx/pics/frame_pointers.asm
+++ b/gfx/pics/frame_pointers.asm
@@ -1,3 +1,4 @@
+FramesPointers:
dw BulbasaurFrames
dw IvysaurFrames
dw VenusaurFrames
diff --git a/gfx/pics/palette_pointers.asm b/gfx/pics/palette_pointers.asm
index 99ef9999e..fbac16ef7 100644
--- a/gfx/pics/palette_pointers.asm
+++ b/gfx/pics/palette_pointers.asm
@@ -1,502 +1,502 @@
-BulbasaurPalette: INCBIN "gfx/pics/001/normal.pal", 2, 4
-BulbasaurShinyPalette: INCBIN "gfx/pics/001/shiny.pal", 2, 4
-IvysaurPalette: INCBIN "gfx/pics/002/normal.pal", 2, 4
-IvysaurShinyPalette: INCBIN "gfx/pics/002/shiny.pal", 2, 4
-VenusaurPalette: INCBIN "gfx/pics/003/normal.pal", 2, 4
-VenusaurShinyPalette: INCBIN "gfx/pics/003/shiny.pal", 2, 4
-CharmanderPalette: INCBIN "gfx/pics/004/normal.pal", 2, 4
-CharmanderShinyPalette: INCBIN "gfx/pics/004/shiny.pal", 2, 4
-CharmeleonPalette: INCBIN "gfx/pics/005/normal.pal", 2, 4
-CharmeleonShinyPalette: INCBIN "gfx/pics/005/shiny.pal", 2, 4
-CharizardPalette: INCBIN "gfx/pics/006/normal.pal", 2, 4
-CharizardShinyPalette: INCBIN "gfx/pics/006/shiny.pal", 2, 4
-SquirtlePalette: INCBIN "gfx/pics/007/normal.pal", 2, 4
-SquirtleShinyPalette: INCBIN "gfx/pics/007/shiny.pal", 2, 4
-WartortlePalette: INCBIN "gfx/pics/008/normal.pal", 2, 4
-WartortleShinyPalette: INCBIN "gfx/pics/008/shiny.pal", 2, 4
-BlastoisePalette: INCBIN "gfx/pics/009/normal.pal", 2, 4
-BlastoiseShinyPalette: INCBIN "gfx/pics/009/shiny.pal", 2, 4
-CaterpiePalette: INCBIN "gfx/pics/010/normal.pal", 2, 4
-CaterpieShinyPalette: INCBIN "gfx/pics/010/shiny.pal", 2, 4
-MetapodPalette: INCBIN "gfx/pics/011/normal.pal", 2, 4
-MetapodShinyPalette: INCBIN "gfx/pics/011/shiny.pal", 2, 4
-ButterfreePalette: INCBIN "gfx/pics/012/normal.pal", 2, 4
-ButterfreeShinyPalette: INCBIN "gfx/pics/012/shiny.pal", 2, 4
-WeedlePalette: INCBIN "gfx/pics/013/normal.pal", 2, 4
-WeedleShinyPalette: INCBIN "gfx/pics/013/shiny.pal", 2, 4
-KakunaPalette: INCBIN "gfx/pics/014/normal.pal", 2, 4
-KakunaShinyPalette: INCBIN "gfx/pics/014/shiny.pal", 2, 4
-BeedrillPalette: INCBIN "gfx/pics/015/normal.pal", 2, 4
-BeedrillShinyPalette: INCBIN "gfx/pics/015/shiny.pal", 2, 4
-PidgeyPalette: INCBIN "gfx/pics/016/normal.pal", 2, 4
-PidgeyShinyPalette: INCBIN "gfx/pics/016/shiny.pal", 2, 4
-PidgeottoPalette: INCBIN "gfx/pics/017/normal.pal", 2, 4
-PidgeottoShinyPalette: INCBIN "gfx/pics/017/shiny.pal", 2, 4
-PidgeotPalette: INCBIN "gfx/pics/018/normal.pal", 2, 4
-PidgeotShinyPalette: INCBIN "gfx/pics/018/shiny.pal", 2, 4
-RattataPalette: INCBIN "gfx/pics/019/normal.pal", 2, 4
-RattataShinyPalette: INCBIN "gfx/pics/019/shiny.pal", 2, 4
-RaticatePalette: INCBIN "gfx/pics/020/normal.pal", 2, 4
-RaticateShinyPalette: INCBIN "gfx/pics/020/shiny.pal", 2, 4
-SpearowPalette: INCBIN "gfx/pics/021/normal.pal", 2, 4
-SpearowShinyPalette: INCBIN "gfx/pics/021/shiny.pal", 2, 4
-FearowPalette: INCBIN "gfx/pics/022/normal.pal", 2, 4
-FearowShinyPalette: INCBIN "gfx/pics/022/shiny.pal", 2, 4
-EkansPalette: INCBIN "gfx/pics/023/normal.pal", 2, 4
-EkansShinyPalette: INCBIN "gfx/pics/023/shiny.pal", 2, 4
-ArbokPalette: INCBIN "gfx/pics/024/normal.pal", 2, 4
-ArbokShinyPalette: INCBIN "gfx/pics/024/shiny.pal", 2, 4
-PikachuPalette: INCBIN "gfx/pics/025/normal.pal", 2, 4
-PikachuShinyPalette: INCBIN "gfx/pics/025/shiny.pal", 2, 4
-RaichuPalette: INCBIN "gfx/pics/026/normal.pal", 2, 4
-RaichuShinyPalette: INCBIN "gfx/pics/026/shiny.pal", 2, 4
-SandshrewPalette: INCBIN "gfx/pics/027/normal.pal", 2, 4
-SandshrewShinyPalette: INCBIN "gfx/pics/027/shiny.pal", 2, 4
-SandslashPalette: INCBIN "gfx/pics/028/normal.pal", 2, 4
-SandslashShinyPalette: INCBIN "gfx/pics/028/shiny.pal", 2, 4
-NidoranFPalette: INCBIN "gfx/pics/029/normal.pal", 2, 4
-NidoranFShinyPalette: INCBIN "gfx/pics/029/shiny.pal", 2, 4
-NidorinaPalette: INCBIN "gfx/pics/030/normal.pal", 2, 4
-NidorinaShinyPalette: INCBIN "gfx/pics/030/shiny.pal", 2, 4
-NidoqueenPalette: INCBIN "gfx/pics/031/normal.pal", 2, 4
-NidoqueenShinyPalette: INCBIN "gfx/pics/031/shiny.pal", 2, 4
-NidoranMPalette: INCBIN "gfx/pics/032/normal.pal", 2, 4
-NidoranMShinyPalette: INCBIN "gfx/pics/032/shiny.pal", 2, 4
-NidorinoPalette: INCBIN "gfx/pics/033/normal.pal", 2, 4
-NidorinoShinyPalette: INCBIN "gfx/pics/033/shiny.pal", 2, 4
-NidokingPalette: INCBIN "gfx/pics/034/normal.pal", 2, 4
-NidokingShinyPalette: INCBIN "gfx/pics/034/shiny.pal", 2, 4
-ClefairyPalette: INCBIN "gfx/pics/035/normal.pal", 2, 4
-ClefairyShinyPalette: INCBIN "gfx/pics/035/shiny.pal", 2, 4
-ClefablePalette: INCBIN "gfx/pics/036/normal.pal", 2, 4
-ClefableShinyPalette: INCBIN "gfx/pics/036/shiny.pal", 2, 4
-VulpixPalette: INCBIN "gfx/pics/037/normal.pal", 2, 4
-VulpixShinyPalette: INCBIN "gfx/pics/037/shiny.pal", 2, 4
-NinetalesPalette: INCBIN "gfx/pics/038/normal.pal", 2, 4
-NinetalesShinyPalette: INCBIN "gfx/pics/038/shiny.pal", 2, 4
-JigglypuffPalette: INCBIN "gfx/pics/039/normal.pal", 2, 4
-JigglypuffShinyPalette: INCBIN "gfx/pics/039/shiny.pal", 2, 4
-WigglytuffPalette: INCBIN "gfx/pics/040/normal.pal", 2, 4
-WigglytuffShinyPalette: INCBIN "gfx/pics/040/shiny.pal", 2, 4
-ZubatPalette: INCBIN "gfx/pics/041/normal.pal", 2, 4
-ZubatShinyPalette: INCBIN "gfx/pics/041/shiny.pal", 2, 4
-GolbatPalette: INCBIN "gfx/pics/042/normal.pal", 2, 4
-GolbatShinyPalette: INCBIN "gfx/pics/042/shiny.pal", 2, 4
-OddishPalette: INCBIN "gfx/pics/043/normal.pal", 2, 4
-OddishShinyPalette: INCBIN "gfx/pics/043/shiny.pal", 2, 4
-GloomPalette: INCBIN "gfx/pics/044/normal.pal", 2, 4
-GloomShinyPalette: INCBIN "gfx/pics/044/shiny.pal", 2, 4
-VileplumePalette: INCBIN "gfx/pics/045/normal.pal", 2, 4
-VileplumeShinyPalette: INCBIN "gfx/pics/045/shiny.pal", 2, 4
-ParasPalette: INCBIN "gfx/pics/046/normal.pal", 2, 4
-ParasShinyPalette: INCBIN "gfx/pics/046/shiny.pal", 2, 4
-ParasectPalette: INCBIN "gfx/pics/047/normal.pal", 2, 4
-ParasectShinyPalette: INCBIN "gfx/pics/047/shiny.pal", 2, 4
-VenonatPalette: INCBIN "gfx/pics/048/normal.pal", 2, 4
-VenonatShinyPalette: INCBIN "gfx/pics/048/shiny.pal", 2, 4
-VenomothPalette: INCBIN "gfx/pics/049/normal.pal", 2, 4
-VenomothShinyPalette: INCBIN "gfx/pics/049/shiny.pal", 2, 4
-DiglettPalette: INCBIN "gfx/pics/050/normal.pal", 2, 4
-DiglettShinyPalette: INCBIN "gfx/pics/050/shiny.pal", 2, 4
-DugtrioPalette: INCBIN "gfx/pics/051/normal.pal", 2, 4
-DugtrioShinyPalette: INCBIN "gfx/pics/051/shiny.pal", 2, 4
-MeowthPalette: INCBIN "gfx/pics/052/normal.pal", 2, 4
-MeowthShinyPalette: INCBIN "gfx/pics/052/shiny.pal", 2, 4
-PersianPalette: INCBIN "gfx/pics/053/normal.pal", 2, 4
-PersianShinyPalette: INCBIN "gfx/pics/053/shiny.pal", 2, 4
-PsyduckPalette: INCBIN "gfx/pics/054/normal.pal", 2, 4
-PsyduckShinyPalette: INCBIN "gfx/pics/054/shiny.pal", 2, 4
-GolduckPalette: INCBIN "gfx/pics/055/normal.pal", 2, 4
-GolduckShinyPalette: INCBIN "gfx/pics/055/shiny.pal", 2, 4
-MankeyPalette: INCBIN "gfx/pics/056/normal.pal", 2, 4
-MankeyShinyPalette: INCBIN "gfx/pics/056/shiny.pal", 2, 4
-PrimeapePalette: INCBIN "gfx/pics/057/normal.pal", 2, 4
-PrimeapeShinyPalette: INCBIN "gfx/pics/057/shiny.pal", 2, 4
-GrowlithePalette: INCBIN "gfx/pics/058/normal.pal", 2, 4
-GrowlitheShinyPalette: INCBIN "gfx/pics/058/shiny.pal", 2, 4
-ArcaninePalette: INCBIN "gfx/pics/059/normal.pal", 2, 4
-ArcanineShinyPalette: INCBIN "gfx/pics/059/shiny.pal", 2, 4
-PoliwagPalette: INCBIN "gfx/pics/060/normal.pal", 2, 4
-PoliwagShinyPalette: INCBIN "gfx/pics/060/shiny.pal", 2, 4
-PoliwhirlPalette: INCBIN "gfx/pics/061/normal.pal", 2, 4
-PoliwhirlShinyPalette: INCBIN "gfx/pics/061/shiny.pal", 2, 4
-PoliwrathPalette: INCBIN "gfx/pics/062/normal.pal", 2, 4
-PoliwrathShinyPalette: INCBIN "gfx/pics/062/shiny.pal", 2, 4
-AbraPalette: INCBIN "gfx/pics/063/normal.pal", 2, 4
-AbraShinyPalette: INCBIN "gfx/pics/063/shiny.pal", 2, 4
-KadabraPalette: INCBIN "gfx/pics/064/normal.pal", 2, 4
-KadabraShinyPalette: INCBIN "gfx/pics/064/shiny.pal", 2, 4
-AlakazamPalette: INCBIN "gfx/pics/065/normal.pal", 2, 4
-AlakazamShinyPalette: INCBIN "gfx/pics/065/shiny.pal", 2, 4
-MachopPalette: INCBIN "gfx/pics/066/normal.pal", 2, 4
-MachopShinyPalette: INCBIN "gfx/pics/066/shiny.pal", 2, 4
-MachokePalette: INCBIN "gfx/pics/067/normal.pal", 2, 4
-MachokeShinyPalette: INCBIN "gfx/pics/067/shiny.pal", 2, 4
-MachampPalette: INCBIN "gfx/pics/068/normal.pal", 2, 4
-MachampShinyPalette: INCBIN "gfx/pics/068/shiny.pal", 2, 4
-BellsproutPalette: INCBIN "gfx/pics/069/normal.pal", 2, 4
-BellsproutShinyPalette: INCBIN "gfx/pics/069/shiny.pal", 2, 4
-WeepinbellPalette: INCBIN "gfx/pics/070/normal.pal", 2, 4
-WeepinbellShinyPalette: INCBIN "gfx/pics/070/shiny.pal", 2, 4
-VictreebelPalette: INCBIN "gfx/pics/071/normal.pal", 2, 4
-VictreebelShinyPalette: INCBIN "gfx/pics/071/shiny.pal", 2, 4
-TentacoolPalette: INCBIN "gfx/pics/072/normal.pal", 2, 4
-TentacoolShinyPalette: INCBIN "gfx/pics/072/shiny.pal", 2, 4
-TentacruelPalette: INCBIN "gfx/pics/073/normal.pal", 2, 4
-TentacruelShinyPalette: INCBIN "gfx/pics/073/shiny.pal", 2, 4
-GeodudePalette: INCBIN "gfx/pics/074/normal.pal", 2, 4
-GeodudeShinyPalette: INCBIN "gfx/pics/074/shiny.pal", 2, 4
-GravelerPalette: INCBIN "gfx/pics/075/normal.pal", 2, 4
-GravelerShinyPalette: INCBIN "gfx/pics/075/shiny.pal", 2, 4
-GolemPalette: INCBIN "gfx/pics/076/normal.pal", 2, 4
-GolemShinyPalette: INCBIN "gfx/pics/076/shiny.pal", 2, 4
-PonytaPalette: INCBIN "gfx/pics/077/normal.pal", 2, 4
-PonytaShinyPalette: INCBIN "gfx/pics/077/shiny.pal", 2, 4
-RapidashPalette: INCBIN "gfx/pics/078/normal.pal", 2, 4
-RapidashShinyPalette: INCBIN "gfx/pics/078/shiny.pal", 2, 4
-SlowpokePalette: INCBIN "gfx/pics/079/normal.pal", 2, 4
-SlowpokeShinyPalette: INCBIN "gfx/pics/079/shiny.pal", 2, 4
-SlowbroPalette: INCBIN "gfx/pics/080/normal.pal", 2, 4
-SlowbroShinyPalette: INCBIN "gfx/pics/080/shiny.pal", 2, 4
-MagnemitePalette: INCBIN "gfx/pics/081/normal.pal", 2, 4
-MagnemiteShinyPalette: INCBIN "gfx/pics/081/shiny.pal", 2, 4
-MagnetonPalette: INCBIN "gfx/pics/082/normal.pal", 2, 4
-MagnetonShinyPalette: INCBIN "gfx/pics/082/shiny.pal", 2, 4
-FarfetchDPalette: INCBIN "gfx/pics/083/normal.pal", 2, 4
-FarfetchDShinyPalette: INCBIN "gfx/pics/083/shiny.pal", 2, 4
-DoduoPalette: INCBIN "gfx/pics/084/normal.pal", 2, 4
-DoduoShinyPalette: INCBIN "gfx/pics/084/shiny.pal", 2, 4
-DodrioPalette: INCBIN "gfx/pics/085/normal.pal", 2, 4
-DodrioShinyPalette: INCBIN "gfx/pics/085/shiny.pal", 2, 4
-SeelPalette: INCBIN "gfx/pics/086/normal.pal", 2, 4
-SeelShinyPalette: INCBIN "gfx/pics/086/shiny.pal", 2, 4
-DewgongPalette: INCBIN "gfx/pics/087/normal.pal", 2, 4
-DewgongShinyPalette: INCBIN "gfx/pics/087/shiny.pal", 2, 4
-GrimerPalette: INCBIN "gfx/pics/088/normal.pal", 2, 4
-GrimerShinyPalette: INCBIN "gfx/pics/088/shiny.pal", 2, 4
-MukPalette: INCBIN "gfx/pics/089/normal.pal", 2, 4
-MukShinyPalette: INCBIN "gfx/pics/089/shiny.pal", 2, 4
-ShellderPalette: INCBIN "gfx/pics/090/normal.pal", 2, 4
-ShellderShinyPalette: INCBIN "gfx/pics/090/shiny.pal", 2, 4
-CloysterPalette: INCBIN "gfx/pics/091/normal.pal", 2, 4
-CloysterShinyPalette: INCBIN "gfx/pics/091/shiny.pal", 2, 4
-GastlyPalette: INCBIN "gfx/pics/092/normal.pal", 2, 4
-GastlyShinyPalette: INCBIN "gfx/pics/092/shiny.pal", 2, 4
-HaunterPalette: INCBIN "gfx/pics/093/normal.pal", 2, 4
-HaunterShinyPalette: INCBIN "gfx/pics/093/shiny.pal", 2, 4
-GengarPalette: INCBIN "gfx/pics/094/normal.pal", 2, 4
-GengarShinyPalette: INCBIN "gfx/pics/094/shiny.pal", 2, 4
-OnixPalette: INCBIN "gfx/pics/095/normal.pal", 2, 4
-OnixShinyPalette: INCBIN "gfx/pics/095/shiny.pal", 2, 4
-DrowzeePalette: INCBIN "gfx/pics/096/normal.pal", 2, 4
-DrowzeeShinyPalette: INCBIN "gfx/pics/096/shiny.pal", 2, 4
-HypnoPalette: INCBIN "gfx/pics/097/normal.pal", 2, 4
-HypnoShinyPalette: INCBIN "gfx/pics/097/shiny.pal", 2, 4
-KrabbyPalette: INCBIN "gfx/pics/098/normal.pal", 2, 4
-KrabbyShinyPalette: INCBIN "gfx/pics/098/shiny.pal", 2, 4
-KinglerPalette: INCBIN "gfx/pics/099/normal.pal", 2, 4
-KinglerShinyPalette: INCBIN "gfx/pics/099/shiny.pal", 2, 4
-VoltorbPalette: INCBIN "gfx/pics/100/normal.pal", 2, 4
-VoltorbShinyPalette: INCBIN "gfx/pics/100/shiny.pal", 2, 4
-ElectrodePalette: INCBIN "gfx/pics/101/normal.pal", 2, 4
-ElectrodeShinyPalette: INCBIN "gfx/pics/101/shiny.pal", 2, 4
-ExeggcutePalette: INCBIN "gfx/pics/102/normal.pal", 2, 4
-ExeggcuteShinyPalette: INCBIN "gfx/pics/102/shiny.pal", 2, 4
-ExeggutorPalette: INCBIN "gfx/pics/103/normal.pal", 2, 4
-ExeggutorShinyPalette: INCBIN "gfx/pics/103/shiny.pal", 2, 4
-CubonePalette: INCBIN "gfx/pics/104/normal.pal", 2, 4
-CuboneShinyPalette: INCBIN "gfx/pics/104/shiny.pal", 2, 4
-MarowakPalette: INCBIN "gfx/pics/105/normal.pal", 2, 4
-MarowakShinyPalette: INCBIN "gfx/pics/105/shiny.pal", 2, 4
-HitmonleePalette: INCBIN "gfx/pics/106/normal.pal", 2, 4
-HitmonleeShinyPalette: INCBIN "gfx/pics/106/shiny.pal", 2, 4
-HitmonchanPalette: INCBIN "gfx/pics/107/normal.pal", 2, 4
-HitmonchanShinyPalette: INCBIN "gfx/pics/107/shiny.pal", 2, 4
-LickitungPalette: INCBIN "gfx/pics/108/normal.pal", 2, 4
-LickitungShinyPalette: INCBIN "gfx/pics/108/shiny.pal", 2, 4
-KoffingPalette: INCBIN "gfx/pics/109/normal.pal", 2, 4
-KoffingShinyPalette: INCBIN "gfx/pics/109/shiny.pal", 2, 4
-WeezingPalette: INCBIN "gfx/pics/110/normal.pal", 2, 4
-WeezingShinyPalette: INCBIN "gfx/pics/110/shiny.pal", 2, 4
-RhyhornPalette: INCBIN "gfx/pics/111/normal.pal", 2, 4
-RhyhornShinyPalette: INCBIN "gfx/pics/111/shiny.pal", 2, 4
-RhydonPalette: INCBIN "gfx/pics/112/normal.pal", 2, 4
-RhydonShinyPalette: INCBIN "gfx/pics/112/shiny.pal", 2, 4
-ChanseyPalette: INCBIN "gfx/pics/113/normal.pal", 2, 4
-ChanseyShinyPalette: INCBIN "gfx/pics/113/shiny.pal", 2, 4
-TangelaPalette: INCBIN "gfx/pics/114/normal.pal", 2, 4
-TangelaShinyPalette: INCBIN "gfx/pics/114/shiny.pal", 2, 4
-KangaskhanPalette: INCBIN "gfx/pics/115/normal.pal", 2, 4
-KangaskhanShinyPalette: INCBIN "gfx/pics/115/shiny.pal", 2, 4
-HorseaPalette: INCBIN "gfx/pics/116/normal.pal", 2, 4
-HorseaShinyPalette: INCBIN "gfx/pics/116/shiny.pal", 2, 4
-SeadraPalette: INCBIN "gfx/pics/117/normal.pal", 2, 4
-SeadraShinyPalette: INCBIN "gfx/pics/117/shiny.pal", 2, 4
-GoldeenPalette: INCBIN "gfx/pics/118/normal.pal", 2, 4
-GoldeenShinyPalette: INCBIN "gfx/pics/118/shiny.pal", 2, 4
-SeakingPalette: INCBIN "gfx/pics/119/normal.pal", 2, 4
-SeakingShinyPalette: INCBIN "gfx/pics/119/shiny.pal", 2, 4
-StaryuPalette: INCBIN "gfx/pics/120/normal.pal", 2, 4
-StaryuShinyPalette: INCBIN "gfx/pics/120/shiny.pal", 2, 4
-StarmiePalette: INCBIN "gfx/pics/121/normal.pal", 2, 4
-StarmieShinyPalette: INCBIN "gfx/pics/121/shiny.pal", 2, 4
-MrMimePalette: INCBIN "gfx/pics/122/normal.pal", 2, 4
-MrMimeShinyPalette: INCBIN "gfx/pics/122/shiny.pal", 2, 4
-ScytherPalette: INCBIN "gfx/pics/123/normal.pal", 2, 4
-ScytherShinyPalette: INCBIN "gfx/pics/123/shiny.pal", 2, 4
-JynxPalette: INCBIN "gfx/pics/124/normal.pal", 2, 4
-JynxShinyPalette: INCBIN "gfx/pics/124/shiny.pal", 2, 4
-ElectabuzzPalette: INCBIN "gfx/pics/125/normal.pal", 2, 4
-ElectabuzzShinyPalette: INCBIN "gfx/pics/125/shiny.pal", 2, 4
-MagmarPalette: INCBIN "gfx/pics/126/normal.pal", 2, 4
-MagmarShinyPalette: INCBIN "gfx/pics/126/shiny.pal", 2, 4
-PinsirPalette: INCBIN "gfx/pics/127/normal.pal", 2, 4
-PinsirShinyPalette: INCBIN "gfx/pics/127/shiny.pal", 2, 4
-TaurosPalette: INCBIN "gfx/pics/128/normal.pal", 2, 4
-TaurosShinyPalette: INCBIN "gfx/pics/128/shiny.pal", 2, 4
-MagikarpPalette: INCBIN "gfx/pics/129/normal.pal", 2, 4
-MagikarpShinyPalette: INCBIN "gfx/pics/129/shiny.pal", 2, 4
-GyaradosPalette: INCBIN "gfx/pics/130/normal.pal", 2, 4
-GyaradosShinyPalette: INCBIN "gfx/pics/130/shiny.pal", 2, 4
-LaprasPalette: INCBIN "gfx/pics/131/normal.pal", 2, 4
-LaprasShinyPalette: INCBIN "gfx/pics/131/shiny.pal", 2, 4
-DittoPalette: INCBIN "gfx/pics/132/normal.pal", 2, 4
-DittoShinyPalette: INCBIN "gfx/pics/132/shiny.pal", 2, 4
-EeveePalette: INCBIN "gfx/pics/133/normal.pal", 2, 4
-EeveeShinyPalette: INCBIN "gfx/pics/133/shiny.pal", 2, 4
-VaporeonPalette: INCBIN "gfx/pics/134/normal.pal", 2, 4
-VaporeonShinyPalette: INCBIN "gfx/pics/134/shiny.pal", 2, 4
-JolteonPalette: INCBIN "gfx/pics/135/normal.pal", 2, 4
-JolteonShinyPalette: INCBIN "gfx/pics/135/shiny.pal", 2, 4
-FlareonPalette: INCBIN "gfx/pics/136/normal.pal", 2, 4
-FlareonShinyPalette: INCBIN "gfx/pics/136/shiny.pal", 2, 4
-PorygonPalette: INCBIN "gfx/pics/137/normal.pal", 2, 4
-PorygonShinyPalette: INCBIN "gfx/pics/137/shiny.pal", 2, 4
-OmanytePalette: INCBIN "gfx/pics/138/normal.pal", 2, 4
-OmanyteShinyPalette: INCBIN "gfx/pics/138/shiny.pal", 2, 4
-OmastarPalette: INCBIN "gfx/pics/139/normal.pal", 2, 4
-OmastarShinyPalette: INCBIN "gfx/pics/139/shiny.pal", 2, 4
-KabutoPalette: INCBIN "gfx/pics/140/normal.pal", 2, 4
-KabutoShinyPalette: INCBIN "gfx/pics/140/shiny.pal", 2, 4
-KabutopsPalette: INCBIN "gfx/pics/141/normal.pal", 2, 4
-KabutopsShinyPalette: INCBIN "gfx/pics/141/shiny.pal", 2, 4
-AerodactylPalette: INCBIN "gfx/pics/142/normal.pal", 2, 4
-AerodactylShinyPalette: INCBIN "gfx/pics/142/shiny.pal", 2, 4
-SnorlaxPalette: INCBIN "gfx/pics/143/normal.pal", 2, 4
-SnorlaxShinyPalette: INCBIN "gfx/pics/143/shiny.pal", 2, 4
-ArticunoPalette: INCBIN "gfx/pics/144/normal.pal", 2, 4
-ArticunoShinyPalette: INCBIN "gfx/pics/144/shiny.pal", 2, 4
-ZapdosPalette: INCBIN "gfx/pics/145/normal.pal", 2, 4
-ZapdosShinyPalette: INCBIN "gfx/pics/145/shiny.pal", 2, 4
-MoltresPalette: INCBIN "gfx/pics/146/normal.pal", 2, 4
-MoltresShinyPalette: INCBIN "gfx/pics/146/shiny.pal", 2, 4
-DratiniPalette: INCBIN "gfx/pics/147/normal.pal", 2, 4
-DratiniShinyPalette: INCBIN "gfx/pics/147/shiny.pal", 2, 4
-DragonairPalette: INCBIN "gfx/pics/148/normal.pal", 2, 4
-DragonairShinyPalette: INCBIN "gfx/pics/148/shiny.pal", 2, 4
-DragonitePalette: INCBIN "gfx/pics/149/normal.pal", 2, 4
-DragoniteShinyPalette: INCBIN "gfx/pics/149/shiny.pal", 2, 4
-MewtwoPalette: INCBIN "gfx/pics/150/normal.pal", 2, 4
-MewtwoShinyPalette: INCBIN "gfx/pics/150/shiny.pal", 2, 4
-MewPalette: INCBIN "gfx/pics/151/normal.pal", 2, 4
-MewShinyPalette: INCBIN "gfx/pics/151/shiny.pal", 2, 4
-ChikoritaPalette: INCBIN "gfx/pics/152/normal.pal", 2, 4
-ChikoritaShinyPalette: INCBIN "gfx/pics/152/shiny.pal", 2, 4
-BayleefPalette: INCBIN "gfx/pics/153/normal.pal", 2, 4
-BayleefShinyPalette: INCBIN "gfx/pics/153/shiny.pal", 2, 4
-MeganiumPalette: INCBIN "gfx/pics/154/normal.pal", 2, 4
-MeganiumShinyPalette: INCBIN "gfx/pics/154/shiny.pal", 2, 4
-CyndaquilPalette: INCBIN "gfx/pics/155/normal.pal", 2, 4
-CyndaquilShinyPalette: INCBIN "gfx/pics/155/shiny.pal", 2, 4
-QuilavaPalette: INCBIN "gfx/pics/156/normal.pal", 2, 4
-QuilavaShinyPalette: INCBIN "gfx/pics/156/shiny.pal", 2, 4
-TyphlosionPalette: INCBIN "gfx/pics/157/normal.pal", 2, 4
-TyphlosionShinyPalette: INCBIN "gfx/pics/157/shiny.pal", 2, 4
-TotodilePalette: INCBIN "gfx/pics/158/normal.pal", 2, 4
-TotodileShinyPalette: INCBIN "gfx/pics/158/shiny.pal", 2, 4
-CroconawPalette: INCBIN "gfx/pics/159/normal.pal", 2, 4
-CroconawShinyPalette: INCBIN "gfx/pics/159/shiny.pal", 2, 4
-FeraligatrPalette: INCBIN "gfx/pics/160/normal.pal", 2, 4
-FeraligatrShinyPalette: INCBIN "gfx/pics/160/shiny.pal", 2, 4
-SentretPalette: INCBIN "gfx/pics/161/normal.pal", 2, 4
-SentretShinyPalette: INCBIN "gfx/pics/161/shiny.pal", 2, 4
-FurretPalette: INCBIN "gfx/pics/162/normal.pal", 2, 4
-FurretShinyPalette: INCBIN "gfx/pics/162/shiny.pal", 2, 4
-HoothootPalette: INCBIN "gfx/pics/163/normal.pal", 2, 4
-HoothootShinyPalette: INCBIN "gfx/pics/163/shiny.pal", 2, 4
-NoctowlPalette: INCBIN "gfx/pics/164/normal.pal", 2, 4
-NoctowlShinyPalette: INCBIN "gfx/pics/164/shiny.pal", 2, 4
-LedybaPalette: INCBIN "gfx/pics/165/normal.pal", 2, 4
-LedybaShinyPalette: INCBIN "gfx/pics/165/shiny.pal", 2, 4
-LedianPalette: INCBIN "gfx/pics/166/normal.pal", 2, 4
-LedianShinyPalette: INCBIN "gfx/pics/166/shiny.pal", 2, 4
-SpinarakPalette: INCBIN "gfx/pics/167/normal.pal", 2, 4
-SpinarakShinyPalette: INCBIN "gfx/pics/167/shiny.pal", 2, 4
-AriadosPalette: INCBIN "gfx/pics/168/normal.pal", 2, 4
-AriadosShinyPalette: INCBIN "gfx/pics/168/shiny.pal", 2, 4
-CrobatPalette: INCBIN "gfx/pics/169/normal.pal", 2, 4
-CrobatShinyPalette: INCBIN "gfx/pics/169/shiny.pal", 2, 4
-ChinchouPalette: INCBIN "gfx/pics/170/normal.pal", 2, 4
-ChinchouShinyPalette: INCBIN "gfx/pics/170/shiny.pal", 2, 4
-LanturnPalette: INCBIN "gfx/pics/171/normal.pal", 2, 4
-LanturnShinyPalette: INCBIN "gfx/pics/171/shiny.pal", 2, 4
-PichuPalette: INCBIN "gfx/pics/172/normal.pal", 2, 4
-PichuShinyPalette: INCBIN "gfx/pics/172/shiny.pal", 2, 4
-CleffaPalette: INCBIN "gfx/pics/173/normal.pal", 2, 4
-CleffaShinyPalette: INCBIN "gfx/pics/173/shiny.pal", 2, 4
-IgglybuffPalette: INCBIN "gfx/pics/174/normal.pal", 2, 4
-IgglybuffShinyPalette: INCBIN "gfx/pics/174/shiny.pal", 2, 4
-TogepiPalette: INCBIN "gfx/pics/175/normal.pal", 2, 4
-TogepiShinyPalette: INCBIN "gfx/pics/175/shiny.pal", 2, 4
-TogeticPalette: INCBIN "gfx/pics/176/normal.pal", 2, 4
-TogeticShinyPalette: INCBIN "gfx/pics/176/shiny.pal", 2, 4
-NatuPalette: INCBIN "gfx/pics/177/normal.pal", 2, 4
-NatuShinyPalette: INCBIN "gfx/pics/177/shiny.pal", 2, 4
-XatuPalette: INCBIN "gfx/pics/178/normal.pal", 2, 4
-XatuShinyPalette: INCBIN "gfx/pics/178/shiny.pal", 2, 4
-MareepPalette: INCBIN "gfx/pics/179/normal.pal", 2, 4
-MareepShinyPalette: INCBIN "gfx/pics/179/shiny.pal", 2, 4
-FlaaffyPalette: INCBIN "gfx/pics/180/normal.pal", 2, 4
-FlaaffyShinyPalette: INCBIN "gfx/pics/180/shiny.pal", 2, 4
-AmpharosPalette: INCBIN "gfx/pics/181/normal.pal", 2, 4
-AmpharosShinyPalette: INCBIN "gfx/pics/181/shiny.pal", 2, 4
-BellossomPalette: INCBIN "gfx/pics/182/normal.pal", 2, 4
-BellossomShinyPalette: INCBIN "gfx/pics/182/shiny.pal", 2, 4
-MarillPalette: INCBIN "gfx/pics/183/normal.pal", 2, 4
-MarillShinyPalette: INCBIN "gfx/pics/183/shiny.pal", 2, 4
-AzumarillPalette: INCBIN "gfx/pics/184/normal.pal", 2, 4
-AzumarillShinyPalette: INCBIN "gfx/pics/184/shiny.pal", 2, 4
-SudowoodoPalette: INCBIN "gfx/pics/185/normal.pal", 2, 4
-SudowoodoShinyPalette: INCBIN "gfx/pics/185/shiny.pal", 2, 4
-PolitoedPalette: INCBIN "gfx/pics/186/normal.pal", 2, 4
-PolitoedShinyPalette: INCBIN "gfx/pics/186/shiny.pal", 2, 4
-HoppipPalette: INCBIN "gfx/pics/187/normal.pal", 2, 4
-HoppipShinyPalette: INCBIN "gfx/pics/187/shiny.pal", 2, 4
-SkiploomPalette: INCBIN "gfx/pics/188/normal.pal", 2, 4
-SkiploomShinyPalette: INCBIN "gfx/pics/188/shiny.pal", 2, 4
-JumpluffPalette: INCBIN "gfx/pics/189/normal.pal", 2, 4
-JumpluffShinyPalette: INCBIN "gfx/pics/189/shiny.pal", 2, 4
-AipomPalette: INCBIN "gfx/pics/190/normal.pal", 2, 4
-AipomShinyPalette: INCBIN "gfx/pics/190/shiny.pal", 2, 4
-SunkernPalette: INCBIN "gfx/pics/191/normal.pal", 2, 4
-SunkernShinyPalette: INCBIN "gfx/pics/191/shiny.pal", 2, 4
-SunfloraPalette: INCBIN "gfx/pics/192/normal.pal", 2, 4
-SunfloraShinyPalette: INCBIN "gfx/pics/192/shiny.pal", 2, 4
-YanmaPalette: INCBIN "gfx/pics/193/normal.pal", 2, 4
-YanmaShinyPalette: INCBIN "gfx/pics/193/shiny.pal", 2, 4
-WooperPalette: INCBIN "gfx/pics/194/normal.pal", 2, 4
-WooperShinyPalette: INCBIN "gfx/pics/194/shiny.pal", 2, 4
-QuagsirePalette: INCBIN "gfx/pics/195/normal.pal", 2, 4
-QuagsireShinyPalette: INCBIN "gfx/pics/195/shiny.pal", 2, 4
-EspeonPalette: INCBIN "gfx/pics/196/normal.pal", 2, 4
-EspeonShinyPalette: INCBIN "gfx/pics/196/shiny.pal", 2, 4
-UmbreonPalette: INCBIN "gfx/pics/197/normal.pal", 2, 4
-UmbreonShinyPalette: INCBIN "gfx/pics/197/shiny.pal", 2, 4
-MurkrowPalette: INCBIN "gfx/pics/198/normal.pal", 2, 4
-MurkrowShinyPalette: INCBIN "gfx/pics/198/shiny.pal", 2, 4
-SlowkingPalette: INCBIN "gfx/pics/199/normal.pal", 2, 4
-SlowkingShinyPalette: INCBIN "gfx/pics/199/shiny.pal", 2, 4
-MisdreavusPalette: INCBIN "gfx/pics/200/normal.pal", 2, 4
-MisdreavusShinyPalette: INCBIN "gfx/pics/200/shiny.pal", 2, 4
-UnownPalette: INCBIN "gfx/pics/201/normal.pal", 2, 4
-UnownShinyPalette: INCBIN "gfx/pics/201/shiny.pal", 2, 4
-WobbuffetPalette: INCBIN "gfx/pics/202/normal.pal", 2, 4
-WobbuffetShinyPalette: INCBIN "gfx/pics/202/shiny.pal", 2, 4
-GirafarigPalette: INCBIN "gfx/pics/203/normal.pal", 2, 4
-GirafarigShinyPalette: INCBIN "gfx/pics/203/shiny.pal", 2, 4
-PinecoPalette: INCBIN "gfx/pics/204/normal.pal", 2, 4
-PinecoShinyPalette: INCBIN "gfx/pics/204/shiny.pal", 2, 4
-ForretressPalette: INCBIN "gfx/pics/205/normal.pal", 2, 4
-ForretressShinyPalette: INCBIN "gfx/pics/205/shiny.pal", 2, 4
-DunsparcePalette: INCBIN "gfx/pics/206/normal.pal", 2, 4
-DunsparceShinyPalette: INCBIN "gfx/pics/206/shiny.pal", 2, 4
-GligarPalette: INCBIN "gfx/pics/207/normal.pal", 2, 4
-GligarShinyPalette: INCBIN "gfx/pics/207/shiny.pal", 2, 4
-SteelixPalette: INCBIN "gfx/pics/208/normal.pal", 2, 4
-SteelixShinyPalette: INCBIN "gfx/pics/208/shiny.pal", 2, 4
-SnubbullPalette: INCBIN "gfx/pics/209/normal.pal", 2, 4
-SnubbullShinyPalette: INCBIN "gfx/pics/209/shiny.pal", 2, 4
-GranbullPalette: INCBIN "gfx/pics/210/normal.pal", 2, 4
-GranbullShinyPalette: INCBIN "gfx/pics/210/shiny.pal", 2, 4
-QwilfishPalette: INCBIN "gfx/pics/211/normal.pal", 2, 4
-QwilfishShinyPalette: INCBIN "gfx/pics/211/shiny.pal", 2, 4
-ScizorPalette: INCBIN "gfx/pics/212/normal.pal", 2, 4
-ScizorShinyPalette: INCBIN "gfx/pics/212/shiny.pal", 2, 4
-ShucklePalette: INCBIN "gfx/pics/213/normal.pal", 2, 4
-ShuckleShinyPalette: INCBIN "gfx/pics/213/shiny.pal", 2, 4
-HeracrossPalette: INCBIN "gfx/pics/214/normal.pal", 2, 4
-HeracrossShinyPalette: INCBIN "gfx/pics/214/shiny.pal", 2, 4
-SneaselPalette: INCBIN "gfx/pics/215/normal.pal", 2, 4
-SneaselShinyPalette: INCBIN "gfx/pics/215/shiny.pal", 2, 4
-TeddiursaPalette: INCBIN "gfx/pics/216/normal.pal", 2, 4
-TeddiursaShinyPalette: INCBIN "gfx/pics/216/shiny.pal", 2, 4
-UrsaringPalette: INCBIN "gfx/pics/217/normal.pal", 2, 4
-UrsaringShinyPalette: INCBIN "gfx/pics/217/shiny.pal", 2, 4
-SlugmaPalette: INCBIN "gfx/pics/218/normal.pal", 2, 4
-SlugmaShinyPalette: INCBIN "gfx/pics/218/shiny.pal", 2, 4
-MagcargoPalette: INCBIN "gfx/pics/219/normal.pal", 2, 4
-MagcargoShinyPalette: INCBIN "gfx/pics/219/shiny.pal", 2, 4
-SwinubPalette: INCBIN "gfx/pics/220/normal.pal", 2, 4
-SwinubShinyPalette: INCBIN "gfx/pics/220/shiny.pal", 2, 4
-PiloswinePalette: INCBIN "gfx/pics/221/normal.pal", 2, 4
-PiloswineShinyPalette: INCBIN "gfx/pics/221/shiny.pal", 2, 4
-CorsolaPalette: INCBIN "gfx/pics/222/normal.pal", 2, 4
-CorsolaShinyPalette: INCBIN "gfx/pics/222/shiny.pal", 2, 4
-RemoraidPalette: INCBIN "gfx/pics/223/normal.pal", 2, 4
-RemoraidShinyPalette: INCBIN "gfx/pics/223/shiny.pal", 2, 4
-OctilleryPalette: INCBIN "gfx/pics/224/normal.pal", 2, 4
-OctilleryShinyPalette: INCBIN "gfx/pics/224/shiny.pal", 2, 4
-DelibirdPalette: INCBIN "gfx/pics/225/normal.pal", 2, 4
-DelibirdShinyPalette: INCBIN "gfx/pics/225/shiny.pal", 2, 4
-MantinePalette: INCBIN "gfx/pics/226/normal.pal", 2, 4
-MantineShinyPalette: INCBIN "gfx/pics/226/shiny.pal", 2, 4
-SkarmoryPalette: INCBIN "gfx/pics/227/normal.pal", 2, 4
-SkarmoryShinyPalette: INCBIN "gfx/pics/227/shiny.pal", 2, 4
-HoundourPalette: INCBIN "gfx/pics/228/normal.pal", 2, 4
-HoundourShinyPalette: INCBIN "gfx/pics/228/shiny.pal", 2, 4
-HoundoomPalette: INCBIN "gfx/pics/229/normal.pal", 2, 4
-HoundoomShinyPalette: INCBIN "gfx/pics/229/shiny.pal", 2, 4
-KingdraPalette: INCBIN "gfx/pics/230/normal.pal", 2, 4
-KingdraShinyPalette: INCBIN "gfx/pics/230/shiny.pal", 2, 4
-PhanpyPalette: INCBIN "gfx/pics/231/normal.pal", 2, 4
-PhanpyShinyPalette: INCBIN "gfx/pics/231/shiny.pal", 2, 4
-DonphanPalette: INCBIN "gfx/pics/232/normal.pal", 2, 4
-DonphanShinyPalette: INCBIN "gfx/pics/232/shiny.pal", 2, 4
-Porygon2Palette: INCBIN "gfx/pics/233/normal.pal", 2, 4
-Porygon2ShinyPalette: INCBIN "gfx/pics/233/shiny.pal", 2, 4
-StantlerPalette: INCBIN "gfx/pics/234/normal.pal", 2, 4
-StantlerShinyPalette: INCBIN "gfx/pics/234/shiny.pal", 2, 4
-SmearglePalette: INCBIN "gfx/pics/235/normal.pal", 2, 4
-SmeargleShinyPalette: INCBIN "gfx/pics/235/shiny.pal", 2, 4
-TyroguePalette: INCBIN "gfx/pics/236/normal.pal", 2, 4
-TyrogueShinyPalette: INCBIN "gfx/pics/236/shiny.pal", 2, 4
-HitmontopPalette: INCBIN "gfx/pics/237/normal.pal", 2, 4
-HitmontopShinyPalette: INCBIN "gfx/pics/237/shiny.pal", 2, 4
-SmoochumPalette: INCBIN "gfx/pics/238/normal.pal", 2, 4
-SmoochumShinyPalette: INCBIN "gfx/pics/238/shiny.pal", 2, 4
-ElekidPalette: INCBIN "gfx/pics/239/normal.pal", 2, 4
-ElekidShinyPalette: INCBIN "gfx/pics/239/shiny.pal", 2, 4
-MagbyPalette: INCBIN "gfx/pics/240/normal.pal", 2, 4
-MagbyShinyPalette: INCBIN "gfx/pics/240/shiny.pal", 2, 4
-MiltankPalette: INCBIN "gfx/pics/241/normal.pal", 2, 4
-MiltankShinyPalette: INCBIN "gfx/pics/241/shiny.pal", 2, 4
-BlisseyPalette: INCBIN "gfx/pics/242/normal.pal", 2, 4
-BlisseyShinyPalette: INCBIN "gfx/pics/242/shiny.pal", 2, 4
-RaikouPalette: INCBIN "gfx/pics/243/normal.pal", 2, 4
-RaikouShinyPalette: INCBIN "gfx/pics/243/shiny.pal", 2, 4
-EnteiPalette: INCBIN "gfx/pics/244/normal.pal", 2, 4
-EnteiShinyPalette: INCBIN "gfx/pics/244/shiny.pal", 2, 4
-SuicunePalette: INCBIN "gfx/pics/245/normal.pal", 2, 4
-SuicuneShinyPalette: INCBIN "gfx/pics/245/shiny.pal", 2, 4
-LarvitarPalette: INCBIN "gfx/pics/246/normal.pal", 2, 4
-LarvitarShinyPalette: INCBIN "gfx/pics/246/shiny.pal", 2, 4
-PupitarPalette: INCBIN "gfx/pics/247/normal.pal", 2, 4
-PupitarShinyPalette: INCBIN "gfx/pics/247/shiny.pal", 2, 4
-TyranitarPalette: INCBIN "gfx/pics/248/normal.pal", 2, 4
-TyranitarShinyPalette: INCBIN "gfx/pics/248/shiny.pal", 2, 4
-LugiaPalette: INCBIN "gfx/pics/249/normal.pal", 2, 4
-LugiaShinyPalette: INCBIN "gfx/pics/249/shiny.pal", 2, 4
-HoOhPalette: INCBIN "gfx/pics/250/normal.pal", 2, 4
-HoOhShinyPalette: INCBIN "gfx/pics/250/shiny.pal", 2, 4
-CelebiPalette: INCBIN "gfx/pics/251/normal.pal", 2, 4
-CelebiShinyPalette: INCBIN "gfx/pics/251/shiny.pal", 2, 4
+BulbasaurPalette: INCLUDE "gfx/pics/001/normal.pal"
+BulbasaurShinyPalette: INCLUDE "gfx/pics/001/shiny.pal"
+IvysaurPalette: INCLUDE "gfx/pics/002/normal.pal"
+IvysaurShinyPalette: INCLUDE "gfx/pics/002/shiny.pal"
+VenusaurPalette: INCLUDE "gfx/pics/003/normal.pal"
+VenusaurShinyPalette: INCLUDE "gfx/pics/003/shiny.pal"
+CharmanderPalette: INCLUDE "gfx/pics/004/normal.pal"
+CharmanderShinyPalette: INCLUDE "gfx/pics/004/shiny.pal"
+CharmeleonPalette: INCLUDE "gfx/pics/005/normal.pal"
+CharmeleonShinyPalette: INCLUDE "gfx/pics/005/shiny.pal"
+CharizardPalette: INCLUDE "gfx/pics/006/normal.pal"
+CharizardShinyPalette: INCLUDE "gfx/pics/006/shiny.pal"
+SquirtlePalette: INCLUDE "gfx/pics/007/normal.pal"
+SquirtleShinyPalette: INCLUDE "gfx/pics/007/shiny.pal"
+WartortlePalette: INCLUDE "gfx/pics/008/normal.pal"
+WartortleShinyPalette: INCLUDE "gfx/pics/008/shiny.pal"
+BlastoisePalette: INCLUDE "gfx/pics/009/normal.pal"
+BlastoiseShinyPalette: INCLUDE "gfx/pics/009/shiny.pal"
+CaterpiePalette: INCLUDE "gfx/pics/010/normal.pal"
+CaterpieShinyPalette: INCLUDE "gfx/pics/010/shiny.pal"
+MetapodPalette: INCLUDE "gfx/pics/011/normal.pal"
+MetapodShinyPalette: INCLUDE "gfx/pics/011/shiny.pal"
+ButterfreePalette: INCLUDE "gfx/pics/012/normal.pal"
+ButterfreeShinyPalette: INCLUDE "gfx/pics/012/shiny.pal"
+WeedlePalette: INCLUDE "gfx/pics/013/normal.pal"
+WeedleShinyPalette: INCLUDE "gfx/pics/013/shiny.pal"
+KakunaPalette: INCLUDE "gfx/pics/014/normal.pal"
+KakunaShinyPalette: INCLUDE "gfx/pics/014/shiny.pal"
+BeedrillPalette: INCLUDE "gfx/pics/015/normal.pal"
+BeedrillShinyPalette: INCLUDE "gfx/pics/015/shiny.pal"
+PidgeyPalette: INCLUDE "gfx/pics/016/normal.pal"
+PidgeyShinyPalette: INCLUDE "gfx/pics/016/shiny.pal"
+PidgeottoPalette: INCLUDE "gfx/pics/017/normal.pal"
+PidgeottoShinyPalette: INCLUDE "gfx/pics/017/shiny.pal"
+PidgeotPalette: INCLUDE "gfx/pics/018/normal.pal"
+PidgeotShinyPalette: INCLUDE "gfx/pics/018/shiny.pal"
+RattataPalette: INCLUDE "gfx/pics/019/normal.pal"
+RattataShinyPalette: INCLUDE "gfx/pics/019/shiny.pal"
+RaticatePalette: INCLUDE "gfx/pics/020/normal.pal"
+RaticateShinyPalette: INCLUDE "gfx/pics/020/shiny.pal"
+SpearowPalette: INCLUDE "gfx/pics/021/normal.pal"
+SpearowShinyPalette: INCLUDE "gfx/pics/021/shiny.pal"
+FearowPalette: INCLUDE "gfx/pics/022/normal.pal"
+FearowShinyPalette: INCLUDE "gfx/pics/022/shiny.pal"
+EkansPalette: INCLUDE "gfx/pics/023/normal.pal"
+EkansShinyPalette: INCLUDE "gfx/pics/023/shiny.pal"
+ArbokPalette: INCLUDE "gfx/pics/024/normal.pal"
+ArbokShinyPalette: INCLUDE "gfx/pics/024/shiny.pal"
+PikachuPalette: INCLUDE "gfx/pics/025/normal.pal"
+PikachuShinyPalette: INCLUDE "gfx/pics/025/shiny.pal"
+RaichuPalette: INCLUDE "gfx/pics/026/normal.pal"
+RaichuShinyPalette: INCLUDE "gfx/pics/026/shiny.pal"
+SandshrewPalette: INCLUDE "gfx/pics/027/normal.pal"
+SandshrewShinyPalette: INCLUDE "gfx/pics/027/shiny.pal"
+SandslashPalette: INCLUDE "gfx/pics/028/normal.pal"
+SandslashShinyPalette: INCLUDE "gfx/pics/028/shiny.pal"
+NidoranFPalette: INCLUDE "gfx/pics/029/normal.pal"
+NidoranFShinyPalette: INCLUDE "gfx/pics/029/shiny.pal"
+NidorinaPalette: INCLUDE "gfx/pics/030/normal.pal"
+NidorinaShinyPalette: INCLUDE "gfx/pics/030/shiny.pal"
+NidoqueenPalette: INCLUDE "gfx/pics/031/normal.pal"
+NidoqueenShinyPalette: INCLUDE "gfx/pics/031/shiny.pal"
+NidoranMPalette: INCLUDE "gfx/pics/032/normal.pal"
+NidoranMShinyPalette: INCLUDE "gfx/pics/032/shiny.pal"
+NidorinoPalette: INCLUDE "gfx/pics/033/normal.pal"
+NidorinoShinyPalette: INCLUDE "gfx/pics/033/shiny.pal"
+NidokingPalette: INCLUDE "gfx/pics/034/normal.pal"
+NidokingShinyPalette: INCLUDE "gfx/pics/034/shiny.pal"
+ClefairyPalette: INCLUDE "gfx/pics/035/normal.pal"
+ClefairyShinyPalette: INCLUDE "gfx/pics/035/shiny.pal"
+ClefablePalette: INCLUDE "gfx/pics/036/normal.pal"
+ClefableShinyPalette: INCLUDE "gfx/pics/036/shiny.pal"
+VulpixPalette: INCLUDE "gfx/pics/037/normal.pal"
+VulpixShinyPalette: INCLUDE "gfx/pics/037/shiny.pal"
+NinetalesPalette: INCLUDE "gfx/pics/038/normal.pal"
+NinetalesShinyPalette: INCLUDE "gfx/pics/038/shiny.pal"
+JigglypuffPalette: INCLUDE "gfx/pics/039/normal.pal"
+JigglypuffShinyPalette: INCLUDE "gfx/pics/039/shiny.pal"
+WigglytuffPalette: INCLUDE "gfx/pics/040/normal.pal"
+WigglytuffShinyPalette: INCLUDE "gfx/pics/040/shiny.pal"
+ZubatPalette: INCLUDE "gfx/pics/041/normal.pal"
+ZubatShinyPalette: INCLUDE "gfx/pics/041/shiny.pal"
+GolbatPalette: INCLUDE "gfx/pics/042/normal.pal"
+GolbatShinyPalette: INCLUDE "gfx/pics/042/shiny.pal"
+OddishPalette: INCLUDE "gfx/pics/043/normal.pal"
+OddishShinyPalette: INCLUDE "gfx/pics/043/shiny.pal"
+GloomPalette: INCLUDE "gfx/pics/044/normal.pal"
+GloomShinyPalette: INCLUDE "gfx/pics/044/shiny.pal"
+VileplumePalette: INCLUDE "gfx/pics/045/normal.pal"
+VileplumeShinyPalette: INCLUDE "gfx/pics/045/shiny.pal"
+ParasPalette: INCLUDE "gfx/pics/046/normal.pal"
+ParasShinyPalette: INCLUDE "gfx/pics/046/shiny.pal"
+ParasectPalette: INCLUDE "gfx/pics/047/normal.pal"
+ParasectShinyPalette: INCLUDE "gfx/pics/047/shiny.pal"
+VenonatPalette: INCLUDE "gfx/pics/048/normal.pal"
+VenonatShinyPalette: INCLUDE "gfx/pics/048/shiny.pal"
+VenomothPalette: INCLUDE "gfx/pics/049/normal.pal"
+VenomothShinyPalette: INCLUDE "gfx/pics/049/shiny.pal"
+DiglettPalette: INCLUDE "gfx/pics/050/normal.pal"
+DiglettShinyPalette: INCLUDE "gfx/pics/050/shiny.pal"
+DugtrioPalette: INCLUDE "gfx/pics/051/normal.pal"
+DugtrioShinyPalette: INCLUDE "gfx/pics/051/shiny.pal"
+MeowthPalette: INCLUDE "gfx/pics/052/normal.pal"
+MeowthShinyPalette: INCLUDE "gfx/pics/052/shiny.pal"
+PersianPalette: INCLUDE "gfx/pics/053/normal.pal"
+PersianShinyPalette: INCLUDE "gfx/pics/053/shiny.pal"
+PsyduckPalette: INCLUDE "gfx/pics/054/normal.pal"
+PsyduckShinyPalette: INCLUDE "gfx/pics/054/shiny.pal"
+GolduckPalette: INCLUDE "gfx/pics/055/normal.pal"
+GolduckShinyPalette: INCLUDE "gfx/pics/055/shiny.pal"
+MankeyPalette: INCLUDE "gfx/pics/056/normal.pal"
+MankeyShinyPalette: INCLUDE "gfx/pics/056/shiny.pal"
+PrimeapePalette: INCLUDE "gfx/pics/057/normal.pal"
+PrimeapeShinyPalette: INCLUDE "gfx/pics/057/shiny.pal"
+GrowlithePalette: INCLUDE "gfx/pics/058/normal.pal"
+GrowlitheShinyPalette: INCLUDE "gfx/pics/058/shiny.pal"
+ArcaninePalette: INCLUDE "gfx/pics/059/normal.pal"
+ArcanineShinyPalette: INCLUDE "gfx/pics/059/shiny.pal"
+PoliwagPalette: INCLUDE "gfx/pics/060/normal.pal"
+PoliwagShinyPalette: INCLUDE "gfx/pics/060/shiny.pal"
+PoliwhirlPalette: INCLUDE "gfx/pics/061/normal.pal"
+PoliwhirlShinyPalette: INCLUDE "gfx/pics/061/shiny.pal"
+PoliwrathPalette: INCLUDE "gfx/pics/062/normal.pal"
+PoliwrathShinyPalette: INCLUDE "gfx/pics/062/shiny.pal"
+AbraPalette: INCLUDE "gfx/pics/063/normal.pal"
+AbraShinyPalette: INCLUDE "gfx/pics/063/shiny.pal"
+KadabraPalette: INCLUDE "gfx/pics/064/normal.pal"
+KadabraShinyPalette: INCLUDE "gfx/pics/064/shiny.pal"
+AlakazamPalette: INCLUDE "gfx/pics/065/normal.pal"
+AlakazamShinyPalette: INCLUDE "gfx/pics/065/shiny.pal"
+MachopPalette: INCLUDE "gfx/pics/066/normal.pal"
+MachopShinyPalette: INCLUDE "gfx/pics/066/shiny.pal"
+MachokePalette: INCLUDE "gfx/pics/067/normal.pal"
+MachokeShinyPalette: INCLUDE "gfx/pics/067/shiny.pal"
+MachampPalette: INCLUDE "gfx/pics/068/normal.pal"
+MachampShinyPalette: INCLUDE "gfx/pics/068/shiny.pal"
+BellsproutPalette: INCLUDE "gfx/pics/069/normal.pal"
+BellsproutShinyPalette: INCLUDE "gfx/pics/069/shiny.pal"
+WeepinbellPalette: INCLUDE "gfx/pics/070/normal.pal"
+WeepinbellShinyPalette: INCLUDE "gfx/pics/070/shiny.pal"
+VictreebelPalette: INCLUDE "gfx/pics/071/normal.pal"
+VictreebelShinyPalette: INCLUDE "gfx/pics/071/shiny.pal"
+TentacoolPalette: INCLUDE "gfx/pics/072/normal.pal"
+TentacoolShinyPalette: INCLUDE "gfx/pics/072/shiny.pal"
+TentacruelPalette: INCLUDE "gfx/pics/073/normal.pal"
+TentacruelShinyPalette: INCLUDE "gfx/pics/073/shiny.pal"
+GeodudePalette: INCLUDE "gfx/pics/074/normal.pal"
+GeodudeShinyPalette: INCLUDE "gfx/pics/074/shiny.pal"
+GravelerPalette: INCLUDE "gfx/pics/075/normal.pal"
+GravelerShinyPalette: INCLUDE "gfx/pics/075/shiny.pal"
+GolemPalette: INCLUDE "gfx/pics/076/normal.pal"
+GolemShinyPalette: INCLUDE "gfx/pics/076/shiny.pal"
+PonytaPalette: INCLUDE "gfx/pics/077/normal.pal"
+PonytaShinyPalette: INCLUDE "gfx/pics/077/shiny.pal"
+RapidashPalette: INCLUDE "gfx/pics/078/normal.pal"
+RapidashShinyPalette: INCLUDE "gfx/pics/078/shiny.pal"
+SlowpokePalette: INCLUDE "gfx/pics/079/normal.pal"
+SlowpokeShinyPalette: INCLUDE "gfx/pics/079/shiny.pal"
+SlowbroPalette: INCLUDE "gfx/pics/080/normal.pal"
+SlowbroShinyPalette: INCLUDE "gfx/pics/080/shiny.pal"
+MagnemitePalette: INCLUDE "gfx/pics/081/normal.pal"
+MagnemiteShinyPalette: INCLUDE "gfx/pics/081/shiny.pal"
+MagnetonPalette: INCLUDE "gfx/pics/082/normal.pal"
+MagnetonShinyPalette: INCLUDE "gfx/pics/082/shiny.pal"
+FarfetchDPalette: INCLUDE "gfx/pics/083/normal.pal"
+FarfetchDShinyPalette: INCLUDE "gfx/pics/083/shiny.pal"
+DoduoPalette: INCLUDE "gfx/pics/084/normal.pal"
+DoduoShinyPalette: INCLUDE "gfx/pics/084/shiny.pal"
+DodrioPalette: INCLUDE "gfx/pics/085/normal.pal"
+DodrioShinyPalette: INCLUDE "gfx/pics/085/shiny.pal"
+SeelPalette: INCLUDE "gfx/pics/086/normal.pal"
+SeelShinyPalette: INCLUDE "gfx/pics/086/shiny.pal"
+DewgongPalette: INCLUDE "gfx/pics/087/normal.pal"
+DewgongShinyPalette: INCLUDE "gfx/pics/087/shiny.pal"
+GrimerPalette: INCLUDE "gfx/pics/088/normal.pal"
+GrimerShinyPalette: INCLUDE "gfx/pics/088/shiny.pal"
+MukPalette: INCLUDE "gfx/pics/089/normal.pal"
+MukShinyPalette: INCLUDE "gfx/pics/089/shiny.pal"
+ShellderPalette: INCLUDE "gfx/pics/090/normal.pal"
+ShellderShinyPalette: INCLUDE "gfx/pics/090/shiny.pal"
+CloysterPalette: INCLUDE "gfx/pics/091/normal.pal"
+CloysterShinyPalette: INCLUDE "gfx/pics/091/shiny.pal"
+GastlyPalette: INCLUDE "gfx/pics/092/normal.pal"
+GastlyShinyPalette: INCLUDE "gfx/pics/092/shiny.pal"
+HaunterPalette: INCLUDE "gfx/pics/093/normal.pal"
+HaunterShinyPalette: INCLUDE "gfx/pics/093/shiny.pal"
+GengarPalette: INCLUDE "gfx/pics/094/normal.pal"
+GengarShinyPalette: INCLUDE "gfx/pics/094/shiny.pal"
+OnixPalette: INCLUDE "gfx/pics/095/normal.pal"
+OnixShinyPalette: INCLUDE "gfx/pics/095/shiny.pal"
+DrowzeePalette: INCLUDE "gfx/pics/096/normal.pal"
+DrowzeeShinyPalette: INCLUDE "gfx/pics/096/shiny.pal"
+HypnoPalette: INCLUDE "gfx/pics/097/normal.pal"
+HypnoShinyPalette: INCLUDE "gfx/pics/097/shiny.pal"
+KrabbyPalette: INCLUDE "gfx/pics/098/normal.pal"
+KrabbyShinyPalette: INCLUDE "gfx/pics/098/shiny.pal"
+KinglerPalette: INCLUDE "gfx/pics/099/normal.pal"
+KinglerShinyPalette: INCLUDE "gfx/pics/099/shiny.pal"
+VoltorbPalette: INCLUDE "gfx/pics/100/normal.pal"
+VoltorbShinyPalette: INCLUDE "gfx/pics/100/shiny.pal"
+ElectrodePalette: INCLUDE "gfx/pics/101/normal.pal"
+ElectrodeShinyPalette: INCLUDE "gfx/pics/101/shiny.pal"
+ExeggcutePalette: INCLUDE "gfx/pics/102/normal.pal"
+ExeggcuteShinyPalette: INCLUDE "gfx/pics/102/shiny.pal"
+ExeggutorPalette: INCLUDE "gfx/pics/103/normal.pal"
+ExeggutorShinyPalette: INCLUDE "gfx/pics/103/shiny.pal"
+CubonePalette: INCLUDE "gfx/pics/104/normal.pal"
+CuboneShinyPalette: INCLUDE "gfx/pics/104/shiny.pal"
+MarowakPalette: INCLUDE "gfx/pics/105/normal.pal"
+MarowakShinyPalette: INCLUDE "gfx/pics/105/shiny.pal"
+HitmonleePalette: INCLUDE "gfx/pics/106/normal.pal"
+HitmonleeShinyPalette: INCLUDE "gfx/pics/106/shiny.pal"
+HitmonchanPalette: INCLUDE "gfx/pics/107/normal.pal"
+HitmonchanShinyPalette: INCLUDE "gfx/pics/107/shiny.pal"
+LickitungPalette: INCLUDE "gfx/pics/108/normal.pal"
+LickitungShinyPalette: INCLUDE "gfx/pics/108/shiny.pal"
+KoffingPalette: INCLUDE "gfx/pics/109/normal.pal"
+KoffingShinyPalette: INCLUDE "gfx/pics/109/shiny.pal"
+WeezingPalette: INCLUDE "gfx/pics/110/normal.pal"
+WeezingShinyPalette: INCLUDE "gfx/pics/110/shiny.pal"
+RhyhornPalette: INCLUDE "gfx/pics/111/normal.pal"
+RhyhornShinyPalette: INCLUDE "gfx/pics/111/shiny.pal"
+RhydonPalette: INCLUDE "gfx/pics/112/normal.pal"
+RhydonShinyPalette: INCLUDE "gfx/pics/112/shiny.pal"
+ChanseyPalette: INCLUDE "gfx/pics/113/normal.pal"
+ChanseyShinyPalette: INCLUDE "gfx/pics/113/shiny.pal"
+TangelaPalette: INCLUDE "gfx/pics/114/normal.pal"
+TangelaShinyPalette: INCLUDE "gfx/pics/114/shiny.pal"
+KangaskhanPalette: INCLUDE "gfx/pics/115/normal.pal"
+KangaskhanShinyPalette: INCLUDE "gfx/pics/115/shiny.pal"
+HorseaPalette: INCLUDE "gfx/pics/116/normal.pal"
+HorseaShinyPalette: INCLUDE "gfx/pics/116/shiny.pal"
+SeadraPalette: INCLUDE "gfx/pics/117/normal.pal"
+SeadraShinyPalette: INCLUDE "gfx/pics/117/shiny.pal"
+GoldeenPalette: INCLUDE "gfx/pics/118/normal.pal"
+GoldeenShinyPalette: INCLUDE "gfx/pics/118/shiny.pal"
+SeakingPalette: INCLUDE "gfx/pics/119/normal.pal"
+SeakingShinyPalette: INCLUDE "gfx/pics/119/shiny.pal"
+StaryuPalette: INCLUDE "gfx/pics/120/normal.pal"
+StaryuShinyPalette: INCLUDE "gfx/pics/120/shiny.pal"
+StarmiePalette: INCLUDE "gfx/pics/121/normal.pal"
+StarmieShinyPalette: INCLUDE "gfx/pics/121/shiny.pal"
+MrMimePalette: INCLUDE "gfx/pics/122/normal.pal"
+MrMimeShinyPalette: INCLUDE "gfx/pics/122/shiny.pal"
+ScytherPalette: INCLUDE "gfx/pics/123/normal.pal"
+ScytherShinyPalette: INCLUDE "gfx/pics/123/shiny.pal"
+JynxPalette: INCLUDE "gfx/pics/124/normal.pal"
+JynxShinyPalette: INCLUDE "gfx/pics/124/shiny.pal"
+ElectabuzzPalette: INCLUDE "gfx/pics/125/normal.pal"
+ElectabuzzShinyPalette: INCLUDE "gfx/pics/125/shiny.pal"
+MagmarPalette: INCLUDE "gfx/pics/126/normal.pal"
+MagmarShinyPalette: INCLUDE "gfx/pics/126/shiny.pal"
+PinsirPalette: INCLUDE "gfx/pics/127/normal.pal"
+PinsirShinyPalette: INCLUDE "gfx/pics/127/shiny.pal"
+TaurosPalette: INCLUDE "gfx/pics/128/normal.pal"
+TaurosShinyPalette: INCLUDE "gfx/pics/128/shiny.pal"
+MagikarpPalette: INCLUDE "gfx/pics/129/normal.pal"
+MagikarpShinyPalette: INCLUDE "gfx/pics/129/shiny.pal"
+GyaradosPalette: INCLUDE "gfx/pics/130/normal.pal"
+GyaradosShinyPalette: INCLUDE "gfx/pics/130/shiny.pal"
+LaprasPalette: INCLUDE "gfx/pics/131/normal.pal"
+LaprasShinyPalette: INCLUDE "gfx/pics/131/shiny.pal"
+DittoPalette: INCLUDE "gfx/pics/132/normal.pal"
+DittoShinyPalette: INCLUDE "gfx/pics/132/shiny.pal"
+EeveePalette: INCLUDE "gfx/pics/133/normal.pal"
+EeveeShinyPalette: INCLUDE "gfx/pics/133/shiny.pal"
+VaporeonPalette: INCLUDE "gfx/pics/134/normal.pal"
+VaporeonShinyPalette: INCLUDE "gfx/pics/134/shiny.pal"
+JolteonPalette: INCLUDE "gfx/pics/135/normal.pal"
+JolteonShinyPalette: INCLUDE "gfx/pics/135/shiny.pal"
+FlareonPalette: INCLUDE "gfx/pics/136/normal.pal"
+FlareonShinyPalette: INCLUDE "gfx/pics/136/shiny.pal"
+PorygonPalette: INCLUDE "gfx/pics/137/normal.pal"
+PorygonShinyPalette: INCLUDE "gfx/pics/137/shiny.pal"
+OmanytePalette: INCLUDE "gfx/pics/138/normal.pal"
+OmanyteShinyPalette: INCLUDE "gfx/pics/138/shiny.pal"
+OmastarPalette: INCLUDE "gfx/pics/139/normal.pal"
+OmastarShinyPalette: INCLUDE "gfx/pics/139/shiny.pal"
+KabutoPalette: INCLUDE "gfx/pics/140/normal.pal"
+KabutoShinyPalette: INCLUDE "gfx/pics/140/shiny.pal"
+KabutopsPalette: INCLUDE "gfx/pics/141/normal.pal"
+KabutopsShinyPalette: INCLUDE "gfx/pics/141/shiny.pal"
+AerodactylPalette: INCLUDE "gfx/pics/142/normal.pal"
+AerodactylShinyPalette: INCLUDE "gfx/pics/142/shiny.pal"
+SnorlaxPalette: INCLUDE "gfx/pics/143/normal.pal"
+SnorlaxShinyPalette: INCLUDE "gfx/pics/143/shiny.pal"
+ArticunoPalette: INCLUDE "gfx/pics/144/normal.pal"
+ArticunoShinyPalette: INCLUDE "gfx/pics/144/shiny.pal"
+ZapdosPalette: INCLUDE "gfx/pics/145/normal.pal"
+ZapdosShinyPalette: INCLUDE "gfx/pics/145/shiny.pal"
+MoltresPalette: INCLUDE "gfx/pics/146/normal.pal"
+MoltresShinyPalette: INCLUDE "gfx/pics/146/shiny.pal"
+DratiniPalette: INCLUDE "gfx/pics/147/normal.pal"
+DratiniShinyPalette: INCLUDE "gfx/pics/147/shiny.pal"
+DragonairPalette: INCLUDE "gfx/pics/148/normal.pal"
+DragonairShinyPalette: INCLUDE "gfx/pics/148/shiny.pal"
+DragonitePalette: INCLUDE "gfx/pics/149/normal.pal"
+DragoniteShinyPalette: INCLUDE "gfx/pics/149/shiny.pal"
+MewtwoPalette: INCLUDE "gfx/pics/150/normal.pal"
+MewtwoShinyPalette: INCLUDE "gfx/pics/150/shiny.pal"
+MewPalette: INCLUDE "gfx/pics/151/normal.pal"
+MewShinyPalette: INCLUDE "gfx/pics/151/shiny.pal"
+ChikoritaPalette: INCLUDE "gfx/pics/152/normal.pal"
+ChikoritaShinyPalette: INCLUDE "gfx/pics/152/shiny.pal"
+BayleefPalette: INCLUDE "gfx/pics/153/normal.pal"
+BayleefShinyPalette: INCLUDE "gfx/pics/153/shiny.pal"
+MeganiumPalette: INCLUDE "gfx/pics/154/normal.pal"
+MeganiumShinyPalette: INCLUDE "gfx/pics/154/shiny.pal"
+CyndaquilPalette: INCLUDE "gfx/pics/155/normal.pal"
+CyndaquilShinyPalette: INCLUDE "gfx/pics/155/shiny.pal"
+QuilavaPalette: INCLUDE "gfx/pics/156/normal.pal"
+QuilavaShinyPalette: INCLUDE "gfx/pics/156/shiny.pal"
+TyphlosionPalette: INCLUDE "gfx/pics/157/normal.pal"
+TyphlosionShinyPalette: INCLUDE "gfx/pics/157/shiny.pal"
+TotodilePalette: INCLUDE "gfx/pics/158/normal.pal"
+TotodileShinyPalette: INCLUDE "gfx/pics/158/shiny.pal"
+CroconawPalette: INCLUDE "gfx/pics/159/normal.pal"
+CroconawShinyPalette: INCLUDE "gfx/pics/159/shiny.pal"
+FeraligatrPalette: INCLUDE "gfx/pics/160/normal.pal"
+FeraligatrShinyPalette: INCLUDE "gfx/pics/160/shiny.pal"
+SentretPalette: INCLUDE "gfx/pics/161/normal.pal"
+SentretShinyPalette: INCLUDE "gfx/pics/161/shiny.pal"
+FurretPalette: INCLUDE "gfx/pics/162/normal.pal"
+FurretShinyPalette: INCLUDE "gfx/pics/162/shiny.pal"
+HoothootPalette: INCLUDE "gfx/pics/163/normal.pal"
+HoothootShinyPalette: INCLUDE "gfx/pics/163/shiny.pal"
+NoctowlPalette: INCLUDE "gfx/pics/164/normal.pal"
+NoctowlShinyPalette: INCLUDE "gfx/pics/164/shiny.pal"
+LedybaPalette: INCLUDE "gfx/pics/165/normal.pal"
+LedybaShinyPalette: INCLUDE "gfx/pics/165/shiny.pal"
+LedianPalette: INCLUDE "gfx/pics/166/normal.pal"
+LedianShinyPalette: INCLUDE "gfx/pics/166/shiny.pal"
+SpinarakPalette: INCLUDE "gfx/pics/167/normal.pal"
+SpinarakShinyPalette: INCLUDE "gfx/pics/167/shiny.pal"
+AriadosPalette: INCLUDE "gfx/pics/168/normal.pal"
+AriadosShinyPalette: INCLUDE "gfx/pics/168/shiny.pal"
+CrobatPalette: INCLUDE "gfx/pics/169/normal.pal"
+CrobatShinyPalette: INCLUDE "gfx/pics/169/shiny.pal"
+ChinchouPalette: INCLUDE "gfx/pics/170/normal.pal"
+ChinchouShinyPalette: INCLUDE "gfx/pics/170/shiny.pal"
+LanturnPalette: INCLUDE "gfx/pics/171/normal.pal"
+LanturnShinyPalette: INCLUDE "gfx/pics/171/shiny.pal"
+PichuPalette: INCLUDE "gfx/pics/172/normal.pal"
+PichuShinyPalette: INCLUDE "gfx/pics/172/shiny.pal"
+CleffaPalette: INCLUDE "gfx/pics/173/normal.pal"
+CleffaShinyPalette: INCLUDE "gfx/pics/173/shiny.pal"
+IgglybuffPalette: INCLUDE "gfx/pics/174/normal.pal"
+IgglybuffShinyPalette: INCLUDE "gfx/pics/174/shiny.pal"
+TogepiPalette: INCLUDE "gfx/pics/175/normal.pal"
+TogepiShinyPalette: INCLUDE "gfx/pics/175/shiny.pal"
+TogeticPalette: INCLUDE "gfx/pics/176/normal.pal"
+TogeticShinyPalette: INCLUDE "gfx/pics/176/shiny.pal"
+NatuPalette: INCLUDE "gfx/pics/177/normal.pal"
+NatuShinyPalette: INCLUDE "gfx/pics/177/shiny.pal"
+XatuPalette: INCLUDE "gfx/pics/178/normal.pal"
+XatuShinyPalette: INCLUDE "gfx/pics/178/shiny.pal"
+MareepPalette: INCLUDE "gfx/pics/179/normal.pal"
+MareepShinyPalette: INCLUDE "gfx/pics/179/shiny.pal"
+FlaaffyPalette: INCLUDE "gfx/pics/180/normal.pal"
+FlaaffyShinyPalette: INCLUDE "gfx/pics/180/shiny.pal"
+AmpharosPalette: INCLUDE "gfx/pics/181/normal.pal"
+AmpharosShinyPalette: INCLUDE "gfx/pics/181/shiny.pal"
+BellossomPalette: INCLUDE "gfx/pics/182/normal.pal"
+BellossomShinyPalette: INCLUDE "gfx/pics/182/shiny.pal"
+MarillPalette: INCLUDE "gfx/pics/183/normal.pal"
+MarillShinyPalette: INCLUDE "gfx/pics/183/shiny.pal"
+AzumarillPalette: INCLUDE "gfx/pics/184/normal.pal"
+AzumarillShinyPalette: INCLUDE "gfx/pics/184/shiny.pal"
+SudowoodoPalette: INCLUDE "gfx/pics/185/normal.pal"
+SudowoodoShinyPalette: INCLUDE "gfx/pics/185/shiny.pal"
+PolitoedPalette: INCLUDE "gfx/pics/186/normal.pal"
+PolitoedShinyPalette: INCLUDE "gfx/pics/186/shiny.pal"
+HoppipPalette: INCLUDE "gfx/pics/187/normal.pal"
+HoppipShinyPalette: INCLUDE "gfx/pics/187/shiny.pal"
+SkiploomPalette: INCLUDE "gfx/pics/188/normal.pal"
+SkiploomShinyPalette: INCLUDE "gfx/pics/188/shiny.pal"
+JumpluffPalette: INCLUDE "gfx/pics/189/normal.pal"
+JumpluffShinyPalette: INCLUDE "gfx/pics/189/shiny.pal"
+AipomPalette: INCLUDE "gfx/pics/190/normal.pal"
+AipomShinyPalette: INCLUDE "gfx/pics/190/shiny.pal"
+SunkernPalette: INCLUDE "gfx/pics/191/normal.pal"
+SunkernShinyPalette: INCLUDE "gfx/pics/191/shiny.pal"
+SunfloraPalette: INCLUDE "gfx/pics/192/normal.pal"
+SunfloraShinyPalette: INCLUDE "gfx/pics/192/shiny.pal"
+YanmaPalette: INCLUDE "gfx/pics/193/normal.pal"
+YanmaShinyPalette: INCLUDE "gfx/pics/193/shiny.pal"
+WooperPalette: INCLUDE "gfx/pics/194/normal.pal"
+WooperShinyPalette: INCLUDE "gfx/pics/194/shiny.pal"
+QuagsirePalette: INCLUDE "gfx/pics/195/normal.pal"
+QuagsireShinyPalette: INCLUDE "gfx/pics/195/shiny.pal"
+EspeonPalette: INCLUDE "gfx/pics/196/normal.pal"
+EspeonShinyPalette: INCLUDE "gfx/pics/196/shiny.pal"
+UmbreonPalette: INCLUDE "gfx/pics/197/normal.pal"
+UmbreonShinyPalette: INCLUDE "gfx/pics/197/shiny.pal"
+MurkrowPalette: INCLUDE "gfx/pics/198/normal.pal"
+MurkrowShinyPalette: INCLUDE "gfx/pics/198/shiny.pal"
+SlowkingPalette: INCLUDE "gfx/pics/199/normal.pal"
+SlowkingShinyPalette: INCLUDE "gfx/pics/199/shiny.pal"
+MisdreavusPalette: INCLUDE "gfx/pics/200/normal.pal"
+MisdreavusShinyPalette: INCLUDE "gfx/pics/200/shiny.pal"
+UnownPalette: INCLUDE "gfx/pics/201/normal.pal"
+UnownShinyPalette: INCLUDE "gfx/pics/201/shiny.pal"
+WobbuffetPalette: INCLUDE "gfx/pics/202/normal.pal"
+WobbuffetShinyPalette: INCLUDE "gfx/pics/202/shiny.pal"
+GirafarigPalette: INCLUDE "gfx/pics/203/normal.pal"
+GirafarigShinyPalette: INCLUDE "gfx/pics/203/shiny.pal"
+PinecoPalette: INCLUDE "gfx/pics/204/normal.pal"
+PinecoShinyPalette: INCLUDE "gfx/pics/204/shiny.pal"
+ForretressPalette: INCLUDE "gfx/pics/205/normal.pal"
+ForretressShinyPalette: INCLUDE "gfx/pics/205/shiny.pal"
+DunsparcePalette: INCLUDE "gfx/pics/206/normal.pal"
+DunsparceShinyPalette: INCLUDE "gfx/pics/206/shiny.pal"
+GligarPalette: INCLUDE "gfx/pics/207/normal.pal"
+GligarShinyPalette: INCLUDE "gfx/pics/207/shiny.pal"
+SteelixPalette: INCLUDE "gfx/pics/208/normal.pal"
+SteelixShinyPalette: INCLUDE "gfx/pics/208/shiny.pal"
+SnubbullPalette: INCLUDE "gfx/pics/209/normal.pal"
+SnubbullShinyPalette: INCLUDE "gfx/pics/209/shiny.pal"
+GranbullPalette: INCLUDE "gfx/pics/210/normal.pal"
+GranbullShinyPalette: INCLUDE "gfx/pics/210/shiny.pal"
+QwilfishPalette: INCLUDE "gfx/pics/211/normal.pal"
+QwilfishShinyPalette: INCLUDE "gfx/pics/211/shiny.pal"
+ScizorPalette: INCLUDE "gfx/pics/212/normal.pal"
+ScizorShinyPalette: INCLUDE "gfx/pics/212/shiny.pal"
+ShucklePalette: INCLUDE "gfx/pics/213/normal.pal"
+ShuckleShinyPalette: INCLUDE "gfx/pics/213/shiny.pal"
+HeracrossPalette: INCLUDE "gfx/pics/214/normal.pal"
+HeracrossShinyPalette: INCLUDE "gfx/pics/214/shiny.pal"
+SneaselPalette: INCLUDE "gfx/pics/215/normal.pal"
+SneaselShinyPalette: INCLUDE "gfx/pics/215/shiny.pal"
+TeddiursaPalette: INCLUDE "gfx/pics/216/normal.pal"
+TeddiursaShinyPalette: INCLUDE "gfx/pics/216/shiny.pal"
+UrsaringPalette: INCLUDE "gfx/pics/217/normal.pal"
+UrsaringShinyPalette: INCLUDE "gfx/pics/217/shiny.pal"
+SlugmaPalette: INCLUDE "gfx/pics/218/normal.pal"
+SlugmaShinyPalette: INCLUDE "gfx/pics/218/shiny.pal"
+MagcargoPalette: INCLUDE "gfx/pics/219/normal.pal"
+MagcargoShinyPalette: INCLUDE "gfx/pics/219/shiny.pal"
+SwinubPalette: INCLUDE "gfx/pics/220/normal.pal"
+SwinubShinyPalette: INCLUDE "gfx/pics/220/shiny.pal"
+PiloswinePalette: INCLUDE "gfx/pics/221/normal.pal"
+PiloswineShinyPalette: INCLUDE "gfx/pics/221/shiny.pal"
+CorsolaPalette: INCLUDE "gfx/pics/222/normal.pal"
+CorsolaShinyPalette: INCLUDE "gfx/pics/222/shiny.pal"
+RemoraidPalette: INCLUDE "gfx/pics/223/normal.pal"
+RemoraidShinyPalette: INCLUDE "gfx/pics/223/shiny.pal"
+OctilleryPalette: INCLUDE "gfx/pics/224/normal.pal"
+OctilleryShinyPalette: INCLUDE "gfx/pics/224/shiny.pal"
+DelibirdPalette: INCLUDE "gfx/pics/225/normal.pal"
+DelibirdShinyPalette: INCLUDE "gfx/pics/225/shiny.pal"
+MantinePalette: INCLUDE "gfx/pics/226/normal.pal"
+MantineShinyPalette: INCLUDE "gfx/pics/226/shiny.pal"
+SkarmoryPalette: INCLUDE "gfx/pics/227/normal.pal"
+SkarmoryShinyPalette: INCLUDE "gfx/pics/227/shiny.pal"
+HoundourPalette: INCLUDE "gfx/pics/228/normal.pal"
+HoundourShinyPalette: INCLUDE "gfx/pics/228/shiny.pal"
+HoundoomPalette: INCLUDE "gfx/pics/229/normal.pal"
+HoundoomShinyPalette: INCLUDE "gfx/pics/229/shiny.pal"
+KingdraPalette: INCLUDE "gfx/pics/230/normal.pal"
+KingdraShinyPalette: INCLUDE "gfx/pics/230/shiny.pal"
+PhanpyPalette: INCLUDE "gfx/pics/231/normal.pal"
+PhanpyShinyPalette: INCLUDE "gfx/pics/231/shiny.pal"
+DonphanPalette: INCLUDE "gfx/pics/232/normal.pal"
+DonphanShinyPalette: INCLUDE "gfx/pics/232/shiny.pal"
+Porygon2Palette: INCLUDE "gfx/pics/233/normal.pal"
+Porygon2ShinyPalette: INCLUDE "gfx/pics/233/shiny.pal"
+StantlerPalette: INCLUDE "gfx/pics/234/normal.pal"
+StantlerShinyPalette: INCLUDE "gfx/pics/234/shiny.pal"
+SmearglePalette: INCLUDE "gfx/pics/235/normal.pal"
+SmeargleShinyPalette: INCLUDE "gfx/pics/235/shiny.pal"
+TyroguePalette: INCLUDE "gfx/pics/236/normal.pal"
+TyrogueShinyPalette: INCLUDE "gfx/pics/236/shiny.pal"
+HitmontopPalette: INCLUDE "gfx/pics/237/normal.pal"
+HitmontopShinyPalette: INCLUDE "gfx/pics/237/shiny.pal"
+SmoochumPalette: INCLUDE "gfx/pics/238/normal.pal"
+SmoochumShinyPalette: INCLUDE "gfx/pics/238/shiny.pal"
+ElekidPalette: INCLUDE "gfx/pics/239/normal.pal"
+ElekidShinyPalette: INCLUDE "gfx/pics/239/shiny.pal"
+MagbyPalette: INCLUDE "gfx/pics/240/normal.pal"
+MagbyShinyPalette: INCLUDE "gfx/pics/240/shiny.pal"
+MiltankPalette: INCLUDE "gfx/pics/241/normal.pal"
+MiltankShinyPalette: INCLUDE "gfx/pics/241/shiny.pal"
+BlisseyPalette: INCLUDE "gfx/pics/242/normal.pal"
+BlisseyShinyPalette: INCLUDE "gfx/pics/242/shiny.pal"
+RaikouPalette: INCLUDE "gfx/pics/243/normal.pal"
+RaikouShinyPalette: INCLUDE "gfx/pics/243/shiny.pal"
+EnteiPalette: INCLUDE "gfx/pics/244/normal.pal"
+EnteiShinyPalette: INCLUDE "gfx/pics/244/shiny.pal"
+SuicunePalette: INCLUDE "gfx/pics/245/normal.pal"
+SuicuneShinyPalette: INCLUDE "gfx/pics/245/shiny.pal"
+LarvitarPalette: INCLUDE "gfx/pics/246/normal.pal"
+LarvitarShinyPalette: INCLUDE "gfx/pics/246/shiny.pal"
+PupitarPalette: INCLUDE "gfx/pics/247/normal.pal"
+PupitarShinyPalette: INCLUDE "gfx/pics/247/shiny.pal"
+TyranitarPalette: INCLUDE "gfx/pics/248/normal.pal"
+TyranitarShinyPalette: INCLUDE "gfx/pics/248/shiny.pal"
+LugiaPalette: INCLUDE "gfx/pics/249/normal.pal"
+LugiaShinyPalette: INCLUDE "gfx/pics/249/shiny.pal"
+HoOhPalette: INCLUDE "gfx/pics/250/normal.pal"
+HoOhShinyPalette: INCLUDE "gfx/pics/250/shiny.pal"
+CelebiPalette: INCLUDE "gfx/pics/251/normal.pal"
+CelebiShinyPalette: INCLUDE "gfx/pics/251/shiny.pal"
diff --git a/gfx/pics/unown_anim_pointers.asm b/gfx/pics/unown_anim_pointers.asm
index ea8067b5e..46aa757e4 100644
--- a/gfx/pics/unown_anim_pointers.asm
+++ b/gfx/pics/unown_anim_pointers.asm
@@ -1,3 +1,4 @@
+UnownAnimationPointers:
dw UnownAAnimation
dw UnownBAnimation
dw UnownCAnimation
diff --git a/gfx/pics/unown_bitmask_pointers.asm b/gfx/pics/unown_bitmask_pointers.asm
index 1af0de50e..a20db9700 100644
--- a/gfx/pics/unown_bitmask_pointers.asm
+++ b/gfx/pics/unown_bitmask_pointers.asm
@@ -1,3 +1,4 @@
+UnownBitmasksPointers:
dw UnownABitmasks
dw UnownBBitmasks
dw UnownCBitmasks
diff --git a/gfx/pics/unown_extra_pointers.asm b/gfx/pics/unown_extra_pointers.asm
index 5a16805aa..5b466064d 100644
--- a/gfx/pics/unown_extra_pointers.asm
+++ b/gfx/pics/unown_extra_pointers.asm
@@ -1,3 +1,4 @@
+UnownAnimationExtraPointers:
dw UnownAAnimationExtra
dw UnownBAnimationExtra
dw UnownCAnimationExtra
diff --git a/gfx/pics/unown_frame_pointers.asm b/gfx/pics/unown_frame_pointers.asm
index 156efe7c3..9d3c4b1d4 100644
--- a/gfx/pics/unown_frame_pointers.asm
+++ b/gfx/pics/unown_frame_pointers.asm
@@ -1,3 +1,4 @@
+UnownFramesPointers:
dw UnownAFrames
dw UnownBFrames
dw UnownCFrames
@@ -24,3 +25,4 @@
dw UnownXFrames
dw UnownYFrames
dw UnownZFrames
+
diff --git a/gfx/stats/shiny.2bpp b/gfx/stats/shiny.2bpp
new file mode 100644
index 000000000..cfe4e8f9e
--- /dev/null
+++ b/gfx/stats/shiny.2bpp
@@ -0,0 +1 @@
+@@BB88 \ No newline at end of file
diff --git a/gfx/trainers/000.pal b/gfx/trainers/000.pal
index ca3afac31..ddc5262ba 100644
--- a/gfx/trainers/000.pal
+++ b/gfx/trainers/000.pal
Binary files differ
diff --git a/gfx/trainers/001.pal b/gfx/trainers/001.pal
index 896f3e576..a51af5fda 100644
--- a/gfx/trainers/001.pal
+++ b/gfx/trainers/001.pal
Binary files differ
diff --git a/gfx/trainers/002.pal b/gfx/trainers/002.pal
index 5368ab1b8..1743f663b 100644
--- a/gfx/trainers/002.pal
+++ b/gfx/trainers/002.pal
Binary files differ
diff --git a/gfx/trainers/003.pal b/gfx/trainers/003.pal
index 2442efc2a..736d93ba7 100644
--- a/gfx/trainers/003.pal
+++ b/gfx/trainers/003.pal
Binary files differ
diff --git a/gfx/trainers/004.pal b/gfx/trainers/004.pal
index a892a77db..ca319f05a 100644
--- a/gfx/trainers/004.pal
+++ b/gfx/trainers/004.pal
Binary files differ
diff --git a/gfx/trainers/005.pal b/gfx/trainers/005.pal
index 40691c008..352d95673 100644
--- a/gfx/trainers/005.pal
+++ b/gfx/trainers/005.pal
Binary files differ
diff --git a/gfx/trainers/006.pal b/gfx/trainers/006.pal
index 37ec137f5..9616829dc 100644
--- a/gfx/trainers/006.pal
+++ b/gfx/trainers/006.pal
Binary files differ
diff --git a/gfx/trainers/007.pal b/gfx/trainers/007.pal
index 44b15a40f..616598fee 100644
--- a/gfx/trainers/007.pal
+++ b/gfx/trainers/007.pal
Binary files differ
diff --git a/gfx/trainers/008.pal b/gfx/trainers/008.pal
index 5af00e47b..190dc92e0 100644
--- a/gfx/trainers/008.pal
+++ b/gfx/trainers/008.pal
Binary files differ
diff --git a/gfx/trainers/009.pal b/gfx/trainers/009.pal
index e6e7d26c0..a4be7ff97 100644
--- a/gfx/trainers/009.pal
+++ b/gfx/trainers/009.pal
Binary files differ
diff --git a/gfx/trainers/010.pal b/gfx/trainers/010.pal
index 5d3c26a22..d27fd8069 100644
--- a/gfx/trainers/010.pal
+++ b/gfx/trainers/010.pal
Binary files differ
diff --git a/gfx/trainers/011.pal b/gfx/trainers/011.pal
index da8d0af3f..92101c5e3 100644
--- a/gfx/trainers/011.pal
+++ b/gfx/trainers/011.pal
Binary files differ
diff --git a/gfx/trainers/012.pal b/gfx/trainers/012.pal
index 72e0e17a7..41408a91d 100644
--- a/gfx/trainers/012.pal
+++ b/gfx/trainers/012.pal
Binary files differ
diff --git a/gfx/trainers/013.pal b/gfx/trainers/013.pal
index 2a8f454ed..0eeb5fa2d 100644
--- a/gfx/trainers/013.pal
+++ b/gfx/trainers/013.pal
Binary files differ
diff --git a/gfx/trainers/014.pal b/gfx/trainers/014.pal
index b4505fd0c..096b1e131 100644
--- a/gfx/trainers/014.pal
+++ b/gfx/trainers/014.pal
Binary files differ
diff --git a/gfx/trainers/015.pal b/gfx/trainers/015.pal
index 813429be0..3dee1efef 100644
--- a/gfx/trainers/015.pal
+++ b/gfx/trainers/015.pal
Binary files differ
diff --git a/gfx/trainers/016.pal b/gfx/trainers/016.pal
index 703139b8a..f5a1b0c06 100644
--- a/gfx/trainers/016.pal
+++ b/gfx/trainers/016.pal
Binary files differ
diff --git a/gfx/trainers/017.pal b/gfx/trainers/017.pal
index 4f0bc1010..aab4b0849 100644
--- a/gfx/trainers/017.pal
+++ b/gfx/trainers/017.pal
Binary files differ
diff --git a/gfx/trainers/018.pal b/gfx/trainers/018.pal
index 5d81d1b9a..6243fae58 100644
--- a/gfx/trainers/018.pal
+++ b/gfx/trainers/018.pal
Binary files differ
diff --git a/gfx/trainers/019.pal b/gfx/trainers/019.pal
index 0bde417a8..0661e50e8 100644
--- a/gfx/trainers/019.pal
+++ b/gfx/trainers/019.pal
Binary files differ
diff --git a/gfx/trainers/020.pal b/gfx/trainers/020.pal
index 03677e151..e8de9b43d 100644
--- a/gfx/trainers/020.pal
+++ b/gfx/trainers/020.pal
Binary files differ
diff --git a/gfx/trainers/021.pal b/gfx/trainers/021.pal
index c45c63cf2..a330d692f 100644
--- a/gfx/trainers/021.pal
+++ b/gfx/trainers/021.pal
Binary files differ
diff --git a/gfx/trainers/022.pal b/gfx/trainers/022.pal
index 7f3593474..5ba665e79 100644
--- a/gfx/trainers/022.pal
+++ b/gfx/trainers/022.pal
Binary files differ
diff --git a/gfx/trainers/023.pal b/gfx/trainers/023.pal
index b1e6bcf70..ca0407a3b 100644
--- a/gfx/trainers/023.pal
+++ b/gfx/trainers/023.pal
Binary files differ
diff --git a/gfx/trainers/024.pal b/gfx/trainers/024.pal
index 6c0c148d3..1ca3149dc 100644
--- a/gfx/trainers/024.pal
+++ b/gfx/trainers/024.pal
Binary files differ
diff --git a/gfx/trainers/025.pal b/gfx/trainers/025.pal
index decde7ff9..e958004cb 100644
--- a/gfx/trainers/025.pal
+++ b/gfx/trainers/025.pal
Binary files differ
diff --git a/gfx/trainers/026.pal b/gfx/trainers/026.pal
index dec99c5b0..bdeefabf8 100644
--- a/gfx/trainers/026.pal
+++ b/gfx/trainers/026.pal
Binary files differ
diff --git a/gfx/trainers/027.pal b/gfx/trainers/027.pal
index dec99c5b0..bdeefabf8 100644
--- a/gfx/trainers/027.pal
+++ b/gfx/trainers/027.pal
Binary files differ
diff --git a/gfx/trainers/028.pal b/gfx/trainers/028.pal
index 3ecf6fb34..7183a0502 100644
--- a/gfx/trainers/028.pal
+++ b/gfx/trainers/028.pal
Binary files differ
diff --git a/gfx/trainers/029.pal b/gfx/trainers/029.pal
index f165ee10b..f8e224ab8 100644
--- a/gfx/trainers/029.pal
+++ b/gfx/trainers/029.pal
Binary files differ
diff --git a/gfx/trainers/030.pal b/gfx/trainers/030.pal
index 3b50bf55c..f7dc95d8f 100644
--- a/gfx/trainers/030.pal
+++ b/gfx/trainers/030.pal
Binary files differ
diff --git a/gfx/trainers/031.pal b/gfx/trainers/031.pal
index 368f32026..c6faa0d33 100644
--- a/gfx/trainers/031.pal
+++ b/gfx/trainers/031.pal
Binary files differ
diff --git a/gfx/trainers/032.pal b/gfx/trainers/032.pal
index 31a7441fc..9201ca909 100644
--- a/gfx/trainers/032.pal
+++ b/gfx/trainers/032.pal
Binary files differ
diff --git a/gfx/trainers/033.pal b/gfx/trainers/033.pal
index d80e993b2..a614be34c 100644
--- a/gfx/trainers/033.pal
+++ b/gfx/trainers/033.pal
Binary files differ
diff --git a/gfx/trainers/034.pal b/gfx/trainers/034.pal
index 566ee3e4b..950be6902 100644
--- a/gfx/trainers/034.pal
+++ b/gfx/trainers/034.pal
Binary files differ
diff --git a/gfx/trainers/035.pal b/gfx/trainers/035.pal
index 40d064421..8e4df4219 100644
--- a/gfx/trainers/035.pal
+++ b/gfx/trainers/035.pal
Binary files differ
diff --git a/gfx/trainers/036.pal b/gfx/trainers/036.pal
index d7b5231a4..9d0657111 100644
--- a/gfx/trainers/036.pal
+++ b/gfx/trainers/036.pal
Binary files differ
diff --git a/gfx/trainers/037.pal b/gfx/trainers/037.pal
index 359f288aa..164d2166b 100644
--- a/gfx/trainers/037.pal
+++ b/gfx/trainers/037.pal
Binary files differ
diff --git a/gfx/trainers/038.pal b/gfx/trainers/038.pal
index fff12874d..6bddcbcc3 100644
--- a/gfx/trainers/038.pal
+++ b/gfx/trainers/038.pal
Binary files differ
diff --git a/gfx/trainers/039.pal b/gfx/trainers/039.pal
index 902557c42..33b3c02b1 100644
--- a/gfx/trainers/039.pal
+++ b/gfx/trainers/039.pal
Binary files differ
diff --git a/gfx/trainers/040.pal b/gfx/trainers/040.pal
index 8b20f904f..862d4e21e 100644
--- a/gfx/trainers/040.pal
+++ b/gfx/trainers/040.pal
Binary files differ
diff --git a/gfx/trainers/041.pal b/gfx/trainers/041.pal
index 5af00e47b..190dc92e0 100644
--- a/gfx/trainers/041.pal
+++ b/gfx/trainers/041.pal
Binary files differ
diff --git a/gfx/trainers/042.pal b/gfx/trainers/042.pal
index 688436155..d5c88a3bd 100644
--- a/gfx/trainers/042.pal
+++ b/gfx/trainers/042.pal
Binary files differ
diff --git a/gfx/trainers/043.pal b/gfx/trainers/043.pal
index 7fb9a641f..8d0cb5c4c 100644
--- a/gfx/trainers/043.pal
+++ b/gfx/trainers/043.pal
Binary files differ
diff --git a/gfx/trainers/044.pal b/gfx/trainers/044.pal
index cb07b7d18..bfffe557d 100644
--- a/gfx/trainers/044.pal
+++ b/gfx/trainers/044.pal
Binary files differ
diff --git a/gfx/trainers/045.pal b/gfx/trainers/045.pal
index 2b95a9ec7..90f3a381f 100644
--- a/gfx/trainers/045.pal
+++ b/gfx/trainers/045.pal
Binary files differ
diff --git a/gfx/trainers/046.pal b/gfx/trainers/046.pal
index 868cc509f..cfcdd144f 100644
--- a/gfx/trainers/046.pal
+++ b/gfx/trainers/046.pal
Binary files differ
diff --git a/gfx/trainers/047.pal b/gfx/trainers/047.pal
index 50ba7dca5..b051224dd 100644
--- a/gfx/trainers/047.pal
+++ b/gfx/trainers/047.pal
Binary files differ
diff --git a/gfx/trainers/048.pal b/gfx/trainers/048.pal
index 428b6b7bc..ffee98b09 100644
--- a/gfx/trainers/048.pal
+++ b/gfx/trainers/048.pal
Binary files differ
diff --git a/gfx/trainers/049.pal b/gfx/trainers/049.pal
index 3dd3aeda1..59ea02844 100644
--- a/gfx/trainers/049.pal
+++ b/gfx/trainers/049.pal
Binary files differ
diff --git a/gfx/trainers/050.pal b/gfx/trainers/050.pal
index a94cc7cb6..66e0a46c9 100644
--- a/gfx/trainers/050.pal
+++ b/gfx/trainers/050.pal
Binary files differ
diff --git a/gfx/trainers/051.pal b/gfx/trainers/051.pal
index be6ce1b2d..e19c4d817 100644
--- a/gfx/trainers/051.pal
+++ b/gfx/trainers/051.pal
Binary files differ
diff --git a/gfx/trainers/052.pal b/gfx/trainers/052.pal
index 4c752fd4a..d0eec39f9 100644
--- a/gfx/trainers/052.pal
+++ b/gfx/trainers/052.pal
Binary files differ
diff --git a/gfx/trainers/053.pal b/gfx/trainers/053.pal
index a58056851..13a083c68 100644
--- a/gfx/trainers/053.pal
+++ b/gfx/trainers/053.pal
Binary files differ
diff --git a/gfx/trainers/054.pal b/gfx/trainers/054.pal
index d34e98f74..36ec86f8e 100644
--- a/gfx/trainers/054.pal
+++ b/gfx/trainers/054.pal
Binary files differ
diff --git a/gfx/trainers/055.pal b/gfx/trainers/055.pal
index 2431966da..d61b39ec3 100644
--- a/gfx/trainers/055.pal
+++ b/gfx/trainers/055.pal
Binary files differ
diff --git a/gfx/trainers/056.pal b/gfx/trainers/056.pal
index d989306c1..e06b66f39 100644
--- a/gfx/trainers/056.pal
+++ b/gfx/trainers/056.pal
Binary files differ
diff --git a/gfx/trainers/057.pal b/gfx/trainers/057.pal
index 416e43178..4fb9af5e1 100644
--- a/gfx/trainers/057.pal
+++ b/gfx/trainers/057.pal
Binary files differ
diff --git a/gfx/trainers/058.pal b/gfx/trainers/058.pal
index 56a1c2c2d..601ed4ae9 100644
--- a/gfx/trainers/058.pal
+++ b/gfx/trainers/058.pal
Binary files differ
diff --git a/gfx/trainers/059.pal b/gfx/trainers/059.pal
index c3fb920d4..334b11d21 100644
--- a/gfx/trainers/059.pal
+++ b/gfx/trainers/059.pal
Binary files differ
diff --git a/gfx/trainers/060.pal b/gfx/trainers/060.pal
index 4aeace7ac..47792418b 100644
--- a/gfx/trainers/060.pal
+++ b/gfx/trainers/060.pal
Binary files differ
diff --git a/gfx/trainers/061.pal b/gfx/trainers/061.pal
index c403ca527..57d1b94cf 100644
--- a/gfx/trainers/061.pal
+++ b/gfx/trainers/061.pal
Binary files differ
diff --git a/gfx/trainers/062.pal b/gfx/trainers/062.pal
index 65dd30c99..3ebf35fb7 100644
--- a/gfx/trainers/062.pal
+++ b/gfx/trainers/062.pal
Binary files differ
diff --git a/gfx/trainers/063.pal b/gfx/trainers/063.pal
index a06cfa402..ce6b3f1d7 100644
--- a/gfx/trainers/063.pal
+++ b/gfx/trainers/063.pal
Binary files differ
diff --git a/gfx/trainers/064.pal b/gfx/trainers/064.pal
index a3be67ca6..a14a47917 100644
--- a/gfx/trainers/064.pal
+++ b/gfx/trainers/064.pal
Binary files differ
diff --git a/gfx/trainers/065.pal b/gfx/trainers/065.pal
index 288efa9eb..746132411 100644
--- a/gfx/trainers/065.pal
+++ b/gfx/trainers/065.pal
Binary files differ
diff --git a/gfx/trainers/066.pal b/gfx/trainers/066.pal
index 802f876dd..7e95414ae 100644
--- a/gfx/trainers/066.pal
+++ b/gfx/trainers/066.pal
Binary files differ
diff --git a/gfx/trainers/palette_pointers.asm b/gfx/trainers/palette_pointers.asm
index bc5c706eb..f96ed5143 100644
--- a/gfx/trainers/palette_pointers.asm
+++ b/gfx/trainers/palette_pointers.asm
@@ -1,67 +1,67 @@
-FalknerPalette: INCBIN "gfx/trainers/000.pal", 2, 4
-WhitneyPalette: INCBIN "gfx/trainers/001.pal", 2, 4
-BugsyPalette: INCBIN "gfx/trainers/002.pal", 2, 4
-MortyPalette: INCBIN "gfx/trainers/003.pal", 2, 4
-PrycePalette: INCBIN "gfx/trainers/004.pal", 2, 4
-JasminePalette: INCBIN "gfx/trainers/005.pal", 2, 4
-ChuckPalette: INCBIN "gfx/trainers/006.pal", 2, 4
-ClairPalette: INCBIN "gfx/trainers/007.pal", 2, 4
-Rival1Palette: INCBIN "gfx/trainers/008.pal", 2, 4
-PokemonProfPalette: INCBIN "gfx/trainers/009.pal", 2, 4
-WillPalette: INCBIN "gfx/trainers/010.pal", 2, 4
-CalPalette: INCBIN "gfx/trainers/011.pal", 2, 4
-BrunoPalette: INCBIN "gfx/trainers/012.pal", 2, 4
-KarenPalette: INCBIN "gfx/trainers/013.pal", 2, 4
-KogaPalette: INCBIN "gfx/trainers/014.pal", 2, 4
-ChampionPalette: INCBIN "gfx/trainers/015.pal", 2, 4
-BrockPalette: INCBIN "gfx/trainers/016.pal", 2, 4
-MistyPalette: INCBIN "gfx/trainers/017.pal", 2, 4
-LtSurgePalette: INCBIN "gfx/trainers/018.pal", 2, 4
-ScientistPalette: INCBIN "gfx/trainers/019.pal", 2, 4
-ErikaPalette: INCBIN "gfx/trainers/020.pal", 2, 4
-YoungsterPalette: INCBIN "gfx/trainers/021.pal", 2, 4
-SchoolboyPalette: INCBIN "gfx/trainers/022.pal", 2, 4
-BirdKeeperPalette: INCBIN "gfx/trainers/023.pal", 2, 4
-LassPalette: INCBIN "gfx/trainers/024.pal", 2, 4
-JaninePalette: INCBIN "gfx/trainers/025.pal", 2, 4
-CooltrainermPalette: INCBIN "gfx/trainers/026.pal", 2, 4
-CooltrainerfPalette: INCBIN "gfx/trainers/027.pal", 2, 4
-BeautyPalette: INCBIN "gfx/trainers/028.pal", 2, 4
-PokemaniacPalette: INCBIN "gfx/trainers/029.pal", 2, 4
-GruntmPalette: INCBIN "gfx/trainers/030.pal", 2, 4
-GentlemanPalette: INCBIN "gfx/trainers/031.pal", 2, 4
-SkierPalette: INCBIN "gfx/trainers/032.pal", 2, 4
-TeacherPalette: INCBIN "gfx/trainers/033.pal", 2, 4
-SabrinaPalette: INCBIN "gfx/trainers/034.pal", 2, 4
-BugCatcherPalette: INCBIN "gfx/trainers/035.pal", 2, 4
-FisherPalette: INCBIN "gfx/trainers/036.pal", 2, 4
-SwimmermPalette: INCBIN "gfx/trainers/037.pal", 2, 4
-SwimmerfPalette: INCBIN "gfx/trainers/038.pal", 2, 4
-SailorPalette: INCBIN "gfx/trainers/039.pal", 2, 4
-SuperNerdPalette: INCBIN "gfx/trainers/040.pal", 2, 4
-Rival2Palette: INCBIN "gfx/trainers/041.pal", 2, 4
-GuitaristPalette: INCBIN "gfx/trainers/042.pal", 2, 4
-HikerPalette: INCBIN "gfx/trainers/043.pal", 2, 4
-BikerPalette: INCBIN "gfx/trainers/044.pal", 2, 4
-BlainePalette: INCBIN "gfx/trainers/045.pal", 2, 4
-BurglarPalette: INCBIN "gfx/trainers/046.pal", 2, 4
-FirebreatherPalette: INCBIN "gfx/trainers/047.pal", 2, 4
-JugglerPalette: INCBIN "gfx/trainers/048.pal", 2, 4
-BlackbeltTPalette: INCBIN "gfx/trainers/049.pal", 2, 4
-ExecutivemPalette: INCBIN "gfx/trainers/050.pal", 2, 4
-PsychicTPalette: INCBIN "gfx/trainers/051.pal", 2, 4
-PicnickerPalette: INCBIN "gfx/trainers/052.pal", 2, 4
-CamperPalette: INCBIN "gfx/trainers/053.pal", 2, 4
-ExecutivefPalette: INCBIN "gfx/trainers/054.pal", 2, 4
-SagePalette: INCBIN "gfx/trainers/055.pal", 2, 4
-MediumPalette: INCBIN "gfx/trainers/056.pal", 2, 4
-BoarderPalette: INCBIN "gfx/trainers/057.pal", 2, 4
-PokefanmPalette: INCBIN "gfx/trainers/058.pal", 2, 4
-KimonoGirlPalette: INCBIN "gfx/trainers/059.pal", 2, 4
-TwinsPalette: INCBIN "gfx/trainers/060.pal", 2, 4
-PokefanfPalette: INCBIN "gfx/trainers/061.pal", 2, 4
-RedPalette: INCBIN "gfx/trainers/062.pal", 2, 4
-BluePalette: INCBIN "gfx/trainers/063.pal", 2, 4
-OfficerPalette: INCBIN "gfx/trainers/064.pal", 2, 4
-GruntfPalette: INCBIN "gfx/trainers/065.pal", 2, 4
-MysticalmanPalette: INCBIN "gfx/trainers/066.pal", 2, 4
+FalknerPalette: INCLUDE "gfx/trainers/000.pal"
+WhitneyPalette: INCLUDE "gfx/trainers/001.pal"
+BugsyPalette: INCLUDE "gfx/trainers/002.pal"
+MortyPalette: INCLUDE "gfx/trainers/003.pal"
+PrycePalette: INCLUDE "gfx/trainers/004.pal"
+JasminePalette: INCLUDE "gfx/trainers/005.pal"
+ChuckPalette: INCLUDE "gfx/trainers/006.pal"
+ClairPalette: INCLUDE "gfx/trainers/007.pal"
+Rival1Palette: INCLUDE "gfx/trainers/008.pal"
+PokemonProfPalette: INCLUDE "gfx/trainers/009.pal"
+WillPalette: INCLUDE "gfx/trainers/010.pal"
+CalPalette: INCLUDE "gfx/trainers/011.pal"
+BrunoPalette: INCLUDE "gfx/trainers/012.pal"
+KarenPalette: INCLUDE "gfx/trainers/013.pal"
+KogaPalette: INCLUDE "gfx/trainers/014.pal"
+ChampionPalette: INCLUDE "gfx/trainers/015.pal"
+BrockPalette: INCLUDE "gfx/trainers/016.pal"
+MistyPalette: INCLUDE "gfx/trainers/017.pal"
+LtSurgePalette: INCLUDE "gfx/trainers/018.pal"
+ScientistPalette: INCLUDE "gfx/trainers/019.pal"
+ErikaPalette: INCLUDE "gfx/trainers/020.pal"
+YoungsterPalette: INCLUDE "gfx/trainers/021.pal"
+SchoolboyPalette: INCLUDE "gfx/trainers/022.pal"
+BirdKeeperPalette: INCLUDE "gfx/trainers/023.pal"
+LassPalette: INCLUDE "gfx/trainers/024.pal"
+JaninePalette: INCLUDE "gfx/trainers/025.pal"
+CooltrainermPalette: INCLUDE "gfx/trainers/026.pal"
+CooltrainerfPalette: INCLUDE "gfx/trainers/027.pal"
+BeautyPalette: INCLUDE "gfx/trainers/028.pal"
+PokemaniacPalette: INCLUDE "gfx/trainers/029.pal"
+GruntmPalette: INCLUDE "gfx/trainers/030.pal"
+GentlemanPalette: INCLUDE "gfx/trainers/031.pal"
+SkierPalette: INCLUDE "gfx/trainers/032.pal"
+TeacherPalette: INCLUDE "gfx/trainers/033.pal"
+SabrinaPalette: INCLUDE "gfx/trainers/034.pal"
+BugCatcherPalette: INCLUDE "gfx/trainers/035.pal"
+FisherPalette: INCLUDE "gfx/trainers/036.pal"
+SwimmermPalette: INCLUDE "gfx/trainers/037.pal"
+SwimmerfPalette: INCLUDE "gfx/trainers/038.pal"
+SailorPalette: INCLUDE "gfx/trainers/039.pal"
+SuperNerdPalette: INCLUDE "gfx/trainers/040.pal"
+Rival2Palette: INCLUDE "gfx/trainers/041.pal"
+GuitaristPalette: INCLUDE "gfx/trainers/042.pal"
+HikerPalette: INCLUDE "gfx/trainers/043.pal"
+BikerPalette: INCLUDE "gfx/trainers/044.pal"
+BlainePalette: INCLUDE "gfx/trainers/045.pal"
+BurglarPalette: INCLUDE "gfx/trainers/046.pal"
+FirebreatherPalette: INCLUDE "gfx/trainers/047.pal"
+JugglerPalette: INCLUDE "gfx/trainers/048.pal"
+BlackbeltTPalette: INCLUDE "gfx/trainers/049.pal"
+ExecutivemPalette: INCLUDE "gfx/trainers/050.pal"
+PsychicTPalette: INCLUDE "gfx/trainers/051.pal"
+PicnickerPalette: INCLUDE "gfx/trainers/052.pal"
+CamperPalette: INCLUDE "gfx/trainers/053.pal"
+ExecutivefPalette: INCLUDE "gfx/trainers/054.pal"
+SagePalette: INCLUDE "gfx/trainers/055.pal"
+MediumPalette: INCLUDE "gfx/trainers/056.pal"
+BoarderPalette: INCLUDE "gfx/trainers/057.pal"
+PokefanmPalette: INCLUDE "gfx/trainers/058.pal"
+KimonoGirlPalette: INCLUDE "gfx/trainers/059.pal"
+TwinsPalette: INCLUDE "gfx/trainers/060.pal"
+PokefanfPalette: INCLUDE "gfx/trainers/061.pal"
+RedPalette: INCLUDE "gfx/trainers/062.pal"
+BluePalette: INCLUDE "gfx/trainers/063.pal"
+OfficerPalette: INCLUDE "gfx/trainers/064.pal"
+GruntfPalette: INCLUDE "gfx/trainers/065.pal"
+MysticalmanPalette: INCLUDE "gfx/trainers/066.pal"
diff --git a/home.asm b/home.asm
new file mode 100644
index 000000000..565b547cd
--- /dev/null
+++ b/home.asm
@@ -0,0 +1,3408 @@
+INCLUDE "includes.asm"
+
+SECTION "NULL", ROM0[0]
+NULL:
+
+
+INCLUDE "rst.asm"
+INCLUDE "interrupts.asm"
+
+
+SECTION "Header", ROM0[$100]
+
+Start:
+ nop
+ jp _Start
+
+
+SECTION "Home", ROM0[$150]
+
+INCLUDE "home/init.asm"
+INCLUDE "home/vblank.asm"
+INCLUDE "home/delay.asm"
+INCLUDE "home/rtc.asm"
+INCLUDE "home/fade.asm"
+INCLUDE "home/lcd.asm"
+INCLUDE "home/time.asm"
+INCLUDE "home/serial.asm"
+INCLUDE "home/joypad.asm"
+INCLUDE "home/decompress.asm"
+INCLUDE "home/palettes.asm"
+INCLUDE "home/copy.asm"
+INCLUDE "home/text.asm"
+INCLUDE "home/video.asm"
+INCLUDE "home/map_objects.asm"
+INCLUDE "home/sine.asm"
+INCLUDE "home/movement.asm"
+INCLUDE "home/tilemap.asm"
+INCLUDE "home/menu.asm"
+INCLUDE "home/handshake.asm"
+INCLUDE "home/game_time.asm"
+INCLUDE "home/map.asm"
+
+
+Function2d43: ; 2d43
+; Inexplicably empty.
+; Seen in PredefPointers.
+ rept 16
+ nop
+ endr
+ ret
+; 2d54
+
+
+INCLUDE "home/farcall.asm"
+INCLUDE "home/predef.asm"
+INCLUDE "home/window.asm"
+
+
+Function2e4e: ; 2e4e
+ scf
+ ret
+; 2e50
+
+
+INCLUDE "home/flag.asm"
+
+
+Function2ebb: ; 2ebb
+ ld a, [$c2cc]
+ bit 1, a
+ ret z
+ ld a, [hJoyDown]
+ bit A_BUTTON, a
+ ret
+; 2ec6
+
+
+Function2ec6: ; 2ec6
+ xor a
+ ret
+; 2ec8
+
+Function2ec8: ; 2ec8
+ xor a
+ dec a
+ ret
+; 2ecb
+
+Function2ecb: ; 2ecb
+ push hl
+ ld hl, $c2cc
+ bit 1, [hl]
+ pop hl
+ ret
+; 2ed3
+
+
+Function2ed3: ; 0x2ed3
+; disables overworld sprite updating?
+ xor a
+ ld [$ffde], a
+ ld a, [VramState]
+ res 0, a
+ ld [VramState], a
+ ld a, $0
+ ld [$c2ce], a
+ ret
+; 0x2ee4
+
+Function2ee4: ; 2ee4
+ ld a, $1
+ ld [$c2ce], a
+ ld a, [VramState]
+ set 0, a
+ ld [VramState], a
+ ld a, $1
+ ld [$ffde], a
+ ret
+; 2ef6
+
+
+INCLUDE "home/string.asm"
+
+
+IsInJohto: ; 2f17
+; Return 0 if the player is in Johto, and 1 in Kanto.
+
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+
+ cp FAST_SHIP
+ jr z, .Johto
+
+ cp SPECIAL_MAP
+ jr nz, .CheckRegion
+
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+
+.CheckRegion
+ cp KANTO_LANDMARK
+ jr nc, .Kanto
+
+.Johto
+ xor a
+ ret
+
+.Kanto
+ ld a, 1
+ ret
+; 2f3e
+
+
+Function2f3e: ; 2f3e
+ ret
+; 2f3f
+
+
+INCLUDE "home/item.asm"
+INCLUDE "home/random.asm"
+INCLUDE "home/sram.asm"
+
+
+; Register aliases
+
+_hl_: ; 2fec
+ jp [hl]
+; 2fed
+
+_de_: ; 2fed
+ push de
+ ret
+; 2fef
+
+
+INCLUDE "home/double_speed.asm"
+
+
+ClearSprites: ; 300b
+; Erase OAM data
+ ld hl, Sprites
+ ld b, SpritesEnd - Sprites
+ xor a
+.loop
+ ld [hli], a
+ dec b
+ jr nz, .loop
+ ret
+; 3016
+
+HideSprites: ; 3016
+; Set all OAM y-positions to 160 to hide them offscreen
+ ld hl, Sprites
+ ld de, 4 ; length of an OAM struct
+ ld b, (SpritesEnd - Sprites) / 4 ; number of OAM structs
+ ld a, 160 ; y
+.loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .loop
+ ret
+; 3026
+
+
+INCLUDE "home/copy2.asm"
+
+
+Function309d: ; 309d
+ ld a, [rSVBK]
+ push af
+ ld a, 2
+ ld [rSVBK], a
+ ld hl, TileMap
+ ld de, $d000
+ ld bc, 360
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 30b4
+
+Function30b4: ; 30b4
+ xor a
+ ld [hBGMapMode], a
+ call Function30bf
+ ld a, 1
+ ld [hBGMapMode], a
+ ret
+; 30bf
+
+Function30bf: ; 30bf
+ ld a, [rSVBK]
+ push af
+ ld a, 2
+ ld [rSVBK], a
+ ld hl, $d000
+ ld de, TileMap
+ ld bc, 360
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 30d6
+
+
+CopyName1: ; 30d6
+ ld hl, StringBuffer2
+
+CopyName2: ; 30d9
+.loop
+ ld a, [de]
+ inc de
+ ld [hli], a
+ cp "@"
+ jr nz, .loop
+ ret
+; 30e1
+
+IsInArray: ; 30e1
+; Find value a for every de bytes in array hl.
+; Return index in b and carry if found.
+
+ ld b, 0
+ ld c, a
+.loop
+ ld a, [hl]
+ cp $ff
+ jr z, .NotInArray
+ cp c
+ jr z, .InArray
+ inc b
+ add hl, de
+ jr .loop
+
+.NotInArray
+ and a
+ ret
+
+.InArray
+ scf
+ ret
+; 30f4
+
+SkipNames: ; 0x30f4
+; skips n names where n = a
+ ld bc, $000b ; name length
+ and a
+ ret z
+.loop
+ add hl, bc
+ dec a
+ jr nz, .loop
+ ret
+; 0x30fe
+
+AddNTimes: ; 0x30fe
+; adds bc n times where n = a
+ and a
+ ret z
+.loop
+ add hl, bc
+ dec a
+ jr nz, .loop
+ ret
+; 0x3105
+
+
+INCLUDE "home/math.asm"
+
+
+PrintLetterDelay: ; 313d
+; Wait before printing the next letter.
+
+; The text speed setting in Options is actually a frame count:
+; fast: 1 frame
+; mid: 3 frames
+; slow: 5 frames
+
+; $cfcf[!0] and A or B override text speed with a one-frame delay.
+; Options[4] and $cfcf[!1] disable the delay.
+
+ ld a, [Options]
+ bit NO_TEXT_SCROLL, a
+ ret nz
+
+; non-scrolling text?
+ ld a, [$cfcf]
+ bit 1, a
+ ret z
+
+ push hl
+ push de
+ push bc
+
+ ld hl, hOAMUpdate
+ ld a, [hl]
+ push af
+
+; orginally turned oam update off...
+; ld a, 1
+ ld [hl], a
+
+; force fast scroll?
+ ld a, [$cfcf]
+ bit 0, a
+ jr z, .fast
+
+; text speed
+ ld a, [Options]
+ and %111
+ jr .updatedelay
+
+.fast
+ ld a, 1
+
+.updatedelay
+ ld [TextDelayFrames], a
+
+.checkjoypad
+ call GetJoypad
+
+; input override
+ ld a, [$c2d7]
+ and a
+ jr nz, .wait
+
+; Wait one frame if holding A or B.
+ ld a, [hJoyDown]
+ bit 0, a ; A_BUTTON
+ jr z, .checkb
+ jr .delay
+.checkb
+ bit 1, a ; B_BUTTON
+ jr z, .wait
+
+.delay
+ call DelayFrame
+ jr .end
+
+.wait
+ ld a, [TextDelayFrames]
+ and a
+ jr nz, .checkjoypad
+
+.end
+ pop af
+ ld [hOAMUpdate], a
+ pop bc
+ pop de
+ pop hl
+ ret
+; 318c
+
+
+CopyDataUntil: ; 318c
+; Copy [hl .. bc) to [de .. de + bc - hl).
+
+; In other words, the source data is
+; from hl up to but not including bc,
+; and the destination is de.
+
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, h
+ cp b
+ jr nz, CopyDataUntil
+ ld a, l
+ cp c
+ jr nz, CopyDataUntil
+ ret
+; 0x3198
+
+
+PrintNum: ; 3198
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_PrintNum)
+ rst Bankswitch
+
+ call _PrintNum
+
+ pop af
+ rst Bankswitch
+ ret
+; 31a4
+
+
+Function31a4: ; 31a4
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function1061ef)
+ rst Bankswitch
+
+ call Function1061ef
+
+ pop af
+ rst Bankswitch
+ ret
+; 31b0
+
+
+FarPrintText: ; 31b0
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+
+ call PrintText
+
+ pop af
+ rst Bankswitch
+ ret
+; 31be
+
+
+CallPointerAt: ; 31be
+ ld a, [hROMBank]
+ push af
+ ld a, [hli]
+ rst Bankswitch
+
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ call _hl_
+
+ pop hl
+ ld a, h
+ rst Bankswitch
+ ret
+; 31cd
+
+
+Function31cd: ; 31cd
+; Push pointer hl in the current bank to $d0e8.
+ ld a, [hROMBank]
+
+Function31cf: ; 31cf
+; Push pointer a:hl to $d0e8.
+ ld [$d0e8], a
+ ld a, l
+ ld [$d0e9], a
+ ld a, h
+ ld [$d0ea], a
+ ret
+; 31db
+
+
+StringCmp: ; 31db
+; Compare c bytes at de and hl.
+; Return z if they all match.
+ ld a, [de]
+ cp [hl]
+ ret nz
+ inc de
+ inc hl
+ dec c
+ jr nz, StringCmp
+ ret
+; 0x31e4
+
+
+CompareLong: ; 31e4
+; Compare bc bytes at de and hl.
+; Return carry if they all match.
+
+ ld a, [de]
+ cp [hl]
+ jr nz, .Diff
+
+ inc de
+ inc hl
+ dec bc
+
+ ld a, b
+ or c
+ jr nz, CompareLong
+
+ scf
+ ret
+
+.Diff
+ and a
+ ret
+; 31f3
+
+
+WhiteBGMap: ; 31f3
+ call ClearPalettes
+WaitBGMap: ; 31f6
+; Tell VBlank to update BG Map
+ ld a, 1 ; BG Map 0 tiles
+ ld [hBGMapMode], a
+; Wait for it to do its magic
+ ld c, 4
+ call DelayFrames
+ ret
+; 3200
+
+Function3200: ; 0x3200
+ ld a, [hCGB]
+ and a
+ jr z, .asm_320e
+ ld a, 2
+ ld [hBGMapMode], a
+ ld c, 4
+ call DelayFrames
+
+.asm_320e
+ ld a, 1
+ ld [hBGMapMode], a
+ ld c, 4
+ call DelayFrames
+ ret
+; 0x3218
+
+
+Function3218: ; 3218
+ ld a, [hCGB]
+ and a
+ ret
+; 321c
+
+
+Function321c: ; 321c
+ ld a, [hCGB]
+ and a
+ jr z, .asm_322e
+
+ ld a, [$c2ce]
+ cp 0
+ jr z, .asm_322e
+
+ ld a, 1
+ ld [hBGMapMode], a
+ jr Function323d
+
+.asm_322e
+ ld a, 1
+ ld [hBGMapMode], a
+ ld c, 4
+ call DelayFrames
+ ret
+; 3238
+
+Function3238: ; 3238
+ ld a, [hCGB]
+ and a
+ jr z, WaitBGMap
+
+Function323d: ; 323d
+ jr Function3246
+; 323f
+
+Function323f: ; 323f
+ callba Function104000
+ ret
+; 3246
+
+Function3246: ; 3246
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld a, [$ffde]
+ push af
+ xor a
+ ld [$ffde], a
+.asm_3252
+ ld a, [rLY]
+ cp $7f
+ jr c, .asm_3252 ; 3256 $fa
+ di
+ ld a, $1
+ ld [rVBK], a
+ ld hl, AttrMap
+ call Function327b
+ ld a, $0
+ ld [rVBK], a
+ ld hl, TileMap
+ call Function327b
+.asm_326d
+ ld a, [rLY]
+ cp $7f
+ jr c, .asm_326d ; 3271 $fa
+ ei
+ pop af
+ ld [$ffde], a
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 327b
+
+Function327b: ; 327b
+ ld [hSPBuffer], sp
+ ld sp, hl
+ ld a, [$ffd7]
+ ld h, a
+ ld l, $0
+ ld a, $12
+ ld [$ffd3], a
+ ld b, $2
+ ld c, $41
+.asm_328c
+ pop de
+
+rept 9
+.loop\@
+ ld a, [$ff00+c]
+ and b
+ jr nz, .loop\@
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+endr
+
+.asm_32de
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_32de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+
+ ld de, $000c
+ add hl, de
+ ld a, [$ffd3]
+ dec a
+ ld [$ffd3], a
+ jr nz, .asm_328c
+ ld a, [hSPBuffer]
+ ld l, a
+ ld a, [$ffda]
+ ld h, a
+ ld sp, hl
+ ret
+; 32f9
+
+
+
+Function32f9: ; 32f9
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_3309
+ ld a, $e4
+ ld [rBGP], a
+ ld a, $d0
+ ld [rOBP0], a
+ ld [rOBP1], a
+ ret
+
+.asm_3309
+ push de
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ pop de
+ ret
+; 3317
+
+
+ClearPalettes: ; 3317
+; Make all palettes white
+
+; CGB: make all the palette colors white
+ ld a, [hCGB]
+ and a
+ jr nz, .cgb
+
+; DMG: just change palettes to 0 (white)
+ xor a
+ ld [rBGP], a
+ ld [rOBP0], a
+ ld [rOBP1], a
+ ret
+
+.cgb
+ ld a, [rSVBK]
+ push af
+
+ ld a, 5
+ ld [rSVBK], a
+
+; Fill BGPals and OBPals with $ffff (white)
+ ld hl, BGPals
+ ld bc, $80
+ ld a, $ff
+ call ByteFill
+
+ pop af
+ ld [rSVBK], a
+
+; Request palette update
+ ld a, 1
+ ld [hCGBPalUpdate], a
+ ret
+; 333e
+
+
+ClearSGB: ; 333e
+ ld b, $ff
+
+GetSGBLayout: ; 3340
+; load sgb packets unless dmg
+
+ ld a, [hCGB]
+ and a
+ jr nz, .dosgb
+
+ ld a, [hSGB]
+ and a
+ ret z
+
+.dosgb
+ ld a, $31 ; LoadSGBLayout
+ jp Predef
+; 334e
+
+
+SetHPPal: ; 334e
+; Set palette for hp bar pixel length e at hl.
+ call GetHPPal
+ ld [hl], d
+ ret
+; 3353
+
+
+GetHPPal: ; 3353
+; Get palette for hp bar pixel length e in d.
+
+ ld d, 0 ; green
+ ld a, e
+ cp 24
+ ret nc
+ inc d ; yellow
+ cp 10
+ ret nc
+ inc d ; red
+ ret
+; 335f
+
+
+CountSetBits: ; 0x335f
+; Count the number of set bits in b bytes starting from hl.
+; Return in a, c and [$d265].
+
+ ld c, 0
+.next
+ ld a, [hli]
+ ld e, a
+ ld d, 8
+
+.count
+ srl e
+ ld a, 0
+ adc c
+ ld c, a
+ dec d
+ jr nz, .count
+
+ dec b
+ jr nz, .next
+
+ ld a, c
+ ld [$d265], a
+ ret
+; 0x3376
+
+
+GetWeekday: ; 3376
+ ld a, [CurDay]
+.mod
+ sub 7
+ jr nc, .mod
+ add 7
+ ret
+; 3380
+
+
+INCLUDE "home/pokedex_flags.asm"
+
+
+NamesPointers: ; 33ab
+ dbw BANK(PokemonNames), PokemonNames
+ dbw BANK(MoveNames), MoveNames
+ dbw 0, 0
+ dbw BANK(ItemNames), ItemNames
+ dbw 0, PartyMonOT
+ dbw 0, OTPartyMonOT
+ dbw BANK(TrainerClassNames), TrainerClassNames
+ dbw $04, $4b52 ; ????
+; 33c3
+
+
+GetName: ; 33c3
+; Return name CurSpecies from name list $cf61 in StringBuffer1.
+
+ ld a, [hROMBank]
+ push af
+ push hl
+ push bc
+ push de
+
+ ld a, [$cf61]
+ cp 1 ; Pokemon names
+ jr nz, .NotPokeName
+
+ ld a, [CurSpecies]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, 11
+ add hl, de
+ ld e, l
+ ld d, h
+ jr .done
+
+.NotPokeName
+ ld a, [$cf61]
+ dec a
+ ld e, a
+ ld d, 0
+ ld hl, NamesPointers
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ rst Bankswitch
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ ld a, [CurSpecies]
+ dec a
+ call GetNthString
+
+ ld de, StringBuffer1
+ ld bc, $000d
+ call CopyBytes
+
+.done
+ ld a, e
+ ld [$d102], a
+ ld a, d
+ ld [$d103], a
+
+ pop de
+ pop bc
+ pop hl
+ pop af
+ rst Bankswitch
+ ret
+; 3411
+
+
+GetNthString: ; 3411
+; Return the address of the
+; ath string starting from hl.
+
+ and a
+ ret z
+
+ push bc
+ ld b, a
+ ld c, "@"
+.readChar
+ ld a, [hli]
+ cp c
+ jr nz, .readChar
+ dec b
+ jr nz, .readChar
+ pop bc
+ ret
+; 3420
+
+
+GetBasePokemonName: ; 3420
+; Discards gender (Nidoran).
+
+ push hl
+ call GetPokemonName
+
+ ld hl, StringBuffer1
+.loop
+ ld a, [hl]
+ cp "@"
+ jr z, .quit
+ cp "♂"
+ jr z, .end
+ cp "♀"
+ jr z, .end
+ inc hl
+ jr .loop
+.end
+ ld [hl], "@"
+.quit
+ pop hl
+ ret
+
+; 343b
+
+
+GetPokemonName: ; 343b
+; Get Pokemon name $d265.
+
+ ld a, [hROMBank]
+ push af
+ push hl
+ ld a, BANK(PokemonNames)
+ rst Bankswitch
+
+; Each name is ten characters
+ ld a, [$d265]
+ dec a
+ ld d, 0
+ ld e, a
+ ld h, 0
+ ld l, a
+ add hl, hl
+ add hl, hl
+ add hl, de
+ add hl, hl
+ ld de, PokemonNames
+ add hl, de
+
+; Terminator
+ ld de, StringBuffer1
+ push de
+ ld bc, PKMN_NAME_LENGTH - 1
+ call CopyBytes
+ ld hl, StringBuffer1 + PKMN_NAME_LENGTH - 1
+ ld [hl], "@"
+ pop de
+
+ pop hl
+ pop af
+ rst Bankswitch
+ ret
+; 3468
+
+
+GetItemName: ; 3468
+; Get item name $d265.
+
+ push hl
+ push bc
+ ld a, [$d265]
+
+ cp TM_01
+ jr nc, .TM
+
+ ld [CurSpecies], a
+ ld a, 4 ; Item names
+ ld [$cf61], a
+ call GetName
+ jr .Copied
+.TM
+ call GetTMHMName
+.Copied
+ ld de, StringBuffer1
+ pop bc
+ pop hl
+ ret
+; 3487
+
+
+GetTMHMName: ; 3487
+; Get TM/HM name by item id $d265.
+
+ push hl
+ push de
+ push bc
+ ld a, [$d265]
+ push af
+
+; TM/HM prefix
+ cp HM_01
+ push af
+ jr c, .TM
+
+ ld hl, .HMText
+ ld bc, .HMTextEnd - .HMText
+ jr .asm_34a1
+
+.TM
+ ld hl, .TMText
+ ld bc, .TMTextEnd - .TMText
+
+.asm_34a1
+ ld de, StringBuffer1
+ call CopyBytes
+
+; TM/HM number
+ push de
+ ld a, [$d265]
+ ld c, a
+ callab GetTMHMNumber
+ pop de
+
+; HM numbers start from 51, not 1
+ pop af
+ ld a, c
+ jr c, .asm_34b9
+ sub NUM_TMS
+
+; Divide and mod by 10 to get the top and bottom digits respectively
+.asm_34b9
+ ld b, "0"
+.mod10
+ sub 10
+ jr c, .asm_34c2
+ inc b
+ jr .mod10
+.asm_34c2
+ add 10
+
+ push af
+ ld a, b
+ ld [de], a
+ inc de
+ pop af
+
+ ld b, "0"
+ add b
+ ld [de], a
+
+; End the string
+ inc de
+ ld a, "@"
+ ld [de], a
+
+ pop af
+ ld [$d265], a
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.TMText
+ db "TM"
+.TMTextEnd
+ db "@"
+
+.HMText
+ db "HM"
+.HMTextEnd
+ db "@"
+; 34df
+
+
+IsHM: ; 34df
+ cp HM_01
+ jr c, .NotHM
+ scf
+ ret
+.NotHM
+ and a
+ ret
+; 34e7
+
+
+IsHMMove: ; 34e7
+ ld hl, .HMMoves
+ ld de, 1
+ jp IsInArray
+
+.HMMoves
+ db CUT
+ db FLY
+ db SURF
+ db STRENGTH
+ db FLASH
+ db WATERFALL
+ db WHIRLPOOL
+ db $ff
+; 34f8
+
+
+GetMoveName: ; 34f8
+ push hl
+; move name
+ ld a, $2 ; move names
+ ld [$cf61], a
+; move id
+ ld a, [$d265]
+ ld [CurSpecies], a
+
+ call GetName
+ ld de, StringBuffer1
+ pop hl
+ ret
+; 350c
+
+
+Function350c: ; 350c
+ call Function1c66
+ ld a, [hROMBank]
+ push af
+ ld a, $9
+ rst Bankswitch
+
+ call Function245af
+ call Function3524
+ call Function245cb
+ pop af
+ rst Bankswitch
+
+ ld a, [$cf73]
+ ret
+; 3524
+
+Function3524: ; 3524
+ ld hl, VramState
+ bit 0, [hl]
+ jp nz, UpdateTimePals
+ jp Function32f9
+; 352f
+
+Function352f: ; 352f
+ ld a, [$cf82]
+ dec a
+ ld b, a
+ ld a, [$cf84]
+ sub b
+ ld d, a
+ ld a, [$cf83]
+ dec a
+ ld c, a
+ ld a, [$cf85]
+ sub c
+ ld e, a
+ push de
+ call GetTileCoord
+ pop bc
+ jp TextBox
+; 354b
+
+Function354b: ; 354b
+ call DelayFrame
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ call Functiona57
+ pop af
+ ld [$ffaa], a
+ ld a, [$ffa9]
+ and $f0
+ ld c, a
+ ld a, [hJoyPressed]
+ and $f
+ or c
+ ld c, a
+ ret
+; 3567
+
+
+Function3567: ; 3567
+ ld a, [hROMBank]
+ push af
+ call Function2c52
+ call Function3574
+ pop bc
+ ld a, b
+ rst Bankswitch
+
+ ret
+; 3574
+
+Function3574: ; 3574
+ ld hl, $0001
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_3597
+ ld l, a
+ push hl
+ call Function3599
+ pop hl
+ jr nc, .asm_3597
+ ld d, a
+ ld e, l
+ call Function35de
+ jr nc, .asm_3597
+ call Function2631
+ callba Function96c56
+ scf
+ ret
+
+.asm_3597
+ and a
+ ret
+; 3599
+
+Function3599: ; 3599
+ push de
+ ld hl, $0010
+ add hl, de
+ ld a, [hl]
+ ld hl, $0011
+ add hl, de
+ ld e, [hl]
+ sub $4
+ ld d, a
+ ld a, e
+ sub $4
+ ld e, a
+ call Function35b0
+ pop de
+ ret
+; 35b0
+
+Function35b0: ; 35b0
+ ld hl, $dbfc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$dbfb]
+ and a
+ jr z, .asm_35d3
+.asm_35bc
+ push af
+ ld a, [hl]
+ cp e
+ jr nz, .asm_35c8
+ inc hl
+ ld a, [hld]
+ cp d
+ jr nz, .asm_35c8
+ jr .asm_35d5
+
+.asm_35c8
+ ld a, $5
+ add l
+ ld l, a
+ jr nc, .asm_35cf
+ inc h
+
+.asm_35cf
+ pop af
+ dec a
+ jr nz, .asm_35bc
+
+.asm_35d3
+ and a
+ ret
+
+.asm_35d5
+ pop af
+ ld d, a
+ ld a, [$dbfb]
+ sub d
+ inc a
+ scf
+ ret
+; 35de
+
+Function35de: ; 35de
+ inc e
+ ld hl, $0001
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.asm_35e6
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_35fc
+ cp d
+ jr nz, .asm_35f7
+ ld a, [hli]
+ cp e
+ jr nz, .asm_35f8
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jr .asm_35fe
+
+.asm_35f7
+ inc hl
+
+.asm_35f8
+ inc hl
+ inc hl
+ jr .asm_35e6
+
+.asm_35fc
+ and a
+ ret
+
+.asm_35fe
+ scf
+ ret
+; 3600
+
+
+CheckTrainerBattle2: ; 3600
+
+ ld a, [hROMBank]
+ push af
+ call Function2c52
+
+ call CheckTrainerBattle
+
+ pop bc
+ ld a, b
+ rst Bankswitch
+ ret
+; 360d
+
+
+CheckTrainerBattle: ; 360d
+; Check if any trainer on the map sees the player and wants to battle.
+
+; Skip the player object.
+ ld a, 1
+ ld de, MapObjects + OBJECT_LENGTH
+
+.loop
+
+; Start a battle if the object:
+
+ push af
+ push de
+
+; Has a sprite
+ ld hl, $0001
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .next
+
+; Is a trainer
+ ld hl, $0008
+ add hl, de
+ ld a, [hl]
+ and $f
+ cp $2
+ jr nz, .next
+
+; Is visible on the map
+ ld hl, $0000
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ jr z, .next
+
+; Is facing the player...
+ call Function1ae5
+ call FacingPlayerDistance_bc
+ jr nc, .next
+
+; ...within their sight range
+ ld hl, $0009
+ add hl, de
+ ld a, [hl]
+ cp b
+ jr c, .next
+
+; And hasn't already been beaten
+ push bc
+ push de
+ ld hl, $000a
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ ld a, c
+ pop de
+ pop bc
+ and a
+ jr z, .asm_3666
+
+.next
+ pop de
+ ld hl, OBJECT_LENGTH
+ add hl, de
+ ld d, h
+ ld e, l
+
+ pop af
+ inc a
+ cp NUM_OBJECTS
+ jr nz, .loop
+ xor a
+ ret
+
+.asm_3666
+ pop de
+ pop af
+ ld [$ffe0], a
+ ld a, b
+ ld [$d03f], a
+ ld a, c
+ ld [MartPointer], a
+ jr Function367e
+; 3674
+
+Function3674: ; 3674
+ ld a, $1
+ ld [$d03f], a
+ ld a, $ff
+ ld [MartPointer], a
+
+Function367e: ; 367e
+ call GetMapScriptHeaderBank
+ ld [EngineBuffer1], a
+ ld a, [$ffe0]
+ call GetMapObject
+ ld hl, $000a
+ add hl, bc
+ ld a, [EngineBuffer1]
+ call GetFarHalfword
+ ld de, $d041
+ ld bc, $000d
+ ld a, [EngineBuffer1]
+ call FarCopyBytes
+ xor a
+ ld [$d04d], a
+ scf
+ ret
+; 36a5
+
+
+FacingPlayerDistance_bc: ; 36a5
+
+ push de
+ call FacingPlayerDistance
+ ld b, d
+ ld c, e
+ pop de
+ ret
+; 36ad
+
+
+FacingPlayerDistance: ; 36ad
+; Return carry if the sprite at bc is facing the player,
+; and its distance in d.
+
+ ld hl, $0010 ; x
+ add hl, bc
+ ld d, [hl]
+
+ ld hl, $0011 ; y
+ add hl, bc
+ ld e, [hl]
+
+ ld a, [MapX]
+ cp d
+ jr z, .CheckY
+
+ ld a, [MapY]
+ cp e
+ jr z, .CheckX
+
+ and a
+ ret
+
+.CheckY
+ ld a, [MapY]
+ sub e
+ jr z, .NotFacing
+ jr nc, .Above
+
+; Below
+ cpl
+ inc a
+ ld d, a
+ ld e, UP << 2
+ jr .CheckFacing
+
+.Above
+ ld d, a
+ ld e, DOWN << 2
+ jr .CheckFacing
+
+.CheckX
+ ld a, [MapX]
+ sub d
+ jr z, .NotFacing
+ jr nc, .Left
+
+; Right
+ cpl
+ inc a
+ ld d, a
+ ld e, LEFT << 2
+ jr .CheckFacing
+
+.Left
+ ld d, a
+ ld e, RIGHT << 2
+
+.CheckFacing
+ call GetSpriteDirection
+ cp e
+ jr nz, .NotFacing
+ scf
+ ret
+
+.NotFacing
+ and a
+ ret
+; 36f5
+
+
+Function36f5: ; 36f5
+ push bc
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ call GetMapObject
+ ld hl, $000a
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call GetMapScriptHeaderBank
+ call GetFarHalfword
+ ld d, h
+ ld e, l
+ push de
+ ld b, $2
+ call EventFlagAction
+ pop de
+ ld a, c
+ and a
+ pop bc
+ ret
+; 3718
+
+
+Function3718: ; 3718
+ ld a, [BattleType]
+ cp $1
+ jr .asm_3724
+
+ ld hl, WalkingTile
+ jr .asm_3731
+
+.asm_3724
+ ld a, [$d0ee]
+ ld hl, WalkingTile
+ and $f
+ jr z, .asm_3731
+ ld hl, $d049
+
+.asm_3731
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call GetMapScriptHeaderBank
+ call FarPrintText
+ call WaitBGMap
+ call Functiona80
+ ret
+; 3741
+
+
+
+IsAPokemon: ; 3741
+; Return carry if species a is not a Pokemon.
+ and a
+ jr z, .NotAPokemon
+ cp EGG
+ jr z, .Pokemon
+ cp NUM_POKEMON + 1
+ jr c, .Pokemon
+
+.NotAPokemon
+ scf
+ ret
+
+.Pokemon
+ and a
+ ret
+; 3750
+
+
+DrawHPBar: ; 3750
+; Draw an HP bar d tiles long at hl
+; Fill it up to e pixels
+
+ push hl
+ push de
+ push bc
+
+; Place 'HP:'
+ ld a, $60
+ ld [hli], a
+ ld a, $61
+ ld [hli], a
+
+; Draw a template
+ push hl
+ ld a, $62 ; empty bar
+.template
+ ld [hli], a
+ dec d
+ jr nz, .template
+ ld a, $6b ; bar end
+ add b
+ ld [hl], a
+ pop hl
+
+; Safety check # pixels
+ ld a, e
+ and a
+ jr nz, .fill
+ ld a, c
+ and a
+ jr z, .done
+ ld e, 1
+
+.fill
+; Keep drawing tiles until pixel length is reached
+ ld a, e
+ sub TILE_WIDTH
+ jr c, .lastbar
+
+ ld e, a
+ ld a, $6a ; full bar
+ ld [hli], a
+ ld a, e
+ and a
+ jr z, .done
+ jr .fill
+
+.lastbar
+ ld a, $62 ; empty bar
+ add e ; + e
+ ld [hl], a
+
+.done
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3786
+
+
+Function3786: ; 3786
+ ld a, $1
+ ld [$c2c6], a
+
+Function378b: ; 378b
+ ld a, [CurPartySpecies]
+ call IsAPokemon
+ jr c, .asm_37ad
+ push hl
+ ld de, VTiles2
+ ld a, $3c
+ call Predef
+ pop hl
+ xor a
+ ld [$ffad], a
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ xor a
+ ld [$c2c6], a
+ ret
+
+.asm_37ad
+ xor a
+ ld [$c2c6], a
+ inc a
+ ld [CurPartySpecies], a
+ ret
+; 37b6
+
+Function37b6: ; 37b6
+ push af
+ ld a, $1
+ ld [$c2bc], a
+ pop af
+ call Function37e2
+ call WaitSFX
+ ret
+; 37c4
+
+Function37c4: ; 37c4
+ push af
+ ld a, $1
+ ld [$c2bc], a
+ pop af
+ jp Function37e2
+; 37ce
+
+Function37ce: ; 37ce
+ call Function37d5
+ call WaitSFX
+ ret
+; 37d5
+
+Function37d5: ; 37d5
+ push af
+ xor a
+ ld [$c2bc], a
+ ld [CryTracks], a
+ pop af
+ call Function37e2
+ ret
+; 37e2
+
+Function37e2: ; 37e2
+ push hl
+ push de
+ push bc
+ call Function381e
+ jr c, .asm_37ef
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+
+.asm_37ef
+ pop bc
+ pop de
+ pop hl
+ ret
+; 37f3
+
+Function37f3: ; 37f3
+ call Function381e
+ ret c
+ ld a, [hROMBank]
+ push af
+ ld a, $3c
+ rst Bankswitch
+
+ ld hl, $6787
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld a, [hli]
+ ld [CryPitch], a
+ ld a, [hli]
+ ld [CryEcho], a
+ ld a, [hli]
+ ld [CryLength], a
+ ld a, [hl]
+ ld [$c2b3], a
+ pop af
+ rst Bankswitch
+
+ and a
+ ret
+; 381e
+
+Function381e: ; 381e
+ and a
+ jr z, .asm_382b
+ cp $fc
+ jr nc, .asm_382b
+ dec a
+ ld c, a
+ ld b, $0
+ and a
+ ret
+
+.asm_382b
+ scf
+ ret
+; 382d
+
+
+PrintLevel: ; 382d
+; Print TempMonLevel at hl
+
+ ld a, [TempMonLevel]
+ ld [hl], $6e ; ":L"
+ inc hl
+
+; How many digits?
+ ld c, 2
+ cp 100
+ jr c, Function3842
+
+; 3-digit numbers overwrite the :L.
+ dec hl
+ inc c
+ jr Function3842
+; 383d
+
+Function383d: ; 383d
+; Print :L and all 3 digits
+ ld [hl], $6e
+ inc hl
+ ld c, 3
+; 3842
+
+Function3842: ; 3842
+ ld [$d265], a
+ ld de, $d265
+ ld b, %01000001 ; flags
+ jp PrintNum
+; 384d
+
+
+Function384d: ; 384d
+ ld hl, $d25e
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ret
+; 3856
+
+
+GetBaseData: ; 3856
+ push bc
+ push de
+ push hl
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(BaseData)
+ rst Bankswitch
+
+; Egg doesn't have BaseData
+ ld a, [CurSpecies]
+ cp EGG
+ jr z, .egg
+
+; Get BaseData
+ dec a
+ ld bc, BaseData1 - BaseData0
+ ld hl, BaseData
+ call AddNTimes
+ ld de, CurBaseData
+ ld bc, BaseData1 - BaseData0
+ call CopyBytes
+ jr .end
+
+.egg
+; ????
+ ld de, $7d9c
+
+; Sprite dimensions
+ ld b, $55 ; 5x5
+ ld hl, BasePicSize
+ ld [hl], b
+
+; ????
+ ld hl, BasePadding
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ jr .end
+
+.end
+; Replace Pokedex # with species
+ ld a, [CurSpecies]
+ ld [BaseDexNo], a
+
+ pop af
+ rst Bankswitch
+ pop hl
+ pop de
+ pop bc
+ ret
+; 389c
+
+
+GetCurNick: ; 389c
+ ld a, [CurPartyMon]
+ ld hl, PartyMonNicknames
+
+GetNick: ; 38a2
+; Get nickname a from list hl.
+
+ push hl
+ push bc
+
+ call SkipNames
+ ld de, StringBuffer1
+
+ push de
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ pop de
+
+ callab CheckNickErrors
+
+ pop bc
+ pop hl
+ ret
+; 38bb
+
+
+PrintBCDNumber: ; 38bb
+; function to print a BCD (Binary-coded decimal) number
+; de = address of BCD number
+; hl = destination address
+; c = flags and length
+; bit 7: if set, do not print leading zeroes
+; if unset, print leading zeroes
+; bit 6: if set, left-align the string (do not pad empty digits with spaces)
+; if unset, right-align the string
+; bit 5: if set, print currency symbol at the beginning of the string
+; if unset, do not print the currency symbol
+; bits 0-4: length of BCD number in bytes
+; Note that bits 5 and 7 are modified during execution. The above reflects
+; their meaning at the beginning of the functions's execution.
+ ld b, c ; save flags in b
+ res 7, c
+ res 6, c
+ res 5, c ; c now holds the length
+ bit 5, b
+ jr z, .loop
+ bit 7, b
+ jr nz, .loop
+ ld [hl], "¥"
+ inc hl
+.loop
+ ld a, [de]
+ swap a
+ call PrintBCDDigit ; print upper digit
+ ld a, [de]
+ call PrintBCDDigit ; print lower digit
+ inc de
+ dec c
+ jr nz, .loop
+ bit 7, b ; were any non-zero digits printed?
+ jr z, .done ; if so, we are done
+.numberEqualsZero ; if every digit of the BCD number is zero
+ bit 6, b ; left or right alignment?
+ jr nz, .skipRightAlignmentAdjustment
+ dec hl ; if the string is right-aligned, it needs to be moved back one space
+.skipRightAlignmentAdjustment
+ bit 5, b
+ jr z, .skipCurrencySymbol
+ ld [hl], "¥" ; currency symbol
+ inc hl
+.skipCurrencySymbol
+ ld [hl], "0"
+ call PrintLetterDelay
+ inc hl
+.done
+ ret
+; 0x38f2
+
+PrintBCDDigit: ; 38f2
+ and a, %00001111
+ and a
+ jr z, .zeroDigit
+.nonzeroDigit
+ bit 7, b ; have any non-space characters been printed?
+ jr z, .outputDigit
+; if bit 7 is set, then no numbers have been printed yet
+ bit 5, b ; print the currency symbol?
+ jr z, .skipCurrencySymbol
+ ld [hl], "¥"
+ inc hl
+ res 5, b
+.skipCurrencySymbol
+ res 7, b ; unset 7 to indicate that a nonzero digit has been reached
+.outputDigit
+ add a, "0"
+ ld [hli], a
+ jp PrintLetterDelay
+.zeroDigit
+ bit 7, b ; either printing leading zeroes or already reached a nonzero digit?
+ jr z, .outputDigit ; if so, print a zero digit
+ bit 6, b ; left or right alignment?
+ ret nz
+ ld a, " "
+ ld [hli], a ; if right-aligned, "print" a space by advancing the pointer
+ ret
+; 0x3917
+
+GetPartyParamLocation: ; 3917
+; Get the location of parameter a from CurPartyMon in hl
+ push bc
+ ld hl, PartyMons
+ ld c, a
+ ld b, $00
+ add hl, bc
+ ld a, [CurPartyMon]
+ call GetPartyLocation
+ pop bc
+ ret
+; 3927
+
+GetPartyLocation: ; 3927
+; Add the length of a PartyMon struct to hl a times.
+ ld bc, PartyMon2 - PartyMon1
+ jp AddNTimes
+; 392d
+
+
+Function392d: ; 392d
+ push hl
+ ld a, b
+ dec a
+ ld b, $0
+ add hl, bc
+ ld hl, $5424
+ ld bc, $0020
+ call AddNTimes
+ ld a, $14
+ call GetFarHalfword
+ ld b, l
+ ld c, h
+ pop hl
+ ret
+; 3945
+
+
+UserPartyAttr: ; 3945
+ push af
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .asm_394e
+ pop af
+ jr BattlePartyAttr
+.asm_394e
+ pop af
+ jr OTPartyAttr
+; 3951
+
+
+OpponentPartyAttr: ; 3951
+ push af
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_395a
+ pop af
+ jr BattlePartyAttr
+.asm_395a
+ pop af
+ jr OTPartyAttr
+; 395d
+
+
+BattlePartyAttr: ; 395d
+; Get attribute a from the active BattleMon's party struct.
+ push bc
+ ld c, a
+ ld b, 0
+ ld hl, PartyMons
+ add hl, bc
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ pop bc
+ ret
+; 396d
+
+
+OTPartyAttr: ; 396d
+; Get attribute a from the active EnemyMon's party struct.
+ push bc
+ ld c, a
+ ld b, 0
+ ld hl, OTPartyMon1Species
+ add hl, bc
+ ld a, [CurOTMon]
+ call GetPartyLocation
+ pop bc
+ ret
+; 397d
+
+
+ResetDamage: ; 397d
+ xor a
+ ld [CurDamage], a
+ ld [CurDamage + 1], a
+ ret
+; 3985
+
+SetPlayerTurn: ; 3985
+ xor a
+ ld [hBattleTurn], a
+ ret
+; 3989
+
+SetEnemyTurn: ; 3989
+ ld a, 1
+ ld [hBattleTurn], a
+ ret
+; 398e
+
+
+UpdateOpponentInParty: ; 398e
+ ld a, [hBattleTurn]
+ and a
+ jr z, UpdateEnemyMonInParty
+ jr UpdateBattleMonInParty
+; 3995
+
+UpdateUserInParty: ; 3995
+ ld a, [hBattleTurn]
+ and a
+ jr z, UpdateBattleMonInParty
+ jr UpdateEnemyMonInParty
+; 399c
+
+UpdateBattleMonInParty: ; 399c
+; Update level, status, current HP
+
+ ld a, [CurBattleMon]
+
+Function399f: ; 399f
+ ld hl, PartyMon1Level
+ call GetPartyLocation
+
+ ld d, h
+ ld e, l
+ ld hl, BattleMonLevel
+ ld bc, BattleMonMaxHP - BattleMonLevel
+ jp CopyBytes
+; 39b0
+
+UpdateEnemyMonInParty: ; 39b0
+; Update level, status, current HP
+
+; No wildmons.
+ ld a, [IsInBattle]
+ dec a
+ ret z
+
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1Level
+ call GetPartyLocation
+
+ ld d, h
+ ld e, l
+ ld hl, EnemyMonLevel
+ ld bc, EnemyMonMaxHP - EnemyMonLevel
+ jp CopyBytes
+; 39c9
+
+
+RefreshBattleHuds: ; 39c9
+ call UpdateBattleHuds
+ ld c, 3
+ call DelayFrames
+ jp WaitBGMap
+; 39d4
+
+UpdateBattleHuds: ; 39d4
+ callba Function3df48
+ callba Function3e036
+ ret
+; 39e1
+
+
+GetBattleVar: ; 39e1
+; Preserves hl.
+ push hl
+ call _GetBattleVar
+ pop hl
+ ret
+; 39e7
+
+_GetBattleVar: ; 39e7
+; Get variable from pair a, depending on whose turn it is.
+; There are 21 variable pairs.
+
+ push bc
+
+ ld hl, .battlevarpairs
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+; Enemy turn uses the second byte instead.
+; This lets battle variable calls be side-neutral.
+ ld a, [hBattleTurn]
+ and a
+ jr z, .getvar
+ inc hl
+
+.getvar
+; var id
+ ld a, [hl]
+ ld c, a
+ ld b, 0
+
+ ld hl, .vars
+ add hl, bc
+ add hl, bc
+
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ ld a, [hl]
+
+ pop bc
+ ret
+
+
+.battlevarpairs
+ dw .substatus1, .substatus2, .substatus3, .substatus4, .substatus5
+ dw .substatus1opp, .substatus2opp, .substatus3opp, .substatus4opp, .substatus5opp
+ dw .status, .statusopp, .animation, .effect, .power, .type
+ dw .curmove, .lastcounter, .lastcounteropp, .lastmove, .lastmoveopp
+
+
+ const_def
+ const PLAYER_SUBSTATUS_1
+ const ENEMY_SUBSTATUS_1
+ const PLAYER_SUBSTATUS_2
+ const ENEMY_SUBSTATUS_2
+ const PLAYER_SUBSTATUS_3
+ const ENEMY_SUBSTATUS_3
+ const PLAYER_SUBSTATUS_4
+ const ENEMY_SUBSTATUS_4
+ const PLAYER_SUBSTATUS_5
+ const ENEMY_SUBSTATUS_5
+ const PLAYER_STATUS
+ const ENEMY_STATUS
+ const PLAYER_MOVE_ANIMATION
+ const ENEMY_MOVE_ANIMATION
+ const PLAYER_MOVE_EFFECT
+ const ENEMY_MOVE_EFFECT
+ const PLAYER_MOVE_POWER
+ const ENEMY_MOVE_POWER
+ const PLAYER_MOVE_TYPE
+ const ENEMY_MOVE_TYPE
+ const PLAYER_CUR_MOVE
+ const ENEMY_CUR_MOVE
+ const PLAYER_COUNTER_MOVE
+ const ENEMY_COUNTER_MOVE
+ const PLAYER_LAST_MOVE
+ const ENEMY_LAST_MOVE
+
+
+; player enemy
+.substatus1 db PLAYER_SUBSTATUS_1, ENEMY_SUBSTATUS_1
+.substatus1opp db ENEMY_SUBSTATUS_1, PLAYER_SUBSTATUS_1
+.substatus2 db PLAYER_SUBSTATUS_2, ENEMY_SUBSTATUS_2
+.substatus2opp db ENEMY_SUBSTATUS_2, PLAYER_SUBSTATUS_2
+.substatus3 db PLAYER_SUBSTATUS_3, ENEMY_SUBSTATUS_3
+.substatus3opp db ENEMY_SUBSTATUS_3, PLAYER_SUBSTATUS_3
+.substatus4 db PLAYER_SUBSTATUS_4, ENEMY_SUBSTATUS_4
+.substatus4opp db ENEMY_SUBSTATUS_4, PLAYER_SUBSTATUS_4
+.substatus5 db PLAYER_SUBSTATUS_5, ENEMY_SUBSTATUS_5
+.substatus5opp db ENEMY_SUBSTATUS_5, PLAYER_SUBSTATUS_5
+.status db PLAYER_STATUS, ENEMY_STATUS
+.statusopp db ENEMY_STATUS, PLAYER_STATUS
+.animation db PLAYER_MOVE_ANIMATION, ENEMY_MOVE_ANIMATION
+.effect db PLAYER_MOVE_EFFECT, ENEMY_MOVE_EFFECT
+.power db PLAYER_MOVE_POWER, ENEMY_MOVE_POWER
+.type db PLAYER_MOVE_TYPE, ENEMY_MOVE_TYPE
+.curmove db PLAYER_CUR_MOVE, ENEMY_CUR_MOVE
+.lastcounter db PLAYER_COUNTER_MOVE, ENEMY_COUNTER_MOVE
+.lastcounteropp db ENEMY_COUNTER_MOVE, PLAYER_COUNTER_MOVE
+.lastmove db PLAYER_LAST_MOVE, ENEMY_LAST_MOVE
+.lastmoveopp db ENEMY_LAST_MOVE, PLAYER_LAST_MOVE
+
+.vars
+ dw PlayerSubStatus1, EnemySubStatus1
+ dw PlayerSubStatus2, EnemySubStatus2
+ dw PlayerSubStatus3, EnemySubStatus3
+ dw PlayerSubStatus4, EnemySubStatus4
+ dw PlayerSubStatus5, EnemySubStatus5
+ dw BattleMonStatus, EnemyMonStatus
+ dw PlayerMoveAnimation, EnemyMoveAnimation
+ dw PlayerMoveEffect, EnemyMoveEffect
+ dw PlayerMovePower, EnemyMovePower
+ dw PlayerMoveType, EnemyMoveType
+ dw CurPlayerMove, CurEnemyMove
+ dw LastEnemyCounterMove, LastPlayerCounterMove
+ dw LastPlayerMove, LastEnemyMove
+; 3a90
+
+
+Function3a90: ; 3a90
+ inc hl
+ ld a, [hROMBank]
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+ ld a, e
+ ld l, a
+ ld a, d
+ ld h, a
+ ld de, $d00c
+ ld bc, $0028
+ call CopyBytes
+ pop af
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+ ret
+; 3ab2
+
+
+MobileTextBorder: ; 3ab2
+; For mobile link battles only.
+ ld a, [InLinkBattle]
+ cp 4
+ ret c
+; Draw a cell phone icon at the top right corner of the border.
+ ld hl, $c5a3 ; TileMap(19,12)
+ ld [hl], $5e ; cell phone top
+ ld hl, $c5b7 ; TileMap(19,13)
+ ld [hl], $5f ; cell phone bottom
+ ret
+; 3ac3
+
+
+BattleTextBox: ; 3ac3
+; Open a textbox and print text at hl.
+ push hl
+ call SpeechTextBox
+ call MobileTextBorder
+ call Function1ad2
+ call Function321c
+ pop hl
+ call PrintTextBoxText
+ ret
+; 3ad5
+
+
+StdBattleTextBox: ; 3ad5
+; Open a textbox and print battle text at 20:hl.
+
+ ld a, [hROMBank]
+ push af
+
+ ld a, BANK(BattleText)
+ rst Bankswitch
+
+ call BattleTextBox
+
+ pop af
+ rst Bankswitch
+ ret
+; 3ae1
+
+
+Function3ae1: ; 3ae1
+
+ ld a, BANK(BattleAnimations)
+ rst Bankswitch
+
+ ld a, [hli]
+ ld [BattleAnimAddress], a
+ ld a, [hl]
+ ld [BattleAnimAddress + 1], a
+
+ ld a, BANK(BattleAnimCommands)
+ rst Bankswitch
+
+ ret
+; 3af0
+
+GetBattleAnimByte: ; 3af0
+
+ push hl
+ push de
+
+ ld hl, BattleAnimAddress
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+
+ ld a, BANK(BattleAnimations)
+ rst Bankswitch
+
+ ld a, [de]
+ ld [BattleAnimByte], a
+ inc de
+
+ ld a, BANK(BattleAnimCommands)
+ rst Bankswitch
+
+ ld [hl], d
+ dec hl
+ ld [hl], e
+
+ pop de
+ pop hl
+
+ ld a, [BattleAnimByte]
+ ret
+; 3b0c
+
+Function3b0c: ; 3b0c
+ ld a, [hLCDStatCustom]
+ and a
+ ret z
+
+ ld a, LYOverridesBackup % $100
+ ld [Requested2bppSource], a
+ ld a, LYOverridesBackup / $100
+ ld [Requested2bppSource + 1], a
+
+ ld a, LYOverrides % $100
+ ld [Requested2bppDest], a
+ ld a, LYOverrides / $100
+ ld [Requested2bppDest + 1], a
+
+ ld a, (LYOverridesEnd - LYOverrides) / 16
+ ld [Requested2bpp], a
+ ret
+; 3b2a
+
+
+
+Function3b2a: ; 3b2a
+ ld [$c3b8], a
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function8cfd6)
+ rst Bankswitch
+
+ ld a, [$c3b8]
+ call Function8cfd6
+ pop af
+ rst Bankswitch
+
+ ret
+; 3b3c
+
+
+Function3b3c: ; 3b3c
+ ld [$c3b8], a
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function8d120)
+ rst Bankswitch
+
+ ld a, [$c3b8]
+ call Function8d120
+ pop af
+ rst Bankswitch
+
+ ret
+; 3b4e
+
+
+SoundRestart: ; 3b4e
+
+ push hl
+ push de
+ push bc
+ push af
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_SoundRestart)
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ call _SoundRestart
+
+ pop af
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3b6a
+
+
+UpdateSound: ; 3b6a
+
+ push hl
+ push de
+ push bc
+ push af
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_UpdateSound)
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ call _UpdateSound
+
+ pop af
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3b86
+
+
+_LoadMusicByte: ; 3b86
+; CurMusicByte = [a:de]
+
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ ld a, [de]
+ ld [CurMusicByte], a
+ ld a, BANK(LoadMusicByte)
+
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+ ret
+; 3b97
+
+
+PlayMusic: ; 3b97
+; Play music de.
+
+ push hl
+ push de
+ push bc
+ push af
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_PlayMusic) ; and BANK(_SoundRestart)
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ ld a, e
+ and a
+ jr z, .nomusic
+
+ call _PlayMusic
+ jr .end
+
+.nomusic
+ call _SoundRestart
+
+.end
+ pop af
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3bbc
+
+
+PlayMusic2: ; 3bbc
+; Stop playing music, then play music de.
+
+ push hl
+ push de
+ push bc
+ push af
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_PlayMusic)
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ push de
+ ld de, MUSIC_NONE
+ call _PlayMusic
+ call DelayFrame
+ pop de
+ call _PlayMusic
+
+ pop af
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+
+; 3be3
+
+
+PlayCryHeader: ; 3be3
+; Play a cry given parameters in header de
+
+ push hl
+ push de
+ push bc
+ push af
+
+; Save current bank
+ ld a, [hROMBank]
+ push af
+
+; Cry headers are stuck in one bank.
+ ld a, BANK(CryHeaders)
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+; Each header is 6 bytes long:
+ ld hl, CryHeaders
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+
+ ld a, [hli]
+ ld [CryPitch], a
+ ld a, [hli]
+ ld [CryEcho], a
+ ld a, [hli]
+ ld [CryLength], a
+ ld a, [hl]
+ ld [CryLength+1], a
+
+ ld a, BANK(PlayCry)
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ call PlayCry
+
+ pop af
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3c23
+
+
+PlaySFX: ; 3c23
+; Play sound effect de.
+; Sound effects are ordered by priority (lowest to highest)
+
+ push hl
+ push de
+ push bc
+ push af
+
+; Is something already playing?
+ call CheckSFX
+ jr nc, .play
+; Does it have priority?
+ ld a, [CurSFX]
+ cp e
+ jr c, .quit
+
+.play
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_PlaySFX)
+ ld [hROMBank], a
+ ld [MBC3RomBank], a ; bankswitch
+
+ ld a, e
+ ld [CurSFX], a
+ call _PlaySFX
+
+ pop af
+ ld [hROMBank], a
+ ld [MBC3RomBank], a ; bankswitch
+.quit
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3c4e
+
+
+WaitPlaySFX: ; 3c4e
+ call WaitSFX
+ call PlaySFX
+ ret
+; 3c55
+
+
+WaitSFX: ; 3c55
+; infinite loop until sfx is done playing
+
+ push hl
+
+.loop
+ ; ch5 on?
+ ld hl, Channel5 + Channel1Flags - Channel1
+ bit 0, [hl]
+ jr nz, .loop
+ ; ch6 on?
+ ld hl, Channel6 + Channel1Flags - Channel1
+ bit 0, [hl]
+ jr nz, .loop
+ ; ch7 on?
+ ld hl, Channel7 + Channel1Flags - Channel1
+ bit 0, [hl]
+ jr nz, .loop
+ ; ch8 on?
+ ld hl, Channel8 + Channel1Flags - Channel1
+ bit 0, [hl]
+ jr nz, .loop
+
+ pop hl
+ ret
+; 3c74
+
+Function3c74: ; 3c74
+ push hl
+ ld hl, $c1cc
+ bit 0, [hl]
+ jr nz, .asm_3c94
+ ld hl, $c1fe
+ bit 0, [hl]
+ jr nz, .asm_3c94
+ ld hl, $c230
+ bit 0, [hl]
+ jr nz, .asm_3c94
+ ld hl, $c262
+ bit 0, [hl]
+ jr nz, .asm_3c94
+ pop hl
+ scf
+ ret
+
+.asm_3c94
+ pop hl
+ and a
+ ret
+; 3c97
+
+MaxVolume: ; 3c97
+ ld a, $77 ; max
+ ld [Volume], a
+ ret
+; 3c9d
+
+LowVolume: ; 3c9d
+ ld a, $33 ; 40%
+ ld [Volume], a
+ ret
+; 3ca3
+
+VolumeOff: ; 3ca3
+ xor a
+ ld [Volume], a
+ ret
+; 3ca8
+
+Function3ca8: ; 3ca8
+ ld a, $4
+ ld [MusicFade], a
+ ret
+; 3cae
+
+Function3cae: ; 3cae
+ ld a, $84
+ ld [MusicFade], a
+ ret
+; 3cb4
+
+Function3cb4: ; 3cb4
+.asm_3cb4
+ and a
+ ret z
+ dec a
+ call UpdateSound
+ jr .asm_3cb4
+; 3cbc
+
+Function3cbc: ; 3cbc
+ push hl
+ push de
+ push bc
+ push af
+ call Function3d97
+ ld a, [CurMusic]
+ cp e
+ jr z, .asm_3cda
+ ld a, $8
+ ld [MusicFade], a
+ ld a, e
+ ld [MusicFadeIDLo], a
+ ld a, d
+ ld [MusicFadeIDHi], a
+ ld a, e
+ ld [CurMusic], a
+
+.asm_3cda
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3cdf
+
+Function3cdf: ; 3cdf
+ push hl
+ push de
+ push bc
+ push af
+ call Function3d97
+ ld a, [CurMusic]
+ cp e
+ jr z, .asm_3cfe
+ push de
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ pop de
+ ld a, e
+ ld [CurMusic], a
+ call PlayMusic
+
+.asm_3cfe
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3d03
+
+Function3d03: ; 3d03
+ push hl
+ push de
+ push bc
+ push af
+ xor a
+ ld [$c2c1], a
+ ld de, MUSIC_BICYCLE
+ ld a, [PlayerState]
+ cp $1
+ jr z, .asm_3d18
+ call Function3d97
+.asm_3d18
+ push de
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ pop de
+ ld a, e
+ ld [CurMusic], a
+ call PlayMusic
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3d2f
+
+Function3d2f: ; 3d2f
+ ld a, [$c2c1]
+ and a
+ jr z, Function3d47
+ xor a
+ ld [CurMusic], a
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ xor a
+ ld [$c2c1], a
+ ret
+; 3d47
+
+Function3d47: ; 3d47
+ push hl
+ push de
+ push bc
+ push af
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ ld a, [CurMusic]
+ ld e, a
+ ld d, 0
+ call PlayMusic
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3d62
+
+Function3d62: ; 3d62
+ ld a, [PlayerState]
+ cp $4
+ jr z, .asm_3d7b
+ cp $8
+ jr z, .asm_3d7b
+ ld a, [StatusFlags2]
+ bit 2, a
+ jr nz, .asm_3d80
+.asm_3d74
+ and a
+ ret
+
+ ld de, $0013
+ scf
+ ret
+
+.asm_3d7b
+ ld de, $0021
+ scf
+ ret
+
+.asm_3d80
+ ld a, [MapGroup]
+ cp $a
+ jr nz, .asm_3d74
+ ld a, [MapNumber]
+ cp $f
+ jr z, .asm_3d92
+ cp $11
+ jr nz, .asm_3d74
+
+.asm_3d92
+ ld de, $0058
+ scf
+ ret
+; 3d97
+
+Function3d97: ; 3d97
+ call Function3d62
+ ret c
+ call Function2cbd
+ ret
+; 3d9f
+
+Function3d9f: ; 3d9f
+ ld a, $20
+ ld [$c498], a
+ ld [$c49c], a
+ ld a, $50
+ ld [$c499], a
+ ld a, $58
+ ld [$c49d], a
+ xor a
+ ld [$c49b], a
+ ld [$c49f], a
+ ld a, [$c296]
+ cp $64
+ jr nc, .asm_3dd5
+ add $1
+ daa
+ ld b, a
+ swap a
+ and $f
+ add $f6
+ ld [$c49a], a
+ ld a, b
+ and $f
+ add $f6
+ ld [$c49e], a
+ ret
+
+.asm_3dd5
+ ld a, $ff
+ ld [$c49a], a
+ ld [$c49e], a
+ ret
+; 3dde
+
+CheckSFX: ; 3dde
+; returns carry if sfx channels are active
+ ld a, [$c1cc] ; 1
+ bit 0, a
+ jr nz, .quit
+ ld a, [$c1fe] ; 2
+ bit 0, a
+ jr nz, .quit
+ ld a, [$c230] ; 3
+ bit 0, a
+ jr nz, .quit
+ ld a, [$c262] ; 4
+ bit 0, a
+ jr nz, .quit
+ and a
+ ret
+.quit
+ scf
+ ret
+; 3dfe
+
+Function3dfe: ; 3dfe
+ xor a
+ ld [$c1cc], a
+ ld [SoundInput], a
+ ld [rNR10], a
+ ld [rNR11], a
+ ld [rNR12], a
+ ld [rNR13], a
+ ld [rNR14], a
+ ret
+; 3e10
+
+
+ChannelsOff: ; 3e10
+; Quickly turn off music channels
+ xor a
+ ld [Channel1Flags], a
+ ld [$c136], a
+ ld [$c168], a
+ ld [$c19a], a
+ ld [SoundInput], a
+ ret
+; 3e21
+
+SFXChannelsOff: ; 3e21
+; Quickly turn off sound effect channels
+ xor a
+ ld [$c1cc], a
+ ld [$c1fe], a
+ ld [$c230], a
+ ld [$c262], a
+ ld [SoundInput], a
+ ret
+; 3e32
+
+Function3e32: ; 3e32
+ cp $2
+ ld [$c988], a
+ ld a, l
+ ld [$c986], a
+ ld a, h
+ ld [$c987], a
+ jr nz, .asm_3e4f
+ ld [$c982], a
+ ld a, l
+ ld [$c981], a
+ ld hl, $c983
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hl], a
+
+.asm_3e4f
+ ld hl, $c822
+ set 6, [hl]
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function110030)
+ ld [$c981], a
+ rst Bankswitch
+
+ jp Function110030
+; 3e60
+
+
+Function3e60: ; 3e60
+ ld [$c986], a
+ ld a, l
+ ld [$c987], a
+ ld a, h
+ ld [$c988], a
+ pop bc
+ ld a, b
+ ld [$c981], a
+ rst Bankswitch
+
+ ld hl, $c822
+ res 6, [hl]
+ ld hl, $c987
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$c986]
+ ret
+; 3e80
+
+
+Function3e80: ; 3e80
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function1116c5)
+ ld [$c981], a
+ rst Bankswitch
+
+ call Function1116c5
+ pop bc
+ ld a, b
+ ld [$c981], a
+ rst Bankswitch
+
+ ret
+; 3e93
+
+
+Timer: ; 3e93
+ push af
+ push bc
+ push de
+ push hl
+
+ ld a, [$ffe9]
+ and a
+ jr z, .asm_3ed2
+
+ xor a
+ ld [rTAC], a
+
+; Turn off timer interrupt
+ ld a, [rIF]
+ and 1 << VBLANK | 1 << LCD_STAT | 1 << SERIAL | 1 << JOYPAD
+ ld [rIF], a
+
+ ld a, [$c86a]
+ or a
+ jr z, .asm_3ed2
+
+ ld a, [$c822]
+ bit 1, a
+ jr nz, .asm_3eca
+
+ ld a, [rSC]
+ and 1 << rSC_ON
+ jr nz, .asm_3eca
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function1118de)
+ ld [$c981], a
+ rst Bankswitch
+
+ call Function1118de
+
+ pop bc
+ ld a, b
+ ld [$c981], a
+ rst Bankswitch
+
+.asm_3eca
+ ld a, [rTMA]
+ ld [rTIMA], a
+
+ ld a, 1 << rTAC_ON | rTAC_65536_HZ
+ ld [rTAC], a
+
+.asm_3ed2
+ pop hl
+ pop de
+ pop bc
+ pop af
+ reti
+; 3ed7
+
+Function3ed7: ; 3ed7
+ ld [$dc02], a
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function114243)
+ rst Bankswitch
+
+ call Function114243
+ pop bc
+ ld a, b
+ rst Bankswitch
+
+ ld a, [$dc02]
+ ret
+; 3eea
+
+Function3eea: ; 3eea
+ push hl
+ push bc
+ ld de, $0939
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ call Function3f35
+ pop bc
+ pop hl
+ call Function3f47
+ ret
+; 3efd
+
+Function3efd: ; 3efd
+ push hl
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function3f0d
+ pop hl
+ call PrintTextBoxText
+ ret
+; 3f0d
+
+Function3f0d: ; 3f0d
+ push hl
+ push bc
+ ld de, $0939
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ call Function3f35
+ pop bc
+ pop hl
+ call TextBoxBorder
+ ret
+; 3f20
+
+Function3f20: ; 3f20
+ ld hl, AttrMap
+ ld b, $6
+ ld c, $14
+ call Function3f35
+ ld hl, TileMap
+ ld b, $4
+ ld c, $12
+ call Function3f47
+ ret
+; 3f35
+
+Function3f35: ; 3f35
+ ld a, $6
+ ld de, $0014
+.asm_3f3a
+ push bc
+ push hl
+.asm_3f3c
+ ld [hli], a
+ dec c
+ jr nz, .asm_3f3c
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_3f3a
+ ret
+; 3f47
+
+Function3f47: ; 3f47
+ push bc
+ call Function3f58
+ pop bc
+.asm_3f4c
+ push bc
+ call Function3f68
+ pop bc
+ dec b
+ jr nz, .asm_3f4c
+ call Function3f60
+ ret
+; 3f58
+
+Function3f58: ; 3f58
+ ld a, $63
+ ld d, $62
+ ld e, $64
+ jr Function3f6e
+
+Function3f60: ; 3f60
+ ld a, $68
+ ld d, $67
+ ld e, $69
+ jr Function3f6e
+
+Function3f68: ; 3f68
+ ld a, $7f
+ ld d, $65
+ ld e, $66
+
+Function3f6e: ; 3f6e
+ push hl
+ ld [hl], d
+ inc hl
+.asm_3f71
+ ld [hli], a
+ dec c
+ jr nz, .asm_3f71
+ ld [hl], e
+ pop hl
+ ld de, $0014
+ add hl, de
+ ret
+; 3f7c
+
+Function3f7c: ; 3f7c
+ call Function1cfd
+ call Function1c53
+ dec b
+ dec c
+ call Function3eea
+ ret
+; 3f88
+
+Function3f88: ; 3f88
+ ld hl, $d000
+ ld b, $0
+.asm_3f8d
+ push bc
+ ld c, $8
+.asm_3f90
+ ld a, [de]
+ inc de
+ cpl
+ ld [hl], $0
+ inc hl
+ ld [hli], a
+ dec c
+ jr nz, .asm_3f90
+ pop bc
+ dec c
+ jr nz, .asm_3f8d
+ ret
+; 3f9f
+
+Function3f9f: ; 3f9f
+ ld hl, $d000
+.asm_3fa2
+ push bc
+ ld c, $8
+.asm_3fa5
+ ld a, [de]
+ inc de
+ inc de
+ cpl
+ ld [hl], $0
+ inc hl
+ ld [hli], a
+ dec c
+ jr nz, .asm_3fa5
+ pop bc
+ dec c
+ jr nz, .asm_3fa2
+ ret
+; 3fb5
+
diff --git a/home/joypad.asm b/home/joypad.asm
index efe70e809..a55bb204b 100644
--- a/home/joypad.asm
+++ b/home/joypad.asm
@@ -6,7 +6,7 @@ JoypadInt: ; 92e
reti
; 92f
-ClearJoypadPublic: ; 92f
+ClearJoypad: ; 92f
xor a
; Pressed this frame (delta)
ld [hJoyPressed], a
@@ -109,7 +109,7 @@ Joypad: ; 935
; 984
-GetJoypadPublic: ; 984
+GetJoypad: ; 984
; Update mirror joypad input from hJoypadDown (real input)
; hJoyReleased: released this frame (delta)
@@ -304,7 +304,7 @@ Functiona1b: ; a1b
Functiona36: ; a36
call DelayFrame
- call GetJoypadPublic
+ call GetJoypad
ld a, [hJoyPressed]
and A_BUTTON | B_BUTTON
ret nz
@@ -325,7 +325,7 @@ Functiona46: ; a46
; a57
Functiona57: ; a57
- call GetJoypadPublic
+ call GetJoypad
ld a, [$ffaa]
and a
ld a, [hJoyPressed]
diff --git a/home/map.asm b/home/map.asm
index fffd08273..79af8ffc1 100644
--- a/home/map.asm
+++ b/home/map.asm
@@ -96,21 +96,22 @@ Function2173: ; 2173
Function217a: ; 217a
ld a, [hROMBank]
push af
+
ld a, [TilesetBlocksBank]
rst Bankswitch
call Function2198
ld a, $60
ld hl, TileMap
- ld bc, $0168
+ ld bc, TileMapEnd - TileMap
call ByteFill
+
ld a, $13
rst Bankswitch
-
call $515b
+
pop af
rst Bankswitch
-
ret
; 2198
@@ -412,7 +413,7 @@ Function2317: ; 2317
Function2326: ; 2326
call Function2c3d
- call Function2c1c
+ call SwitchToMapBank
call GetSecondaryMapHeaderPointer
call Function235c
call Function2368
@@ -473,26 +474,26 @@ Function2368: ; 2368
jr z, .asm_2384
ld de, NorthMapConnection
call GetMapConnection
-
.asm_2384
+
bit 2, b
jr z, .asm_238e
ld de, SouthMapConnection
call GetMapConnection
-
.asm_238e
+
bit 1, b
jr z, .asm_2398
ld de, WestMapConnection
call GetMapConnection
-
.asm_2398
+
bit 0, b
jr z, .asm_23a2
ld de, EastMapConnection
call GetMapConnection
-
.asm_23a2
+
ret
; 23a3
@@ -712,8 +713,8 @@ Function24ba: ; 24ba
Function24cd: ; 24cd
ld hl, OverworldMap
- ld bc, $0514
- ld a, $0
+ ld bc, OverworldMapEnd - OverworldMap
+ ld a, 0
call ByteFill
call Function24e4
call FillMapConnections
@@ -727,17 +728,18 @@ Function24cd: ; 24cd
Function24e4: ; 24e4
ld a, [hROMBank]
push af
+
ld hl, OverworldMap
ld a, [MapWidth]
ld [hConnectedMapWidth], a
add $6
ld [hConnectionStripLength], a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
add hl, bc
add hl, bc
- ld c, $3
+ ld c, 3
add hl, bc
ld a, [MapBlockDataBank]
rst Bankswitch
@@ -764,13 +766,12 @@ Function24e4: ; 24e4
ld l, a
jr nc, .asm_251e
inc h
-
.asm_251e
dec b
jr nz, .asm_250c
+
pop af
rst Bankswitch
-
ret
; 2524
@@ -1052,6 +1053,7 @@ Function2674: ; 2674
Function269a: ; 269a
ld a, [hROMBank]
push af
+
ld a, b
rst Bankswitch
@@ -1065,9 +1067,9 @@ Function269a: ; 269a
call PrintTextBoxText
xor a
ld [hOAMUpdate], a
+
pop af
rst Bankswitch
-
ret
; 26b7
@@ -1154,7 +1156,7 @@ BGEvent: ; 26f7
; 26fa
BGEventText: ; 26fa
- text_jump UnknownText_0x1c46fc, BANK(UnknownText_0x1c46fc)
+ text_jump UnknownText_0x1c46fc
db "@"
; 26ff
@@ -1164,7 +1166,7 @@ CoordinatesEvent: ; 26ff
; 2702
CoordinatesEventText: ; 2702
- text_jump UnknownText_0x1c4706, BANK(UnknownText_0x1c4706)
+ text_jump UnknownText_0x1c4706
db "@"
; 2707
@@ -2012,7 +2014,7 @@ Function2bae: ; 2bae
ld b, a
ld a, [MapNumber]
ld c, a
- call Function2c24
+ call SwitchToAnyMapBank
callba Function8c001
call Function2173
call Function2821
@@ -2102,28 +2104,28 @@ GetAnyMapHeaderMember: ; 0x2c0c
; 0x2c1c
-Function2c1c: ; 2c1c
+SwitchToMapBank: ; 2c1c
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
ld c, a
; 2c24
-Function2c24: ; 2c24
- call Function2c31
+SwitchToAnyMapBank: ; 2c24
+ call GetAnyMapBank
rst Bankswitch
ret
; 2c29
-Function2c29: ; 2c29
+GetMapBank: ; 2c29
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
ld c, a
; 2c31
-Function2c31: ; 2c31
+GetAnyMapBank: ; 2c31
push hl
push de
ld de, $0000
@@ -2220,7 +2222,7 @@ Function2c98: ; 2c98
ret
; 2c99
-Function2c99: ; 2c99
+GetAnyMapPermission: ; 2c99
push hl
push de
push bc
@@ -2233,7 +2235,7 @@ Function2c99: ; 2c99
ret
; 2ca7
-Function2ca7: ; 2ca7
+GetAnyMapTileset: ; 2ca7
ld de, $0001
call GetAnyMapHeaderMember
ld a, c
@@ -2335,17 +2337,21 @@ Function2d19: ; 2d19
ret
; 2d27
-Function2d27: ; 2d27
+LoadTilesetHeader: ; 2d27
push hl
push bc
- ld hl, $5596
- ld bc, $000f
+
+ ld hl, Tilesets
+ ld bc, Tileset01 - Tileset00
ld a, [$d199]
call AddNTimes
+
ld de, TilesetBank
- ld bc, $000f
- ld a, $13
+ ld bc, Tileset01 - Tileset00
+
+ ld a, BANK(Tilesets)
call FarCopyBytes
+
pop bc
pop hl
ret
diff --git a/home/menu.asm b/home/menu.asm
index bb613b8b8..6a8b8628a 100644
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -124,19 +124,20 @@ Function1db8: ; 0x1db8
; 0x1dcf
-Function1dcf: ; 1dcf
- ld bc, $0e07
+YesNoBox: ; 1dcf
+ lb bc, 14, 7
-Function1dd2: ; 1dd2
- jr Function1dd9
+PlaceYesNoBox: ; 1dd2
+ jr _YesNoBox
Function1dd4: ; 1dd4
call LoadMenuDataHeader
jr Function1dfe
-Function1dd9: ; 1dd9
+_YesNoBox: ; 1dd9
+; Return nc (yes) or c (no).
push bc
- ld hl, MenuDataHeader_0x1e1d
+ ld hl, YesNoMenuDataHeader
call Function1d3c
pop bc
ld a, b
@@ -165,7 +166,7 @@ Function1dfe: ; 1dfe
pop af
jr c, .asm_1e16
ld a, [$cfa9]
- cp $2
+ cp 2 ; no
jr z, .asm_1e16
and a
ret
@@ -177,15 +178,15 @@ Function1dfe: ; 1dfe
ret
; 1e1d
-MenuDataHeader_0x1e1d: ; 1e1d
+YesNoMenuDataHeader: ; 1e1d
db $40 ; tile backup
db 5, 10 ; start coords
db 9, 15 ; end coords
- dw MenuData2_0x1e25
+ dw YesNoMenuData2
db 1 ; default option
; 1e25
-MenuData2_0x1e25: ; 1e25
+YesNoMenuData2: ; 1e25
db $c0 ; flags
db 2
db "YES@"
diff --git a/home/movement.asm b/home/movement.asm
new file mode 100644
index 000000000..274d27926
--- /dev/null
+++ b/home/movement.asm
@@ -0,0 +1,221 @@
+Function1b1e: ; 1b1e
+ ld [$d003], a
+ xor a
+ ld [DefaultFlypoint], a
+ ld a, $0
+ ld [$d004], a
+ ld a, $7
+ ld [StartFlypoint], a
+ ld a, $d0
+ ld [EndFlypoint], a
+ ret
+; 1b35
+
+Function1b35: ; 1b35
+ ld a, [DefaultFlypoint]
+ and a
+ ret z
+ dec a
+ ld [DefaultFlypoint], a
+ ret
+; 1b3f
+
+Function1b3f: ; 1b3f
+ push hl
+ push de
+ ld hl, DefaultFlypoint
+ ld e, [hl]
+ inc [hl]
+ ld d, 0
+ ld hl, MovementBuffer
+ add hl, de
+ ld [hl], a
+ pop de
+ pop hl
+ ret
+; 1b50
+
+Function1b50: ; 1b50
+ push af
+ ld a, c
+ and a
+ jr nz, .asm_1b57
+ pop af
+ ret
+
+.asm_1b57
+ pop af
+.asm_1b58
+ call Function1b3f
+ dec c
+ jr nz, .asm_1b58
+ ret
+; 1b5f
+
+Function1b5f: ; 1b5f
+ push af
+ ld a, b
+ sub d
+ ld h, $2
+ jr nc, .asm_1b6a
+ dec a
+ cpl
+ ld h, $3
+
+.asm_1b6a
+ ld d, a
+ ld a, c
+ sub e
+ ld l, $1
+ jr nc, .asm_1b75
+ dec a
+ cpl
+ ld l, $0
+
+.asm_1b75
+ ld e, a
+ cp d
+ jr nc, .asm_1b7f
+ ld a, h
+ ld h, l
+ ld l, a
+ ld a, d
+ ld d, e
+ ld e, a
+
+.asm_1b7f
+ pop af
+ ld b, a
+ ld a, h
+ call Function1b92
+ ld c, d
+ call Function1b50
+ ld a, l
+ call Function1b92
+ ld c, e
+ call Function1b50
+ ret
+; 1b92
+
+Function1b92: ; 1b92
+ push de
+ push hl
+ ld l, b
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld de, .data_1ba5
+ add hl, de
+ ld a, [hl]
+ pop hl
+ pop de
+ ret
+; 1ba5
+
+.data_1ba5
+ db 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
+; 1bb1
+
+Function1bb1: ; 1bb1
+ push hl
+ push bc
+ ld hl, $cfa1
+ ld b, $8
+.asm_1bb8
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .asm_1bb8
+ ld a, $1
+ ld [hli], a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ pop bc
+ pop hl
+ ret
+; 1bc9
+
+Function1bc9: ; 1bc9
+ callab Function241a8
+ call Function1bdd
+ ret
+; 1bd3
+
+Function1bd3: ; 1bd3
+ callab Function241ab
+ call Function1bdd
+ ret
+; 1bdd
+
+Function1bdd: ; 1bdd
+ push bc
+ push af
+ ld a, [$ffa9]
+ and $f0
+ ld b, a
+ ld a, [hJoyPressed]
+ and $f
+ or b
+ ld b, a
+ pop af
+ ld a, b
+ pop bc
+ ret
+; 1bee
+
+Function1bee: ; 1bee
+ ld hl, $cfac
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld [hl], $ec
+ ret
+; 1bf7
+
+Function1bf7: ; 1bf7
+ ld hl, $cfac
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld [hl], $7f
+ ret
+; 1c00
+
+Function1c00: ; 1c00
+ callab Function24374
+ ret
+; 1c07
+
+Function1c07: ; 0x1c07
+ push af
+ callab Function243e8
+ pop af
+ ret
+
+Function1c10: ; 0x1c10
+ callab Function2446d
+ ret
+
+Function1c17: ; 0x1c17
+ push af
+ call Function1c07
+ call Function321c
+ call Function1ad2
+ pop af
+ ret
+
+Function1c23: ; 0x1c23
+ call Function1cfd
+ call Function1c30
+ call Function1d19
+ call Function1c30
+ ret
+; 0x1c30
+
diff --git a/home/text.asm b/home/text.asm
index c4ff6aa05..47ebd7164 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -1048,7 +1048,7 @@ Text_09: ; 14d2
Text_0A: ; 14ed
push hl
push bc
- call GetJoypadPublic
+ call GetJoypad
ld a, [hJoyDown]
and A_BUTTON | B_BUTTON
jr nz, .asm_14fd
@@ -1130,7 +1130,7 @@ Text_0C: ; 1543
push de
ld a, "…"
ld [hli], a
- call GetJoypadPublic
+ call GetJoypad
ld a, [hJoyDown]
and A_BUTTON | B_BUTTON
jr nz, .asm_155a
diff --git a/home/tilemap.asm b/home/tilemap.asm
new file mode 100644
index 000000000..c3d95be68
--- /dev/null
+++ b/home/tilemap.asm
@@ -0,0 +1,219 @@
+Function1c30: ; 0x1c30
+ call Function1c53
+ inc b
+ inc c
+.asm_1c35
+ push bc
+ push hl
+.asm_1c37
+ ld a, [de]
+ ld [hli], a
+ dec de
+ dec c
+ jr nz, .asm_1c37 ; 0x1c3b $fa
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_1c35 ; 0x1c44 $ef
+ ret
+
+Function1c47: ; 0x1c47
+ ld b, $10
+ ld de, $cf81
+.asm_1c4c
+ ld a, [hld]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_1c4c ; 0x1c50 $fa
+ ret
+
+Function1c53: ; 0x1c53
+ ld a, [$cf82]
+ ld b, a
+ ld a, [$cf84]
+ sub b
+ ld b, a
+ ld a, [$cf83]
+ ld c, a
+ ld a, [$cf85]
+ sub c
+ ld c, a
+ ret
+; 0x1c66
+
+Function1c66: ; 1c66
+ push hl
+ push de
+ push bc
+ push af
+ ld hl, $cf86
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $cf91
+ ld bc, $0010
+ call CopyBytes
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 1c7e
+
+Function1c7e: ; 1c7e
+ ld hl, $cf71
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 1c89
+
+Function1c89: ; 1c89
+ call Function1c66
+ ld hl, $cf86
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function1cc6
+ call GetTileCoord
+ inc de
+ ld a, [de]
+ inc de
+ ld b, a
+.asm_1c9c
+ push bc
+ call PlaceString
+ inc de
+ ld bc, $0028
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_1c9c
+ ld a, [$cf91]
+ bit 4, a
+ ret z
+ call Function1cfd
+ ld a, [de]
+ ld c, a
+ inc de
+ ld b, $0
+ add hl, bc
+ jp PlaceString
+; 1cbb
+
+Function1cbb: ; 1cbb
+ call Function1cfd
+ call Function1c53
+ dec b
+ dec c
+ jp TextBox
+; 1cc6
+
+Function1cc6: ; 1cc6
+ ld a, [$cf82]
+ ld b, a
+ inc b
+ ld a, [$cf83]
+ ld c, a
+ inc c
+ ld a, [$cf91]
+ bit 6, a
+ jr nz, .asm_1cd8
+ inc b
+
+.asm_1cd8
+ ld a, [$cf91]
+ bit 7, a
+ jr z, .asm_1ce0
+ inc c
+
+.asm_1ce0
+ ret
+; 1ce1
+
+Function1ce1: ; 1ce1
+ call Function1cfd
+ ld bc, $0015
+ add hl, bc
+ call Function1c53
+ dec b
+ dec c
+ call ClearBox
+ ret
+; 1cf1
+
+Function1cf1: ; 1cf1
+ call Function1cfd
+ call Function1c53
+ inc c
+ inc b
+ call ClearBox
+ ret
+; 1cfd
+
+
+Function1cfd: ; 1cfd
+ ld a, [$cf83]
+ ld c, a
+ ld a, [$cf82]
+ ld b, a
+; 1d05
+
+
+GetTileCoord: ; 1d05
+; Return the address of TileMap(c, b) in hl.
+ xor a
+ ld h, a
+ ld l, b
+ ld a, c
+ ld b, h
+ ld c, l
+ add hl, hl
+ add hl, hl
+ add hl, bc
+ add hl, hl
+ add hl, hl
+ ld c, a
+ xor a
+ ld b, a
+ add hl, bc
+ ld bc, TileMap
+ add hl, bc
+ ret
+; 1d19
+
+Function1d19: ; 1d19
+ ld a, [$cf83]
+ ld c, a
+ ld a, [$cf82]
+ ld b, a
+
+GetAttrCoord: ; 1d21
+; Return the address of AttrMap(c, b) in hl.
+ xor a
+ ld h, a
+ ld l, b
+ ld a, c
+ ld b, h
+ ld c, l
+ add hl, hl
+ add hl, hl
+ add hl, bc
+ add hl, hl
+ add hl, hl
+ ld c, a
+ xor a
+ ld b, a
+ add hl, bc
+ ld bc, AttrMap
+ add hl, bc
+ ret
+; 1d35
+
diff --git a/home/time.asm b/home/time.asm
index a9e43647f..b3b7ae3bd 100644
--- a/home/time.asm
+++ b/home/time.asm
@@ -204,7 +204,7 @@ Function663: ; 663
ld [$d089], a
jr Function677
-Function677
+Function677: ; 677
callba Function140ed
ret
; 67e
diff --git a/includes.asm b/includes.asm
index ce581fd02..cb82f5d1c 100644
--- a/includes.asm
+++ b/includes.asm
@@ -1,2 +1,3 @@
INCLUDE "globals.asm"
+INCLUDE "contents.asm"
INCLUDE "constants.asm"
diff --git a/init.sh b/init.sh
new file mode 100755
index 000000000..07f1aa244
--- /dev/null
+++ b/init.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# install rgbds
+git clone git://github.com/bentley/rgbds.git && \
+cd rgbds && \
+make && \
+mkdir -p /usr/local/man/man1 && \
+mkdir -p /usr/local/man/man7 && \
+sudo make install && \
+cd .. && \
+rm -rf rgbds
+
+# set up the submodule (extras/)
+git submodule init && \
+git submodule update && \
+sudo easy_install pip && \
+sudo pip install -r extras/requirements.txt
+
+# diff binary files using hexdump
+git config diff.hex.textconv "hexdump -C"
+
diff --git a/items/item_effects.asm b/items/item_effects.asm
index 17e5f72d4..c0f031bc0 100644
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -367,7 +367,7 @@ ParkBall: ; e8a2
ld [$d265], a
call $343b
- call $1dcf
+ call YesNoBox
jp c, $6be2
@@ -430,7 +430,7 @@ ParkBall: ; e8a2
ld [$d265], a
call $343b
- call $1dcf
+ call YesNoBox
jr c, .asm_ebaf
@@ -1941,17 +1941,17 @@ Item38: ; f50c
UnknownText_0xf56c: ; 0xf56c
- text_jump UnknownText_0x1c5bf9, BANK(UnknownText_0x1c5bf9)
+ text_jump UnknownText_0x1c5bf9
db "@"
; 0xf571
UnknownText_0xf571: ; 0xf571
- text_jump UnknownText_0x1c5c28, BANK(UnknownText_0x1c5c28)
+ text_jump UnknownText_0x1c5c28
db "@"
; 0xf576
UnknownText_0xf576: ; 0xf576
- text_jump UnknownText_0x1c5c44, BANK(UnknownText_0x1c5c44)
+ text_jump UnknownText_0x1c5c44
start_asm
; 0xf57b
@@ -1977,7 +1977,7 @@ BlueCard: ; f58f
jp $2012
.bluecardtext
- text_jump UnknownText_0x1c5c5e, BANK(UnknownText_0x1c5c5e)
+ text_jump UnknownText_0x1c5c5e
db "@"
; f59a
@@ -1987,7 +1987,7 @@ CoinCase: ; f59a
jp $2012
.coincasetext
- text_jump UnknownText_0x1c5c7b, BANK(UnknownText_0x1c5c7b)
+ text_jump UnknownText_0x1c5c7b
db "@"
; f5a5
@@ -2160,7 +2160,7 @@ Function_0xf769: ; f769
; f778
UnknownText_0xf778: ; 0xf778
- text_jump UnknownText_0x1c5d03, BANK(UnknownText_0x1c5d03)
+ text_jump UnknownText_0x1c5d03
db "@"
; 0xf77d
diff --git a/macros.asm b/macros.asm
index b003a3786..135694883 100644
--- a/macros.asm
+++ b/macros.asm
@@ -36,6 +36,24 @@ callba: MACRO ; bank, address
rst FarCall
ENDM
+
+lb: MACRO ; r, hi, lo
+ ld \1, \2 << 8 + \3
+ ENDM
+
+
+; Constant enumeration
+
+const_def: MACRO
+const_value SET 0
+ENDM
+
+const: MACRO
+\1 EQU const_value
+const_value SET const_value + 1
+ENDM
+
+
TX_RAM: MACRO
db 1
dw \1
diff --git a/main.asm b/main.asm
index 00454ee49..6ae6582b4 100644
--- a/main.asm
+++ b/main.asm
@@ -1,3885 +1,7 @@
INCLUDE "includes.asm"
-SECTION "bank0",ROM0
-
-INCLUDE "rst.asm"
-
-INCLUDE "interrupts.asm"
-
-
-SECTION "header",ROM0[$100]
-
-Start:
- nop
- jp _Start
-
-
-SECTION "start",ROM0[$150]
-
-INCLUDE "home/init.asm"
-INCLUDE "home/vblank.asm"
-INCLUDE "home/delay.asm"
-INCLUDE "home/rtc.asm"
-INCLUDE "home/fade.asm"
-INCLUDE "home/lcd.asm"
-INCLUDE "home/time.asm"
-INCLUDE "home/serial.asm"
-INCLUDE "home/joypad.asm"
-INCLUDE "home/decompress.asm"
-INCLUDE "home/palettes.asm"
-INCLUDE "home/copy.asm"
-INCLUDE "home/text.asm"
-INCLUDE "home/video.asm"
-INCLUDE "home/map_objects.asm"
-INCLUDE "home/sine.asm"
-
-Function1b1e: ; 1b1e
- ld [$d003], a
- xor a
- ld [DefaultFlypoint], a
- ld a, $0
- ld [$d004], a
- ld a, $7
- ld [StartFlypoint], a
- ld a, $d0
- ld [EndFlypoint], a
- ret
-; 1b35
-
-Function1b35: ; 1b35
- ld a, [DefaultFlypoint]
- and a
- ret z
- dec a
- ld [DefaultFlypoint], a
- ret
-; 1b3f
-
-Function1b3f: ; 1b3f
- push hl
- push de
- ld hl, DefaultFlypoint
- ld e, [hl]
- inc [hl]
- ld d, 0
- ld hl, MovementBuffer
- add hl, de
- ld [hl], a
- pop de
- pop hl
- ret
-; 1b50
-
-Function1b50: ; 1b50
- push af
- ld a, c
- and a
- jr nz, .asm_1b57
- pop af
- ret
-
-.asm_1b57
- pop af
-.asm_1b58
- call Function1b3f
- dec c
- jr nz, .asm_1b58
- ret
-; 1b5f
-
-Function1b5f: ; 1b5f
- push af
- ld a, b
- sub d
- ld h, $2
- jr nc, .asm_1b6a
- dec a
- cpl
- ld h, $3
-
-.asm_1b6a
- ld d, a
- ld a, c
- sub e
- ld l, $1
- jr nc, .asm_1b75
- dec a
- cpl
- ld l, $0
-
-.asm_1b75
- ld e, a
- cp d
- jr nc, .asm_1b7f
- ld a, h
- ld h, l
- ld l, a
- ld a, d
- ld d, e
- ld e, a
-
-.asm_1b7f
- pop af
- ld b, a
- ld a, h
- call Function1b92
- ld c, d
- call Function1b50
- ld a, l
- call Function1b92
- ld c, e
- call Function1b50
- ret
-; 1b92
-
-Function1b92: ; 1b92
- push de
- push hl
- ld l, b
- ld h, 0
- add hl, hl
- add hl, hl
- ld e, a
- ld d, 0
- add hl, de
- ld de, .data_1ba5
- add hl, de
- ld a, [hl]
- pop hl
- pop de
- ret
-; 1ba5
-
-.data_1ba5
- db 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
-; 1bb1
-
-Function1bb1: ; 1bb1
- push hl
- push bc
- ld hl, $cfa1
- ld b, $8
-.asm_1bb8
- ld a, [de]
- inc de
- ld [hli], a
- dec b
- jr nz, .asm_1bb8
- ld a, $1
- ld [hli], a
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- pop bc
- pop hl
- ret
-; 1bc9
-
-Function1bc9: ; 1bc9
- callab Function241a8
- call Function1bdd
- ret
-; 1bd3
-
-Function1bd3: ; 1bd3
- callab Function241ab
- call Function1bdd
- ret
-; 1bdd
-
-Function1bdd: ; 1bdd
- push bc
- push af
- ld a, [$ffa9]
- and $f0
- ld b, a
- ld a, [hJoyPressed]
- and $f
- or b
- ld b, a
- pop af
- ld a, b
- pop bc
- ret
-; 1bee
-
-Function1bee: ; 1bee
- ld hl, $cfac
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld [hl], $ec
- ret
-; 1bf7
-
-Function1bf7: ; 1bf7
- ld hl, $cfac
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld [hl], $7f
- ret
-; 1c00
-
-Function1c00: ; 1c00
- callab Function24374
- ret
-; 1c07
-
-Function1c07: ; 0x1c07
- push af
- callab Function243e8
- pop af
- ret
-
-Function1c10: ; 0x1c10
- callab Function2446d
- ret
-
-Function1c17: ; 0x1c17
- push af
- call Function1c07
- call Function321c
- call Function1ad2
- pop af
- ret
-
-Function1c23: ; 0x1c23
- call Function1cfd
- call Function1c30
- call Function1d19
- call Function1c30
- ret
-
-Function1c30: ; 0x1c30
- call Function1c53
- inc b
- inc c
-.asm_1c35
- push bc
- push hl
-.asm_1c37
- ld a, [de]
- ld [hli], a
- dec de
- dec c
- jr nz, .asm_1c37 ; 0x1c3b $fa
- pop hl
- ld bc, $0014
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_1c35 ; 0x1c44 $ef
- ret
-
-Function1c47: ; 0x1c47
- ld b, $10
- ld de, $cf81
-.asm_1c4c
- ld a, [hld]
- ld [de], a
- inc de
- dec b
- jr nz, .asm_1c4c ; 0x1c50 $fa
- ret
-
-Function1c53: ; 0x1c53
- ld a, [$cf82]
- ld b, a
- ld a, [$cf84]
- sub b
- ld b, a
- ld a, [$cf83]
- ld c, a
- ld a, [$cf85]
- sub c
- ld c, a
- ret
-; 0x1c66
-
-Function1c66: ; 1c66
- push hl
- push de
- push bc
- push af
- ld hl, $cf86
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, $cf91
- ld bc, $0010
- call CopyBytes
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 1c7e
-
-Function1c7e: ; 1c7e
- ld hl, $cf71
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 1c89
-
-Function1c89: ; 1c89
- call Function1c66
- ld hl, $cf86
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function1cc6
- call GetTileCoord
- inc de
- ld a, [de]
- inc de
- ld b, a
-.asm_1c9c
- push bc
- call PlaceString
- inc de
- ld bc, $0028
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_1c9c
- ld a, [$cf91]
- bit 4, a
- ret z
- call Function1cfd
- ld a, [de]
- ld c, a
- inc de
- ld b, $0
- add hl, bc
- jp PlaceString
-; 1cbb
-
-Function1cbb: ; 1cbb
- call Function1cfd
- call Function1c53
- dec b
- dec c
- jp TextBox
-; 1cc6
-
-Function1cc6: ; 1cc6
- ld a, [$cf82]
- ld b, a
- inc b
- ld a, [$cf83]
- ld c, a
- inc c
- ld a, [$cf91]
- bit 6, a
- jr nz, .asm_1cd8
- inc b
-
-.asm_1cd8
- ld a, [$cf91]
- bit 7, a
- jr z, .asm_1ce0
- inc c
-
-.asm_1ce0
- ret
-; 1ce1
-
-Function1ce1: ; 1ce1
- call Function1cfd
- ld bc, $0015
- add hl, bc
- call Function1c53
- dec b
- dec c
- call ClearBox
- ret
-; 1cf1
-
-Function1cf1: ; 1cf1
- call Function1cfd
- call Function1c53
- inc c
- inc b
- call ClearBox
- ret
-; 1cfd
-
-
-Function1cfd: ; 1cfd
- ld a, [$cf83]
- ld c, a
- ld a, [$cf82]
- ld b, a
-; 1d05
-
-
-GetTileCoord: ; 1d05
-; Return the address of TileMap(c, b) in hl.
- xor a
- ld h, a
- ld l, b
- ld a, c
- ld b, h
- ld c, l
- add hl, hl
- add hl, hl
- add hl, bc
- add hl, hl
- add hl, hl
- ld c, a
- xor a
- ld b, a
- add hl, bc
- ld bc, TileMap
- add hl, bc
- ret
-; 1d19
-
-Function1d19: ; 1d19
- ld a, [$cf83]
- ld c, a
- ld a, [$cf82]
- ld b, a
-
-GetAttrCoord: ; 1d21
-; Return the address of AttrMap(c, b) in hl.
- xor a
- ld h, a
- ld l, b
- ld a, c
- ld b, h
- ld c, l
- add hl, hl
- add hl, hl
- add hl, bc
- add hl, hl
- add hl, hl
- ld c, a
- xor a
- ld b, a
- add hl, bc
- ld bc, AttrMap
- add hl, bc
- ret
-; 1d35
-
-
-INCLUDE "home/menu.asm"
-INCLUDE "home/handshake.asm"
-INCLUDE "home/game_time.asm"
-INCLUDE "home/map.asm"
-
-
-Function2d43: ; 2d43
-; Inexplicably empty.
-; Seen in PredefPointers.
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- ret
-; 2d54
-
-
-INCLUDE "home/farcall.asm"
-INCLUDE "home/predef.asm"
-INCLUDE "home/window.asm"
-
-
-Function2e4e: ; 2e4e
- scf
- ret
-; 2e50
-
-
-INCLUDE "home/flag.asm"
-
-
-Function2ebb: ; 2ebb
- ld a, [$c2cc]
- bit 1, a
- ret z
- ld a, [hJoyDown]
- bit A_BUTTON, a
- ret
-; 2ec6
-
-
-Function2ec6: ; 2ec6
- xor a
- ret
-; 2ec8
-
-Function2ec8: ; 2ec8
- xor a
- dec a
- ret
-; 2ecb
-
-Function2ecb: ; 2ecb
- push hl
- ld hl, $c2cc
- bit 1, [hl]
- pop hl
- ret
-; 2ed3
-
-
-Function2ed3: ; 0x2ed3
-; disables overworld sprite updating?
- xor a
- ld [$ffde], a
- ld a, [VramState]
- res 0, a
- ld [VramState], a
- ld a, $0
- ld [$c2ce], a
- ret
-; 0x2ee4
-
-Function2ee4: ; 2ee4
- ld a, $1
- ld [$c2ce], a
- ld a, [VramState]
- set 0, a
- ld [VramState], a
- ld a, $1
- ld [$ffde], a
- ret
-; 2ef6
-
-
-INCLUDE "home/string.asm"
-
-
-IsInJohto: ; 2f17
-; Return 0 if the player is in Johto, and 1 in Kanto.
-
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetWorldMapLocation
-
- cp $5f ; SS Aqua
- jr z, .Johto
-
- cp $0 ; Poke Center 2F
- jr nz, .CheckRegion
-
- ld a, [BackupMapGroup]
- ld b, a
- ld a, [BackupMapNumber]
- ld c, a
- call GetWorldMapLocation
-
-.CheckRegion
- cp $2f ; Pallet Town
- jr nc, .Kanto
-
-.Johto
- xor a
- ret
-
-.Kanto
- ld a, 1
- ret
-; 2f3e
-
-
-Function2f3e: ; 2f3e
- ret
-; 2f3f
-
-
-INCLUDE "home/item.asm"
-INCLUDE "home/random.asm"
-INCLUDE "home/sram.asm"
-
-
-; Register aliases
-
-_hl_: ; 2fec
- jp [hl]
-; 2fed
-
-_de_: ; 2fed
- push de
- ret
-; 2fef
-
-
-INCLUDE "home/double_speed.asm"
-
-
-ClearSprites: ; 300b
- ld hl, Sprites
- ld b, TileMap - Sprites
- xor a
-.loop
- ld [hli], a
- dec b
- jr nz, .loop
- ret
-; 3016
-
-HideSprites: ; 3016
-; Set all OBJ y-positions to 160 to hide them offscreen
- ld hl, Sprites
- ld de, $0004 ; length of an OBJ struct
- ld b, $28 ; number of OBJ structs
- ld a, 160 ; y-position
-.loop
- ld [hl], a
- add hl, de
- dec b
- jr nz, .loop
- ret
-; 3026
-
-
-INCLUDE "home/copy2.asm"
-
-
-Function309d: ; 309d
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- ld hl, TileMap
- ld de, $d000
- ld bc, $0168
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 30b4
-
-Function30b4: ; 30b4
- xor a
- ld [hBGMapMode], a
- call Function30bf
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 30bf
-
-Function30bf: ; 30bf
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- ld hl, $d000
- ld de, TileMap
- ld bc, $0168
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 30d6
-
-
-CopyName1: ; 30d6
- ld hl, StringBuffer2
-; 30d9
-CopyName2: ; 30d9
-.loop
- ld a, [de]
- inc de
- ld [hli], a
- cp "@"
- jr nz, .loop
- ret
-; 30e1
-
-IsInArray: ; 30e1
-; Find value a for every de bytes in array hl.
-; Return index in b and carry if found.
-
- ld b, 0
- ld c, a
-.loop
- ld a, [hl]
- cp $ff
- jr z, .NotInArray
- cp c
- jr z, .InArray
- inc b
- add hl, de
- jr .loop
-
-.NotInArray
- and a
- ret
-
-.InArray
- scf
- ret
-; 30f4
-
-SkipNames: ; 0x30f4
-; skips n names where n = a
- ld bc, $000b ; name length
- and a
- ret z
-.loop
- add hl, bc
- dec a
- jr nz, .loop
- ret
-; 0x30fe
-
-AddNTimes: ; 0x30fe
-; adds bc n times where n = a
- and a
- ret z
-.loop
- add hl, bc
- dec a
- jr nz, .loop
- ret
-; 0x3105
-
-
-INCLUDE "home/math.asm"
-
-
-PrintLetterDelay: ; 313d
-; wait some frames before printing the next letter
-; the text speed setting in Options is actually a frame count
-; fast: 1 frame
-; mid: 3 frames
-; slow: 5 frames
-; $cfcf[!0] and A or B override text speed with a one-frame delay
-; Options[4] and $cfcf[!1] disable the delay
-
-; delay off?
- ld a, [Options]
- bit 4, a ; delay off
- ret nz
-
-; non-scrolling text?
- ld a, [$cfcf]
- bit 1, a
- ret z
-
- push hl
- push de
- push bc
-
-; save oam update status
- ld hl, hOAMUpdate
- ld a, [hl]
- push af
-; orginally turned oam update off, commented out
-; ld a, 1
- ld [hl], a
-
-; force fast scroll?
- ld a, [$cfcf]
- bit 0, a
- jr z, .fast
-
-; text speed
- ld a, [Options]
- and a, %111 ; # frames to delay
- jr .updatedelay
-
-.fast
- ld a, 1
-.updatedelay
- ld [TextDelayFrames], a
-
-.checkjoypad
- call GetJoypadPublic
-
-; input override
- ld a, [$c2d7]
- and a
- jr nz, .wait
-
-; wait one frame if holding a
- ld a, [hJoyDown] ; joypad
- bit 0, a ; A
- jr z, .checkb
- jr .delay
-
-.checkb
-; wait one frame if holding b
- bit 1, a ; B
- jr z, .wait
-
-.delay
- call DelayFrame
- jr .end
-
-.wait
-; wait until frame counter hits 0 or the loop is broken
-; this is a bad way to do this
- ld a, [TextDelayFrames]
- and a
- jr nz, .checkjoypad
-
-.end
-; restore oam update flag (not touched in this fn anymore)
- pop af
- ld [hOAMUpdate], a
- pop bc
- pop de
- pop hl
- ret
-; 318c
-
-
-CopyDataUntil: ; 318c
-; Copies [hl, bc) to [de, bc - hl).
-; In other words, the source data is from hl up to but not including bc,
-; and the destination is de.
- ld a, [hli]
- ld [de], a
- inc de
- ld a, h
- cp b
- jr nz, CopyDataUntil
- ld a, l
- cp c
- jr nz, CopyDataUntil
- ret
-; 0x3198
-
-
-PrintNum: ; 3198
- ld a, [hROMBank]
- push af
- ld a, BANK(_PrintNum)
- rst Bankswitch
-
- call _PrintNum
-
- pop af
- rst Bankswitch
- ret
-; 31a4
-
-
-Function31a4: ; 31a4
- ld a, [hROMBank]
- push af
- ld a, BANK(Function1061ef)
- rst Bankswitch
-
- call Function1061ef
-
- pop af
- rst Bankswitch
- ret
-; 31b0
-
-
-FarPrintText: ; 31b0
- ld [hBuffer], a
- ld a, [hROMBank]
- push af
- ld a, [hBuffer]
- rst Bankswitch
-
- call PrintText
-
- pop af
- rst Bankswitch
- ret
-; 31be
-
-
-CallPointerAt: ; 31be
- ld a, [hROMBank]
- push af
- ld a, [hli]
- rst Bankswitch
-
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- call _hl_
-
- pop hl
- ld a, h
- rst Bankswitch
- ret
-; 31cd
-
-
-Function31cd: ; 31cd
-; Push pointer hl in the current bank to $d0e8.
- ld a, [hROMBank]
-
-Function31cf: ; 31cf
-; Push pointer a:hl to $d0e8.
- ld [$d0e8], a
- ld a, l
- ld [$d0e9], a
- ld a, h
- ld [$d0ea], a
- ret
-; 31db
-
-
-StringCmp: ; 31db
-; Compare strings, c bytes in length, at de and hl.
-; Often used to compare big endian numbers in battle calculations.
- ld a, [de]
- cp [hl]
- ret nz
- inc de
- inc hl
- dec c
- jr nz, StringCmp
- ret
-; 0x31e4
-
-
-CompareLong: ; 31e4
-; Compare bc bytes at de and hl. Return carry if they all match.
-
- ld a, [de]
- cp [hl]
- jr nz, .Diff
-
- inc de
- inc hl
- dec bc
-
- ld a, b
- or c
- jr nz, CompareLong
-
- scf
- ret
-
-.Diff
- and a
- ret
-; 31f3
-
-
-WhiteBGMap: ; 31f3
- call ClearPalettes
-WaitBGMap: ; 31f6
-; Tell VBlank to update BG Map
- ld a, 1 ; BG Map 0 tiles
- ld [hBGMapMode], a
-; Wait for it to do its magic
- ld c, 4
- call DelayFrames
- ret
-; 3200
-
-Function3200: ; 0x3200
- ld a, [hCGB]
- and a
- jr z, .asm_320e
- ld a, 2
- ld [hBGMapMode], a
- ld c, 4
- call DelayFrames
-
-.asm_320e
- ld a, 1
- ld [hBGMapMode], a
- ld c, 4
- call DelayFrames
- ret
-; 0x3218
-
-
-Function3218: ; 3218
- ld a, [hCGB]
- and a
- ret
-; 321c
-
-
-Function321c: ; 321c
- ld a, [hCGB]
- and a
- jr z, .asm_322e
-
- ld a, [$c2ce]
- cp 0
- jr z, .asm_322e
-
- ld a, 1
- ld [hBGMapMode], a
- jr Function323d
-
-.asm_322e
- ld a, 1
- ld [hBGMapMode], a
- ld c, 4
- call DelayFrames
- ret
-; 3238
-
-Function3238: ; 3238
- ld a, [hCGB]
- and a
- jr z, WaitBGMap
-
-Function323d: ; 323d
- jr Function3246
-; 323f
-
-Function323f: ; 323f
- callba Function104000
- ret
-; 3246
-
-Function3246: ; 3246
- ld a, [hBGMapMode]
- push af
- xor a
- ld [hBGMapMode], a
- ld a, [$ffde]
- push af
- xor a
- ld [$ffde], a
-.asm_3252
- ld a, [rLY]
- cp $7f
- jr c, .asm_3252 ; 3256 $fa
- di
- ld a, $1
- ld [rVBK], a
- ld hl, AttrMap
- call Function327b
- ld a, $0
- ld [rVBK], a
- ld hl, TileMap
- call Function327b
-.asm_326d
- ld a, [rLY]
- cp $7f
- jr c, .asm_326d ; 3271 $fa
- ei
- pop af
- ld [$ffde], a
- pop af
- ld [hBGMapMode], a
- ret
-; 327b
-
-Function327b: ; 327b
- ld [hSPBuffer], sp
- ld sp, hl
- ld a, [$ffd7]
- ld h, a
- ld l, $0
- ld a, $12
- ld [$ffd3], a
- ld b, $2
- ld c, $41
-.asm_328c
- pop de
-
-rept 9
-.loop\@
- ld a, [$ff00+c]
- and b
- jr nz, .loop\@
- ld [hl], e
- inc l
- ld [hl], d
- inc l
- pop de
-endr
-
-.asm_32de
- ld a, [$ff00+c]
- and b
- jr nz, .asm_32de
- ld [hl], e
- inc l
- ld [hl], d
- inc l
-
- ld de, $000c
- add hl, de
- ld a, [$ffd3]
- dec a
- ld [$ffd3], a
- jr nz, .asm_328c
- ld a, [hSPBuffer]
- ld l, a
- ld a, [$ffda]
- ld h, a
- ld sp, hl
- ret
-; 32f9
-
-
-
-Function32f9: ; 32f9
- ld a, [hCGB]
- and a
- jr nz, .asm_3309
- ld a, $e4
- ld [rBGP], a
- ld a, $d0
- ld [rOBP0], a
- ld [rOBP1], a
- ret
-
-.asm_3309
- push de
- ld a, $e4
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- pop de
- ret
-; 3317
-
-
-ClearPalettes: ; 3317
-; Make all palettes white
-
-; For CGB we make all the palette colors white
- ld a, [hCGB]
- and a
- jr nz, .cgb
-
-; In DMG mode, we can just change palettes to 0 (white)
- xor a
- ld [rBGP], a
- ld [rOBP0], a
- ld [rOBP1], a
- ret
-
-.cgb
- ld a, [rSVBK]
- push af
-
- ld a, 5
- ld [rSVBK], a
-
-; Fill BGPals and OBPals with $ffff (white)
- ld hl, BGPals
- ld bc, $80
- ld a, $ff
- call ByteFill
-
- pop af
- ld [rSVBK], a
-
-; Request palette update
- ld a, 1
- ld [hCGBPalUpdate], a
- ret
-; 333e
-
-
-ClearSGB: ; 333e
- ld b, $ff
-GetSGBLayout: ; 3340
-; load sgb packets unless dmg
-
-; check cgb
- ld a, [hCGB]
- and a
- jr nz, .dosgb
-
-; check sgb
- ld a, [hSGB]
- and a
- ret z
-
-.dosgb
- ld a, $31 ; LoadSGBLayout
- jp Predef
-; 334e
-
-
-SetHPPal: ; 334e
-; Set palette for hp bar pixel length e at hl.
- call GetHPPal
- ld [hl], d
- ret
-; 3353
-
-
-GetHPPal: ; 3353
-; Get palette for hp bar pixel length e in d.
-
- ld d, 0 ; green
- ld a, e
- cp 24
- ret nc
- inc d ; yellow
- cp 10
- ret nc
- inc d ; red
- ret
-; 335f
-
-
-CountSetBits: ; 0x335f
-; function to count how many bits are set in a string of bytes
-; INPUT:
-; hl = address of string of bytes
-; b = length of string of bytes
-; OUTPUT:
-; [$d265] = number of set bits
- ld c, $0
-.loop
- ld a, [hli]
- ld e, a
- ld d, $8
-.innerLoop ; count how many bits are set in the current byte
- srl e
- ld a, $0
- adc c
- ld c, a
- dec d
- jr nz, .innerLoop
- dec b
- jr nz, .loop
- ld a, c
- ld [$d265], a
- ret
-; 0x3376
-
-
-GetWeekday: ; 3376
- ld a, [CurDay]
-.mod
- sub 7
- jr nc, .mod
- add 7
- ret
-; 3380
-
-
-INCLUDE "home/pokedex_flags.asm"
-
-
-NamesPointerTable: ; 33ab
- dbw BANK(PokemonNames), PokemonNames
- dbw BANK(MoveNames), MoveNames
- dbw $00, $0000
- dbw BANK(ItemNames), ItemNames
- dbw $00, PartyMonOT
- dbw $00, OTPartyMonOT
- dbw BANK(TrainerClassNames), TrainerClassNames
- dbw $04, $4b52
-; 33c3
-
-
-GetName: ; 33c3
-; Return name CurSpecies from name list $cf61 in StringBuffer1.
- ld a, [hROMBank]
- push af
- push hl
- push bc
- push de
- ld a, [$cf61]
- cp 1 ; Pokemon names
- jr nz, .NotPokeName
-
- ld a, [CurSpecies]
- ld [$d265], a
- call GetPokemonName
- ld hl, $000b
- add hl, de
- ld e, l
- ld d, h
- jr .done
-
-.NotPokeName
- ld a, [$cf61]
- dec a
- ld e, a
- ld d, 0
- ld hl, NamesPointerTable
- add hl, de
- add hl, de
- add hl, de
- ld a, [hli]
- rst Bankswitch
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, [CurSpecies]
- dec a
- call GetNthString
-
- ld de, StringBuffer1
- ld bc, $000d
- call CopyBytes
-
-.done
- ld a, e
- ld [$d102], a
- ld a, d
- ld [$d103], a
- pop de
- pop bc
- pop hl
- pop af
- rst Bankswitch
- ret
-; 3411
-
-
-GetNthString: ; 3411
-; Starting at hl, this function returns the start address of the ath string.
- and a
- ret z
- push bc
- ld b, a
- ld c, "@"
-.readChar
- ld a, [hli]
- cp c
- jr nz, .readChar
- dec b
- jr nz, .readChar
- pop bc
- ret
-; 3420
-
-
-GetBasePokemonName: ; 3420
-; Discards gender (Nidoran).
- push hl
- call GetPokemonName
-
- ld hl, StringBuffer1
-.loop
- ld a, [hl]
- cp "@"
- jr z, .quit
- cp "♂"
- jr z, .end
- cp "♀"
- jr z, .end
- inc hl
- jr .loop
-.end
- ld [hl], "@"
-.quit
- pop hl
- ret
-
-; 343b
-
-
-GetPokemonName: ; 343b
-; Get Pokemon name $d265.
-
- ld a, [hROMBank]
- push af
- push hl
- ld a, BANK(PokemonNames)
- rst Bankswitch
-
-; Each name is ten characters
- ld a, [$d265]
- dec a
- ld d, 0
- ld e, a
- ld h, 0
- ld l, a
- add hl, hl
- add hl, hl
- add hl, de
- add hl, hl
- ld de, PokemonNames
- add hl, de
-
-; Terminator
- ld de, StringBuffer1
- push de
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
- ld hl, StringBuffer1 + PKMN_NAME_LENGTH - 1
- ld [hl], "@"
- pop de
-
- pop hl
- pop af
- rst Bankswitch
- ret
-; 3468
-
-
-GetItemName: ; 3468
-; Get item name $d265.
-
- push hl
- push bc
- ld a, [$d265]
-
- cp TM_01
- jr nc, .TM
-
- ld [CurSpecies], a
- ld a, 4 ; Item names
- ld [$cf61], a
- call GetName
- jr .Copied
-.TM
- call GetTMHMName
-.Copied
- ld de, StringBuffer1
- pop bc
- pop hl
- ret
-; 3487
-
-
-GetTMHMName: ; 3487
-; Get TM/HM name by item id $d265.
-
- push hl
- push de
- push bc
- ld a, [$d265]
- push af
-
-; TM/HM prefix
- cp HM_01
- push af
- jr c, .TM
-
- ld hl, .HMText
- ld bc, .HMTextEnd - .HMText
- jr .asm_34a1
-
-.TM
- ld hl, .TMText
- ld bc, .TMTextEnd - .TMText
-
-.asm_34a1
- ld de, StringBuffer1
- call CopyBytes
-
-; TM/HM number
- push de
- ld a, [$d265]
- ld c, a
- callab GetTMHMNumber
- pop de
-
-; HM numbers start from 51, not 1
- pop af
- ld a, c
- jr c, .asm_34b9
- sub NUM_TMS
-
-; Divide and mod by 10 to get the top and bottom digits respectively
-.asm_34b9
- ld b, "0"
-.mod10
- sub 10
- jr c, .asm_34c2
- inc b
- jr .mod10
-.asm_34c2
- add 10
-
- push af
- ld a, b
- ld [de], a
- inc de
- pop af
-
- ld b, "0"
- add b
- ld [de], a
-
-; End the string
- inc de
- ld a, "@"
- ld [de], a
-
- pop af
- ld [$d265], a
- pop bc
- pop de
- pop hl
- ret
-
-.TMText
- db "TM"
-.TMTextEnd
- db "@"
-
-.HMText
- db "HM"
-.HMTextEnd
- db "@"
-; 34df
-
-
-IsHM: ; 34df
- cp HM_01
- jr c, .NotHM
- scf
- ret
-.NotHM
- and a
- ret
-; 34e7
-
-
-IsHMMove: ; 34e7
- ld hl, .HMMoves
- ld de, 1
- jp IsInArray
-
-.HMMoves
- db CUT
- db FLY
- db SURF
- db STRENGTH
- db FLASH
- db WATERFALL
- db WHIRLPOOL
- db $ff
-; 34f8
-
-
-GetMoveName: ; 34f8
- push hl
-; move name
- ld a, $2 ; move names
- ld [$cf61], a
-; move id
- ld a, [$d265]
- ld [CurSpecies], a
-
- call GetName
- ld de, StringBuffer1
- pop hl
- ret
-; 350c
-
-
-Function350c: ; 350c
- call Function1c66
- ld a, [hROMBank]
- push af
- ld a, $9
- rst Bankswitch
-
- call Function245af
- call Function3524
- call Function245cb
- pop af
- rst Bankswitch
-
- ld a, [$cf73]
- ret
-; 3524
-
-Function3524: ; 3524
- ld hl, VramState
- bit 0, [hl]
- jp nz, UpdateTimePals
- jp Function32f9
-; 352f
-
-Function352f: ; 352f
- ld a, [$cf82]
- dec a
- ld b, a
- ld a, [$cf84]
- sub b
- ld d, a
- ld a, [$cf83]
- dec a
- ld c, a
- ld a, [$cf85]
- sub c
- ld e, a
- push de
- call GetTileCoord
- pop bc
- jp TextBox
-; 354b
-
-Function354b: ; 354b
- call DelayFrame
- ld a, [$ffaa]
- push af
- ld a, $1
- ld [$ffaa], a
- call Functiona57
- pop af
- ld [$ffaa], a
- ld a, [$ffa9]
- and $f0
- ld c, a
- ld a, [hJoyPressed]
- and $f
- or c
- ld c, a
- ret
-; 3567
-
-
-Function3567: ; 3567
- ld a, [hROMBank]
- push af
- call Function2c52
- call Function3574
- pop bc
- ld a, b
- rst Bankswitch
-
- ret
-; 3574
-
-Function3574: ; 3574
- ld hl, $0001
- add hl, de
- ld a, [hl]
- cp $ff
- jr z, .asm_3597
- ld l, a
- push hl
- call Function3599
- pop hl
- jr nc, .asm_3597
- ld d, a
- ld e, l
- call Function35de
- jr nc, .asm_3597
- call Function2631
- callba Function96c56
- scf
- ret
-
-.asm_3597
- and a
- ret
-; 3599
-
-Function3599: ; 3599
- push de
- ld hl, $0010
- add hl, de
- ld a, [hl]
- ld hl, $0011
- add hl, de
- ld e, [hl]
- sub $4
- ld d, a
- ld a, e
- sub $4
- ld e, a
- call Function35b0
- pop de
- ret
-; 35b0
-
-Function35b0: ; 35b0
- ld hl, $dbfc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$dbfb]
- and a
- jr z, .asm_35d3
-.asm_35bc
- push af
- ld a, [hl]
- cp e
- jr nz, .asm_35c8
- inc hl
- ld a, [hld]
- cp d
- jr nz, .asm_35c8
- jr .asm_35d5
-
-.asm_35c8
- ld a, $5
- add l
- ld l, a
- jr nc, .asm_35cf
- inc h
-
-.asm_35cf
- pop af
- dec a
- jr nz, .asm_35bc
-
-.asm_35d3
- and a
- ret
-
-.asm_35d5
- pop af
- ld d, a
- ld a, [$dbfb]
- sub d
- inc a
- scf
- ret
-; 35de
-
-Function35de: ; 35de
- inc e
- ld hl, $0001
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.asm_35e6
- ld a, [hli]
- cp $ff
- jr z, .asm_35fc
- cp d
- jr nz, .asm_35f7
- ld a, [hli]
- cp e
- jr nz, .asm_35f8
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jr .asm_35fe
-
-.asm_35f7
- inc hl
-
-.asm_35f8
- inc hl
- inc hl
- jr .asm_35e6
-
-.asm_35fc
- and a
- ret
-
-.asm_35fe
- scf
- ret
-; 3600
-
-
-CheckTrainerBattle2: ; 3600
-
- ld a, [hROMBank]
- push af
- call Function2c52
-
- call CheckTrainerBattle
-
- pop bc
- ld a, b
- rst Bankswitch
- ret
-; 360d
-
-
-CheckTrainerBattle: ; 360d
-; Check if any trainer on the map sees the player and wants to battle.
-
-; Skip the player object.
- ld a, 1
- ld de, MapObjects + OBJECT_LENGTH
-
-.loop
-
-; Start a battle if the object:
-
- push af
- push de
-
-; Has a sprite
- ld hl, $0001
- add hl, de
- ld a, [hl]
- and a
- jr z, .next
-
-; Is a trainer
- ld hl, $0008
- add hl, de
- ld a, [hl]
- and $f
- cp $2
- jr nz, .next
-
-; Is visible on the map
- ld hl, $0000
- add hl, de
- ld a, [hl]
- cp $ff
- jr z, .next
-
-; Is facing the player...
- call Function1ae5
- call FacingPlayerDistance_bc
- jr nc, .next
-
-; ...within their sight range
- ld hl, $0009
- add hl, de
- ld a, [hl]
- cp b
- jr c, .next
-
-; And hasn't already been beaten
- push bc
- push de
- ld hl, $000a
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, CHECK_FLAG
- call EventFlagAction
- ld a, c
- pop de
- pop bc
- and a
- jr z, .asm_3666
-
-.next
- pop de
- ld hl, OBJECT_LENGTH
- add hl, de
- ld d, h
- ld e, l
-
- pop af
- inc a
- cp NUM_OBJECTS
- jr nz, .loop
- xor a
- ret
-
-.asm_3666
- pop de
- pop af
- ld [$ffe0], a
- ld a, b
- ld [$d03f], a
- ld a, c
- ld [MartPointer], a
- jr Function367e
-; 3674
-
-Function3674: ; 3674
- ld a, $1
- ld [$d03f], a
- ld a, $ff
- ld [MartPointer], a
-
-Function367e: ; 367e
- call GetMapScriptHeaderBank
- ld [EngineBuffer1], a
- ld a, [$ffe0]
- call GetMapObject
- ld hl, $000a
- add hl, bc
- ld a, [EngineBuffer1]
- call GetFarHalfword
- ld de, $d041
- ld bc, $000d
- ld a, [EngineBuffer1]
- call FarCopyBytes
- xor a
- ld [$d04d], a
- scf
- ret
-; 36a5
-
-
-FacingPlayerDistance_bc: ; 36a5
-
- push de
- call FacingPlayerDistance
- ld b, d
- ld c, e
- pop de
- ret
-; 36ad
-
-
-FacingPlayerDistance: ; 36ad
-; Return carry if the sprite at bc is facing the player,
-; and its distance in d.
-
- ld hl, $0010 ; x
- add hl, bc
- ld d, [hl]
-
- ld hl, $0011 ; y
- add hl, bc
- ld e, [hl]
-
- ld a, [MapX]
- cp d
- jr z, .CheckY
-
- ld a, [MapY]
- cp e
- jr z, .CheckX
-
- and a
- ret
-
-.CheckY
- ld a, [MapY]
- sub e
- jr z, .NotFacing
- jr nc, .Above
-
-; Below
- cpl
- inc a
- ld d, a
- ld e, UP << 2
- jr .CheckFacing
-
-.Above
- ld d, a
- ld e, DOWN << 2
- jr .CheckFacing
-
-.CheckX
- ld a, [MapX]
- sub d
- jr z, .NotFacing
- jr nc, .Left
-
-; Right
- cpl
- inc a
- ld d, a
- ld e, LEFT << 2
- jr .CheckFacing
-
-.Left
- ld d, a
- ld e, RIGHT << 2
-
-.CheckFacing
- call GetSpriteDirection
- cp e
- jr nz, .NotFacing
- scf
- ret
-
-.NotFacing
- and a
- ret
-; 36f5
-
-
-Function36f5: ; 36f5
- push bc
- ld hl, $0001
- add hl, bc
- ld a, [hl]
- call GetMapObject
- ld hl, $000a
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call GetMapScriptHeaderBank
- call GetFarHalfword
- ld d, h
- ld e, l
- push de
- ld b, $2
- call EventFlagAction
- pop de
- ld a, c
- and a
- pop bc
- ret
-; 3718
-
-
-Function3718: ; 3718
- ld a, [BattleType]
- cp $1
- jr .asm_3724
-
- ld hl, WalkingTile
- jr .asm_3731
-
-.asm_3724
- ld a, [$d0ee]
- ld hl, WalkingTile
- and $f
- jr z, .asm_3731
- ld hl, $d049
-
-.asm_3731
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call GetMapScriptHeaderBank
- call FarPrintText
- call WaitBGMap
- call Functiona80
- ret
-; 3741
-
-
-
-IsAPokemon: ; 3741
-; Return carry if species a is not a Pokemon.
- and a
- jr z, .NotAPokemon
- cp EGG
- jr z, .Pokemon
- cp NUM_POKEMON + 1
- jr c, .Pokemon
-
-.NotAPokemon
- scf
- ret
-
-.Pokemon
- and a
- ret
-; 3750
-
-
-DrawHPBar: ; 3750
-; Draw an HP bar d tiles long at hl
-; Fill it up to e pixels
-
- push hl
- push de
- push bc
-
-; Place 'HP:'
- ld a, $60
- ld [hli], a
- ld a, $61
- ld [hli], a
-
-; Draw a template
- push hl
- ld a, $62 ; empty bar
-.template
- ld [hli], a
- dec d
- jr nz, .template
- ld a, $6b ; bar end
- add b
- ld [hl], a
- pop hl
-
-; Safety check # pixels
- ld a, e
- and a
- jr nz, .fill
- ld a, c
- and a
- jr z, .done
- ld e, 1
-
-.fill
-; Keep drawing tiles until pixel length is reached
- ld a, e
- sub TILE_WIDTH
- jr c, .lastbar
-
- ld e, a
- ld a, $6a ; full bar
- ld [hli], a
- ld a, e
- and a
- jr z, .done
- jr .fill
-
-.lastbar
- ld a, $62 ; empty bar
- add e ; + e
- ld [hl], a
-
-.done
- pop bc
- pop de
- pop hl
- ret
-; 3786
-
-
-Function3786: ; 3786
- ld a, $1
- ld [$c2c6], a
-
-Function378b: ; 378b
- ld a, [CurPartySpecies]
- call IsAPokemon
- jr c, .asm_37ad
- push hl
- ld de, VTiles2
- ld a, $3c
- call Predef
- pop hl
- xor a
- ld [$ffad], a
- ld bc, $0707
- ld a, $13
- call Predef
- xor a
- ld [$c2c6], a
- ret
-
-.asm_37ad
- xor a
- ld [$c2c6], a
- inc a
- ld [CurPartySpecies], a
- ret
-; 37b6
-
-Function37b6: ; 37b6
- push af
- ld a, $1
- ld [$c2bc], a
- pop af
- call Function37e2
- call WaitSFX
- ret
-; 37c4
-
-Function37c4: ; 37c4
- push af
- ld a, $1
- ld [$c2bc], a
- pop af
- jp Function37e2
-; 37ce
-
-Function37ce: ; 37ce
- call Function37d5
- call WaitSFX
- ret
-; 37d5
-
-Function37d5: ; 37d5
- push af
- xor a
- ld [$c2bc], a
- ld [CryTracks], a
- pop af
- call Function37e2
- ret
-; 37e2
-
-Function37e2: ; 37e2
- push hl
- push de
- push bc
- call Function381e
- jr c, .asm_37ef
- ld e, c
- ld d, b
- call PlayCryHeader
-
-.asm_37ef
- pop bc
- pop de
- pop hl
- ret
-; 37f3
-
-Function37f3: ; 37f3
- call Function381e
- ret c
- ld a, [hROMBank]
- push af
- ld a, $3c
- rst Bankswitch
-
- ld hl, $6787
- add hl, bc
- add hl, bc
- add hl, bc
- add hl, bc
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld a, [hli]
- ld [CryPitch], a
- ld a, [hli]
- ld [CryEcho], a
- ld a, [hli]
- ld [CryLength], a
- ld a, [hl]
- ld [$c2b3], a
- pop af
- rst Bankswitch
-
- and a
- ret
-; 381e
-
-Function381e: ; 381e
- and a
- jr z, .asm_382b
- cp $fc
- jr nc, .asm_382b
- dec a
- ld c, a
- ld b, $0
- and a
- ret
-
-.asm_382b
- scf
- ret
-; 382d
-
-
-PrintLevel: ; 382d
-; Print TempMonLevel at hl
-
- ld a, [TempMonLevel]
- ld [hl], $6e ; ":L"
- inc hl
-
-; How many digits?
- ld c, 2
- cp 100
- jr c, Function3842
-
-; 3-digit numbers overwrite the :L.
- dec hl
- inc c
- jr Function3842
-; 383d
-
-Function383d: ; 383d
-; Print :L and all 3 digits
- ld [hl], $6e
- inc hl
- ld c, 3
-; 3842
-
-Function3842: ; 3842
- ld [$d265], a
- ld de, $d265
- ld b, %01000001 ; flags
- jp PrintNum
-; 384d
-
-
-Function384d: ; 384d
- ld hl, $d25e
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ret
-; 3856
-
-
-GetBaseData: ; 3856
- push bc
- push de
- push hl
- ld a, [hROMBank]
- push af
- ld a, BANK(BaseData)
- rst Bankswitch
-
-; Egg doesn't have BaseData
- ld a, [CurSpecies]
- cp EGG
- jr z, .egg
-
-; Get BaseData
- dec a
- ld bc, BaseData1 - BaseData0
- ld hl, BaseData
- call AddNTimes
- ld de, CurBaseData
- ld bc, BaseData1 - BaseData0
- call CopyBytes
- jr .end
-
-.egg
-; ????
- ld de, $7d9c
-
-; Sprite dimensions
- ld b, $55 ; 5x5
- ld hl, BasePicSize
- ld [hl], b
-
-; ????
- ld hl, BasePadding
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- ld [hl], e
- inc hl
- ld [hl], d
- jr .end
-
-.end
-; Replace Pokedex # with species
- ld a, [CurSpecies]
- ld [BaseDexNo], a
-
- pop af
- rst Bankswitch
- pop hl
- pop de
- pop bc
- ret
-; 389c
-
-
-GetCurNick: ; 389c
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
-
-GetNick: ; 38a2
-; Get nickname a from list hl.
-
- push hl
- push bc
-
- call SkipNames
- ld de, StringBuffer1
-
- push de
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- pop de
-
- callab CheckNickErrors
-
- pop bc
- pop hl
- ret
-; 38bb
-
-
-PrintBCDNumber: ; 38bb
-; function to print a BCD (Binary-coded decimal) number
-; de = address of BCD number
-; hl = destination address
-; c = flags and length
-; bit 7: if set, do not print leading zeroes
-; if unset, print leading zeroes
-; bit 6: if set, left-align the string (do not pad empty digits with spaces)
-; if unset, right-align the string
-; bit 5: if set, print currency symbol at the beginning of the string
-; if unset, do not print the currency symbol
-; bits 0-4: length of BCD number in bytes
-; Note that bits 5 and 7 are modified during execution. The above reflects
-; their meaning at the beginning of the functions's execution.
- ld b, c ; save flags in b
- res 7, c
- res 6, c
- res 5, c ; c now holds the length
- bit 5, b
- jr z, .loop
- bit 7, b
- jr nz, .loop
- ld [hl], "¥"
- inc hl
-.loop
- ld a, [de]
- swap a
- call PrintBCDDigit ; print upper digit
- ld a, [de]
- call PrintBCDDigit ; print lower digit
- inc de
- dec c
- jr nz, .loop
- bit 7, b ; were any non-zero digits printed?
- jr z, .done ; if so, we are done
-.numberEqualsZero ; if every digit of the BCD number is zero
- bit 6, b ; left or right alignment?
- jr nz, .skipRightAlignmentAdjustment
- dec hl ; if the string is right-aligned, it needs to be moved back one space
-.skipRightAlignmentAdjustment
- bit 5, b
- jr z, .skipCurrencySymbol
- ld [hl], "¥" ; currency symbol
- inc hl
-.skipCurrencySymbol
- ld [hl], "0"
- call PrintLetterDelay
- inc hl
-.done
- ret
-; 0x38f2
-
-PrintBCDDigit: ; 38f2
- and a, %00001111
- and a
- jr z, .zeroDigit
-.nonzeroDigit
- bit 7, b ; have any non-space characters been printed?
- jr z, .outputDigit
-; if bit 7 is set, then no numbers have been printed yet
- bit 5, b ; print the currency symbol?
- jr z, .skipCurrencySymbol
- ld [hl], "¥"
- inc hl
- res 5, b
-.skipCurrencySymbol
- res 7, b ; unset 7 to indicate that a nonzero digit has been reached
-.outputDigit
- add a, "0"
- ld [hli], a
- jp PrintLetterDelay
-.zeroDigit
- bit 7, b ; either printing leading zeroes or already reached a nonzero digit?
- jr z, .outputDigit ; if so, print a zero digit
- bit 6, b ; left or right alignment?
- ret nz
- ld a, " "
- ld [hli], a ; if right-aligned, "print" a space by advancing the pointer
- ret
-; 0x3917
-
-GetPartyParamLocation: ; 3917
-; Get the location of parameter a from CurPartyMon in hl
- push bc
- ld hl, PartyMons
- ld c, a
- ld b, $00
- add hl, bc
- ld a, [CurPartyMon]
- call GetPartyLocation
- pop bc
- ret
-; 3927
-
-GetPartyLocation: ; 3927
-; Add the length of a PartyMon struct to hl a times.
- ld bc, PartyMon2 - PartyMon1
- jp AddNTimes
-; 392d
-
-
-Function392d: ; 392d
- push hl
- ld a, b
- dec a
- ld b, $0
- add hl, bc
- ld hl, $5424
- ld bc, $0020
- call AddNTimes
- ld a, $14
- call GetFarHalfword
- ld b, l
- ld c, h
- pop hl
- ret
-; 3945
-
-
-UserPartyAttr: ; 3945
- push af
- ld a, [hBattleTurn]
- and a
- jr nz, .asm_394e
- pop af
- jr BattlePartyAttr
-.asm_394e
- pop af
- jr OTPartyAttr
-; 3951
-
-
-OpponentPartyAttr: ; 3951
- push af
- ld a, [hBattleTurn]
- and a
- jr z, .asm_395a
- pop af
- jr BattlePartyAttr
-.asm_395a
- pop af
- jr OTPartyAttr
-; 395d
-
-
-BattlePartyAttr: ; 395d
-; Get attribute a from the active BattleMon's party struct.
- push bc
- ld c, a
- ld b, 0
- ld hl, PartyMons
- add hl, bc
- ld a, [CurBattleMon]
- call GetPartyLocation
- pop bc
- ret
-; 396d
-
-
-OTPartyAttr: ; 396d
-; Get attribute a from the active EnemyMon's party struct.
- push bc
- ld c, a
- ld b, 0
- ld hl, OTPartyMon1Species
- add hl, bc
- ld a, [CurOTMon]
- call GetPartyLocation
- pop bc
- ret
-; 397d
-
-
-ResetDamage: ; 397d
- xor a
- ld [CurDamage], a
- ld [CurDamage + 1], a
- ret
-; 3985
-
-SetPlayerTurn: ; 3985
- xor a
- ld [hBattleTurn], a
- ret
-; 3989
-
-SetEnemyTurn: ; 3989
- ld a, 1
- ld [hBattleTurn], a
- ret
-; 398e
-
-
-UpdateOpponentInParty: ; 398e
- ld a, [hBattleTurn]
- and a
- jr z, UpdateEnemyMonInParty
- jr UpdateBattleMonInParty
-; 3995
-
-UpdateUserInParty: ; 3995
- ld a, [hBattleTurn]
- and a
- jr z, UpdateBattleMonInParty
- jr UpdateEnemyMonInParty
-; 399c
-
-UpdateBattleMonInParty: ; 399c
-; Update level, status, current HP
-
- ld a, [CurBattleMon]
-
-Function399f: ; 399f
- ld hl, PartyMon1Level
- call GetPartyLocation
-
- ld d, h
- ld e, l
- ld hl, BattleMonLevel
- ld bc, BattleMonMaxHP - BattleMonLevel
- jp CopyBytes
-; 39b0
-
-UpdateEnemyMonInParty: ; 39b0
-; Update level, status, current HP
-
-; No wildmons.
- ld a, [IsInBattle]
- dec a
- ret z
-
- ld a, [CurOTMon]
- ld hl, OTPartyMon1Level
- call GetPartyLocation
-
- ld d, h
- ld e, l
- ld hl, EnemyMonLevel
- ld bc, EnemyMonMaxHP - EnemyMonLevel
- jp CopyBytes
-; 39c9
-
-
-RefreshBattleHuds: ; 39c9
- call UpdateBattleHuds
- ld c, 3
- call DelayFrames
- jp WaitBGMap
-; 39d4
-
-UpdateBattleHuds: ; 39d4
- callba Function3df48
- callba Function3e036
- ret
-; 39e1
-
-
-GetBattleVar: ; 39e1
-; Preserves hl.
- push hl
- call _GetBattleVar
- pop hl
- ret
-; 39e7
-
-_GetBattleVar: ; 39e7
-; Get variable from pair a, depending on whose turn it is.
-; There are 21 variable pairs.
-
- push bc
-
-; get var pair
- ld hl, .battlevarpairs
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
-
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
-; Enemy turn uses the second byte instead.
-; This lets battle variable calls be side-neutral.
- ld a, [hBattleTurn]
- and a
- jr z, .getvar
- inc hl
-
-.getvar
-; get var id
- ld a, [hl]
- ld c, a
- ld b, 0
-
-; seek
- ld hl, .vars
- add hl, bc
- add hl, bc
-
-; get var address
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, [hl]
-
- pop bc
- ret
-
-
-.battlevarpairs
- dw .substatus1 ; 0
- dw .substatus2 ; 1
- dw .substatus3 ; 2
- dw .substatus4 ; 3
- dw .substatus5 ; 4
- dw .substatus1opp ; 5
- dw .substatus2opp ; 6
- dw .substatus3opp ; 7
- dw .substatus4opp ; 8
- dw .substatus5opp ; 9
- dw .status ; a
- dw .statusopp ; b
- dw .animation ; c
- dw .effect ; d
- dw .power ; e
- dw .type ; f
- dw .curmove ; 10
- dw .lastcountermove ; 11
- dw .lastcountermoveopp ; 12
- dw .lastmove ; 13
- dw .lastmoveopp ; 14
-
- ; player enemy
-.substatus1
- db $00, $01 ; PLAYER_SUBSTATUS1, ENEMY_SUBSTATUS1
-.substatus1opp
- db $01, $00 ; ENEMY_SUBSTATUS1, PLAYER_SUBSTATUS1
-.substatus2
- db $02, $03 ; PLAYER_SUBSTATUS2, ENEMY_SUBSTATUS2
-.substatus2opp
- db $03, $02 ; ENEMY_SUBSTATUS2, PLAYER_SUBSTATUS2
-.substatus3
- db $04, $05 ; PLAYER_SUBSTATUS3, ENEMY_SUBSTATUS3
-.substatus3opp
- db $05, $04 ; ENEMY_SUBSTATUS3, PLAYER_SUBSTATUS3
-.substatus4
- db $06, $07 ; PLAYER_SUBSTATUS4, ENEMY_SUBSTATUS4
-.substatus4opp
- db $07, $06 ; ENEMY_SUBSTATUS4, PLAYER_SUBSTATUS4
-.substatus5
- db $08, $09 ; PLAYER_SUBSTATUS5, ENEMY_SUBSTATUS5
-.substatus5opp
- db $09, $08 ; ENEMY_SUBSTATUS5, PLAYER_SUBSTATUS5
-.status
- db $0a, $0b ; PLAYER_STATUS, ENEMY_STATUS
-.statusopp
- db $0b, $0a ; ENEMY_STATUS, PLAYER_STATUS
-.animation
- db $0c, $0d ; PLAYER_MOVE_ANIMATION, ENEMY_MOVE_ANIMATION
-.effect
- db $0e, $0f ; PLAYER_MOVE_EFFECT, ENEMY_MOVE_EFFECT
-.power
- db $10, $11 ; PLAYER_MOVE_POWER, ENEMY_MOVE_POWER
-.type
- db $12, $13 ; PLAYER_MOVE_TYPE, ENEMY_MOVE_TYPE
-.curmove
- db $14, $15 ; PLAYER_CUR_MOVE, ENEMY_CUR_MOVE
-.lastcountermove
- db $16, $17 ; ENEMY_LAST_COUNTER_MOVE, PLAYER_LAST_COUNTER_MOVE
-.lastcountermoveopp
- db $17, $16 ; PLAYER_LAST_COUNTER_MOVE, ENEMY_LAST_COUNTER_MOVE
-.lastmove
- db $18, $19 ; PLAYER_LAST_MOVE, ENEMY_LAST_MOVE
-.lastmoveopp
- db $19, $18 ; ENEMY_LAST_MOVE, PLAYER_LAST_MOVE
-
-.vars
- dw PlayerSubStatus1
- dw EnemySubStatus1
-
- dw PlayerSubStatus2
- dw EnemySubStatus2
-
- dw PlayerSubStatus3
- dw EnemySubStatus3
-
- dw PlayerSubStatus4
- dw EnemySubStatus4
-
- dw PlayerSubStatus5
- dw EnemySubStatus5
-
- dw BattleMonStatus
- dw EnemyMonStatus
-
- dw PlayerMoveAnimation
- dw EnemyMoveAnimation
-
- dw PlayerMoveEffect
- dw EnemyMoveEffect
-
- dw PlayerMovePower
- dw EnemyMovePower
-
- dw PlayerMoveType
- dw EnemyMoveType
-
- dw CurPlayerMove
- dw CurEnemyMove
-
- dw LastEnemyCounterMove
- dw LastPlayerCounterMove
-
- dw LastPlayerMove
- dw LastEnemyMove
-; 3a90
-
-
-Function3a90: ; 3a90
- inc hl
- ld a, [hROMBank]
- push af
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [hROMBank], a
- ld [MBC3RomBank], a
- ld a, e
- ld l, a
- ld a, d
- ld h, a
- ld de, $d00c
- ld bc, $0028
- call CopyBytes
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
- ret
-; 3ab2
-
-
-MobileTextBorder: ; 3ab2
-; For mobile link battles only.
- ld a, [InLinkBattle]
- cp 4
- ret c
-; Draw a cell phone icon at the top right corner of the border.
- ld hl, $c5a3 ; TileMap(19,12)
- ld [hl], $5e ; cell phone top
- ld hl, $c5b7 ; TileMap(19,13)
- ld [hl], $5f ; cell phone bottom
- ret
-; 3ac3
-
-
-BattleTextBox: ; 3ac3
-; Open a textbox and print text at hl.
- push hl
- call SpeechTextBox
- call MobileTextBorder
- call Function1ad2
- call Function321c
- pop hl
- call PrintTextBoxText
- ret
-; 3ad5
-
-
-StdBattleTextBox: ; 3ad5
-; Open a textbox and print battle text at 20:hl.
-
- ld a, [hROMBank]
- push af
-
- ld a, BANK(BattleText)
- rst Bankswitch
-
- call BattleTextBox
-
- pop af
- rst Bankswitch
- ret
-; 3ae1
-
-
-Function3ae1: ; 3ae1
- ld a, $32
- rst Bankswitch
-
- ld a, [hli]
- ld [$d410], a
- ld a, [hl]
- ld [$d411], a
- ld a, $33
- rst Bankswitch
-
- ret
-; 3af0
-
-Function3af0: ; 3af0
- push hl
- push de
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, $32
- rst Bankswitch
-
- ld a, [de]
- ld [$d417], a
- inc de
- ld a, $33
- rst Bankswitch
-
- ld [hl], d
- dec hl
- ld [hl], e
- pop de
- pop hl
- ld a, [$d417]
- ret
-; 3b0c
-
-Function3b0c: ; 3b0c
- ld a, [hLCDStatCustom]
- and a
- ret z
-
- ld a, $00
- ld [Requested2bppSource], a
- ld a, $d2
- ld [Requested2bppSource + 1], a
-
- ld a, $00
- ld [Requested2bppDest], a
- ld a, $d1
- ld [Requested2bppDest + 1], a
-
- ld a, $9
- ld [Requested2bpp], a
- ret
-; 3b2a
-
-
-
-Function3b2a: ; 3b2a
- ld [$c3b8], a
- ld a, [hROMBank]
- push af
- ld a, BANK(Function8cfd6)
- rst Bankswitch
-
- ld a, [$c3b8]
- call Function8cfd6
- pop af
- rst Bankswitch
-
- ret
-; 3b3c
-
-
-Function3b3c: ; 3b3c
- ld [$c3b8], a
- ld a, [hROMBank]
- push af
- ld a, BANK(Function8d120)
- rst Bankswitch
-
- ld a, [$c3b8]
- call Function8d120
- pop af
- rst Bankswitch
-
- ret
-; 3b4e
-
-
-SoundRestart: ; 3b4e
-
- push hl
- push de
- push bc
- push af
-
- ld a, [hROMBank]
- push af
- ld a, BANK(_SoundRestart)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- call _SoundRestart
-
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3b6a
-
-
-UpdateSound: ; 3b6a
-
- push hl
- push de
- push bc
- push af
-
- ld a, [hROMBank]
- push af
- ld a, BANK(_UpdateSound)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- call _UpdateSound
-
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3b86
-
-
-_LoadMusicByte: ; 3b86
-; CurMusicByte = [a:de]
-
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- ld a, [de]
- ld [CurMusicByte], a
- ld a, BANK(LoadMusicByte)
-
- ld [hROMBank], a
- ld [MBC3RomBank], a
- ret
-; 3b97
-
-
-PlayMusic: ; 3b97
-; Play music de.
-
- push hl
- push de
- push bc
- push af
-
- ld a, [hROMBank]
- push af
- ld a, BANK(_PlayMusic) ; and BANK(_SoundRestart)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- ld a, e
- and a
- jr z, .nomusic
-
- call _PlayMusic
- jr .end
-
-.nomusic
- call _SoundRestart
-
-.end
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3bbc
-
-
-PlayMusic2: ; 3bbc
-; Stop playing music, then play music de.
-
- push hl
- push de
- push bc
- push af
-
- ld a, [hROMBank]
- push af
- ld a, BANK(_PlayMusic)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- push de
- ld de, MUSIC_NONE
- call _PlayMusic
- call DelayFrame
- pop de
- call _PlayMusic
-
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- pop af
- pop bc
- pop de
- pop hl
- ret
-
-; 3be3
-
-
-PlayCryHeader: ; 3be3
-; Play a cry given parameters in header de
-
- push hl
- push de
- push bc
- push af
-
-; Save current bank
- ld a, [hROMBank]
- push af
-
-; Cry headers are stuck in one bank.
- ld a, BANK(CryHeaders)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
-; Each header is 6 bytes long:
- ld hl, CryHeaders
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
-
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
-
- ld a, [hli]
- ld [CryPitch], a
- ld a, [hli]
- ld [CryEcho], a
- ld a, [hli]
- ld [CryLength], a
- ld a, [hl]
- ld [CryLength+1], a
-
- ld a, BANK(PlayCry)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- call PlayCry
-
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3c23
-
-
-PlaySFX: ; 3c23
-; Play sound effect de.
-; Sound effects are ordered by priority (lowest to highest)
-
- push hl
- push de
- push bc
- push af
-
-; Is something already playing?
- call CheckSFX
- jr nc, .play
-; Does it have priority?
- ld a, [CurSFX]
- cp e
- jr c, .quit
-
-.play
- ld a, [hROMBank]
- push af
- ld a, BANK(_PlaySFX)
- ld [hROMBank], a
- ld [MBC3RomBank], a ; bankswitch
-
- ld a, e
- ld [CurSFX], a
- call _PlaySFX
-
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a ; bankswitch
-.quit
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3c4e
-
-
-WaitPlaySFX: ; 3c4e
- call WaitSFX
- call PlaySFX
- ret
-; 3c55
-
-
-WaitSFX: ; 3c55
-; infinite loop until sfx is done playing
-
- push hl
-
-.loop
- ; ch5 on?
- ld hl, Channel5 + Channel1Flags - Channel1
- bit 0, [hl]
- jr nz, .loop
- ; ch6 on?
- ld hl, Channel6 + Channel1Flags - Channel1
- bit 0, [hl]
- jr nz, .loop
- ; ch7 on?
- ld hl, Channel7 + Channel1Flags - Channel1
- bit 0, [hl]
- jr nz, .loop
- ; ch8 on?
- ld hl, Channel8 + Channel1Flags - Channel1
- bit 0, [hl]
- jr nz, .loop
-
- pop hl
- ret
-; 3c74
-
-Function3c74: ; 3c74
- push hl
- ld hl, $c1cc
- bit 0, [hl]
- jr nz, .asm_3c94
- ld hl, $c1fe
- bit 0, [hl]
- jr nz, .asm_3c94
- ld hl, $c230
- bit 0, [hl]
- jr nz, .asm_3c94
- ld hl, $c262
- bit 0, [hl]
- jr nz, .asm_3c94
- pop hl
- scf
- ret
-
-.asm_3c94
- pop hl
- and a
- ret
-; 3c97
-
-MaxVolume: ; 3c97
- ld a, $77 ; max
- ld [Volume], a
- ret
-; 3c9d
-
-LowVolume: ; 3c9d
- ld a, $33 ; 40%
- ld [Volume], a
- ret
-; 3ca3
-
-VolumeOff: ; 3ca3
- xor a
- ld [Volume], a
- ret
-; 3ca8
-
-Function3ca8: ; 3ca8
- ld a, $4
- ld [MusicFade], a
- ret
-; 3cae
-
-Function3cae: ; 3cae
- ld a, $84
- ld [MusicFade], a
- ret
-; 3cb4
-
-Function3cb4: ; 3cb4
-.asm_3cb4
- and a
- ret z
- dec a
- call UpdateSound
- jr .asm_3cb4
-; 3cbc
-
-Function3cbc: ; 3cbc
- push hl
- push de
- push bc
- push af
- call Function3d97
- ld a, [CurMusic]
- cp e
- jr z, .asm_3cda
- ld a, $8
- ld [MusicFade], a
- ld a, e
- ld [MusicFadeIDLo], a
- ld a, d
- ld [MusicFadeIDHi], a
- ld a, e
- ld [CurMusic], a
-
-.asm_3cda
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3cdf
-
-Function3cdf: ; 3cdf
- push hl
- push de
- push bc
- push af
- call Function3d97
- ld a, [CurMusic]
- cp e
- jr z, .asm_3cfe
- push de
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- pop de
- ld a, e
- ld [CurMusic], a
- call PlayMusic
-
-.asm_3cfe
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3d03
-
-Function3d03: ; 3d03
- push hl
- push de
- push bc
- push af
- xor a
- ld [$c2c1], a
- ld de, MUSIC_BICYCLE
- ld a, [PlayerState]
- cp $1
- jr z, .asm_3d18
- call Function3d97
-.asm_3d18
- push de
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- pop de
- ld a, e
- ld [CurMusic], a
- call PlayMusic
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3d2f
-
-Function3d2f: ; 3d2f
- ld a, [$c2c1]
- and a
- jr z, Function3d47
- xor a
- ld [CurMusic], a
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- xor a
- ld [$c2c1], a
- ret
-; 3d47
-
-Function3d47: ; 3d47
- push hl
- push de
- push bc
- push af
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- ld a, [CurMusic]
- ld e, a
- ld d, 0
- call PlayMusic
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3d62
-
-Function3d62: ; 3d62
- ld a, [PlayerState]
- cp $4
- jr z, .asm_3d7b
- cp $8
- jr z, .asm_3d7b
- ld a, [StatusFlags2]
- bit 2, a
- jr nz, .asm_3d80
-.asm_3d74
- and a
- ret
-
- ld de, $0013
- scf
- ret
-
-.asm_3d7b
- ld de, $0021
- scf
- ret
-
-.asm_3d80
- ld a, [MapGroup]
- cp $a
- jr nz, .asm_3d74
- ld a, [MapNumber]
- cp $f
- jr z, .asm_3d92
- cp $11
- jr nz, .asm_3d74
-
-.asm_3d92
- ld de, $0058
- scf
- ret
-; 3d97
-
-Function3d97: ; 3d97
- call Function3d62
- ret c
- call Function2cbd
- ret
-; 3d9f
-
-Function3d9f: ; 3d9f
- ld a, $20
- ld [$c498], a
- ld [$c49c], a
- ld a, $50
- ld [$c499], a
- ld a, $58
- ld [$c49d], a
- xor a
- ld [$c49b], a
- ld [$c49f], a
- ld a, [$c296]
- cp $64
- jr nc, .asm_3dd5
- add $1
- daa
- ld b, a
- swap a
- and $f
- add $f6
- ld [$c49a], a
- ld a, b
- and $f
- add $f6
- ld [$c49e], a
- ret
-
-.asm_3dd5
- ld a, $ff
- ld [$c49a], a
- ld [$c49e], a
- ret
-; 3dde
-
-CheckSFX: ; 3dde
-; returns carry if sfx channels are active
- ld a, [$c1cc] ; 1
- bit 0, a
- jr nz, .quit
- ld a, [$c1fe] ; 2
- bit 0, a
- jr nz, .quit
- ld a, [$c230] ; 3
- bit 0, a
- jr nz, .quit
- ld a, [$c262] ; 4
- bit 0, a
- jr nz, .quit
- and a
- ret
-.quit
- scf
- ret
-; 3dfe
-
-Function3dfe: ; 3dfe
- xor a
- ld [$c1cc], a
- ld [SoundInput], a
- ld [rNR10], a
- ld [rNR11], a
- ld [rNR12], a
- ld [rNR13], a
- ld [rNR14], a
- ret
-; 3e10
-
-
-ChannelsOff: ; 3e10
-; Quickly turn off music channels
- xor a
- ld [Channel1Flags], a
- ld [$c136], a
- ld [$c168], a
- ld [$c19a], a
- ld [SoundInput], a
- ret
-; 3e21
-
-SFXChannelsOff: ; 3e21
-; Quickly turn off sound effect channels
- xor a
- ld [$c1cc], a
- ld [$c1fe], a
- ld [$c230], a
- ld [$c262], a
- ld [SoundInput], a
- ret
-; 3e32
-
-Function3e32: ; 3e32
- cp $2
- ld [$c988], a
- ld a, l
- ld [$c986], a
- ld a, h
- ld [$c987], a
- jr nz, .asm_3e4f
- ld [$c982], a
- ld a, l
- ld [$c981], a
- ld hl, $c983
- ld a, c
- ld [hli], a
- ld a, b
- ld [hl], a
-
-.asm_3e4f
- ld hl, $c822
- set 6, [hl]
- ld a, [hROMBank]
- push af
- ld a, BANK(Function110030)
- ld [$c981], a
- rst Bankswitch
-
- jp Function110030
-; 3e60
-
-
-Function3e60: ; 3e60
- ld [$c986], a
- ld a, l
- ld [$c987], a
- ld a, h
- ld [$c988], a
- pop bc
- ld a, b
- ld [$c981], a
- rst Bankswitch
-
- ld hl, $c822
- res 6, [hl]
- ld hl, $c987
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$c986]
- ret
-; 3e80
-
-
-Function3e80: ; 3e80
- ld a, [hROMBank]
- push af
- ld a, BANK(Function1116c5)
- ld [$c981], a
- rst Bankswitch
-
- call Function1116c5
- pop bc
- ld a, b
- ld [$c981], a
- rst Bankswitch
-
- ret
-; 3e93
-
-
-Timer: ; 3e93
- push af
- push bc
- push de
- push hl
-
- ld a, [$ffe9]
- and a
- jr z, .asm_3ed2
-
- xor a
- ld [rTAC], a
-
-; Turn off timer interrupt
- ld a, [rIF]
- and 1 << VBLANK | 1 << LCD_STAT | 1 << SERIAL | 1 << JOYPAD
- ld [rIF], a
-
- ld a, [$c86a]
- or a
- jr z, .asm_3ed2
-
- ld a, [$c822]
- bit 1, a
- jr nz, .asm_3eca
-
- ld a, [rSC]
- and 1 << rSC_ON
- jr nz, .asm_3eca
-
- ld a, [hROMBank]
- push af
- ld a, BANK(Function1118de)
- ld [$c981], a
- rst Bankswitch
-
- call Function1118de
-
- pop bc
- ld a, b
- ld [$c981], a
- rst Bankswitch
-
-.asm_3eca
- ld a, [rTMA]
- ld [rTIMA], a
-
- ld a, 1 << rTAC_ON | rTAC_65536_HZ
- ld [rTAC], a
-
-.asm_3ed2
- pop hl
- pop de
- pop bc
- pop af
- reti
-; 3ed7
-
-Function3ed7: ; 3ed7
- ld [$dc02], a
- ld a, [hROMBank]
- push af
- ld a, BANK(Function114243)
- rst Bankswitch
-
- call Function114243
- pop bc
- ld a, b
- rst Bankswitch
-
- ld a, [$dc02]
- ret
-; 3eea
-
-Function3eea: ; 3eea
- push hl
- push bc
- ld de, $0939
- add hl, de
- inc b
- inc b
- inc c
- inc c
- call Function3f35
- pop bc
- pop hl
- call Function3f47
- ret
-; 3efd
-
-Function3efd: ; 3efd
- push hl
- ld hl, $c590
- ld b, $4
- ld c, $12
- call Function3f0d
- pop hl
- call PrintTextBoxText
- ret
-; 3f0d
-
-Function3f0d: ; 3f0d
- push hl
- push bc
- ld de, $0939
- add hl, de
- inc b
- inc b
- inc c
- inc c
- call Function3f35
- pop bc
- pop hl
- call TextBoxBorder
- ret
-; 3f20
-
-Function3f20: ; 3f20
- ld hl, AttrMap
- ld b, $6
- ld c, $14
- call Function3f35
- ld hl, TileMap
- ld b, $4
- ld c, $12
- call Function3f47
- ret
-; 3f35
-
-Function3f35: ; 3f35
- ld a, $6
- ld de, $0014
-.asm_3f3a
- push bc
- push hl
-.asm_3f3c
- ld [hli], a
- dec c
- jr nz, .asm_3f3c
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_3f3a
- ret
-; 3f47
-
-Function3f47: ; 3f47
- push bc
- call Function3f58
- pop bc
-.asm_3f4c
- push bc
- call Function3f68
- pop bc
- dec b
- jr nz, .asm_3f4c
- call Function3f60
- ret
-; 3f58
-
-Function3f58: ; 3f58
- ld a, $63
- ld d, $62
- ld e, $64
- jr Function3f6e
-
-Function3f60: ; 3f60
- ld a, $68
- ld d, $67
- ld e, $69
- jr Function3f6e
-
-Function3f68: ; 3f68
- ld a, $7f
- ld d, $65
- ld e, $66
-
-Function3f6e: ; 3f6e
- push hl
- ld [hl], d
- inc hl
-.asm_3f71
- ld [hli], a
- dec c
- jr nz, .asm_3f71
- ld [hl], e
- pop hl
- ld de, $0014
- add hl, de
- ret
-; 3f7c
-
-Function3f7c: ; 3f7c
- call Function1cfd
- call Function1c53
- dec b
- dec c
- call Function3eea
- ret
-; 3f88
-
-Function3f88: ; 3f88
- ld hl, $d000
- ld b, $0
-.asm_3f8d
- push bc
- ld c, $8
-.asm_3f90
- ld a, [de]
- inc de
- cpl
- ld [hl], $0
- inc hl
- ld [hli], a
- dec c
- jr nz, .asm_3f90
- pop bc
- dec c
- jr nz, .asm_3f8d
- ret
-; 3f9f
-
-Function3f9f: ; 3f9f
- ld hl, $d000
-.asm_3fa2
- push bc
- ld c, $8
-.asm_3fa5
- ld a, [de]
- inc de
- inc de
- cpl
- ld [hl], $0
- inc hl
- ld [hli], a
- dec c
- jr nz, .asm_3fa5
- pop bc
- dec c
- jr nz, .asm_3fa2
- ret
-; 3fb5
-
-
-SECTION "bank1",ROMX,BANK[$1]
+SECTION "bank1", ROMX, BANK[$1]
Function4000: ; 4000
@@ -3935,253 +57,7 @@ PushOAMEnd
; 4049
-DataPointers4049: ; 4049
- dw Data408b
- dw Data409c
- dw Data408b
- dw Data40ad
- dw Data40be
- dw Data40cf
- dw Data40be
- dw Data40e0
- dw Data40f1
- dw Data4113
- dw Data40f1
- dw Data4113
- dw Data4102
- dw Data4124
- dw Data4102
- dw Data4124
- dw Data4135
- dw Data414a
- dw Data415f
- dw Data4174
- dw Data4189
- dw Data419a
- dw Data4206
- dw Data41a3
- dw Data408b
- dw Data41e4
- dw Data408b
- dw Data41f5
- dw Data423f
- dw Data4250
- dw Data4261
- dw Data426a
- dw $0000
-; 408b
-
-Data408b: ; 408b
- db 4 ; #
- db $00, $00, $00, $00
- db $00, $08, $00, $01
- db $08, $00, $02, $02
- db $08, $08, $02, $03
-; 409c
-
-Data409c: ; 409c
- db 4 ; #
- db $00, $00, $00, $80
- db $00, $08, $00, $81
- db $08, $00, $02, $82
- db $08, $08, $02, $83
-; 40ad
-
-Data40ad: ; 40ad
- db 4 ; #
- db $00, $08, $20, $80
- db $00, $00, $20, $81
- db $08, $08, $22, $82
- db $08, $00, $22, $83
-; 40be
-
-Data40be: ; 40be
- db 4 ; #
- db $00, $00, $00, $04
- db $00, $08, $00, $05
- db $08, $00, $02, $06
- db $08, $08, $02, $07
-; 40cf
-
-Data40cf: ; 40cf
- db 4 ; #
- db $00, $00, $00, $84
- db $00, $08, $00, $85
- db $08, $00, $02, $86
- db $08, $08, $02, $87
-; 40e0
-
-Data40e0: ; 40e0
- db 4 ; #
- db $00, $08, $20, $84
- db $00, $00, $20, $85
- db $08, $08, $22, $86
- db $08, $00, $22, $87
-; 40f1
-
-Data40f1: ; 40f1
- db 4 ; #
- db $00, $00, $00, $08
- db $00, $08, $00, $09
- db $08, $00, $02, $0a
- db $08, $08, $02, $0b
-; 4102
-
-Data4102: ; 4102
- db 4 ; #
- db $00, $08, $20, $08
- db $00, $00, $20, $09
- db $08, $08, $22, $0a
- db $08, $00, $22, $0b
-; 4113
-
-Data4113: ; 4113
- db 4 ; #
- db $00, $00, $00, $88
- db $00, $08, $00, $89
- db $08, $00, $02, $8a
- db $08, $08, $02, $8b
-; 4124
-
-Data4124: ; 4124
- db 4 ; #
- db $00, $08, $20, $88
- db $00, $00, $20, $89
- db $08, $08, $22, $8a
- db $08, $00, $22, $8b
-; 4135
-
-Data4135: ; 4135
- db 5 ; #
- db $00, $00, $00, $00
- db $00, $08, $00, $01
- db $08, $00, $02, $02
- db $08, $08, $02, $03
- db $10, $00, $04, $fc
-; 414a
-
-Data414a: ; 414a
- db 5 ; #
- db $00, $00, $00, $04
- db $00, $08, $00, $05
- db $08, $00, $02, $06
- db $08, $08, $02, $07
- db $f8, $00, $04, $fc
-; 415f
-
-Data415f: ; 415f
- db 5 ; #
- db $00, $00, $00, $08
- db $00, $08, $00, $09
- db $08, $00, $02, $0a
- db $08, $08, $02, $0b
- db $05, $f8, $24, $fd
-; 4174
-
-Data4174: ; 4174
- db 5 ; #
- db $00, $08, $20, $08
- db $00, $00, $20, $09
- db $08, $08, $22, $0a
- db $08, $00, $22, $0b
- db $05, $10, $04, $fd
-; 4189
-
-Data4189: ; 4189
- db 4 ; #
- db $00, $00, $04, $f8
- db $00, $08, $04, $f9
- db $08, $00, $04, $fa
- db $08, $08, $04, $fb
-; 419a
-
-Data419a: ; 419a
- db 2 ; #
- db $00, $00, $04, $fc
- db $00, $08, $24, $fc
-; 41a3
-
-Data41a3: ; 41a3
- db 16 ; #
- db $00, $00, $00, $00
- db $00, $08, $00, $01
- db $08, $00, $00, $02
- db $08, $08, $00, $03
- db $10, $00, $00, $04
- db $10, $08, $00, $05
- db $18, $00, $00, $06
- db $18, $08, $00, $07
- db $00, $18, $20, $00
- db $00, $10, $20, $01
- db $08, $18, $20, $02
- db $08, $10, $20, $03
- db $10, $18, $20, $04
- db $10, $10, $20, $05
- db $18, $18, $20, $06
- db $18, $10, $20, $07
-; 41e4
-
-Data41e4: ; 41e4
- db 4 ; #
- db $00, $00, $00, $04
- db $00, $08, $00, $05
- db $08, $00, $00, $06
- db $08, $08, $00, $07
-; 41f5
-
-Data41f5: ; 41f5
- db 4 ; #
- db $00, $08, $20, $04
- db $00, $00, $20, $05
- db $08, $08, $20, $06
- db $08, $00, $20, $07
-; 4206
-
-Data4206: ; 4206
- db 14 ; #
- db $00, $00, $00, $00
- db $00, $08, $00, $01
- db $08, $00, $00, $04
- db $08, $08, $00, $05
- db $10, $08, $00, $07
- db $18, $08, $00, $0a
- db $00, $18, $00, $03
- db $00, $10, $00, $02
- db $08, $18, $20, $02
- db $08, $10, $00, $06
- db $10, $18, $00, $09
- db $10, $10, $00, $08
- db $18, $18, $20, $04
- db $18, $10, $00, $0b
-; 423f
-
-Data423f: ; 423f
- db 4 ; #
- db $00, $00, $04, $fe
- db $00, $08, $04, $fe
- db $08, $00, $04, $fe
- db $08, $08, $04, $fe
-; 4250
-
-Data4250: ; 4250
- db 4 ; #
- db $00, $00, $04, $ff
- db $00, $08, $04, $ff
- db $08, $00, $04, $ff
- db $08, $08, $04, $ff
-; 4261
-
-Data4261: ; 4261
- db 2 ; #
- db $08, $00, $04, $fe
- db $08, $08, $24, $fe
-; 426a
-
-Data426a: ; 426a
- db 2 ; #
- db $09, $ff, $04, $fe
- db $09, $09, $24, $fe
-; 4273
+INCLUDE "engine/facings.asm"
Data4273: ; 4273
@@ -4420,7 +296,7 @@ Pointers445f: ; 445f
; 44a3
Function44a3: ; 44a3
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $ff
ret
@@ -4429,14 +305,14 @@ Function44a3: ; 44a3
Function44aa: ; 44aa
call GetSpriteDirection
or $0
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
; 44b5
Function44b5: ; 44b5
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
and $1
@@ -4462,7 +338,7 @@ Function44c1: ; 44c1
call GetSpriteDirection
or $0
or d
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
@@ -4486,7 +362,7 @@ Function44e4: ; 44e4
call GetSpriteDirection
or $0
or d
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
@@ -4509,7 +385,7 @@ Function4508: ; 4508
call GetSpriteDirection
or $0
or d
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
@@ -4521,7 +397,7 @@ Function4529: ; 4529
add hl, bc
ld a, [hl]
or $0
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
@@ -4574,28 +450,28 @@ Function456e: ; 456e
rrca
rrca
add $10
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
; 457b
Function457b: ; 457b
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $15
ret
; 4582
Function4582: ; 4582
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $14
ret
; 4589
Function4589: ; 4589
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $17
ret
@@ -4610,14 +486,14 @@ Function4590: ; 4590
ld [hl], a
and $8
jr z, Function45a4
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $4
ret
; 45a4
Function45a4: ; 45a4
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $0
ret
@@ -4633,14 +509,14 @@ Function45ab: ; 45ab
rrca
rrca
add $18
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
; 45be
Function45be: ; 45be
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $16
ret
@@ -4656,7 +532,7 @@ Function45c5: ; 45c5
ld d, $16
.asm_45d4
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], d
ret
@@ -4667,13 +543,13 @@ Function45da: ; 45da
add hl, bc
inc [hl]
ld a, [hl]
- ld hl, $000d
+
+ ld hl, OBJECT_FACING
add hl, bc
- and $2
+ and 2
ld a, $1c
jr z, .asm_45eb
inc a
-
.asm_45eb
ld [hl], a
ret
@@ -4684,9 +560,9 @@ Function45ed: ; 45ed
add hl, bc
inc [hl]
ld a, [hl]
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
- and $4
+ and 4
ld a, $1e
jr z, .asm_45fe
inc a
@@ -4697,50 +573,58 @@ Function45ed: ; 45ed
; 4600
Function4600: ; 4600
- ld hl, $0010
+
+ ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, $0012
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld [hl], a
- ld hl, $0011
+
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld a, [hl]
- ld hl, $0013
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld [hl], a
- ld hl, $000e
+
+ ld hl, OBJECT_STANDING_TILE
add hl, bc
ld a, [hl]
- ld hl, $000f
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld [hl], a
+
call Function4661
- ld hl, $000e
+ ld hl, OBJECT_STANDING_TILE
add hl, bc
ld a, [hl]
+
call Function4679
ret
; 462a
Function462a: ; 462a
- ld hl, $0012
+
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, $0010
+ ld hl, OBJECT_MAP_X
add hl, bc
ld [hl], a
- ld hl, $0013
+
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [hl]
- ld hl, $0011
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld [hl], a
+
ret
; 463f
Function463f: ; 463f
- ld hl, $0005
+ ld hl, OBJECT_FLAGS
add hl, bc
bit 3, [hl]
jr z, .asm_464f
@@ -4824,53 +708,65 @@ Function4690: ; 4690
; 46a6
Function46a6: ; 46a6
- call Function46e9
- ld hl, $000a
+
+ call GetStepVector
+
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
+
ld a, d
call Function4730
- ld hl, $0012
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
add [hl]
- ld hl, $0010
+ ld hl, OBJECT_MAP_X
add hl, bc
ld [hl], a
ld d, a
+
ld a, e
call Function4730
- ld hl, $0013
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
add [hl]
- ld hl, $0011
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld [hl], a
ld e, a
+
push bc
call Function2a3c
pop bc
+
ld hl, $000e
add hl, bc
ld [hl], a
+
ret
; 46d7
Function46d7: ; 46d7
- call Function46e9
- ld hl, $0017
+
+ call GetStepVector
+
+ ld hl, OBJECT_SPRITE_X
add hl, bc
ld a, [hl]
add d
ld [hl], a
- ld hl, $0018
+
+ ld hl, OBJECT_SPRITE_Y
add hl, bc
ld a, [hl]
add e
ld [hl], a
+
ret
; 46e9
-Function46e9: ; 46e9
+GetStepVector: ; 46e9
+; Return (x, y, duration, speed) in (d, e, a, h).
ld hl, $0007
add hl, bc
ld a, [hl]
@@ -4879,7 +775,7 @@ Function46e9: ; 46e9
add a
ld l, a
ld h, 0
- ld de, .Steps
+ ld de, StepVectors
add hl, de
ld d, [hl]
inc hl
@@ -4890,23 +786,23 @@ Function46e9: ; 46e9
ret
; 4700
-.Steps ; 4700
- ; x, y, duration, speed
+StepVectors: ; 4700
+; x, y, duration, speed
; slow
- db 0, 1, $10, $01
- db 0, -1, $10, $01
- db -1, 0, $10, $01
- db 1, 0, $10, $01
+ db 0, 1, 16, 1
+ db 0, -1, 16, 1
+ db -1, 0, 16, 1
+ db 1, 0, 16, 1
; normal
- db 0, 2, $08, $02
- db 0, -2, $08, $02
- db -2, 0, $08, $02
- db 2, 0, $08, $02
+ db 0, 2, 8, 2
+ db 0, -2, 8, 2
+ db -2, 0, 8, 2
+ db 2, 0, 8, 2
; fast
- db 0, 4, $04, $04
- db 0, -4, $04, $04
- db -4, 0, $04, $04
- db 4, 0, $04, $04
+ db 0, 4, 4, 4
+ db 0, -4, 4, 4
+ db -4, 0, 4, 4
+ db 4, 0, 4, 4
; 4730
Function4730: ; 4730
@@ -5384,7 +1280,7 @@ Function499c: ; 499c
add hl, bc
ld a, [hl]
ld a, $10
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, $0009
@@ -5437,13 +1333,13 @@ Function49e5: ; 49e5
ld hl, $000b
add hl, bc
ld [hl], $7
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, de
ld a, [hl]
inc a
add a
add $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, $0007
@@ -5458,10 +1354,10 @@ Function49e5: ; 49e5
ld d, $c
.asm_4a0f
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], d
- ld hl, $0019
+ ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld [hl], $0
ld hl, $0009
@@ -5476,13 +1372,13 @@ Function4a21: ; 4a21
ld hl, $000b
add hl, bc
ld [hl], $8
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $0
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $f0
- ld hl, $0019
+ ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld [hl], $0
ld hl, $0009
@@ -5497,12 +1393,12 @@ Function4a46: ; 4a46
ld hl, $000b
add hl, bc
ld [hl], $e
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, de
ld a, [hl]
inc a
add a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, $0007
@@ -5517,10 +1413,10 @@ Function4a46: ; 4a46
ld d, [hl]
inc hl
ld e, [hl]
- ld hl, $0019
+ ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld [hl], d
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], e
ld hl, $0009
@@ -5543,11 +1439,11 @@ Function4a89: ; 4a89
ld hl, $000b
add hl, bc
ld [hl], $f
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, de
ld a, [hl]
add $ff
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, $0009
@@ -5582,7 +1478,7 @@ Function4abc: ; 4abc
add hl, bc
ld a, [hl]
call Function4ade
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], e
ld hl, $001e
@@ -5656,7 +1552,7 @@ Function4b26: ; 4b26
; 4b2d
Function4b2d: ; 4b2d
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, $0007
@@ -5701,7 +1597,7 @@ Pointers4b45: ; 4b45
; 4b79
Function4b79: ; 4b79
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5720,7 +1616,7 @@ Function4b86: ; 4b86
Function4b8d: ; 4b8d
call Function46d7
call UpdateJumpPosition
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5736,7 +1632,7 @@ Function4b8d: ; 4b8d
Function4ba9: ; 4ba9
call Function46d7
call UpdateJumpPosition
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5765,7 +1661,7 @@ Function4bca: ; 4bca
Function4bd2: ; 4bd2
call UpdateJumpPosition
call Function4738
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5791,7 +1687,7 @@ Function4bf2: ; 4bf2
Function4bfd: ; 4bfd
call UpdateJumpPosition
call Function4738
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5816,7 +1712,7 @@ Function4c23: ; 4c23
ld hl, $000c
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -5827,7 +1723,7 @@ Function4c32: ; 4c32
ld hl, $000b
add hl, bc
ld [hl], $4
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5842,7 +1738,7 @@ Function4c42: ; 4c42
ld hl, $001f
add hl, bc
ld [hl], $10
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
ld hl, $0005
@@ -5864,10 +1760,10 @@ Function4c5d: ; 4c5d
call Sine
ld a, h
sub $60
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5895,7 +1791,7 @@ Function4c9a: ; 4c9a
ld hl, $000b
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -5903,7 +1799,7 @@ Function4c9a: ; 4c9a
; 4caa
Function4caa: ; 4caa
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5918,7 +1814,7 @@ Function4cb3: ; 4cb3
ld hl, $001f
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -5937,10 +1833,10 @@ Function4cc9: ; 4cc9
call Sine
ld a, h
sub $60
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5949,7 +1845,7 @@ Function4cc9: ; 4cc9
; 4ceb
Function4ceb: ; 4ceb
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -5960,7 +1856,7 @@ Function4cf5: ; 4cf5
ld hl, $000b
add hl, bc
ld [hl], $4
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5970,7 +1866,7 @@ Function4d01: ; 4d01
ld hl, $000c
add hl, bc
ld [hl], $0
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $0
ld hl, $0009
@@ -5991,7 +1887,7 @@ Function4d1f: ; 4d1f
ld hl, $000b
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -5999,7 +1895,7 @@ Function4d1f: ; 4d1f
; 4d2e
Function4d2e: ; 4d2e
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6012,7 +1908,7 @@ Function4d2e: ; 4d2e
ld hl, $001f
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -6028,10 +1924,10 @@ Function4d4f: ; 4d4f
call Sine
ld a, h
sub $60
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6043,7 +1939,7 @@ Function4d6b: ; 4d6b
ld hl, $000c
add hl, bc
ld [hl], $0
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $0
ld hl, $0009
@@ -6059,10 +1955,10 @@ Function4d7e: ; 4d7e
; 4d85
Function4d85: ; 4d85
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $8
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $0
call Function47a2
@@ -6070,16 +1966,16 @@ Function4d85: ; 4d85
; 4d94
Function4d94: ; 4d94
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld a, [hl]
xor 1
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $0
ld hl, $0009
@@ -6094,7 +1990,7 @@ Function4daf: ; 4daf
; 4db5
Function4db5: ; 4db5
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld a, [hl]
and $1
@@ -6110,7 +2006,7 @@ Function4db5: ; 4db5
; 4dc8
Function4dc8: ; 4dc8
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld a, [hl]
and $1
@@ -6129,7 +2025,7 @@ Function4ddd: ; 4ddd
ld hl, $0007
add hl, bc
ld [hl], $ff
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6143,7 +2039,7 @@ Function4df0: ; 4df0
ld hl, $0007
add hl, bc
ld [hl], $ff
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6151,7 +2047,7 @@ Function4df0: ; 4df0
; 4dff
Function4dff: ; 4dff
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6188,7 +2084,7 @@ Function4e21: ; 4e21
Function4e2b: ; 4e2b
call Function4fb2
call Function46d7
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6204,7 +2100,7 @@ Function4e2b: ; 4e2b
Function4e47: ; 4e47
call Function46d7
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6228,7 +2124,7 @@ Function4e5d: ; 4e5d
Function4e65: ; 4e65
call Function4738
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6260,7 +2156,7 @@ Function4e8e: ; 4e8e
add hl, bc
ld a, [hl]
ld [hl], $2
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $2
call Function47a2
@@ -6268,7 +2164,7 @@ Function4e8e: ; 4e8e
; 4ea4
Function4ea4: ; 4ea4
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6283,7 +2179,7 @@ Function4ead: ; 4ead
ld hl, $0008
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $2
call Function47a2
@@ -6291,7 +2187,7 @@ Function4ead: ; 4ead
; 4ec0
Function4ec0: ; 4ec0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6303,7 +2199,7 @@ Function4ec0: ; 4ec0
Function4ecd: ; 4ecd
call Function46d7
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6344,19 +2240,19 @@ Function4f04: ; 4f04
ld a, [hl]
and a
jr z, .asm_4f30
- ld hl, $0017
+ ld hl, OBJECT_SPRITE_X
add hl, de
ld a, [hl]
- ld hl, $0017
+ ld hl, OBJECT_SPRITE_X
add hl, bc
ld [hl], a
- ld hl, $0018
+ ld hl, OBJECT_SPRITE_Y
add hl, de
ld a, [hl]
- ld hl, $0018
+ ld hl, OBJECT_SPRITE_Y
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld a, [hl]
and a
@@ -6390,7 +2286,7 @@ Function4f43: ; 4f43
ld a, [$d14f]
sub d
ld [$d14f], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
jr z, .asm_4f68
@@ -6442,18 +2338,18 @@ Function4f8a: ; 4f8a
ld hl, $000b
add hl, bc
ld [hl], $10
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
; 4f99
Function4f99: ; 4f99
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $60
ld hl, $000c
@@ -6482,7 +2378,7 @@ Function4fb3: ; 4fb3
ld de, .y
add hl, de
ld a, [hl]
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], a
ret
@@ -6493,7 +2389,7 @@ Function4fb3: ; 4fb3
; 4fd5
UpdateJumpPosition: ; 4fd5
- call Function46e9
+ call GetStepVector
ld a, h
ld hl, $001f
add hl, bc
@@ -6506,7 +2402,7 @@ UpdateJumpPosition: ; 4fd5
ld hl, .y
add hl, de
ld a, [hl]
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], a
ret
@@ -6958,7 +2854,7 @@ Function5673: ; 5673
; 5680
Function5680: ; 5680
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $ff
scf
@@ -7020,10 +2916,10 @@ Function56a3: ; 56a3
Function56cd: ; 56cd
ld a, [$d14c]
ld d, a
- ld hl, $0019
+ ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld a, [hl]
- ld hl, $0017
+ ld hl, OBJECT_SPRITE_X
add hl, bc
add [hl]
add d
@@ -7052,10 +2948,10 @@ Function56cd: ; 56cd
ld [$ffbd], a
ld a, [$d14d]
ld e, a
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld a, [hl]
- ld hl, $0018
+ ld hl, OBJECT_SPRITE_Y
add hl, bc
add [hl]
add e
@@ -7499,16 +3395,19 @@ Function5958: ; 5958
ld e, a
ld bc, $d4d6
ld a, $d
+
.asm_5968
push af
call Function1af1
jr z, .asm_597c
- ld hl, $0017
+
+ ld hl, OBJECT_SPRITE_X
add hl, bc
ld a, [hl]
add d
ld [hl], a
- ld hl, $0018
+
+ ld hl, OBJECT_SPRITE_Y
add hl, bc
ld a, [hl]
add e
@@ -7522,6 +3421,7 @@ Function5958: ; 5958
pop af
dec a
jr nz, .asm_5968
+
xor a
ld [$d14c], a
ld [$d14d], a
@@ -7545,41 +3445,45 @@ Function5991: ; 5991
Function59a4: ; 59a4
xor a
ld hl, $c2eb
- ld bc, $000d
+ ld bc, 13
call ByteFill
+
ld d, 0
- ld bc, $d4d6
+ ld bc, ObjectStructs
ld hl, $c2eb
-.asm_59b6
+.loop
push hl
call Function1af1
- jr z, .asm_59d9
- ld hl, $000d
+ jr z, .skip
+
+ ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
- cp $ff
- jr z, .asm_59d9
+ cp -1
+ jr z, .skip
+
+; Define the sprite priority.
ld e, $10
- ld hl, $0005
+ ld hl, OBJECT_FLAGS
add hl, bc
bit 0, [hl]
- jr nz, .asm_59e2
+ jr nz, .add
ld e, $20
bit 1, [hl]
- jr z, .asm_59e2
+ jr z, .add
ld e, $30
- jr .asm_59e2
+ jr .add
-.asm_59d9
- ld hl, $0028
+.skip
+ ld hl, ObjectStruct2 - ObjectStruct1
add hl, bc
ld b, h
ld c, l
pop hl
- jr .asm_59ec
+ jr .next
-.asm_59e2
- ld hl, $0028
+.add
+ ld hl, ObjectStruct2 - ObjectStruct1
add hl, bc
ld b, h
ld c, l
@@ -7588,23 +3492,24 @@ Function59a4: ; 59a4
or e
ld [hli], a
-.asm_59ec
+.next
inc d
ld a, d
cp $d
- jr nz, .asm_59b6
+ jr nz, .loop
ret
; 59f3
Function59f3: ; 59f3
ld hl, $c2eb
-.asm_59f6
+.next
ld a, [hli]
ld d, a
and $f0
ret z
cp c
- jr nz, .asm_59f6
+ jr nz, .next
+
push bc
push hl
ld a, d
@@ -7613,83 +3518,92 @@ Function59f3: ; 59f3
call Function5a0d
pop hl
pop bc
- jr .asm_59f6
+ jr .next
; 5a0d
Function5a0d: ; 5a0d
- ld hl, $0002
+ ld hl, OBJECT_SPRITE
add hl, bc
ld a, [hl]
and $7f
ld [$ffc1], a
+
xor a
bit 7, [hl]
jr nz, .asm_5a1d
- or $8
-
+ or 8
.asm_5a1d
- ld hl, $0005
+
+ ld hl, OBJECT_FLAGS
add hl, bc
ld e, [hl]
bit 7, e
jr z, .asm_5a28
or $80
-
.asm_5a28
+
bit 4, e
jr z, .asm_5a2e
or $10
-
.asm_5a2e
- ld hl, $0006
+
+ ld hl, OBJECT_PALETTE
add hl, bc
ld d, a
ld a, [hl]
- and $7
+ and 7
or d
ld d, a
+
xor a
bit 3, e
jr z, .asm_5a3f
or $80
-
.asm_5a3f
ld [$ffc2], a
- ld hl, $0017
+
+ ld hl, OBJECT_SPRITE_X
add hl, bc
ld a, [hl]
- ld hl, $0019
+
+ ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
add [hl]
- add $8
+
+ add 8
+
ld e, a
ld a, [$d14c]
add e
ld [$ffbf], a
- ld hl, $0018
+
+ ld hl, OBJECT_SPRITE_Y
add hl, bc
ld a, [hl]
- ld hl, $001a
+
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
add [hl]
- add $c
+
+ add 12
+
ld e, a
ld a, [$d14d]
add e
ld [$ffc0], a
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
- cp $ff
- jp z, .asm_5abe
- cp $20
- jp nc, .asm_5abe
+ cp -1
+ jp z, .done
+ cp NUM_FACINGS
+ jp nc, .done
ld l, a
ld h, 0
add hl, hl
- ld bc, DataPointers4049
+ ld bc, Facings
add hl, bc
ld a, [hli]
ld h, [hl]
@@ -7704,19 +3618,24 @@ Function5a0d: ; 5a0d
cp SpritesEnd % $100
jr nc, .full
-.loop
+.addsprite
ld a, [$ffc0]
add [hl]
inc hl
+
ld [bc], a
inc c
+
ld a, [$ffbf]
add [hl]
inc hl
+
ld [bc], a
inc c
+
ld e, [hl]
inc hl
+
ld a, [$ffc1]
bit 2, e
jr z, .asm_5aa3
@@ -7724,8 +3643,10 @@ Function5a0d: ; 5a0d
.asm_5aa3
add [hl]
inc hl
+
ld [bc], a
inc c
+
ld a, e
bit 1, a
jr z, .asm_5aaf
@@ -7736,15 +3657,16 @@ Function5a0d: ; 5a0d
or d
ld [bc], a
inc c
+
ld a, [$ffbe]
dec a
ld [$ffbe], a
- jr nz, .loop
+ jr nz, .addsprite
ld a, c
ld [$ffbd], a
-.asm_5abe
+.done
xor a
ret
@@ -7766,21 +3688,22 @@ Function5ac2: ; 5ac2
; 5ace
.Addresses ; 5ace
- dw $d4d6
- dw $d4fe
- dw $d526
- dw $d54e
- dw $d576
- dw $d59e
- dw $d5c6
- dw $d5ee
- dw $d616
- dw $d63e
- dw $d666
- dw $d68e
- dw $d6b6
+ dw PlayerStruct
+ dw ObjectStruct1
+ dw ObjectStruct2
+ dw ObjectStruct3
+ dw ObjectStruct4
+ dw ObjectStruct5
+ dw ObjectStruct6
+ dw ObjectStruct7
+ dw ObjectStruct8
+ dw ObjectStruct9
+ dw ObjectStruct10
+ dw ObjectStruct11
+ dw ObjectStruct12
; 5ae8
+
Function5ae8: ; 5ae8
ld de, MUSIC_NONE
call PlayMusic
@@ -8227,7 +4150,7 @@ Function5df0: ; 5df0
Function5e34: ; 5e34
.asm_5e34
call DelayFrame
- call GetJoypadPublic
+ call GetJoypad
ld hl, hJoyPressed
bit 0, [hl]
jr nz, .asm_5e47
@@ -8856,7 +4779,7 @@ Function627b: ; 627b
ld a, [$cf63]
bit 7, a
jr nz, .asm_6290
- call Function62a3
+ call TitleScreenScene
callba Function10eea7
call DelayFrame
and a
@@ -8879,10 +4802,10 @@ Function6292: ; 6292
ret
; 62a3
-Function62a3: ; 62a3
+TitleScreenScene: ; 62a3
ld e, a
ld d, 0
- ld hl, .data_62af
+ ld hl, .scenes
add hl, de
add hl, de
ld a, [hli]
@@ -8891,11 +4814,11 @@ Function62a3: ; 62a3
jp [hl]
; 62af
-.data_62af
+.scenes
dw TitleScreenEntrance
- dw Function62f6
- dw Function6304
- dw Function6375
+ dw TitleScreenTimer
+ dw TitleScreenMain
+ dw TitleScreenEnd
; 62b7
Function62b7: ; 62b7
@@ -8921,14 +4844,14 @@ TitleScreenEntrance: ; 62bc
ld bc, 8 * 10 ; logo height
call ByteFill
-; Alternate signage for each line's position vector.
+; Reversed signage for every other line's position.
; This is responsible for the interlaced effect.
ld a, e
xor $ff
inc a
ld b, 8 * 10 / 2 ; logo height / 2
- ld hl, $d101
+ ld hl, LYOverrides + 1
.loop
ld [hli], a
inc hl
@@ -8955,103 +4878,138 @@ TitleScreenEntrance: ; 62bc
; 62f6
-Function62f6: ; 62f6
+TitleScreenTimer: ; 62f6
+
+; Next scene
ld hl, $cf63
inc [hl]
+
+; Start a timer
ld hl, $cf65
- ld de, $1140
+ ld de, $1140 ; 73.6 seconds
ld [hl], e
inc hl
ld [hl], d
ret
; 6304
-Function6304: ; 6304
+TitleScreenMain: ; 6304
+
+; Run the timer down.
ld hl, $cf65
ld e, [hl]
inc hl
ld d, [hl]
ld a, e
or d
- jr z, .asm_6355
+ jr z, .end
+
dec de
ld [hl], d
dec hl
ld [hl], e
- call GetJoypadPublic
+
+; Save data can be deleted by pressing Up + B + Select.
+ call GetJoypad
ld hl, hJoyDown
ld a, [hl]
- and $46
- cp $46
- jr z, .asm_634a
+ and D_UP + B_BUTTON + SELECT
+ cp D_UP + B_BUTTON + SELECT
+ jr z, .delete_save_data
+
+; To bring up the clock reset dialog:
+
+; Hold Down + B + Select to initiate the sequence.
ld a, [$ffeb]
cp $34
- jr z, .asm_6332
+ jr z, .check_clock_reset
+
ld a, [hl]
- and $86
- cp $86
- jr nz, .asm_6340
+ and D_DOWN + B_BUTTON + SELECT
+ cp D_DOWN + B_BUTTON + SELECT
+ jr nz, .check_start
+
ld a, $34
ld [$ffeb], a
- jr .asm_6340
+ jr .check_start
+
+; Keep Select pressed, and hold Left + Up.
+; Then let go of Select.
+.check_clock_reset
+ bit 2, [hl] ; SELECT
+ jr nz, .check_start
-.asm_6332
- bit 2, [hl]
- jr nz, .asm_6340
xor a
ld [$ffeb], a
+
ld a, [hl]
- and $60
- cp $60
- jr z, .asm_636a
+ and D_LEFT + D_UP
+ cp D_LEFT + D_UP
+ jr z, .clock_reset
-.asm_6340
+; Press Start or A to start the game.
+.check_start
ld a, [hl]
- and $9
- jr nz, .asm_6346
+ and START | A_BUTTON
+ jr nz, .continue
ret
-.asm_6346
- ld a, $0
- jr .asm_634c
+.continue
+ ld a, 0
+ jr .done
-.asm_634a
- ld a, $1
+.delete_save_data
+ ld a, 1
-.asm_634c
+.done
ld [$cf64], a
+
+; Return to the intro sequence.
ld hl, $cf63
set 7, [hl]
ret
-.asm_6355
+.end
+; Next scene
ld hl, $cf63
inc [hl]
+
+; Fade out the title screen music
xor a
ld [MusicFadeIDLo], a
ld [MusicFadeIDHi], a
ld hl, MusicFade
- ld [hl], $8
+ ld [hl], 8 ; 1 second
+
ld hl, $cf65
inc [hl]
ret
-.asm_636a
- ld a, $4
+.clock_reset
+ ld a, 4
ld [$cf64], a
+
+; Return to the intro sequence.
ld hl, $cf63
set 7, [hl]
ret
; 6375
-Function6375: ; 6375
+TitleScreenEnd: ; 6375
+
+; Wait until the music is done fading.
+
ld hl, $cf65
inc [hl]
+
ld a, [MusicFade]
and a
ret nz
- ld a, $2
+
+ ld a, 2
ld [$cf64], a
+
+; Back to the intro.
ld hl, $cf63
set 7, [hl]
ret
@@ -9348,7 +5306,7 @@ Function6520: ; 6520
Function65b5: ; 65b5
ld hl, UnknownText_0x6675
call PrintText
- call Function1dcf
+ call YesNoBox
jp c, Function6520
ld hl, UnknownText_0x667a
call PrintText
@@ -9367,7 +5325,7 @@ Function65d3: ; 65d3
push hl
ld hl, UnknownText_0x667f
call PrintText
- call Function1dcf
+ call YesNoBox
pop hl
ret c
ld bc, $fffc
@@ -9447,32 +5405,32 @@ Function65d3: ; 65d3
; 666b
UnknownText_0x666b: ; 666b
- text_jump UnknownText_0x1c5660, BANK(UnknownText_0x1c5660)
+ text_jump UnknownText_0x1c5660
db "@"
; 6670
UnknownText_0x6670: ; 6670
- text_jump UnknownText_0x1c5678, BANK(UnknownText_0x1c5678)
+ text_jump UnknownText_0x1c5678
db "@"
; 6675
UnknownText_0x6675: ; 6675
- text_jump UnknownText_0x1c5699, BANK(UnknownText_0x1c5699)
+ text_jump UnknownText_0x1c5699
db "@"
; 667a
UnknownText_0x667a: ; 667a
- text_jump UnknownText_0x1c56af, BANK(UnknownText_0x1c56af)
+ text_jump UnknownText_0x1c56af
db "@"
; 667f
UnknownText_0x667f: ; 667f
- text_jump UnknownText_0x1c56c9, BANK(UnknownText_0x1c56c9)
+ text_jump UnknownText_0x1c56c9
db "@"
; 6684
UnknownText_0x6684: ; 6684
- text_jump UnknownText_0x1c5740, BANK(UnknownText_0x1c5740)
+ text_jump UnknownText_0x1c5740
start_asm
; 6689
@@ -9486,12 +5444,12 @@ UnknownText_0x6684: ; 6684
; 6695
UnknownText_0x6695: ; 6695
- text_jump UnknownText_0x1c574e, BANK(UnknownText_0x1c574e)
+ text_jump UnknownText_0x1c574e
db "@"
; 669a
UnknownText_0x669a: ; 669a
- text_jump UnknownText_0x1c5772, BANK(UnknownText_0x1c5772)
+ text_jump UnknownText_0x1c5772
db "@"
; 669f
@@ -10844,7 +6802,7 @@ Function747a: ; 747a
; 747b
-SECTION "bank2",ROMX,BANK[$2]
+SECTION "bank2", ROMX, BANK[$2]
Function8000: ; 8000
call Function2ed3
@@ -11817,7 +7775,7 @@ PredefPointers: ; 856b
dwb PrintMonTypes, BANK(PrintMonTypes)
dwb GetUnownLetter, BANK(GetUnownLetter)
dwb Functioncbcdd, BANK(Functioncbcdd)
- dwb Functioncc0d5, BANK(Functioncc0d5)
+ dwb Predef2F, BANK(Predef2F)
dwb Function9853, BANK(Function9853) ; $30
dwb Function864c, BANK(Function864c)
dwb Function91d11, BANK(Function91d11)
@@ -11825,9 +7783,9 @@ PredefPointers: ; 856b
dwb Function8c20f, BANK(Function8c20f)
dwb Function8c000, BANK(Function8c000)
dwb Function8c000, BANK(Function8c000)
- dwb Functioncc0d6, BANK(Functioncc0d6)
- dwb Functioncc0d5, BANK(Functioncc0d5) ; $38
- dwb Functioncc0d5, BANK(Functioncc0d5)
+ dwb PlayBattleAnim, BANK(PlayBattleAnim)
+ dwb Predef38, BANK(Predef38) ; $38
+ dwb Predef39, BANK(Predef39)
dwb Functionfd1d0, BANK(Functionfd1d0)
dwb PartyMonItemName, BANK(PartyMonItemName)
dwb Function51077, BANK(Function51077)
@@ -11851,7 +7809,7 @@ PredefPointers: ; 856b
INCLUDE "engine/color.asm"
-SECTION "bank3",ROMX,BANK[$3]
+SECTION "bank3", ROMX, BANK[$3]
Functionc000: ; c000
ld a, [TimeOfDay]
@@ -12037,7 +7995,7 @@ SpecialsPointers: ; c029
dbw BANK(Function102142), Function102142
dbw BANK(Function4989a), Function4989a
dbw BANK(Function49bf9), Function49bf9
- dbw BANK(Function4f0bc), Function4f0bc
+ dbw BANK(SpecialPokeSeer), SpecialPokeSeer
dbw BANK(Function8af6b), Function8af6b
dbw BANK(Function8afd4), Function8afd4
dbw BANK(SpecialDratini),SpecialDratini
@@ -12230,7 +8188,7 @@ Functionc309: ; c309
UnknownText_0xc345: ; 0xc345
; received item
- text_jump UnknownText_0x1bd3be, BANK(UnknownText_0x1bd3be)
+ text_jump UnknownText_0x1bd3be
db "@"
; 0xc34a
@@ -12327,13 +8285,13 @@ Functionc3ae: ; c3ae
UnknownText_0xc3d1: ; 0xc3d1
; You have no coins.
- text_jump UnknownText_0x1bd3d7, BANK(UnknownText_0x1bd3d7)
+ text_jump UnknownText_0x1bd3d7
db "@"
; 0xc3d6
UnknownText_0xc3d6: ; 0xc3d6
; You don't have a COIN CASE.
- text_jump UnknownText_0x1bd3eb, BANK(UnknownText_0x1bd3eb)
+ text_jump UnknownText_0x1bd3eb
db "@"
; 0xc3db
@@ -13040,7 +8998,7 @@ Functionc779: ; c779
; c780
UnknownText_0xc780: ; 0xc780
- text_jump UnknownText_0x1c05c8, BANK(UnknownText_0x1c05c8)
+ text_jump UnknownText_0x1c05c8
db "@"
; 0xc785
@@ -13094,7 +9052,7 @@ Functionc7bb: ; c7bb (3:47bb)
ret
UnknownText_0xc7c4: ; 0xc7c4
- text_jump UnknownText_0x1c05dd, BANK(UnknownText_0x1c05dd)
+ text_jump UnknownText_0x1c05dd
db $50
; 0xc7c9
@@ -13135,10 +9093,10 @@ Unknown_c7fe: ; c7fe
INCBIN "baserom.gbc",$c7fe,$c802 - $c7fe
UnknownScript_0xc802: ; 0xc802
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0xc7c4
reloadmappart
- 3callasm BANK(Functionc810), Functionc810
+ 3callasm Functionc810
loadmovesprites
end
; 0xc810
@@ -13239,13 +9197,13 @@ UnknownScript_0xc8e6: ; 0xc8e6
reloadmappart
special $0035
2writetext UnknownText_0xc8f3
- 3callasm $23, $47e1
+ 3callasm Function8c7e1
loadmovesprites
end
; 0xc8f3
UnknownText_0xc8f3: ; 0xc8f3
- text_jump UnknownText_0x1c0609, BANK(UnknownText_0x1c0609)
+ text_jump UnknownText_0x1c0609
start_asm
; 0xc8f8
@@ -13348,7 +9306,7 @@ UsedSurfScript: ; c986
closetext
loadmovesprites
- 3callasm BANK(Functionc9a2), Functionc9a2 ; empty function
+ 3callasm Functionc9a2 ; empty function
copybytetovar Buffer2
writevarcode VAR_MOVEMENT
@@ -13573,17 +9531,17 @@ Functionca9d: ; ca9d
UnknownScript_0xcaa3: ; 0xcaa3
reloadmappart
- 3callasm BANK(HideSprites), HideSprites
+ 3callasm HideSprites
special $0035
- 3callasm $23, $4aed
- 3call BANK(UnknownScript_0x122c1), UnknownScript_0x122c1
+ 3callasm Function8caed
+ 3call UnknownScript_0x122c1
special $0000
- 3callasm $05, $54f1
+ 3callasm Function154f1
writecode $8, $0
newloadmap $fc
- 3callasm $23, $4b33
+ 3callasm Function8cb33
special $003b
- 3callasm BANK(Functioncacb), Functioncacb
+ 3callasm Functioncacb
end
; 0xcacb
@@ -13642,14 +9600,14 @@ UnknownScript_0xcb1c: ; 0xcb1c
special $0035
UnknownScript_0xcb20: ; 0xcb20
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0xcb51
closetext
loadmovesprites
playsound SFX_BUBBLEBEAM
.loop
applymovement $0, WaterfallStep
- 3callasm BANK(Functioncb38), Functioncb38
+ 3callasm Functioncb38
iffalse .loop
end
; 0xcb38
@@ -13672,7 +9630,7 @@ WaterfallStep: ; cb4f
; cb51
UnknownText_0xcb51: ; 0xcb51
- text_jump UnknownText_0x1c068e, BANK(UnknownText_0x1c068e)
+ text_jump UnknownText_0x1c068e
db "@"
; 0xcb56
@@ -13704,7 +9662,7 @@ UnknownScript_0xcb7e: ; 0xcb7e
; 0xcb81
UnknownText_0xcb81: ; 0xcb81
- text_jump UnknownText_0x1c06a3, BANK(UnknownText_0x1c06a3)
+ text_jump UnknownText_0x1c06a3
db "@"
; 0xcb86
@@ -13718,7 +9676,7 @@ UnknownScript_0xcb86: ; 0xcb86
; 0xcb90
UnknownText_0xcb90: ; 0xcb90
- text_jump UnknownText_0x1c06bf, BANK(UnknownText_0x1c06bf)
+ text_jump UnknownText_0x1c06bf
db "@"
; 0xcb95
@@ -13812,19 +9770,19 @@ Functioncc06: ; cc06
UnknownText_0xcc1c: ; 0xcc1c
; used DIG!
- text_jump UnknownText_0x1c06de, BANK(UnknownText_0x1c06de)
+ text_jump UnknownText_0x1c06de
db "@"
; 0xcc21
UnknownText_0xcc21: ; 0xcc21
; used an ESCAPE ROPE.
- text_jump UnknownText_0x1c06ed, BANK(UnknownText_0x1c06ed)
+ text_jump UnknownText_0x1c06ed
db "@"
; 0xcc26
UnknownText_0xcc26: ; 0xcc26
; Can't use that here.
- text_jump UnknownText_0x1c0705, BANK(UnknownText_0x1c0705)
+ text_jump UnknownText_0x1c0705
db "@"
; 0xcc2b
@@ -13845,7 +9803,7 @@ UnknownScript_0xcc3c: ; 0xcc3c
loadmovesprites
playsound SFX_WARP_TO
applymovement $0, MovementData_0xcc59
- 3call BANK(UnknownScript_0x122c1), UnknownScript_0x122c1
+ 3call UnknownScript_0x122c1
special $0000
writecode $8, $0
newloadmap $f5
@@ -13947,7 +9905,7 @@ Functionccf8: ; ccf8
; cd01
UnknownText_0xcd01: ; 0xcd01
- text_jump UnknownText_0x1c0751, BANK(UnknownText_0x1c0751)
+ text_jump UnknownText_0x1c0751
db "@"
; 0xcd06
@@ -13986,7 +9944,7 @@ UnknownScript_0xcd29: ; 0xcd29
special $0035
UnknownScript_0xcd2d: ; 0xcd2d
- 3callasm BANK(Functioncd12), Functioncd12
+ 3callasm Functioncd12
2writetext UnknownText_0xcd41
copybytetovar $d1ef
cry $0000
@@ -13997,17 +9955,17 @@ UnknownScript_0xcd2d: ; 0xcd2d
; 0xcd41
UnknownText_0xcd41: ; 0xcd41
- text_jump UnknownText_0x1c0774, BANK(UnknownText_0x1c0774)
+ text_jump UnknownText_0x1c0774
db $50
; 0xcd46
UnknownText_0xcd46: ; 0xcd46
- text_jump UnknownText_0x1c0788, BANK(UnknownText_0x1c0788)
+ text_jump UnknownText_0x1c0788
db $50
; 0xcd4b
UnknownScript_0xcd4b: ; 0xcd4b
- 3callasm $03, $4d78
+ 3callasm Functioncd78
iffalse UnknownScript_0xcd5f
if_equal $1, UnknownScript_0xcd59
2jump UnknownScript_0xcd5c
@@ -14032,22 +9990,23 @@ UnknownScript_0xcd5f: ; 0xcd5f
UnknownText_0xcd69: ; 0xcd69
; A #MON may be able to move this. Want to use STRENGTH?
- text_jump UnknownText_0x1c07a0, BANK(UnknownText_0x1c07a0)
+ text_jump UnknownText_0x1c07a0
db "@"
; 0xcd6e
UnknownText_0xcd6e: ; 0xcd6e
; Boulders may now be moved!
- text_jump UnknownText_0x1c07d8, BANK(UnknownText_0x1c07d8)
+ text_jump UnknownText_0x1c07d8
db "@"
; 0xcd73
UnknownText_0xcd73: ; 0xcd73
; A #MON may be able to move this.
- text_jump UnknownText_0x1c07f4, BANK(UnknownText_0x1c07f4)
+ text_jump UnknownText_0x1c07f4
db "@"
; 0xcd78
+Functioncd78: ; cd78
ld d, $46
call CheckPartyMove
jr c, .asm_cd92
@@ -14083,7 +10042,7 @@ Functioncd9d: ; cd9d
INCBIN "baserom.gbc",$cdae,$cdd9 - $cdae
UnknownText_0xcdd9: ; 0xcdd9
- text_jump UnknownText_0x1c0816, BANK(UnknownText_0x1c0816)
+ text_jump UnknownText_0x1c0816
db "@"
; 0xcdde
@@ -14120,10 +10079,10 @@ Functioncdde: ; cdde
INCBIN "baserom.gbc",$ce0b,$ce0f - $ce0b
UnknownScript_0xce0f: ; 0xce0f
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0xcdd9
reloadmappart
- 3callasm BANK(Functionce1d), Functionce1d
+ 3callasm Functionce1d
loadmovesprites
end
; 0xce1d
@@ -14174,7 +10133,7 @@ UnknownScript_0xce66: ; 0xce66
; 0xce69
UnknownText_0xce69: ; 0xce69
- text_jump UnknownText_0x1c082b, BANK(UnknownText_0x1c082b)
+ text_jump UnknownText_0x1c082b
db "@"
; 0xce6e
@@ -14188,7 +10147,7 @@ UnknownScript_0xce6e: ; 0xce6e
; 0xce78
UnknownText_0xce78: ; 0xce78
- text_jump UnknownText_0x1c0864, BANK(UnknownText_0x1c0864)
+ text_jump UnknownText_0x1c0864
db "@"
; 0xce7d
@@ -14215,23 +10174,23 @@ Functionce86: ; ce86
; ce9d
UnknownText_0xce9d: ; 0xce9d
- text_jump UnknownText_0x1c0897, BANK(UnknownText_0x1c0897)
+ text_jump UnknownText_0x1c0897
db $50
; 0xcea2
UnknownText_0xcea2: ; 0xcea2
- text_jump UnknownText_0x1c08ac, BANK(UnknownText_0x1c08ac)
+ text_jump UnknownText_0x1c08ac
db $50
; 0xcea7
UnknownScript_0xcea7: ; 0xcea7
reloadmappart
special $0035
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0xce9d
reloadmappart
- 3callasm $23, $480a
- 3callasm $2e, $41ea
+ 3callasm Function8c80a
+ 3callasm Functionb81ea
iffalse UnknownScript_0xcec3
loadmovesprites
battlecheck
@@ -14315,7 +10274,7 @@ UnknownScript_0xcf2e: ; 0xcf2e
special $0035
UnknownScript_0xcf32: ; cf32
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0xcf58
loadmovesprites
special $003b
@@ -14323,7 +10282,7 @@ UnknownScript_0xcf32: ; cf32
earthquake 84
applymovement2 MovementData_0xcf55
disappear $fe
- 3callasm $2e, $4219
+ 3callasm Functionb8219
copybytetovar $d22e
iffalse .done
battlecheck
@@ -14338,12 +10297,12 @@ MovementData_0xcf55: ; 0xcf55
step_end
UnknownText_0xcf58: ; 0xcf58
- text_jump UnknownText_0x1c08f0, BANK(UnknownText_0x1c08f0)
+ text_jump UnknownText_0x1c08f0
db $50
; 0xcf5d
UnknownScript_0xcf5d: ; 0xcf5d
- 3callasm $03, $4f7c
+ 3callasm Functioncf7c
if_equal $1, UnknownScript_0xcf6f
loadfont
2writetext UnknownText_0xcf77
@@ -14359,16 +10318,17 @@ UnknownScript_0xcf6f: ; 0xcf6f
UnknownText_0xcf72: ; 0xcf72
; Maybe a #MON can break this.
- text_jump UnknownText_0x1c0906, BANK(UnknownText_0x1c0906)
+ text_jump UnknownText_0x1c0906
db "@"
; 0xcf77
UnknownText_0xcf77: ; 0xcf77
; This rock looks breakable. Want to use ROCK SMASH?
- text_jump UnknownText_0x1c0924, BANK(UnknownText_0x1c0924)
+ text_jump UnknownText_0x1c0924
db "@"
; 0xcf7c
+Functioncf7c: ; cf7c
ld d, $f9
call CheckPartyMove
jr nc, .asm_cf87
@@ -14519,7 +10479,7 @@ UnknownScript_0xd1a9: ; 0xd1a9
2writetext UnknownText_0xd1c8
yesorno
iffalse .script_d1b8
- 3callasm BANK(Functiond1ba), Functiond1ba
+ 3callasm Functiond1ba
iftrue UnknownScript_0xc802
.script_d1b8
loadmovesprites
@@ -14537,7 +10497,7 @@ Functiond1ba: ; d1ba
; d1c8
UnknownText_0xd1c8: ; 0xd1c8
- text_jump UnknownText_0x1c09dd, BANK(UnknownText_0x1c09dd)
+ text_jump UnknownText_0x1c09dd
db "@"
; 0xd1cd
@@ -14546,7 +10506,7 @@ UnknownScript_0xd1cd: ; 0xd1cd
; 0xd1d0
UnknownText_0xd1d0: ; 0xd1d0
- text_jump UnknownText_0x1c0a05, BANK(UnknownText_0x1c0a05)
+ text_jump UnknownText_0x1c0a05
db "@"
; 0xd1d5
@@ -17860,8 +13820,8 @@ Functione6ce: ; e6ce
ld [$d265], a
callba Functioncc0c7
callba Functioncc000
- ld bc, $0e07
- call Function1dd2
+ lb bc, 14, 7
+ call PlaceYesNoBox
ret c
.asm_e6ea
@@ -17869,7 +13829,7 @@ Functione6ce: ; e6ce
ld a, [TempEnemyMonSpecies]
ld [$d265], a
call GetPokemonName
- ld hl, $671d
+ ld hl, UnknownText_0xe71d
call PrintText
ret
; e6fd
@@ -17889,7 +13849,11 @@ Functione6fd: ; e6fd
jp Functiond906
; e71d
-INCBIN "baserom.gbc",$e71d,$e722 - $e71d
+UnknownText_0xe71d: ; 0xe71d
+ ; Caught @ !
+ text_jump UnknownText_0x1c10c0
+ db "@"
+; 0xe722
_DoItemEffect: ; e722
@@ -18386,56 +14350,95 @@ Function7969: ; 7969
; no known jump sources
-Functionf971: ; f971 (3:7971)
+GetPokeBallWobble: ; f971 (3:7971)
+; Returns whether a Poke Ball will wobble in the catch animation.
+; Whether a Pokemon is caught is determined beforehand.
+
push de
- ld a, [rSVBK] ; $ff00+$70
+
+ ld a, [rSVBK]
ld d, a
push de
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [Buffer2] ; $d1eb (aliases: MovementType)
+
+ ld a, 1 ; BANK(Buffer2)
+ ld [rSVBK], a
+
+ ld a, [Buffer2]
inc a
- ld [Buffer2], a ; $d1eb (aliases: MovementType)
- cp $4
- jr z, .asm_f9a8
+ ld [Buffer2], a
+
+; Wobble up to 3 times.
+ cp 3 + 1
+ jr z, .finished
+
ld a, [$c64e]
and a
- ld c, $0
- jr nz, .asm_f9b2
- ld hl, $79ba
- ld a, [Buffer1] ; $d1ea (aliases: MagikarpLength)
+ ld c, 0 ; next
+ jr nz, .done
+
+ ld hl, WobbleChances
+ ld a, [Buffer1]
ld b, a
-.asm_f994
+.loop
ld a, [hli]
cp b
- jr nc, .asm_f99b
+ jr nc, .checkwobble
inc hl
- jr .asm_f994
-.asm_f99b
+ jr .loop
+
+.checkwobble
ld b, [hl]
call Random
cp b
- ld c, $0
- jr c, .asm_f9b2
- ld c, $2
- jr .asm_f9b2
-.asm_f9a8
+ ld c, 0 ; next
+ jr c, .done
+ ld c, 2 ; escaped
+ jr .done
+
+.finished
ld a, [$c64e]
and a
- ld c, $1
- jr nz, .asm_f9b2
- ld c, $2
-.asm_f9b2
+ ld c, 1 ; caught
+ jr nz, .done
+ ld c, 2 ; escaped
+
+.done
pop de
ld e, a
ld a, d
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, e
pop de
ret
; f9ba (3:79ba)
-INCBIN "baserom.gbc",$f9ba,$f9ea - $f9ba
+WobbleChances: ; f9ba
+; catch rate, chance of wobbling / 255
+ db 1, 63
+ db 2, 75
+ db 3, 84
+ db 4, 90
+ db 5, 95
+ db 7, 103
+ db 10, 113
+ db 15, 126
+ db 20, 134
+ db 30, 149
+ db 40, 160
+ db 50, 169
+ db 60, 177
+ db 80, 191
+ db 100, 201
+ db 120, 211
+ db 140, 220
+ db 160, 227
+ db 180, 234
+ db 200, 240
+ db 220, 246
+ db 240, 251
+ db 254, 253
+ db 255, 255
+; f9ea
Functionf9ea: ; f9ea
@@ -18454,16 +14457,20 @@ Functionf9ea: ; f9ea
ret
.asm_f9fe
- ld hl, $7a06
+ ld hl, UnknownText_0xfa06
call PrintText
scf
ret
; fa06
-INCBIN "baserom.gbc",$fa06,$fa0b - $fa06
+UnknownText_0xfa06: ; 0xfa06
+ ; knows @ .
+ text_jump UnknownText_0x1c5ea8
+ db "@"
+; 0xfa0b
-SECTION "bank4",ROMX,BANK[$4]
+SECTION "bank4", ROMX, BANK[$4]
Function10000: ; 10000
ld hl, Options
@@ -20262,7 +16269,7 @@ Function116c1: ; 116c1
ld [$ffde], a
pop af
ld [Options], a
- call ClearJoypadPublic
+ call ClearJoypad
ret
; 116f8
@@ -21570,7 +17577,7 @@ UnknownScript_0x122c1: ; 0x122c1
; 0x122ce
UnknownScript_0x122ce: ; 0x122ce
- 3callasm BANK(Function122f8), Function122f8
+ 3callasm Function122f8
iffalse UnknownScript_0x122e3
disappear $fe
loadfont
@@ -21594,13 +17601,13 @@ UnknownScript_0x122e3: ; 0x122e3
UnknownText_0x122ee: ; 0x122ee
; found @ !
- text_jump UnknownText_0x1c0a1c, BANK(UnknownText_0x1c0a1c)
+ text_jump UnknownText_0x1c0a1c
db "@"
; 0x122f3
UnknownText_0x122f3: ; 0x122f3
; But can't carry any more items.
- text_jump UnknownText_0x1c0a2c, BANK(UnknownText_0x1c0a2c)
+ text_jump UnknownText_0x1c0a2c
db "@"
; 0x122f8
@@ -21848,7 +17855,7 @@ INCBIN "baserom.gbc",$124c1,$124c8 - $124c1
UnknownScript_0x124c8: ; 0x124c8
refreshscreen $0
- 3callasm BANK(Function124fa), Function124fa
+ 3callasm Function124fa
2writetext UnknownText_0x124f5
closetext
special $002e
@@ -21856,9 +17863,9 @@ UnknownScript_0x124c8: ; 0x124c8
special $001b
checkflag $0011
iftrue .script_64f2
- 3callasm BANK(HalveMoney), HalveMoney
- 3callasm BANK(Function12527), Function12527
- 3call BANK(UnknownScript_0x122c1), UnknownScript_0x122c1
+ 3callasm HalveMoney
+ 3callasm Function12527
+ 3call UnknownScript_0x122c1
special $0000
newloadmap $f1
resetfuncs
@@ -21868,7 +17875,7 @@ UnknownScript_0x124c8: ; 0x124c8
; 0x124f5
UnknownText_0x124f5: ; 0x124f5
- text_jump UnknownText_0x1c0a4e, BANK(UnknownText_0x1c0a4e)
+ text_jump UnknownText_0x1c0a4e
db $50
; 0x124fa
@@ -22365,7 +18372,7 @@ StartMenu_Quit: ; 128f0
ret
.EndTheContestText
- text_jump UnknownText_0x1c1a6c, BANK(UnknownText_0x1c1a6c)
+ text_jump UnknownText_0x1c1a6c
db "@"
; 1290b
@@ -22412,7 +18419,7 @@ StartMenu_Pokedex: ; 12937
jr z, .asm_12949
call FadeToMenu
- callba Function40000
+ callba Pokedex
call Function2b3c
.asm_12949
@@ -22539,7 +18546,7 @@ Function129f4: ; 129f4
jr c, .asm_12a42
ld hl, $6a4a
call Function1d4f
- call Function1dcf
+ call YesNoBox
push af
call Function1c07
pop af
@@ -22579,7 +18586,7 @@ CantUseItem: ; 12a60
; 12a67
CantUseItemText: ; 12a67
- text_jump UnknownText_0x1c1b03, BANK(UnknownText_0x1c1b03)
+ text_jump UnknownText_0x1c1b03
db "@"
; 12a6c
@@ -22907,42 +18914,42 @@ GiveTakeItemMenuData: ; 12c9b
TookAndMadeHoldText: ; 12caf
- text_jump UnknownText_0x1c1b2c, BANK(UnknownText_0x1c1b2c)
+ text_jump UnknownText_0x1c1b2c
db "@"
; 12cb4
MadeHoldText: ; 12cb4
- text_jump UnknownText_0x1c1b57, BANK(UnknownText_0x1c1b57)
+ text_jump UnknownText_0x1c1b57
db "@"
; 12cb9
PleaseRemoveMailText: ; 12cb9
- text_jump UnknownText_0x1c1b6f, BANK(UnknownText_0x1c1b6f)
+ text_jump UnknownText_0x1c1b6f
db "@"
; 12cbe
IsntHoldingAnythingText: ; 12cbe
- text_jump UnknownText_0x1c1b8e, BANK(UnknownText_0x1c1b8e)
+ text_jump UnknownText_0x1c1b8e
db "@"
; 12cc3
ItemStorageIsFullText: ; 12cc3
- text_jump UnknownText_0x1c1baa, BANK(UnknownText_0x1c1baa)
+ text_jump UnknownText_0x1c1baa
db "@"
; 12cc8
TookFromText: ; 12cc8
- text_jump UnknownText_0x1c1bc4, BANK(UnknownText_0x1c1bc4)
+ text_jump UnknownText_0x1c1bc4
db "@"
; 12ccd
SwitchAlreadyHoldingText: ; 12ccd
- text_jump UnknownText_0x1c1bdc, BANK(UnknownText_0x1c1bdc)
+ text_jump UnknownText_0x1c1bdc
db "@"
; 12cd2
CantBeHeldText: ; 12cd2
- text_jump UnknownText_0x1c1c09, BANK(UnknownText_0x1c1c09)
+ text_jump UnknownText_0x1c1c09
db "@"
; 12cd7
@@ -22973,7 +18980,7 @@ Function12cea: ; 12cea (4:6cea)
Function12cf5: ; 12cf5
call Function1d4f
- call Function1dcf
+ call YesNoBox
jp Function1c07
; 12cfe
@@ -23079,32 +19086,32 @@ INCBIN "baserom.gbc",$12dc9,$12de2 - $12dc9
UnknownText_0x12de2: ; 0x12de2
- text_jump UnknownText_0x1c1c22, BANK(UnknownText_0x1c1c22)
+ text_jump UnknownText_0x1c1c22
db "@"
; 0x12de7
UnknownText_0x12de7: ; 0x12de7
- text_jump UnknownText_0x1c1c47, BANK(UnknownText_0x1c1c47)
+ text_jump UnknownText_0x1c1c47
db "@"
; 0x12dec
UnknownText_0x12dec: ; 0x12dec
- text_jump UnknownText_0x1c1c62, BANK(UnknownText_0x1c1c62)
+ text_jump UnknownText_0x1c1c62
db "@"
; 0x12df1
UnknownText_0x12df1: ; 0x12df1
- text_jump UnknownText_0x1c1c86, BANK(UnknownText_0x1c1c86)
+ text_jump UnknownText_0x1c1c86
db "@"
; 0x12df6
UnknownText_0x12df6: ; 0x12df6
- text_jump UnknownText_0x1c1ca9, BANK(UnknownText_0x1c1ca9)
+ text_jump UnknownText_0x1c1ca9
db "@"
; 0x12dfb
UnknownText_0x12dfb: ; 0x12dfb
- text_jump UnknownText_0x1c1cc4, BANK(UnknownText_0x1c1cc4)
+ text_jump UnknownText_0x1c1cc4
db "@"
; 0x12e00
@@ -23852,7 +19859,7 @@ SelectMenu: ; 13327
ItemMayBeRegisteredText: ; 13340
- text_jump UnknownText_0x1c1cf3, BANK(UnknownText_0x1c1cf3)
+ text_jump UnknownText_0x1c1cf3
db "@"
; 13345
@@ -24323,7 +20330,7 @@ UnknownScript_0x13603: ; 0x13603
INCBIN "baserom.gbc",$1360f,$13614 - $1360f
UnknownText_0x13614: ; 0x13614
- text_jump UnknownText_0x1bd2e7, BANK(UnknownText_0x1bd2e7)
+ text_jump UnknownText_0x1bd2e7
db $50
; 0x13619
@@ -24869,7 +20876,7 @@ root set root+1
; 13d96
-SECTION "bank5",ROMX,BANK[$5]
+SECTION "bank5", ROMX, BANK[$5]
Function14000: ; 14000
@@ -26623,7 +22630,7 @@ Function14a83: ; 14a83 (5:4a83)
push de
ld hl, $52a1
call Function1d4f
- call Function1dcf
+ call YesNoBox
call Function1c07
jr c, .asm_14ab0
call Function14b89
@@ -26730,8 +22737,8 @@ Function14baf: ; 14baf
ld b, $5
call Function269a
call Function1d58
- ld bc, $0007
- call Function1dd2
+ lb bc, 0, 7
+ call PlaceYesNoBox
ld a, [$cfa9]
dec a
call Function1c17
@@ -26976,7 +22983,7 @@ Function14dd7: ; 14dd7
ld de, $a009
ld bc, $082a
call CopyBytes
- ld hl, FlypointPerms
+ ld hl, VisitedSpawns
ld de, $a833
ld bc, $0032
call CopyBytes
@@ -27043,7 +23050,7 @@ Function14e55: ; 14e55
ld de, $b209
ld bc, $082a
call CopyBytes
- ld hl, FlypointPerms
+ ld hl, VisitedSpawns
ld de, $ba33
ld bc, $0032
call CopyBytes
@@ -27226,7 +23233,7 @@ Function14fd7: ; 14fd7 (5:4fd7)
ld bc, $82a
call CopyBytes
ld hl, $a833
- ld de, FlypointPerms ; $dca5
+ ld de, VisitedSpawns ; $dca5
ld bc, $32
call CopyBytes
call CloseSRAM
@@ -27286,7 +23293,7 @@ Function15046: ; 15046 (5:5046)
ld bc, $82a
call CopyBytes
ld hl, $ba33
- ld de, FlypointPerms ; $dca5
+ ld de, VisitedSpawns ; $dca5
ld bc, $32
call CopyBytes
call CloseSRAM
@@ -27567,7 +23574,38 @@ Function15273: ; 15273
INCBIN "baserom.gbc",$15283,$152ab - $15283
-BlackoutPoints: ; 0x152ab
+SpawnPoints: ; 0x152ab
+
+ const_def
+ const SPAWN_HOME
+ const SPAWN_VIRIDIAN_POKECENTER
+ const SPAWN_PALLET
+ const SPAWN_VIRIDIAN
+ const SPAWN_PEWTER
+ const SPAWN_CERULEAN
+ const SPAWN_ROCK_TUNNEL
+ const SPAWN_VERMILION
+ const SPAWN_LAVENDER
+ const SPAWN_SAFFRON
+ const SPAWN_CELADON
+ const SPAWN_FUCHSIA
+ const SPAWN_CINNABAR
+ const SPAWN_INDIGO_PLATEAU
+ const SPAWN_NEW_BARK
+ const SPAWN_CHERRYGROVE
+ const SPAWN_VIOLET
+ const SPAWN_UNION_CAVE
+ const SPAWN_AZALEA
+ const SPAWN_CIANWOOD
+ const SPAWN_GOLDENROD
+ const SPAWN_OLIVINE
+ const SPAWN_ECRUTEAK
+ const SPAWN_MAHOGANY
+ const SPAWN_LAKE
+ const SPAWN_BLACKTHORN
+ const SPAWN_MT_SILVER
+ const SPAWN_FAST_SHIP
+
db GROUP_KRISS_HOUSE_2F, MAP_KRISS_HOUSE_2F, 3, 3
db GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F, 5, 3 ; unused
db GROUP_PALLET_TOWN, MAP_PALLET_TOWN, 5, 6
@@ -27596,38 +23634,42 @@ BlackoutPoints: ; 0x152ab
db GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY, 21, 30
db GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE, 23, 20
db GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW, 6, 2
- db $ff, $ff, $ff, $ff
+ db -1, -1, -1, -1
+
+Function1531f: ; 1531f
push hl
push de
ld a, [$d001]
- cp $ff
+ cp -1
jr z, .asm_15341
ld l, a
- ld h, $0
+ ld h, 0
add hl, hl
add hl, hl
- ld de, $52ab
+ ld de, SpawnPoints
add hl, de
ld a, [hli]
- ld [MapGroup], a ; $dcb5
+ ld [MapGroup], a
ld a, [hli]
- ld [MapNumber], a ; $dcb6
+ ld [MapNumber], a
ld a, [hli]
- ld [XCoord], a ; $dcb8
+ ld [XCoord], a
ld a, [hli]
- ld [YCoord], a ; $dcb7
+ ld [YCoord], a
.asm_15341
pop de
pop hl
ret
+; 15344
+
Function15344: ; 15344
- ld hl, BlackoutPoints
- ld c, $0
+ ld hl, SpawnPoints
+ ld c, 0
.asm_15349
ld a, [hl]
- cp $ff
+ cp -1
jr z, .asm_1535f
cp d
jr nz, .asm_15356
@@ -27638,7 +23680,7 @@ Function15344: ; 15344
.asm_15356
push bc
- ld bc, $0004
+ ld bc, 4
add hl, bc
pop bc
inc c
@@ -27707,12 +23749,20 @@ Function1541d: ; 1541d
; 15440
INCBIN "baserom.gbc",$15440,$154cf - $15440
+
+Function154cf: ; 154cf
ld a, $1
ld [$FF00+$de], a
ret
+; 154d3
+
+Function154d3: ; 154d3
xor a
ld [$FF00+$de], a
ret
+; 154d7
+
+Function154d7: ; 154d7
ld a, $2
call Function263b
callba Function2454f
@@ -27720,10 +23770,17 @@ INCBIN "baserom.gbc",$15440,$154cf - $15440
ret
; 154ea (5:54ea)
-INCBIN "baserom.gbc",$154ea,$154eb - $154ea
+Function154ea: ; 154ea
+ ret
+; 154eb
+
+Function154eb: ; 154eb
ld hl, $d45b
set 7, [hl]
ret
+; 154f1
+
+Function154f1: ; 154f1
ld hl, $d45b
set 6, [hl]
ret
@@ -28886,7 +24943,7 @@ Function15d97: ; 15d97
call Predef
ld a, $1
call Function15c7d
- call Function1dcf
+ call YesNoBox
ret
; 15da5
@@ -29049,7 +25106,7 @@ Function15efd: ; 15efd
call ClearBox
ld hl, UnknownText_0x15f78
call PrintTextBoxText
- call Function1dcf
+ call YesNoBox
jr c, .asm_15f6e
ld de, Money
ld bc, $ffc3
@@ -29075,31 +25132,31 @@ Function15efd: ; 15efd
; 15f73
UnknownText_0x15f73: ; 0x15f73
- text_jump UnknownText_0x1c4f33, BANK(UnknownText_0x1c4f33)
+ text_jump UnknownText_0x1c4f33
db "@"
; 0x15f78
UnknownText_0x15f78: ; 0x15f78
- text_jump UnknownText_0x1c4f3e, BANK(UnknownText_0x1c4f3e)
+ text_jump UnknownText_0x1c4f3e
db "@"
; 0x15f7d
INCBIN "baserom.gbc",$15f7d,$15f83 - $15f7d
UnknownText_0x15f83: ; 0x15f83
- text_jump UnknownText_0x1c4f62, BANK(UnknownText_0x1c4f62)
+ text_jump UnknownText_0x1c4f62
db "@"
; 0x15f88
INCBIN "baserom.gbc",$15f88,$15fb9 - $15f88
UnknownText_0x15fb9: ; 0x15fb9
- text_jump UnknownText_0x1c500d, BANK(UnknownText_0x1c500d)
+ text_jump UnknownText_0x1c500d
db "@"
; 0x15fbe
UnknownText_0x15fbe: ; 0x15fbe
- text_jump UnknownText_0x1c502e, BANK(UnknownText_0x1c502e)
+ text_jump UnknownText_0x1c502e
db "@"
; 0x15fc3
@@ -29449,14 +25506,14 @@ Function16781: ; 16781
.asm_16788
call Function1689b
- call Function1dcf
+ call YesNoBox
ret
; 1678f
Function1678f: ; 1678f
set 7, [hl]
call Function1689b
- call Function1dcf
+ call YesNoBox
ret
; 16798
@@ -29531,18 +25588,18 @@ Function16807: ; 16807
jr nz, .asm_16819
ld a, $f
call Function1689b
- call Function1dcf
+ call YesNoBox
jr c, .asm_16844
jr .asm_1682d
.asm_16819
ld a, $b
call Function1689b
- call Function1dcf
+ call YesNoBox
jr c, .asm_16844
ld a, $c
call Function1689b
- call Function1dcf
+ call YesNoBox
jr c, .asm_16844
.asm_1682d
@@ -29641,7 +25698,7 @@ Function16936: ; 16936
.asm_16949
ld hl, $6993
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_1697c
ld a, [PartyCount]
cp $6
@@ -30423,12 +26480,14 @@ Function16f3e: ; 16f3e
jr .loop
; 16f5e
+Function16f5e: ; 16f5e
call ResetWindow
call Function1d6e
call Function16f70
call Function2b4d
call Function3d47
jp Function2dcf
+; 16f70
; known jump sources: 16f64 (5:6f64)
Function16f70: ; 16f70 (5:6f70)
@@ -30545,7 +26604,7 @@ Function16f7a: ; 16f7a (5:6f7a)
push de
ld hl, $70ba
call PrintText
- call Function1dcf
+ call YesNoBox
pop de
jr c, .asm_17074
ld a, $1
@@ -31138,79 +27197,23 @@ Function1746c: ; 1746c
INCBIN "baserom.gbc",$1749c,$174ba - $1749c
-SECTION "bank6",ROMX,BANK[$6]
+SECTION "Tileset Data 1", ROMX, BANK[TILESETS_1]
INCLUDE "tilesets/data_1.asm"
-SECTION "bank7",ROMX,BANK[$7]
+SECTION "Roofs", ROMX, BANK[ROOFS]
-LoadMapGroupRoof: ; 1c000
- ld a, [MapGroup]
- ld e, a
- ld d, 0
- ld hl, MapGroupRoofs
- add hl, de
- ld a, [hl]
- cp $ff
- ret z
- ld hl, Roofs
- ld bc, $90
- call AddNTimes
- ld de, $90a0
- ld bc, $90
- call CopyBytes
- ret
-; 1c021
-
-MapGroupRoofs: ; 1c021i
- db -1 ; group 1
- db 3 ; group 2
- db 2 ; group 3
- db -1 ; group 4
- db 1 ; group 5
- db 2 ; group 6
- db -1 ; group 7
- db -1 ; group 8
- db 2 ; group 9
- db 2 ; group 10
- db 1 ; group 11
- db 4 ; group 12
- db -1 ; group 13
- db -1 ; group 14
- db -1 ; group 15
- db -1 ; group 16
- db -1 ; group 17
- db -1 ; group 18
- db -1 ; group 19
- db 0 ; group 20
- db -1 ; group 21
- db -1 ; group 22
- db 3 ; group 23
- db -1 ; group 24
- db 0 ; group 25
- db -1 ; group 26
- db 0 ; group 27
-; 1c03c
-
-Roofs: ; 1c03c
-INCBIN "gfx/tilesets/roofs/0.2bpp"
-INCBIN "gfx/tilesets/roofs/1.2bpp"
-INCBIN "gfx/tilesets/roofs/2.2bpp"
-INCBIN "gfx/tilesets/roofs/3.2bpp"
-INCBIN "gfx/tilesets/roofs/4.2bpp"
-; 1c30c
+INCLUDE "tilesets/roofs.asm"
-INCLUDE "tilesets/data_2.asm"
-; Songs i
+SECTION "Tileset Data 2", ROMX, BANK[TILESETS_2]
+
+INCLUDE "tilesets/data_2.asm"
-INCLUDE "audio/music/credits.asm"
-INCLUDE "audio/music/clair.asm"
-INCLUDE "audio/music/mobileadapter.asm"
-SECTION "bank8",ROMX,BANK[$8]
+SECTION "bank8", ROMX, BANK[$8]
; known jump sources: 200e8 (8:40e8), 200f9 (8:40f9), 20169 (8:4169)
@@ -31282,7 +27285,7 @@ Function20051: ; 20051 (8:4051)
call Function2011f
ld hl, $40b0
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_200ad
ld a, [$d1ed]
ld [StringBuffer2], a ; $d086
@@ -31421,12 +27424,13 @@ Function20168: ; 20168 (8:4168)
INCBIN "baserom.gbc",$2017c,$20181 - $2017c
-INCLUDE "tilesets/data_3.asm"
+SECTION "Tileset Data 3", ROMX, BANK[TILESETS_3]
+INCLUDE "tilesets/data_3.asm"
-SECTION "bank9",ROMX,BANK[$9]
+SECTION "bank9", ROMX, BANK[$9]
INCBIN "baserom.gbc",$24000,$2400e - $24000
@@ -32154,7 +28158,7 @@ Function2445d: ; 2445d
; 24468
UnknownText_0x24468: ; 24468
- text_jump UnknownText_0x1c46b7, BANK(UnknownText_0x1c46b7)
+ text_jump UnknownText_0x1c46b7
db "@"
; 2446d
@@ -33795,34 +29799,29 @@ MenuData2_0x24edc: ; 24edc
; 24ef2
-LoadBattleMenuDataHeader: ; 4ef2
+LoadBattleMenuDataHeader: ; 24ef2
ld hl, BattleMenuDataHeader
call LoadMenuDataHeader
-
- ; store a
ld a, [$d0d2]
ld [$cf88], a
-
call Function2039
-
- ; restore a
ld a, [$cf88]
ld [$d0d2], a
-
call Function1c07
ret
; 24f0b
-LoadSafariBattleMenuDataHeader: ; 24f0b
+Function24f0b: ; 24f0b
; Safari battle menu (untranslated).
- ld hl, SafariBattleMenuDataHeader
+ ld hl, MenuDataHeader_0x24f4e
call LoadMenuDataHeader
jr Function24f19
; 24f13
-LoadParkBattleMenuDataHeader: ; 24f13
- ld hl, ParkBattleMenuDataHeader
+Function24f13: ; 24f13
+; Park battle menu.
+ ld hl, MenuDataHeader_0x24f89
call LoadMenuDataHeader
; 24f19
@@ -33841,19 +29840,19 @@ BattleMenuDataHeader: ; 24f2c
db $40 ; flags
db 12, 08 ; start coords
db 17, 19 ; end coords
- dw BattleMenuData
+ dw MenuData_0x24f34
db 1 ; default option
; 24f34
-BattleMenuData: ; 0x24f34
+MenuData_0x24f34: ; 0x24f34
db $81 ; flags
dn 2, 2 ; rows, columns
db 6 ; spacing
- dbw BANK(BattleMenuStrings), BattleMenuStrings
+ dbw BANK(Strings24f3d), Strings24f3d
dbw $09, $0000
; 0x24f3d
-BattleMenuStrings: ; 0x24f3d
+Strings24f3d: ; 0x24f3d
db "FIGHT@"
db $4a, "@"
db "PACK@"
@@ -33861,23 +29860,23 @@ BattleMenuStrings: ; 0x24f3d
; 24f4e
-SafariBattleMenuDataHeader: ; 24f4e
+MenuDataHeader_0x24f4e: ; 24f4e
db $40 ; flags
db 12, 00 ; start coords
db 17, 19 ; end coords
- dw SafariBattleMenuData
+ dw MenuData_0x24f56
db 1 ; default option
; 24f56
-SafariBattleMenuData: ; 24f56
+MenuData_0x24f56: ; 24f56
db $81 ; flags
dn 2, 2 ; rows, columns
db 11 ; spacing
- dbw BANK(SafariBattleMenuStrings), SafariBattleMenuStrings
+ dbw BANK(Strings24f5f), Strings24f5f
dbw BANK(Function24f7c), Function24f7c
; 24f5f
-SafariBattleMenuStrings: ; 24f5f
+Strings24f5f: ; 24f5f
db "サファりボール× @" ; "SAFARI BALL× @"
db "エサをなげる@" ; "THROW BAIT"
db "いしをなげる@" ; "THROW ROCK"
@@ -33893,23 +29892,23 @@ Function24f7c: ; 24f7c
; 24f89
-ParkBattleMenuDataHeader: ; 24f89
+MenuDataHeader_0x24f89: ; 24f89
db $40 ; flags
db 12, 02 ; start coords
db 17, 19 ; end coords
- dw ParkBattleMenuData
+ dw MenuData_0x24f91
db 1 ; default option
; 24f91
-ParkBattleMenuData: ; 24f91
+MenuData_0x24f91: ; 24f91
db $81 ; flags
dn 2, 2 ; rows, columns
db 12 ; spacing
- dbw BANK(ParkBattleMenuStrings), ParkBattleMenuStrings
+ dbw BANK(Strings24f9a), Strings24f9a
dbw BANK(Function24fb2), Function24fb2
; 24f9a
-ParkBattleMenuStrings: ; 24f9a
+Strings24f9a: ; 24f9a
db "FIGHT@"
db $4a, "@"
db "PARKBALL× @"
@@ -34664,7 +30663,7 @@ INCBIN "baserom.gbc",$254a7,$265d3 - $254a7
ProfOaksPC: ; 0x265d3
ld hl, OakPCText1
call Function1d4f
- call Function1dcf
+ call YesNoBox
jr c, .shutdown
call ProfOaksPCBoot ; player chose "yes"?
.shutdown
@@ -35571,7 +31570,7 @@ Function27a28: ; 27a28
; 27a2d
-SECTION "bankA",ROMX,BANK[$A]
+SECTION "bankA", ROMX, BANK[$A]
Function28000: ; 28000
call WhiteBGMap
@@ -36022,7 +32021,7 @@ Function28177: ; 28177
ld [rIE], a
pop af
ld [rIF], a
- ld a, PREDEF_START_BATTLE
+ ld a, $16
call Predef
ld a, [rIF]
ld h, a
@@ -36318,7 +32317,7 @@ Function284f6: ; 284f6
push bc
ld hl, $0001
add hl, bc
- ld bc, $001a
+ ld bc, OBJECT_SPRITE_Y_OFFSET
call CopyBytes
pop bc
ld hl, $001f
@@ -37336,7 +33335,7 @@ Function28b87: ; 28b87
call GetPartyLocation
ld b, h
ld c, l
- callba Function4f301
+ callba GetCaughtGender
ld a, c
ld [$c701], a
ld hl, $d26b
@@ -37375,7 +33374,7 @@ Function28b87: ; 28b87
call GetPartyLocation
ld b, h
ld c, l
- callba Function4f301
+ callba GetCaughtGender
ld a, c
ld [$c733], a
ld a, [DefaultFlypoint]
@@ -39668,7 +35667,7 @@ INCBIN "gfx/misc/dude.lz"
; 2bce1
-SECTION "bankB",ROMX,BANK[$B]
+SECTION "bankB", ROMX, BANK[$B]
Function2c000: ; 2c000
ld a, $e4
@@ -40123,7 +36122,7 @@ Function2c545: ; 2c545 (b:4545)
Function2c547: ; 2c547
ld hl, $45ef
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_2c5c3
ld hl, $45f4
call PrintText
@@ -40154,7 +36153,7 @@ Function2c547: ; 2c547
call GetMoveName
ld hl, $45d6
call PrintText
- call Function1dcf
+ call YesNoBox
pop bc
jr c, .asm_2c5c3
call Function2c5f9
@@ -40464,7 +36463,7 @@ Function2c7bf: ; 2c7bf (b:47bf)
call PrintText
ld hl, $48c9
call PrintText
- call Function1dcf
+ call YesNoBox
.asm_2c7f5
pop bc
ld a, b
@@ -41351,20 +37350,17 @@ FillBox: ; 2ef6e
; 2ef9f
-
-SECTION "bankC",ROMX,BANK[$C]
+SECTION "Tileset Data 4", ROMX, BANK[TILESETS_4]
INCLUDE "tilesets/data_4.asm"
-INCBIN "baserom.gbc",$329f0,$333f0 - $329f0
-
-SECTION "bankD",ROMX,BANK[$D]
+SECTION "bankD", ROMX, BANK[$D]
INCLUDE "battle/effect_commands.asm"
-SECTION "bankE",ROMX,BANK[$E]
+SECTION "bankE", ROMX, BANK[$E]
Function38000: ; 38000
and a
@@ -41948,7 +37944,7 @@ Function3846c: ; 3846c
; 384d0
UnknownText_0x384d0: ; 384d0
- text_jump UnknownText_0x1bcf9c, BANK(UnknownText_0x1bcf9c)
+ text_jump UnknownText_0x1bcf9c
db "@"
; 384d5
@@ -42073,7 +38069,7 @@ Function38571: ; 38571
; 3858c
UnknownText_0x3858c: ; 3858c
- text_jump UnknownText_0x1bcfaf, BANK(UnknownText_0x1bcfaf)
+ text_jump UnknownText_0x1bcfaf
db "@"
; 38591
@@ -42434,9503 +38430,22 @@ Function39990: ; 39990
ret
; 39999
-TrainerGroups: ; 0x39999
INCLUDE "trainers/trainer_pointers.asm"
INCLUDE "trainers/trainers.asm"
-SECTION "bankF",ROMX,BANK[$F]
-
-Function3c000: ; 3c000
- xor a
- ld [$c664], a
- ld [$c6fc], a
- ld [$d0ec], a
- ld [BattleEnded], a
- inc a
- ld [$d264], a
- ld hl, OTPartyMon1CurHP
- ld bc, $002f
- ld d, $3
-.asm_3c019
- inc d
- ld a, [hli]
- or [hl]
- jr nz, .asm_3c021
- add hl, bc
- jr .asm_3c019
-
-.asm_3c021
- ld a, d
- ld [$d430], a
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3c031
- ld a, [$ffcb]
- cp $2
-.data_3c02f
- db $28
- db $1b
-
-.asm_3c031
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3c047
- xor a
- ld [$c718], a
- call Function3d834
- call Function3d867
- call Function3dc18
- call Function3d4e1
-
-.asm_3c047
- ld c, $28
- call DelayFrames
- call Function309d
- call Function3d873
- ld a, d
- and a
- jp z, LostBattle
- call Function30b4
- ld a, [BattleType]
- cp $2
- jp z, Function3c0e2
- cp $3
- jp z, Function3c0e2
- xor a
- ld [CurPartyMon], a
-.asm_3c06b
- call Function3d887
- jr nz, .asm_3c076
- ld hl, CurPartyMon
- inc [hl]
- jr .asm_3c06b
-
-.asm_3c076
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- inc a
- ld hl, PartyCount
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [CurPartySpecies], a
- ld [TempBattleMonSpecies], a
- ld hl, $c505
- ld a, $9
- call Function3d490
- call Function309d
- call Function3d57a
- call Function3da0d
- call Function3dab1
- call Function3f26d
- call Function3dbde
- call Function3dc18
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- call SetPlayerTurn
- call Function3dc23
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3c0df
- ld a, [$ffcb]
- cp $2
- jr nz, .asm_3c0df
- xor a
- ld [$c718], a
- call Function3d834
- call Function3d867
- call Function3dc18
- call Function3d4e1
- call SetEnemyTurn
- call Function3dc23
-
-.asm_3c0df
- jp Function3c12f
-; 3c0e2
-
-Function3c0e2: ; 3c0e2
- jp Function3e139
-; 3c0e5
-
-
-
-Function3c0e5: ; 3c0e5
- call Function30b4
- ld a, [$d0ee]
- and $c0
- add $2
- ld [$d0ee], a
- ld a, [InLinkBattle]
- and a
- ld hl, $47bd
- jr z, .asm_3c115
- ld a, [$d0ee]
- and $c0
- ld [$d0ee], a
- ld hl, $47cf
- call Function3d2e0
- jr nc, .asm_3c115
- ld hl, $cd2a
- bit 4, [hl]
- jr nz, .asm_3c118
- ld hl, $5863
-
-.asm_3c115
- call StdBattleTextBox
-
-.asm_3c118
- call Function3ceec
- call Function3d2e0
- jr c, .asm_3c126
-
- ld de, SFX_RUN
- call PlaySFX
-
-.asm_3c126
- call SetPlayerTurn
- ld a, 1
- ld [BattleEnded], a
- ret
-; 3c12f
-
-Function3c12f: ; 3c12f
- call Function3c1bf
- call Function3c3f5
- jp c, .asm_3c1be
- xor a
- ld [$c710], a
- ld [$c711], a
- ld [$d264], a
- ld [$c73f], a
- ld [$c740], a
- ld [CurDamage], a
- ld [$d257], a
- call Function3c27c
- call UpdateBattleMonInParty
- callba AIChooseMove
- call CheckInMobileLinkBattle
- jr nz, .notmobilelinkbattle
- callba Function100da5
- callba Function100641
- callba Function100dd8
- jp c, .asm_3c1be
-
-.notmobilelinkbattle
- call Function3c410
- jr c, .asm_3c18a
-.asm_3c179
- call Function3e139
- jr c, .asm_3c1be
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c1be
- ld a, [$d232]
- and a
- jr nz, .asm_3c1be
-
-.asm_3c18a
- call Function3c434
- jr nz, .asm_3c179
- call Function3c300
- jr c, .asm_3c1be
- call Function3c314
- jr c, .asm_3c19e
- call Function3c5fe
- jr .asm_3c1a1
-
-.asm_3c19e
- call Function3c664
-
-.asm_3c1a1
- call Function3d2e0
- jr c, .asm_3c1be
- ld a, [$d232]
- and a
- jr nz, .asm_3c1be
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c1be
- call Function3c1d6
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c1be
- jp Function3c12f
-
-.asm_3c1be
- ret
-; 3c1bf
-
-Function3c1bf: ; 3c1bf
- ret
-; 3c1c0
-
-
-Function3c1c0: ; 3c1c0
- ld a, $5
- call GetSRAMBank
- ld hl, $a89b
- inc [hl]
- jr nz, .asm_3c1d2
- dec hl
- inc [hl]
- jr nz, .asm_3c1d2
- dec [hl]
- inc hl
- dec [hl]
-
-.asm_3c1d2
- call CloseSRAM
- ret
-; 3c1d6
-
-
-Function3c1d6: ; 3c1d6
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c1fe
- call Function3c23c
- ret c
- call Function3ca26
- call Function3c23c
- ret c
- call HandleWeather
- call Function3c23c
- ret c
- call Function3c874
- call Function3c23c
- ret c
- call Function3c801
- call Function3c23c
- ret c
- jr .asm_3c21e
-
-.asm_3c1fe
- call Function3c25c
- ret c
- call Function3ca26
- call Function3c25c
- ret c
- call HandleWeather
- call Function3c25c
- ret c
- call Function3c874
- call Function3c25c
- ret c
- call Function3c801
- call Function3c25c
- ret c
-
-.asm_3c21e
- call Function3c8eb
- call Function3c93c
- call Function3ca8f
- call Function3cafb
- call Function3cb36
- call Function3de97
- call Function3dcf9
- call UpdateBattleMonInParty
- call Function309d
- jp Function3c4df
-; 3c23c
-
-Function3c23c: ; 3c23c
- call Function3c710
- jr nz, .asm_3c24a
- call Function3d14e
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c25a
-
-.asm_3c24a
- call Function3c70b
- jr nz, .asm_3c258
- call Function3cd55
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c25a
-
-.asm_3c258
- and a
- ret
-
-.asm_3c25a
- scf
- ret
-; 3c25c
-
-Function3c25c: ; 3c25c
- call Function3c70b
- jr nz, .asm_3c26a
- call Function3cd55
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c27a
-
-.asm_3c26a
- call Function3c710
- jr nz, .asm_3c278
- call Function3d14e
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c27a
-
-.asm_3c278
- and a
- ret
-
-.asm_3c27a
- scf
- ret
-; 3c27c
-
-Function3c27c: ; 3c27c
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c287
- call .asm_3c28a
- jr .asm_3c296
-
-.asm_3c287
- call .asm_3c296
-.asm_3c28a
- call SetPlayerTurn
- ld de, PartyMon1Item
- ld a, [CurBattleMon]
- ld b, a
- jr .asm_3c2a0
-
-.asm_3c296
- call SetEnemyTurn
- ld de, OTPartyMon1Item
- ld a, [CurOTMon]
- ld b, a
-
-.asm_3c2a0
- push de
- push bc
- callab GetUserItem
- ld a, [hl]
- ld [$d265], a
- sub $98
- pop bc
- pop de
- ret nz
- ld [hl], a
- ld h, d
- ld l, e
- ld a, b
- call GetPartyLocation
- xor a
- ld [hl], a
- ld a, $2
- call _GetBattleVar
- push af
- set 7, [hl]
- ld a, $c
- call _GetBattleVar
- push hl
- push af
- xor a
- ld [hl], a
- ld [AttackMissed], a
- ld [EffectFailed], a
- callba BattleCommand77
- pop af
- pop hl
- ld [hl], a
- call GetItemName
- ld hl, $4bde
- call StdBattleTextBox
- callab BattleCommand8c
- pop af
- bit 7, a
- ret nz
- xor a
- ld [$cfca], a
- ld de, $0103
- call Function3ee0f
- call Function3c8e4
- ld hl, $4d97
- jp StdBattleTextBox
-; 3c300
-
-Function3c300: ; 3c300
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3c30d
- ld a, [$d430]
- cp $f
- jr z, .asm_3c30f
-
-.asm_3c30d
- and a
- ret
-
-.asm_3c30f
- call Function3c0e5
- scf
- ret
-; 3c314
-
-Function3c314: ; 3c314
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3c35b
- ld a, [$d430]
- cp $e
- jr z, .asm_3c35b
- cp $d
- jr z, .asm_3c35b
- sub $4
- jr c, .asm_3c35b
- ld a, [$d0ec]
- cp $2
- jr nz, .asm_3c34c
- ld a, [$ffcb]
- cp $2
- jr z, .asm_3c341
- call BattleRandom
- cp $80
- jp c, .asm_3c3f1
- jp Function3c3f3
-
-.asm_3c341
- call BattleRandom
- cp $80
- jp c, Function3c3f3
- jp .asm_3c3f1
-
-.asm_3c34c
- callab Function3846c
- call SetEnemyTurn
- call Function3dc23
- jp Function3c3f3
-
-.asm_3c35b
- ld a, [$d0ec]
- and a
- jp nz, .asm_3c3f1
- call Function3c5b4
- jr z, .asm_3c36d
- jp c, .asm_3c3f1
- jp Function3c3f3
-
-.asm_3c36d
- call SetPlayerTurn
- callab GetUserItem
- push bc
- callab GetOpponentItem
- pop de
- ld a, d
- cp $4a
- jr nz, .asm_3c391
- ld a, b
- cp $4a
- jr z, .asm_3c39f
- call BattleRandom
- cp e
- jr nc, .asm_3c3c5
- jp .asm_3c3f1
-
-.asm_3c391
- ld a, b
- cp $4a
- jr nz, .asm_3c3c5
- call BattleRandom
- cp c
- jr nc, .asm_3c3c5
- jp Function3c3f3
-
-.asm_3c39f
- ld a, [$ffcb]
- cp $2
- jr z, .asm_3c3b5
- call BattleRandom
- cp c
- jp c, Function3c3f3
- call BattleRandom
- cp e
- jp c, .asm_3c3f1
- jr .asm_3c3c5
-
-.asm_3c3b5
- call BattleRandom
- cp e
- jp c, .asm_3c3f1
- call BattleRandom
- cp c
- jp c, Function3c3f3
- jr .asm_3c3c5
-
-.asm_3c3c5
- ld de, BattleMonSpd
- ld hl, EnemyMonSpd
- ld c, $2
- call StringCmp
- jr z, .asm_3c3d8
- jp nc, .asm_3c3f1
- jp Function3c3f3
-
-.asm_3c3d8
- ld a, [$ffcb]
- cp $2
- jr z, .asm_3c3e9
- call BattleRandom
- cp $80
- jp c, .asm_3c3f1
- jp Function3c3f3
-
-.asm_3c3e9
- call BattleRandom
- cp $80
- jp c, Function3c3f3
-.asm_3c3f1
- scf
- ret
-; 3c3f3
-
-Function3c3f3: ; 3c3f3
- and a
- ret
-; 3c3f5
-
-Function3c3f5: ; 3c3f5
- ld a, [BattleType]
- cp $6
- jr nz, .asm_3c40e
- ld a, [$dc79]
- and a
- jr nz, .asm_3c40e
- ld a, [$d0ee]
- and $c0
- add $2
- ld [$d0ee], a
- scf
- ret
-
-.asm_3c40e
- and a
- ret
-; 3c410
-
-Function3c410: ; 3c410
- ld a, [PlayerSubStatus4]
- and $20
- jp nz, Function3c432
- ld hl, EnemySubStatus3
- res 3, [hl]
- ld hl, PlayerSubStatus3
- res 3, [hl]
- ld a, [hl]
- and $12
- jp nz, Function3c432
- ld hl, PlayerSubStatus1
- bit 6, [hl]
- jp nz, Function3c432
- and a
- ret
-; 3c432
-
-Function3c432: ; 3c432
- scf
- ret
-; 3c434
-
-Function3c434: ; 3c434
- call Function3c410
- jp c, .asm_3c4ba
- ld hl, PlayerSubStatus5
- bit 4, [hl]
- jr z, .asm_3c449
- ld a, [LastPlayerMove]
- ld [CurPlayerMove], a
- jr .asm_3c47c
-
-.asm_3c449
- ld a, [$d0ec]
- cp $2
- jr z, .asm_3c4ce
- and a
- jr nz, .asm_3c4b5
- ld a, [PlayerSubStatus3]
- and $1
- jr nz, .asm_3c4ba
- xor a
- ld [$d235], a
- inc a
- ld [FXAnimIDLo], a
- call Function3e4bc
- push af
- call Function30b4
- call UpdateBattleHuds
- ld a, [CurPlayerMove]
- cp $a5
- jr z, .asm_3c476
- call PlayClickSFX
-
-.asm_3c476
- ld a, $1
- ld [hBGMapMode], a
- pop af
- ret nz
-
-.asm_3c47c
- call SetPlayerTurn
- callab UpdateMoveData
- xor a
- ld [$c732], a
- ld a, [PlayerMoveEffect]
- cp $77
- jr z, .asm_3c494
- xor a
- ld [PlayerFuryCutterCount], a
-
-.asm_3c494
- ld a, [PlayerMoveEffect]
- cp $51
- jr z, .asm_3c4a4
- ld hl, PlayerSubStatus4
- res 6, [hl]
- xor a
- ld [$c72b], a
-
-.asm_3c4a4
- ld a, [PlayerMoveEffect]
- cp $6f
- jr z, .asm_3c4c9
- cp $74
- jr z, .asm_3c4c9
- xor a
- ld [$c679], a
- jr .asm_3c4c9
-
-.asm_3c4b5
- ld hl, PlayerSubStatus3
- res 0, [hl]
-
-.asm_3c4ba
- xor a
- ld [PlayerFuryCutterCount], a
- ld [$c679], a
- ld [$c72b], a
- ld hl, PlayerSubStatus4
- res 6, [hl]
-
-.asm_3c4c9
- call Function3e7c1
- xor a
- ret
-
-.asm_3c4ce
- xor a
- ld [PlayerFuryCutterCount], a
- ld [$c679], a
- ld [$c72b], a
- ld hl, PlayerSubStatus4
- res 6, [hl]
- xor a
- ret
-; 3c4df
-
-Function3c4df: ; 3c4df
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c4ea
- call .asm_3c4ed
- jr .asm_3c518
-
-.asm_3c4ea
- call .asm_3c518
-.asm_3c4ed
- ld hl, PlayerSubStatus5
- bit 4, [hl]
- ret z
- ld a, [PlayerEncoreCount]
- dec a
- ld [PlayerEncoreCount], a
- jr z, .asm_3c50a
- ld hl, BattleMonPPMove1
- ld a, [CurMoveNum]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- and $3f
- ret nz
-
-.asm_3c50a
- ld hl, PlayerSubStatus5
- res 4, [hl]
- call SetEnemyTurn
- ld hl, $4c8a
- jp StdBattleTextBox
-
-.asm_3c518
- ld hl, EnemySubStatus5
- bit 4, [hl]
- ret z
- ld a, [EnemyEncoreCount]
- dec a
- ld [EnemyEncoreCount], a
- jr z, .asm_3c535
- ld hl, EnemyMonPPMove1
- ld a, [CurEnemyMoveNum]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- and $3f
- ret nz
-
-.asm_3c535
- ld hl, EnemySubStatus5
- res 4, [hl]
- call SetPlayerTurn
- ld hl, $4c8a
- jp StdBattleTextBox
-; 3c543
-
-
-Function3c543: ; 3c543
- ld a, [IsInBattle]
- dec a
- jr nz, .Stay
-
- ld a, [PlayerSubStatus5]
- bit 7, a
- jr nz, .Stay
-
- ld a, [$c731]
- and a
- jr nz, .Stay
-
- ld a, [EnemyMonStatus]
- and 1 << FRZ | SLP
- jr nz, .Stay
-
- ld a, [TempEnemyMonSpecies]
- ld de, 1
- ld hl, .Always
- call IsInArray
- jr c, .Flee
-
- call BattleRandom
- ld b, a
- cp $80
- jr nc, .Stay
-
- push bc
- ld a, [TempEnemyMonSpecies]
- ld de, 1
- ld hl, .Often
- call IsInArray
- pop bc
- jr c, .Flee
-
- ld a, b
- cp $1a
- jr nc, .Stay
-
- ld a, [TempEnemyMonSpecies]
- ld de, 1
- ld hl, .Sometimes
- call IsInArray
- jr c, .Flee
-
-.Stay
- and a
- ret
-
-.Flee
- scf
- ret
-; 3c59a
-
-.Sometimes
- db MAGNEMITE
- db GRIMER
- db TANGELA
- db MR__MIME
- db EEVEE
- db PORYGON
- db DRATINI
- db DRAGONAIR
- db TOGETIC
- db UMBREON
- db UNOWN
- db SNUBBULL
- db HERACROSS
- db $ff
-
-.Often
- db CUBONE
- db ARTICUNO
- db ZAPDOS
- db MOLTRES
- db QUAGSIRE
- db DELIBIRD
- db PHANPY
- db TEDDIURSA
- db $ff
-
-.Always
- db RAIKOU
- db ENTEI
-; db SUICUNE
- db $ff
-; 3c5b4
-
-
-Function3c5b4: ; 3c5b4
- ld a, [CurPlayerMove]
- call GetMovePriority
- ld b, a
- push bc
- ld a, [CurEnemyMove]
- call GetMovePriority
- pop bc
- cp b
- ret
-; 3c5c5
-
-GetMovePriority: ; 3c5c5
- ld b, a
- cp VITAL_THROW
- ld a, 0
- ret z
- call Function3c5ec
- ld hl, .data_3c5df
-.loop
- ld a, [hli]
- cp b
- jr z, .asm_3c5dd
- inc hl
- cp $ff
- jr nz, .loop
- ld a, 1
- ret
-
-.asm_3c5dd
- ld a, [hl]
- ret
-; 3c5df
-
-.data_3c5df
- db EFFECT_PROTECT, 3
- db EFFECT_ENDURE, 3
- db EFFECT_PRIORITY_HIT, 2
- db EFFECT_WHIRLWIND, 0
- db EFFECT_COUNTER, 0
- db EFFECT_MIRROR_COAT, 0
- db $ff
-; 3c5ec
-
-
-Function3c5ec: ; 3c5ec
- ld a, b
- dec a
- ld hl, $5afc
- ld bc, $0007
- call AddNTimes
- ld a, $10
- call GetFarByte
- ld b, a
- ret
-; 3c5fe
-
-Function3c5fe: ; 3c5fe
- call Function309d
- call Function3c543
- jp c, Function3c0e5
- call SetEnemyTurn
- ld a, $1
- ld [$c70f], a
- callab Function38000
- jr c, .asm_3c62f
- call Function3c6de
- call Function3d2e0
- ret c
- ld a, [$d232]
- and a
- ret nz
- call Function3c710
- jp z, Function3d14e
- call Function3c70b
- jp z, Function3cd55
-
-.asm_3c62f
- call SetEnemyTurn
- call Function3c716
- jp z, Function3cd55
- call RefreshBattleHuds
- call Function3c6cf
- call Function3d2e0
- ret c
- ld a, [$d232]
- and a
- ret nz
- call Function3c70b
- jp z, Function3cd55
- call Function3c710
- jp z, Function3d14e
- call SetPlayerTurn
- call Function3c716
- jp z, Function3d14e
- call RefreshBattleHuds
- xor a
- ld [$d0ec], a
- ret
-; 3c664
-
-Function3c664: ; 3c664
- xor a
- ld [$c70f], a
- call SetEnemyTurn
- callab Function38000
- push af
- call Function3c6cf
- pop bc
- ld a, [$d232]
- and a
- ret nz
- call Function3d2e0
- ret c
- call Function3c70b
- jp z, Function3cd55
- call Function3c710
- jp z, Function3d14e
- push bc
- call SetPlayerTurn
- call Function3c716
- pop bc
- jp z, Function3d14e
- push bc
- call RefreshBattleHuds
- pop af
- jr c, .asm_3c6be
- call Function309d
- call Function3c543
- jp c, Function3c0e5
- call Function3c6de
- call Function3d2e0
- ret c
- ld a, [$d232]
- and a
- ret nz
- call Function3c710
- jp z, Function3d14e
- call Function3c70b
- jp z, Function3cd55
-
-.asm_3c6be
- call SetEnemyTurn
- call Function3c716
- jp z, Function3cd55
- call RefreshBattleHuds
- xor a
- ld [$d0ec], a
- ret
-; 3c6cf
-
-Function3c6cf: ; 3c6cf
- call SetPlayerTurn
- call Function3c6fe
- callab DoPlayerTurn
- jp Function3c6ed
-; 3c6de
-
-Function3c6de: ; 3c6de
- call SetEnemyTurn
- call Function3c6fe
- callab DoEnemyTurn
- jp Function3c6ed
-; 3c6ed
-
-Function3c6ed: ; 3c6ed
- ld a, $5
- call _GetBattleVar
- res 2, [hl]
- res 5, [hl]
- ld a, $9
- call _GetBattleVar
- res 6, [hl]
- ret
-; 3c6fe
-
-Function3c6fe: ; 3c6fe
- ld a, $4
- call _GetBattleVar
- res 6, [hl]
- ret
-; 3c706
-
-Function3c706: ; 3c706
- ld a, [hBattleTurn]
- and a
- jr z, Function3c710
-Function3c70b: ; 3c70b
- ld hl, EnemyMonHPHi
- jr asm_3c713
-
-Function3c710: ; 3c710
- ld hl, BattleMonHP
-
-asm_3c713
- ld a, [hli]
- or [hl]
- ret
-; 3c716
-
-Function3c716: ; 3c716
- call Function3c706
- ret z
- ld a, $a
- call GetBattleVar
- and $18
- jr z, .asm_3c768
- ld hl, $47e2
- ld de, $0106
- and $10
- jr z, .asm_3c733
- ld hl, $47f8
- ld de, $0105
-
-.asm_3c733
- push de
- call StdBattleTextBox
- pop de
- xor a
- ld [$cfca], a
- call Function3ee0f
- call GetEighthMaxHP
- ld de, $c674
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c74d
- ld de, $c67c
-
-.asm_3c74d
- ld a, $4
- call GetBattleVar
- bit 0, a
- jr z, .asm_3c765
- call Function3cc76
- ld a, [de]
- inc a
- ld [de], a
- ld hl, $0000
-.asm_3c75f
- add hl, bc
- dec a
- jr nz, .asm_3c75f
- ld b, h
- ld c, l
-
-.asm_3c765
- call Function3cc3f
-
-.asm_3c768
- call Function3c706
- jp z, .asm_3c7f7
- ld a, $3
- call _GetBattleVar
- bit 7, [hl]
- jr z, .asm_3c7a1
- call Function3c8e4
- xor a
- ld [$cfca], a
- ld de, $0107
- ld a, $7
- call GetBattleVar
- and $60
- call z, Function3ee0f
- call Function3c8e4
- call GetEighthMaxHP
- call Function3cc3f
- ld a, $1
- ld [hBGMapMode], a
- call Function3ccef
- ld hl, $480e
- call StdBattleTextBox
-
-.asm_3c7a1
- call Function3c706
- jr z, .asm_3c7f7
- ld a, $0
- call _GetBattleVar
- bit 0, [hl]
- jr z, .asm_3c7c5
- xor a
- ld [$cfca], a
- ld de, $010c
- call Function3ee0f
- call GetQuarterMaxHP
- call Function3cc3f
- ld hl, $4822
- call StdBattleTextBox
-
-.asm_3c7c5
- call Function3c706
- jr z, .asm_3c7f7
- ld a, $0
- call _GetBattleVar
- bit 1, [hl]
- jr z, .asm_3c7e9
- xor a
- ld [$cfca], a
- ld de, $010c
- call Function3ee0f
- call GetQuarterMaxHP
- call Function3cc3f
- ld hl, $4836
- call StdBattleTextBox
-
-.asm_3c7e9
- ld hl, BattleMonHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c7f4
- ld hl, EnemyMonHPHi
-
-.asm_3c7f4
- ld a, [hli]
- or [hl]
- ret nz
-
-.asm_3c7f7
- call RefreshBattleHuds
- ld c, $14
- call DelayFrames
- xor a
- ret
-; 3c801
-
-Function3c801: ; 3c801
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c813
- call SetPlayerTurn
- call .asm_3c81c
- call SetEnemyTurn
- jp .asm_3c81c
-
-.asm_3c813
- call SetEnemyTurn
- call .asm_3c81c
- call SetPlayerTurn
-.asm_3c81c
- ld hl, PlayerPerishCount
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c827
- ld hl, EnemyPerishCount
-
-.asm_3c827
- ld a, $0
- call GetBattleVar
- bit 4, a
- ret z
- dec [hl]
- ld a, [hl]
- ld [$d265], a
- push af
- ld hl, $4864
- call StdBattleTextBox
- pop af
- ret nz
- ld a, $0
- call _GetBattleVar
- res 4, [hl]
- ld a, [hBattleTurn]
- and a
- jr nz, .asm_3c85c
- ld hl, BattleMonHP
- xor a
- ld [hli], a
- ld [hl], a
- ld hl, PartyMon1CurHP
- ld a, [CurBattleMon]
- call GetPartyLocation
- xor a
- ld [hli], a
- ld [hl], a
- ret
-
-.asm_3c85c
- ld hl, EnemyMonHPHi
- xor a
- ld [hli], a
- ld [hl], a
- ld a, [IsInBattle]
- dec a
- ret z
- ld hl, OTPartyMon1CurHP
- ld a, [CurOTMon]
- call GetPartyLocation
- xor a
- ld [hli], a
- ld [hl], a
- ret
-; 3c874
-
-Function3c874: ; 3c874
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c886
- call SetPlayerTurn
- call .asm_3c88f
- call SetEnemyTurn
- jp .asm_3c88f
-
-.asm_3c886
- call SetEnemyTurn
- call .asm_3c88f
- call SetPlayerTurn
-.asm_3c88f
- ld hl, $c730
- ld de, $c72e
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c8a0
- ld hl, $c731
- ld de, $c72f
-
-.asm_3c8a0
- ld a, [hl]
- and a
- ret z
- ld a, $3
- call GetBattleVar
- bit 4, a
- ret nz
- ld a, [de]
- ld [$d265], a
- ld [FXAnimIDLo], a
- call GetMoveName
- dec [hl]
- jr z, .asm_3c8de
- ld a, $2
- call GetBattleVar
- and $60
- jr nz, .asm_3c8d3
- call Function3c8e4
- xor a
- ld [$cfca], a
- ld [FXAnimIDHi], a
- ld a, $37
- call Predef
- call Function3c8e4
-
-.asm_3c8d3
- call Function3cc76
- call Function3cc3f
- ld hl, $4de2
- jr .asm_3c8e1
-
-.asm_3c8de
- ld hl, $4df5
-
-.asm_3c8e1
- jp StdBattleTextBox
-; 3c8e4
-
-Function3c8e4: ; 3c8e4
- ld a, [hBattleTurn]
- xor $1
- ld [hBattleTurn], a
- ret
-; 3c8eb
-
-Function3c8eb: ; 3c8eb
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c8fd
- call SetPlayerTurn
- call .asm_3c906
- call SetEnemyTurn
- jp .asm_3c906
-
-.asm_3c8fd
- call SetEnemyTurn
- call .asm_3c906
- call SetPlayerTurn
-.asm_3c906
- callab GetUserItem
- ld a, [hl]
- ld [$d265], a
- call GetItemName
- ld a, b
- cp $3
- ret nz
- ld hl, BattleMonHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c922
- ld hl, EnemyMonHPHi
-
-.asm_3c922
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- cp b
- jr nz, .asm_3c92d
- ld a, [hl]
- cp c
- ret z
-
-.asm_3c92d
- call Function3cc76
- call Function3c8e4
- call Function3ccef
- ld hl, $4880
- jp StdBattleTextBox
-; 3c93c
-
-Function3c93c: ; 3c93c
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c94e
- call SetPlayerTurn
- call .asm_3c957
- call SetEnemyTurn
- jp .asm_3c957
-
-.asm_3c94e
- call SetEnemyTurn
- call .asm_3c957
- call SetPlayerTurn
-.asm_3c957
- callab GetUserItem
- ld a, b
- cp $6
- jr nz, .asm_3c9ae
- ld hl, PartyMon1PP
- ld a, [CurBattleMon]
- call GetPartyLocation
- ld d, h
- ld e, l
- ld hl, PartyMon1Move1
- ld a, [CurBattleMon]
- call GetPartyLocation
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c99b
- ld de, $c739
- ld hl, $c735
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3c99b
- ld hl, OTPartyMon1PPMove1
- ld a, [CurOTMon]
- call GetPartyLocation
- ld d, h
- ld e, l
- ld hl, OTPartyMon1Move1
- ld a, [CurOTMon]
- call GetPartyLocation
-
-.asm_3c99b
- ld c, $0
-.asm_3c99d
- ld a, [hl]
- and a
- jr z, .asm_3c9ae
- ld a, [de]
- and $3f
- jr z, .asm_3c9af
- inc hl
- inc de
- inc c
- ld a, c
- cp $4
- jr nz, .asm_3c99d
-
-.asm_3c9ae
- ret
-
-.asm_3c9af
- ld a, [hl]
- cp $a6
- ld b, $1
- jr z, .asm_3c9b8
- ld b, $5
-
-.asm_3c9b8
- ld a, [de]
- add b
- ld [de], a
- push bc
- push bc
- ld a, [hl]
- ld [$d265], a
- ld de, BattleMonItem
- ld hl, BattleMonPPMove1
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c9d2
- ld de, EnemyMonItem
- ld hl, EnemyMonPPMove1
-
-.asm_3c9d2
- inc de
- pop bc
- ld b, $0
- add hl, bc
- push hl
- ld h, d
- ld l, e
- add hl, bc
- pop de
- pop bc
- ld a, [$d265]
- cp [hl]
- jr nz, .asm_3c9f5
- ld a, [hBattleTurn]
- and a
- ld a, [PlayerSubStatus5]
- jr z, .asm_3c9ee
- ld a, [EnemySubStatus5]
-
-.asm_3c9ee
- bit 3, a
- jr nz, .asm_3c9f5
- ld a, [de]
- add b
- ld [de], a
-
-.asm_3c9f5
- callab GetUserItem
- ld a, [hl]
- ld [$d265], a
- xor a
- ld [hl], a
- call Function3df12
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3ca12
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3ca14
- call Function3df1f
-
-.asm_3ca12
- xor a
- ld [hl], a
-
-.asm_3ca14
- call GetItemName
- call Function3c8e4
- call Function3ddc8
- call Function3c8e4
- ld hl, $4899
- jp StdBattleTextBox
-; 3ca26
-
-Function3ca26: ; 3ca26
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3ca38
- call SetPlayerTurn
- call .asm_3ca41
- call SetEnemyTurn
- jp .asm_3ca41
-
-.asm_3ca38
- call SetEnemyTurn
- call .asm_3ca41
- call SetPlayerTurn
-.asm_3ca41
- ld hl, $c71d
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3ca4c
- ld hl, $c71e
-
-.asm_3ca4c
- ld a, [hl]
- and a
- ret z
- dec a
- ld [hl], a
- cp $1
- ret nz
- ld hl, $48b6
- call StdBattleTextBox
- ld a, $10
- call _GetBattleVar
- push af
- ld a, $f8
- ld [hl], a
- callab UpdateMoveData
- xor a
- ld [AttackMissed], a
- ld [AlreadyDisobeyed], a
- ld a, $a
- ld [TypeModifier], a
- callab DoMove
- xor a
- ld [CurDamage], a
- ld [$d257], a
- ld a, $10
- call _GetBattleVar
- pop af
- ld [hl], a
- call UpdateBattleMonInParty
- jp UpdateEnemyMonInParty
-; 3ca8f
-
-Function3ca8f: ; 3ca8f
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3ca9a
- call .asm_3ca9d
- jr .asm_3cac9
-
-.asm_3ca9a
- call .asm_3cac9
-.asm_3ca9d
- ld a, [BattleMonStatus]
- bit 5, a
- ret z
- ld a, [$c73f]
- and a
- ret nz
- call BattleRandom
- cp $19
- ret nc
- xor a
- ld [BattleMonStatus], a
- ld a, [CurBattleMon]
- ld hl, PartyMon1Status
- call GetPartyLocation
- ld [hl], $0
- call UpdateBattleHuds
- call SetEnemyTurn
- ld hl, $524b
- jp StdBattleTextBox
-
-.asm_3cac9
- ld a, [EnemyMonStatus]
- bit 5, a
- ret z
- ld a, [$c740]
- and a
- ret nz
- call BattleRandom
- cp $19
- ret nc
- xor a
- ld [EnemyMonStatus], a
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3caef
- ld a, [CurOTMon]
- ld hl, OTPartyMon1Status
- call GetPartyLocation
- ld [hl], $0
-
-.asm_3caef
- call UpdateBattleHuds
- call SetPlayerTurn
- ld hl, $524b
- jp StdBattleTextBox
-; 3cafb
-
-Function3cafb: ; 3cafb
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3cb06
- call .asm_3cb09
- jr .asm_3cb1c
-
-.asm_3cb06
- call .asm_3cb1c
-.asm_3cb09
- ld a, [PlayerScreens]
- bit 2, a
- ret z
- ld hl, $c701
- dec [hl]
- ret nz
- res 2, a
- ld [PlayerScreens], a
- xor a
- jr .asm_3cb2e
-
-.asm_3cb1c
- ld a, [EnemyScreens]
- bit 2, a
- ret z
- ld hl, $c705
- dec [hl]
- ret nz
- res 2, a
- ld [EnemyScreens], a
- ld a, $1
-
-.asm_3cb2e
- ld [hBattleTurn], a
- ld hl, $48d2
- jp StdBattleTextBox
-; 3cb36
-
-
-Function3cb36: ; 3cb36
- ld a, [$ffcb]
- cp 1
- jr z, .Both
- call .CheckPlayer
- jr .CheckEnemy
-
-.Both
- call .CheckEnemy
-
-.CheckPlayer
- call SetPlayerTurn
- ld de, .Your
- call .asm_3cb6f
- ld hl, PlayerScreens
- ld de, PlayerLightScreenCount
- jr .FadeScreens
-
-.CheckEnemy
- call SetEnemyTurn
- ld de, .Enemy
- call .asm_3cb6f
- ld hl, EnemyScreens
- ld de, EnemyLightScreenCount
-
-.FadeScreens
- bit SCREENS_LIGHT_SCREEN, [hl]
- call nz, FadeLightScreen
- bit SCREENS_REFLECT, [hl]
- call nz, FadeReflect
- ret
-
-.asm_3cb6f
- ld hl, StringBuffer1
- jp CopyName2
-; 3cb75
-
-.Your
- db "Your@"
-.Enemy
- db "Enemy@"
-; 3cb80
-
-
-FadeLightScreen: ; 3cb80
- ld a, [de]
- dec a
- ld [de], a
- ret nz
- res SCREENS_LIGHT_SCREEN, [hl]
- push hl
- push de
- ld hl, BattleText_0x808e7
- call StdBattleTextBox
- pop de
- pop hl
- ret
-; 3cb91
-
-FadeReflect: ; 3cb91
- inc de
- ld a, [de]
- dec a
- ld [de], a
- ret nz
- res SCREENS_REFLECT, [hl]
- ld hl, BattleText_0x80905
- jp StdBattleTextBox
-; 3cb9e
-
-HandleWeather: ; 3cb9e
-
- ld a, [Weather]
- cp 0
- ret z
-
- ld hl, WeatherCount
- dec [hl]
- jr z, .asm_3cc13
-
- ld hl, .WeatherMessages
- call .asm_3cc1e
- ld a, [Weather]
- cp WEATHER_SANDSTORM
- ret nz
- ld a, [$ffcb]
- cp 1
- jr z, .asm_3cbc7
-
-; Player first
- call SetPlayerTurn
- call .asm_3cbd0
- call SetEnemyTurn
- jr .asm_3cbd0
-
-.asm_3cbc7
-; Enemy first
- call SetEnemyTurn
- call .asm_3cbd0
- call SetPlayerTurn
-
-.asm_3cbd0
- ld a, BATTLE_VARS_SUBSTATUS3
- call GetBattleVar
- bit SUBSTATUS_UNDERGROUND, a
- ret nz
-
- ld hl, BattleMonType1
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3cbe3
- ld hl, EnemyMonType1
-
-.asm_3cbe3
- ld a, [hli]
- cp ROCK
- ret z
- cp GROUND
- ret z
- cp STEEL
- ret z
-
- ld a, [hl]
- cp ROCK
- ret z
- cp GROUND
- ret z
- cp STEEL
- ret z
-
- call Function3c8e4
- xor a
- ld [$cfca], a
- ld de, $010b
- call Function3ee17
- call Function3c8e4
- call GetEighthMaxHP
- call Function3cc3f
-
- ld hl, BattleText_0x8084d
- jp StdBattleTextBox
-
-.asm_3cc13
- ld hl, .WeatherEndedMessages
- call .asm_3cc1e
- xor a
- ld [Weather], a
- ret
-
-.asm_3cc1e
- ld a, [Weather]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp StdBattleTextBox
-; 3cc2d
-
-.WeatherMessages
- dw BattleText_0x8091f
- dw BattleText_0x80938
- dw BattleText_0x80951
-.WeatherEndedMessages
- dw BattleText_0x80967
- dw BattleText_0x8097a
- dw BattleText_0x8098f
-; 3cc39
-
-Function3cc39: ; 3cc39
- call Function3cc45
- jp Function3cd3c
-; 3cc3f
-
-Function3cc3f: ; 3cc3f
- call Function3cc45
- jp Function3cd36
-; 3cc45
-
-
-
-Function3cc45: ; 3cc45
- ld hl, BattleMonHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3cc50
- ld hl, EnemyMonHPHi
-
-.asm_3cc50
- inc hl
- ld a, [hl]
- ld [$d1ec], a
- sub c
- ld [hld], a
- ld [$d1ee], a
- ld a, [hl]
- ld [$d1ed], a
- sbc b
- ld [hl], a
- ld [$d1ef], a
- ret nc
- ld a, [$d1ec]
- ld c, a
- ld a, [$d1ed]
- ld b, a
- xor a
- ld [hli], a
- ld [hl], a
- ld [$d1ee], a
- ld [$d1ef], a
- ret
-; 3cc76
-
-Function3cc76: ; 3cc76
- call GetQuarterMaxHP
- srl c
- srl c
- ld a, c
- and a
- jr nz, .asm_3cc82
- inc c
-
-.asm_3cc82
- ret
-; 3cc83
-
-
-GetEighthMaxHP: ; 3cc83
-; output: bc
- call GetQuarterMaxHP
-; assumes nothing can have 1024 or more hp
-; halve result
- srl c
-; round up
- ld a, c
- and a
- jr nz, .end
- inc c
-.end
- ret
-; 3cc8e
-
-
-GetQuarterMaxHP: ; 3cc8e
-; output: bc
- call GetMaxHP
-
-; quarter result
- srl b
- rr c
- srl b
- rr c
-
-; assumes nothing can have 1024 or more hp
-; round up
- ld a, c
- and a
- jr nz, .end
- inc c
-.end
- ret
-; 3cc9f
-
-
-GetHalfMaxHP: ; 3cc9f
-; output: bc
- call GetMaxHP
-
-; halve reslut
- srl b
- rr c
-
-; floor = 1
- ld a, c
- or b
- jr nz, .end
- inc c
-.end
- ret
-; 3ccac
-
-
-GetMaxHP: ; 3ccac
-; output: bc, Buffer1-2
-
-; player
- ld hl, BattleMonMaxHP
-
-; whose turn?
- ld a, [hBattleTurn]
- and a
- jr z, .gethp
-
-; enemy
- ld hl, EnemyMonMaxHP
-
-.gethp
- ld a, [hli]
- ld [Buffer2], a
- ld b, a
-
- ld a, [hl]
- ld [Buffer1], a
- ld c, a
- ret
-; 3ccc2
-
-Function3ccc2: ; 3ccc2
- ld hl, BattleMonHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3cccd
- ld hl, EnemyMonHP
-
-.asm_3cccd
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- srl b
- rr c
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hl]
- ld [Buffer1], a
- ret
-; 3ccde
-
-Function3ccde: ; 3ccde
- ld hl, BattleMonHP + 1
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3cce9
- ld hl, EnemyMonHP + 1
-
-.asm_3cce9
- ld a, c
- sub [hl]
- dec hl
- ld a, b
- sbc [hl]
- ret
-; 3ccef
-
-
-Function3ccef: ; 3ccef
- ld hl, EnemyMonMaxHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3ccfa
- ld hl, BattleMonMaxHP
-
-.asm_3ccfa
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hld]
- ld [Buffer1], a
- dec hl
- ld a, [hl]
- ld [$d1ec], a
- add c
- ld [hld], a
- ld [$d1ee], a
- ld a, [hl]
- ld [$d1ed], a
- adc b
- ld [hli], a
- ld [$d1ef], a
- ld a, [Buffer1]
- ld c, a
- ld a, [hld]
- sub c
- ld a, [Buffer2]
- ld b, a
- ld a, [hl]
- sbc b
- jr c, .asm_3cd2d
- ld a, b
- ld [hli], a
- ld [$d1ef], a
- ld a, c
- ld [hl], a
- ld [$d1ee], a
-
-.asm_3cd2d
- call Function3c8e4
- call Function3cd36
- jp Function3c8e4
-; 3cd36
-
-Function3cd36: ; 3cd36
- call Function3cd3c
- jp UpdateBattleHuds
-; 3cd3c
-
-
-Function3cd3c: ; 3cd3c
- ld hl, $c55e
- ld a, [hBattleTurn]
- and a
- ld a, $1
- jr z, .asm_3cd4a
- ld hl, $c4ca
- xor a
-
-.asm_3cd4a
- push bc
- ld [$d10a], a
- ld a, $b
- call Predef
- pop bc
- ret
-; 3cd55
-
-Function3cd55: ; 3cd55
- call Function3cf14
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- call z, Function3cef1
- xor a
- ld [$c6f7], a
- call Function3ce01
- call Function3d873
- ld a, d
- and a
- jp z, LostBattle
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- call nz, Function3df48
- ld a, $1
- ld [hBGMapMode], a
- ld c, $3c
- call DelayFrames
- ld a, [IsInBattle]
- dec a
- jr nz, .asm_3cd8c
- ld a, $1
- ld [BattleEnded], a
- ret
-
-.asm_3cd8c
- call Function3cf35
- jp z, Function3cfa4
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- jr nz, .asm_3cdba
- call Function3d1f8
- jr nc, .asm_3cda4
- ld a, $1
- ld [BattleEnded], a
- ret
-
-.asm_3cda4
- call Function3d227
- call Function3d2e0
- jp c, Function3c0e5
- ld a, $1
- ld [$d0ec], a
- call Function3cf4a
- jp z, Function3c0e5
- jr asm_3cdca
-
-.asm_3cdba
- ld a, $1
- ld [$d0ec], a
- call Function3cf4a
- jp z, Function3c0e5
- xor a
- ld [$d0ec], a
- ret
-
-asm_3cdca
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3cde6
- call ClearSprites
- ld hl, $c4a1
- ld bc, $040a
- call ClearBox
- call Function3d2b3
- ld a, $1
- call asm_3cf78
- jr .asm_3cdfc
-
-.asm_3cde6
- ld a, [CurPartyMon]
- push af
- ld a, $1
- call asm_3cf78
- call ClearSprites
- call Function309d
- pop af
- ld [CurPartyMon], a
- call Function3d2b3
-
-.asm_3cdfc
- xor a
- ld [$d0ec], a
- ret
-; 3ce01
-
-Function3ce01: ; 3ce01
- call UpdateBattleMonInParty
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3ce16
- ld a, [CurOTMon]
- ld hl, OTPartyMon1CurHP
- call GetPartyLocation
- xor a
- ld [hli], a
- ld [hl], a
-
-.asm_3ce16
- ld hl, PlayerSubStatus3
- res 2, [hl]
- xor a
- ld hl, EnemyDamageTaken
- ld [hli], a
- ld [hl], a
- call Function3d834
- call Function3dc18
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3ce2f
- jr .asm_3ce37
-
-.asm_3ce2f
- call Function3ceec
- ld a, $1
- ld [$c6fd], a
-
-.asm_3ce37
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- jr nz, .asm_3ce47
- ld a, [$c6f7]
- and a
- jr nz, .asm_3ce47
- call Function3d1aa
-
-.asm_3ce47
- call Function3d873
- ld a, d
- and a
- ret z
- ld a, [IsInBattle]
- dec a
- call z, Function3d0ea
- call EmptyBattleTextBox
- call Function309d
- ld a, [$d0ee]
- and $c0
- ld [$d0ee], a
- call Function3ceaa
- jr z, .asm_3ce72
- ld hl, EnemyMonBaseStats
- ld b, $7
-.asm_3ce6c
- srl [hl]
- inc hl
- dec b
- jr nz, .asm_3ce6c
-
-.asm_3ce72
- ld hl, EnemyMonBaseStats
- ld de, $c720
- ld bc, $0007
- call CopyBytes
- xor a
- ld [$c71f], a
- call Function3ee3b
- call Function3ceaa
- ret z
- ld a, [$c664]
- push af
- ld a, d
- ld [$c664], a
- ld hl, $c720
- ld de, EnemyMonBaseStats
- ld bc, $0007
- call CopyBytes
- ld a, $1
- ld [$c71f], a
- call Function3ee3b
- pop af
- ld [$c664], a
- ret
-; 3ceaa
-
-Function3ceaa: ; 3ceaa
- ld a, [PartyCount]
- ld b, a
- ld hl, PartyMon1Species
- ld c, $1
- ld d, $0
-.asm_3ceb5
- push hl
- push bc
- ld bc, $0022
- add hl, bc
- ld a, [hli]
- or [hl]
- pop bc
- pop hl
- jr z, .asm_3ced1
- push hl
- push bc
- ld bc, $0001
- add hl, bc
- pop bc
- ld a, [hl]
- pop hl
- cp $39
- jr nz, .asm_3ced1
- ld a, d
- or c
- ld d, a
-
-.asm_3ced1
- sla c
- push de
- ld de, $0030
- add hl, de
- pop de
- dec b
- jr nz, .asm_3ceb5
- ld a, d
- ld e, $0
- ld b, $6
-.asm_3cee1
- srl a
- jr nc, .asm_3cee6
- inc e
-
-.asm_3cee6
- dec b
- jr nz, .asm_3cee1
- ld a, e
- and a
- ret
-; 3ceec
-
-
-
-Function3ceec: ; 3ceec
- xor a
- ld [Danger], a
- ret
-; 3cef1
-
-Function3cef1: ; 3cef1
- call Function3ceec
- call WaitSFX
- ld a, $f0
- ld [CryTracks], a
- ld a, [BattleMonSpecies]
- call Function37b6
- call Function3d43b
- ld hl, $c535
- ld bc, $050b
- call ClearBox
- ld hl, BattleText_0x80a75
- jp StdBattleTextBox
-; 3cf14
-
-Function3cf14: ; 3cf14
- call WaitSFX
- ld de, SFX_KINESIS
- call PlaySFX
- call Function3d432
- ld de, SFX_UNKNOWN_2A
- call PlaySFX
- hlcoord 1, 0
- ld bc, $040a
- call ClearBox
- ld hl, BattleText_0x809a8
- jp StdBattleTextBox
-; 3cf35
-
-Function3cf35: ; 3cf35
- ld a, [OTPartyCount]
- ld b, a
- xor a
- ld hl, OTPartyMon1CurHP
- ld de, $0030
-.asm_3cf40
- or [hl]
- inc hl
- or [hl]
- dec hl
- add hl, de
- dec b
- jr nz, .asm_3cf40
- and a
- ret
-; 3cf4a
-
-Function3cf4a: ; 3cf4a
- ld hl, EnemyHPPal
- ld e, $30
- call Function3e12e
- call WaitBGMap
- callba Function2c012
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3cf6d
- call Function3e8e4
- ld a, [$d430]
- cp $f
- ret z
- call Function30b4
-
-.asm_3cf6d
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- ld a, $0
- jr nz, asm_3cf78
- inc a
- ret
-
-asm_3cf78
- push af
- xor a
- ld [$c718], a
- call Function3d834
- call Function3d867
- call Function3dc18
- pop af
- and a
- jr nz, .asm_3cf8f
- call Function3d4e1
- jr .asm_3cf92
-
-.asm_3cf8f
- call asm_3d517
-
-.asm_3cf92
- call Function3d57a
- call SetEnemyTurn
- call Function3dc23
- xor a
- ld [EnemyMoveAnimation], a
- ld [$d0ec], a
- inc a
- ret
-; 3cfa4
-
-Function3cfa4: ; 3cfa4
- call Function3ceec
- ld a, $1
- ld [$c6fd], a
- ld [BattleEnded], a
- ld a, [InLinkBattle]
- and a
- ld a, b
- call z, Function3d0ea
- callab Function39939
- ld hl, BattleText_0x809da
- call StdBattleTextBox
- call CheckInMobileLinkBattle
- jr z, .ismobilelinkbattle
- ld a, [InLinkBattle]
- and a
- ret nz
- ld a, [$cfc0]
- bit 0, a
- jr nz, .asm_3d006
- call Function3ebd8
- ld c, $28
- call DelayFrames
- ld a, [BattleType]
- cp $1
- jr nz, .asm_3cfe8
- ld a, $2
- call Predef
-
-.asm_3cfe8
- ld a, [$c2cc]
- bit 0, a
- jr nz, .asm_3cff2
- call Function3718
-
-.asm_3cff2
- jp Function3d02b
-
-.ismobilelinkbattle
- call Function3ebd8
- ld c, $28
- call DelayFrames
- ld c, $4
- callba Function4ea0a
- ret
-
-.asm_3d006
- call Function3ebd8
- ld c, $28
- call DelayFrames
- call EmptyBattleTextBox
- ld c, $3
- callba Function11c000
- call Functiona80
- ld hl, $c6ec
- ld a, [hli]
- or [hl]
- inc hl
- or [hl]
- ret nz
- call ClearTileMap
- call WhiteBGMap
- ret
-; 3d02b
-
-Function3d02b: ; 3d02b
- ld a, [$c73d]
- and a
- call nz, Function3d099
- call Function3d0b1
- push af
- ld a, $0
- jr nc, .asm_3d044
- ld a, [$d854]
- and $7
- cp $3
- jr nz, .asm_3d044
- inc a
-
-.asm_3d044
- ld b, a
- ld c, $4
-.asm_3d047
- ld a, b
- and a
- jr z, .asm_3d052
- call Function3d081
- dec c
- dec b
- jr .asm_3d047
-
-.asm_3d052
- ld a, c
- and a
- jr z, .asm_3d05c
- call Function3d08d
- dec c
- jr .asm_3d052
-
-.asm_3d05c
- call Function3d099
- call Function3d099
- pop af
- jr nc, .asm_3d07b
- ld a, [$d854]
- and $7
- jr z, .asm_3d07b
- ld hl, SentToMomTexts
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp StdBattleTextBox
-
-.asm_3d07b
- ld hl, BattleText_0x809be
- jp StdBattleTextBox
-; 3d081
-
-Function3d081: ; 3d081
- push bc
- ld hl, $c688
- ld de, $d853
- call Function3d0be
- pop bc
- ret
-; 3d08d
-
-Function3d08d: ; 3d08d
- push bc
- ld hl, $c688
- ld de, $d850
- call Function3d0be
- pop bc
- ret
-; 3d099
-
-Function3d099: ; 3d099
- ld hl, $c688
- sla [hl]
- dec hl
- rl [hl]
- dec hl
- rl [hl]
- ret nc
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ret
-; 3d0ab
-
-SentToMomTexts: ; 3d0ab
- dw BattleText_0x809fc
- dw BattleText_0x80a2a
- dw BattleText_0x80a3d
-; 3d0b1
-
-
-Function3d0b1: ; 3d0b1
- ld hl, $d853
- ld a, [hld]
- cp $3f
- ld a, [hld]
- sbc $42
- ld a, [hl]
- sbc $f
- ret
-; 3d0be
-
-Function3d0be: ; 3d0be
- ld c, $3
- and a
- push de
- push hl
- push bc
- ld b, h
- ld c, l
- callba Function106008
- pop bc
- pop hl
-.asm_3d0ce
- ld a, [de]
- adc [hl]
- ld [de], a
- dec de
- dec hl
- dec c
- jr nz, .asm_3d0ce
- pop hl
- ld a, [hld]
- cp $3f
- ld a, [hld]
- sbc $42
- ld a, [hl]
- sbc $f
- ret c
- ld [hl], $f
- inc hl
- ld [hl], $42
- inc hl
- ld [hl], $3f
- ret
-; 3d0ea
-
-Function3d0ea: ; 3d0ea
- push de
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- ld de, MUSIC_WILD_VICTORY
- ld a, [IsInBattle]
- dec a
- jr nz, .asm_3d113
- push de
- call Function3ceaa
- pop de
- jr nz, .asm_3d11e
- ld hl, $c6ec
- ld a, [hli]
- or [hl]
- jr nz, .asm_3d11e
- ld a, [$c664]
- and a
- jr z, .asm_3d121
- jr .asm_3d11e
-
-.asm_3d113
- ld de, MUSIC_GYM_VICTORY
- call IsJohtoGymLeader
- jr c, .asm_3d11e
- ld de, MUSIC_TRAINER_VICTORY
-
-.asm_3d11e
- call PlayMusic
-
-.asm_3d121
- pop de
- ret
-; 3d123
-
-
-
-; These functions check if the current opponent is a gym leader or one of a
-; few other special trainers.
-
-; Note: KantoGymLeaders is a subset of JohtoGymLeaders. If you wish to
-; differentiate between the two, call IsKantoGymLeader first.
-
-; The Lance and Red entries are unused for music checks; those trainers are
-; accounted for elsewhere.
-
-IsKantoGymLeader: ; 0x3d123
- ld hl, KantoGymLeaders
- jr IsGymLeaderCommon
-
-IsJohtoGymLeader: ; 0x3d128
- ld hl, JohtoGymLeaders
-IsGymLeaderCommon:
- push de
- ld a, [OtherTrainerClass]
- ld de, $0001
- call IsInArray
- pop de
- ret
-; 0x3d137
-
-JohtoGymLeaders:
- db FALKNER
- db WHITNEY
- db BUGSY
- db MORTY
- db PRYCE
- db JASMINE
- db CHUCK
- db CLAIR
- db WILL
- db BRUNO
- db KAREN
- db KOGA
-; fallthrough
-; these two entries are unused
- db CHAMPION
- db RED
-; fallthrough
-KantoGymLeaders:
- db BROCK
- db MISTY
- db LT_SURGE
- db ERIKA
- db JANINE
- db SABRINA
- db BLAINE
- db BLUE
- db $ff
-
-
-Function3d14e: ; 3d14e
- call Function3cef1
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- call z, Function3cf14
- ld a, $1
- ld [$c6f7], a
- call Function3d1aa
- call Function3d873
- ld a, d
- and a
- jp z, LostBattle
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- jr nz, .asm_3d185
- call Function3ce01
- ld a, [IsInBattle]
- dec a
- jr nz, .asm_3d17f
- ld a, $1
- ld [BattleEnded], a
- ret
-
-.asm_3d17f
- call Function3cf35
- jp z, Function3cfa4
-
-.asm_3d185
- call Function3d1f8
- jr nc, .asm_3d190
- ld a, $1
- ld [BattleEnded], a
- ret
-
-.asm_3d190
- call Function3d227
- call Function3d2e0
- jp c, Function3c0e5
- ld a, c
- and a
- ret nz
- ld a, $1
- ld [$d0ec], a
- call Function3cf4a
- jp z, Function3c0e5
- jp asm_3cdca
-; 3d1aa
-
-Function3d1aa: ; 3d1aa
- ld a, [CurBattleMon]
- ld c, a
- ld hl, $c664
- ld b, $0
- ld a, $3
- call Predef
- ld hl, EnemySubStatus3
- res 2, [hl]
- xor a
- ld [Danger], a
- ld hl, PlayerDamageTaken
- ld [hli], a
- ld [hl], a
- ld [BattleMonStatus], a
- call UpdateBattleMonInParty
- ld c, $6
- ld a, [BattleMonLevel]
- add $1e
- ld b, a
- ld a, [EnemyMonLevel]
- cp b
- jr c, .asm_3d1dc
- ld c, $8
-
-.asm_3d1dc
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- callab ChangeHappiness
- ld a, [$d0ee]
- and $c0
- add $1
- ld [$d0ee], a
- ld a, [$c6f7]
- and a
- ret z
- ret
-; 3d1f8
-
-Function3d1f8: ; 3d1f8
- call EmptyBattleTextBox
- call Function309d
- ld a, [IsInBattle]
- and a
- dec a
- ret nz
- ld hl, BattleText_0x80a83
- call StdBattleTextBox
-.asm_3d20a
- ld bc, $0107
- call Function1dd2
- ld a, [$cfa9]
- jr c, .asm_3d217
- and a
- ret
-
-.asm_3d217
- ld a, [$cfa9]
- cp $1
- jr z, .asm_3d20a
- ld hl, PartyMon1Spd
- ld de, EnemyMonSpd
- jp Function3d8b3
-; 3d227
-
-Function3d227: ; 3d227
- call EmptyBattleTextBox
- call Function1d6e
- call Function3d2f7
- call Function3d362
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3d241
- ld a, $1
- ld [$d0ec], a
- call Function3e8e4
-
-.asm_3d241
- xor a
- ld [$d0ec], a
- call Function3d2e0
- jr c, .asm_3d251
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- jr nz, .asm_3d26c
-
-.asm_3d251
- call ClearSprites
- call WhiteBGMap
- call Function3eda6
- call Function1c07
- call Function309d
- call WaitBGMap
- call ClearSGB
- call Function32f9
- xor a
- ld c, a
- ret
-
-.asm_3d26c
- call ClearSprites
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
- call Function3dab1
- call ClearPalettes
- call DelayFrame
- call Function3eda6
- call Function1c17
- call ClearSGB
- call Function32f9
- call Function3f26d
- call Function3dbde
- call Function3dc18
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- call SetPlayerTurn
- call Function3dc23
- ld a, $1
- and a
- ld c, a
- ret
-; 3d2b3
-
-Function3d2b3: ; 3d2b3
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
- call Function3dab1
- call Function3f26d
- call Function3dbde
- call Function3dc18
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- call SetPlayerTurn
- jp Function3dc23
-; 3d2e0
-
-
-
-Function3d2e0: ; 3d2e0
- ld a, [InLinkBattle]
- cp $4
- jr nz, .asm_3d2ef
- ld a, [$cd2b]
- and a
- jr z, .asm_3d2ef
- scf
- ret
-
-.asm_3d2ef
- xor a
- ret
-; 3d2f1
-
-CheckInMobileLinkBattle: ; 3d2f1
- ld a, [InLinkBattle]
- cp $4
- ret
-; 3d2f7
-
-Function3d2f7: ; 3d2f7
- call WhiteBGMap
-Function3d2fa: ; 3d2fa
- callba Function5004f
- callba Function50405
- callba Function8e85
- callba Function503e0
- ret
-; 3d313
-
-Function3d313: ; 3d313
- callba WritePartyMenuTilemap
- callba PrintPartyMenuText
- call WaitBGMap
- call Function32f9
- call DelayFrame
- ret
-; 3d329
-
-Function3d329: ; 3d329
- call CheckInMobileLinkBattle
- jr z, .ismobilelinkbattle
- callba PartyMenuSelect
- ret
-
-.ismobilelinkbattle
- callba Function100cb5
- ret
-; 3d33c
-
-Function3d33c: ; 3d33c
-.asm_3d33c
- ld a, $2
- ld [PartyMenuActionText], a
- call Function3d313
- call Function3d329
- ret c
- call Function3d887
- jr z, .asm_3d33c
- xor a
- ret
-; 3d34f
-
-Function3d34f: ; 3d34f
- ld hl, CurBattleMon
- ld a, [CurPartyMon]
- cp [hl]
- jr nz, .asm_3d360
- ld hl, BattleText_0x80c0d
- call StdBattleTextBox
- scf
- ret
-
-.asm_3d360
- xor a
- ret
-; 3d362
-
-Function3d362: ; 3d362
-.asm_3d362
- call Function3d33c
- ret nc
- call Function3d2e0
- ret c
- ld de, SFX_WRONG
- call PlaySFX
- call WaitSFX
- jr .asm_3d362
-; 3d375
-
-
-
-Function3d375: ; 3d375
-.asm_3d375
- call Function3d33c
- ret c
- call Function3d34f
- jr c, .asm_3d375
- xor a
- ret
-; 3d380
-
-Function3d380: ; 3d380
-.asm_3d380
- call Function3d362
- call Function3d2e0
- ret c
- call Function3d34f
- jr c, .asm_3d380
- xor a
- ret
-; 3d38e
-
-
-LostBattle: ; 3d38e
- ld a, 1
- ld [BattleEnded], a
-
- ld a, [$cfc0]
- bit 0, a
- jr nz, .asm_3d3bd
-
- ld a, [BattleType]
- cp BATTLETYPE_CANLOSE
- jr nz, .asm_3d3e3
-
-; Remove the enemy from the screen.
- hlcoord 0, 0
- ld bc, $0815
- call ClearBox
- call Function3ebd8
-
- ld c, 40
- call DelayFrames
-
- ld a, [$c2cc]
- bit 0, a
- jr nz, .asm_3d3bc
- call Function3718
-.asm_3d3bc
- ret
-
-.asm_3d3bd
-; Remove the enemy from the screen.
- hlcoord 0, 0
- ld bc, $0815
- call ClearBox
- call Function3ebd8
-
- ld c, 40
- call DelayFrames
-
- call EmptyBattleTextBox
- ld c, 2
- callba Function11c000
- call Functiona80
- call ClearTileMap
- call WhiteBGMap
- ret
-
-.asm_3d3e3
- ld a, [InLinkBattle]
- and a
- jr nz, .LostLinkBattle
-
-; Greyscale
- ld b, 0
- call GetSGBLayout
- call Function32f9
- jr .end
-
-.LostLinkBattle
- call UpdateEnemyMonInParty
- call Function3cf35
- jr nz, .asm_3d40a
- ld hl, TiedAgainstText
- ld a, [$d0ee]
- and $c0
- add 2
- ld [$d0ee], a
- jr .asm_3d412
-
-.asm_3d40a
- ld hl, LostAgainstText
- call CheckInMobileLinkBattle
- jr z, .ismobilelinkbattle
-
-.asm_3d412
- call StdBattleTextBox
-
-.end
- scf
- ret
-
-.ismobilelinkbattle
-; Remove the enemy from the screen.
- hlcoord 0, 0
- ld bc, $0815
- call ClearBox
- call Function3ebd8
-
- ld c, 40
- call DelayFrames
-
- ld c, $3
- callba Function4ea0a
- scf
- ret
-; 3d432
-
-
-Function3d432: ; 3d432
- ld hl, $c510
- ld de, $c524
- jp Function3d444
-; 3d43b
-
-Function3d43b: ; 3d43b
- ld hl, $c569
- ld de, $c57d
- jp Function3d444
-; 3d444
-
-Function3d444: ; 3d444
- ld a, [$cfbe]
- push af
- set 6, a
- ld [$cfbe], a
- ld b, $7
-.asm_3d44f
- push bc
- push de
- push hl
- ld b, $6
-.asm_3d454
- push bc
- push hl
- push de
- ld bc, $0007
- call CopyBytes
- pop de
- pop hl
- ld bc, -20
- add hl, bc
- push hl
- ld h, d
- ld l, e
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- pop bc
- dec b
- jr nz, .asm_3d454
- ld bc, 20
- add hl, bc
- ld de, .Spaces
- call PlaceString
- ld c, 2
- call DelayFrames
- pop hl
- pop de
- pop bc
- dec b
- jr nz, .asm_3d44f
- pop af
- ld [$cfbe], a
- ret
-; 3d488
-
-.Spaces
- db " @"
-; 3d490
-
-
-Function3d490: ; 3d490
- ld [hConnectionStripLength], a
- ld c, a
-.asm_3d493
- push bc
- push hl
- ld b, $7
-.asm_3d497
- push hl
- call Function3d4ae
- pop hl
- ld de, 20
- add hl, de
- dec b
- jr nz, .asm_3d497
- ld c, 2
- call DelayFrames
- pop hl
- pop bc
- dec c
- jr nz, .asm_3d493
- ret
-; 3d4ae
-
-Function3d4ae: ; 3d4ae
- ld a, [hConnectionStripLength]
- ld c, a
- cp $8
- jr nz, .asm_3d4bc
-.asm_3d4b5
- ld a, [hli]
- ld [hld], a
- dec hl
- dec c
- jr nz, .asm_3d4b5
- ret
-
-.asm_3d4bc
- ld a, [hld]
- ld [hli], a
- inc hl
- dec c
- jr nz, .asm_3d4bc
- ret
-; 3d4c3
-
-
-Function3d4c3: ; 3d4c3
- call Function3d557
- ld a, [$c718]
- dec a
- ld b, a
- call Function3d6ca
- call Function3d7a0
- call Function3d834
- call Function3d867
- call Function3d7c7
- call Function3dc18
- call Function3d57a
- ret
-; 3d4e1
-
-
-Function3d4e1: ; 3d4e1
- call Function3d714
- jr nc, asm_3d517
- call Function3d557
- call Function3d533
- jr c, .asm_3d4f1
- call Function3d599
-
-.asm_3d4f1
- call Function3d6ca
- call Function3d74b
- push af
- call Function3d7a0
- call Function3d7b8
- call Function3d7c7
- pop af
- ret c
- xor a
- ld [$c664], a
- ld [$c6fc], a
- ld [$d0ec], a
- inc a
- ld [$c711], a
- call Function309d
- jp Function3e3ad
-
-asm_3d517
- call Function3d557
- call Function3d533
- jr c, .asm_3d522
- call Function3d599
-
-.asm_3d522
- call Function3d6ca
- ld a, $1
- ld [$c711], a
- call Function3d7a0
- call Function3d7b8
- jp Function3d7c7
-; 3d533
-
-Function3d533: ; 3d533
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3d541
- ld a, [$d430]
- sub $4
- ld b, a
- jr .asm_3d555
-
-.asm_3d541
- ld a, [$c718]
- and a
- jr z, .asm_3d54b
- dec a
- ld b, a
- jr .asm_3d555
-
-.asm_3d54b
- ld a, [$d264]
- and a
- ld b, $0
- jr nz, .asm_3d555
- and a
- ret
-
-.asm_3d555
- scf
- ret
-; 3d557
-
-Function3d557: ; 3d557
- xor a
- ld [LastEnemyCounterMove], a
- ld [LastPlayerCounterMove], a
- ld [LastEnemyMove], a
- ld [CurEnemyMove], a
- dec a
- ld [$c6e6], a
- xor a
- ld [$c730], a
- ld hl, $c4b2
- ld a, $8
- call Function3d490
- call EmptyBattleTextBox
- jp Function1d6e
-; 3d57a
-
-Function3d57a: ; 3d57a
- xor a
- ld [$c664], a
- ld [$c6fc], a
-Function3d581: ; 3d581
- ld a, [CurBattleMon]
- ld c, a
- ld hl, $c664
- ld b, $1
- push bc
- ld a, $3
- call Predef
- pop bc
- ld hl, $c6fc
- ld a, $3
- jp Predef
-; 3d599
-
-Function3d599: ; 3d599
- ld b, $ff
- ld a, $1
- ld [Buffer1], a
- ld [Buffer2], a
-.asm_3d5a3
- ld hl, Buffer1
- sla [hl]
- inc hl
- sla [hl]
- inc b
- ld a, [OTPartyCount]
- cp b
- jp z, Function3d672
- ld a, [CurOTMon]
- cp b
- jr z, .asm_3d5d0
- ld hl, OTPartyMon1CurHP
- push bc
- ld a, b
- call GetPartyLocation
- ld a, [hli]
- ld c, a
- ld a, [hl]
- or c
- pop bc
- jr z, .asm_3d5d0
- call Function3d5d7
- call Function3d618
- jr .asm_3d5a3
-
-.asm_3d5d0
- ld hl, Buffer2
- set 0, [hl]
- jr .asm_3d5a3
-; 3d5d7
-
-Function3d5d7: ; 3d5d7
- push bc
- ld hl, OTPartyMon1Move1
- ld a, b
- call GetPartyLocation
- pop bc
- ld e, $5
-.asm_3d5e2
- dec e
- jr z, .asm_3d617
- ld a, [hli]
- and a
- jr z, .asm_3d617
- push hl
- push de
- push bc
- dec a
- ld hl, $5afb
- ld bc, $0007
- call AddNTimes
- ld de, EnemyMoveAnimation
- ld a, $10
- call FarCopyBytes
- call SetEnemyTurn
- callab Function0x347c8
- pop bc
- pop de
- pop hl
- ld a, [$d265]
- cp $b
- jr c, .asm_3d5e2
- ld hl, Buffer1
- set 0, [hl]
- ret
-
-.asm_3d617
- ret
-; 3d618
-
-Function3d618: ; 3d618
- push bc
- ld hl, OTPartyCount
- ld a, b
- inc a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- dec a
- ld hl, $542b
- ld bc, $0020
- call AddNTimes
- ld de, EnemyMonType1
- ld bc, $0002
- ld a, $14
- call FarCopyBytes
- ld a, [BattleMonType1]
- ld [PlayerMoveType], a
- call SetPlayerTurn
- callab Function0x347c8
- ld a, [$d265]
- cp $b
- jr nc, .asm_3d663
- ld a, [BattleMonType2]
- ld [PlayerMoveType], a
- callab Function0x347c8
- ld a, [$d265]
- cp $b
- jr nc, .asm_3d663
- pop bc
- ret
-
-.asm_3d663
- pop bc
- ld hl, Buffer1
- bit 0, [hl]
- jr nz, .asm_3d66f
- inc hl
- set 0, [hl]
- ret
-
-.asm_3d66f
- res 0, [hl]
- ret
-; 3d672
-
-Function3d672: ; 3d672
-.asm_3d672
- ld hl, Buffer1
- sla [hl]
- inc hl
- sla [hl]
- jr nc, .asm_3d672
- ld a, [OTPartyCount]
- ld b, a
- ld c, [hl]
-.asm_3d681
- sla c
- jr nc, .asm_3d68a
- dec b
- jr z, .asm_3d6a7
- jr .asm_3d681
-
-.asm_3d68a
- ld a, [Buffer1]
- and a
- jr z, .asm_3d69a
- ld b, $ff
- ld c, a
-.asm_3d693
- inc b
- sla c
- jr nc, .asm_3d693
- jr .asm_3d6c9
-
-.asm_3d69a
- ld b, $ff
- ld a, [Buffer2]
- ld c, a
-.asm_3d6a0
- inc b
- sla c
- jr c, .asm_3d6a0
- jr .asm_3d6c9
-
-.asm_3d6a7
- ld a, [OTPartyCount]
- ld b, a
- call BattleRandom
- and $7
- cp b
- jr nc, .asm_3d6a7
- ld b, a
- ld a, [CurOTMon]
- cp b
- jr z, .asm_3d6a7
- ld hl, OTPartyMon1CurHP
- push bc
- ld a, b
- call GetPartyLocation
- pop bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- or c
- jr z, .asm_3d6a7
-
-.asm_3d6c9
- ret
-; 3d6ca
-
-Function3d6ca: ; 3d6ca
- ld a, b
- ld [CurPartyMon], a
- ld hl, OTPartyMon1Level
- call GetPartyLocation
- ld a, [hl]
- ld [CurPartyLevel], a
- ld a, [CurPartyMon]
- inc a
- ld hl, OTPartyCount
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [TempEnemyMonSpecies], a
- ld [CurPartySpecies], a
- call LoadEnemyMon
- ld a, [CurPartySpecies]
- cp $c9
- jr nz, .asm_3d708
- ld a, [$def4]
- and a
- jr nz, .asm_3d708
- ld hl, EnemyMonAtkDefDV
- ld a, $2d
- call Predef
- ld a, [UnownLetter]
- ld [$def4], a
-
-.asm_3d708
- ld hl, EnemyMonHPHi
- ld a, [hli]
- ld [$c6ea], a
- ld a, [hl]
- ld [$c6eb], a
- ret
-; 3d714
-
-Function3d714: ; 3d714
- ld a, [$d264]
- dec a
- jp z, .asm_3d749
- ld a, [PartyCount]
- dec a
- jp z, .asm_3d749
- ld a, [InLinkBattle]
- and a
- jp nz, .asm_3d749
- ld a, [Options]
- bit 6, a
- jr nz, .asm_3d749
- ld a, [CurPartyMon]
- push af
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- callba Functione538
- pop bc
- ld a, b
- ld [CurPartyMon], a
- jr c, .asm_3d749
- scf
- ret
-
-.asm_3d749
- and a
- ret
-; 3d74b
-
-Function3d74b: ; 3d74b
- ld a, [CurPartyMon]
- push af
- callab Function39939
- ld hl, BattleText_0x80aca
- call StdBattleTextBox
- ld bc, $0107
- call Function1dd2
- ld a, [$cfa9]
- dec a
- jr nz, .asm_3d79a
- call Function3d2f7
- call Function3d375
- jr c, .asm_3d791
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- call ClearPalettes
- call DelayFrame
- call Function3eda6
- pop af
- ld [CurPartyMon], a
- xor a
- ld [CurEnemyMove], a
- ld [CurPlayerMove], a
- and a
- ret
-
-.asm_3d791
- call ClearPalettes
- call DelayFrame
- call Function3eda6
-
-.asm_3d79a
- pop af
- ld [CurPartyMon], a
- scf
- ret
-; 3d7a0
-
-Function3d7a0: ; 3d7a0
- xor a
- ld [hBGMapMode], a
- call Function1c07
- call ClearSprites
- ld hl, $c4a1
- ld bc, $040a
- call ClearBox
- call WaitBGMap
- jp Function3ee27
-; 3d7b8
-
-Function3d7b8: ; 3d7b8
- callab Function39939
- ld hl, BattleText_0x80af8
- call StdBattleTextBox
- jp WaitBGMap
-; 3d7c7
-
-Function3d7c7: ; 3d7c7
- ld a, [TempEnemyMonSpecies]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- ld a, $1
- ld [MonType], a
- ld a, $1f
- call Predef
- call Function3f47c
- xor a
- ld [$cfca], a
- ld [$c689], a
- call SetEnemyTurn
- ld de, $0101
- call Function3ee17
- call Function3da79
- jr nc, .asm_3d800
- ld a, $1
- ld [$c689], a
- ld de, $0101
- call Function3ee17
-
-.asm_3d800
- ld bc, TempMonSpecies
- callba Function4e53f
- jr c, .asm_3d82c
- callba Function4ea44
- jr c, .asm_3d821
- ld hl, $c4ac
- ld d, $0
- ld e, $0
- ld a, $47
- call Predef
- jr .asm_3d82c
-
-.asm_3d821
- ld a, $f
- ld [CryTracks], a
- ld a, [TempEnemyMonSpecies]
- call Function37b6
-
-.asm_3d82c
- call Function3e036
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 3d834
-
-Function3d834: ; 3d834
- xor a
- ld [LastEnemyCounterMove], a
- ld [LastPlayerCounterMove], a
- ld [LastEnemyMove], a
- ld hl, EnemySubStatus1
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld [EnemyDisableCount], a
- ld [EnemyFuryCutterCount], a
- ld [$c681], a
- ld [$c72c], a
- ld [EnemyDisabledMove], a
- ld [$c6fa], a
- ld [$c730], a
- ld [$c731], a
- ld [EnemyTurnsTaken], a
- ld hl, PlayerSubStatus5
- res 7, [hl]
- ret
-; 3d867
-
-Function3d867: ; 3d867
- ld a, $7
- ld b, $8
- ld hl, EnemyAtkLevel
-.asm_3d86e
- ld [hli], a
- dec b
- jr nz, .asm_3d86e
- ret
-; 3d873
-
-Function3d873: ; 3d873
- ld a, [PartyCount]
- ld e, a
- xor a
- ld hl, PartyMon1CurHP
- ld bc, $002f
-.asm_3d87e
- or [hl]
- inc hl
- or [hl]
- add hl, bc
- dec e
- jr nz, .asm_3d87e
- ld d, a
- ret
-; 3d887
-
-
-Function3d887: ; 3d887
- ld a, [CurPartyMon]
- ld hl, PartyMon1CurHP
- call GetPartyLocation
- ld a, [hli]
- or [hl]
- ret nz
- ld a, [$d264]
- and a
- jr nz, .asm_3d8b1
- ld hl, PartySpecies
- ld a, [CurPartyMon]
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hl]
- cp EGG
- ld hl, BattleText_0x80b26
- jr z, .asm_3d8ae
- ld hl, BattleText_0x80b0b
-
-.asm_3d8ae
- call StdBattleTextBox
-
-.asm_3d8b1
- xor a
- ret
-; 3d8b3
-
-
-Function3d8b3: ; 3d8b3
- ld a, [BattleType]
- cp $2
- jp z, .asm_3d9a2
- cp $6
- jp z, .asm_3d9a2
- cp $9
- jp z, .asm_3d98d
- cp $b
- jp z, .asm_3d98d
- cp $7
- jp z, .asm_3d98d
- cp $c
- jp z, .asm_3d98d
-
- ld a, [InLinkBattle]
- and a
- jp nz, .asm_3d9a2
-
- ld a, [IsInBattle]
- dec a
- jp nz, .asm_3d992
-
- ld a, [EnemySubStatus5]
- bit 7, a
- jp nz, .asm_3d98d
-
- ld a, [$c730]
- and a
- jp nz, .asm_3d98d
-
- push hl
- push de
- ld a, [BattleMonItem]
- ld [$d265], a
- ld b, a
- callab GetItem
- ld a, b
- cp $48
- pop de
- pop hl
- jr nz, .asm_3d916
-
- call SetPlayerTurn
- call GetItemName
- ld hl, BattleText_0x80b89
- call StdBattleTextBox
- jp .asm_3d9a2
-
-.asm_3d916
- ld a, [$d267]
- inc a
- ld [$d267], a
- ld a, [hli]
- ld [$ffb5], a
- ld a, [hl]
- ld [$ffb6], a
- ld a, [de]
- inc de
- ld [$ffb1], a
- ld a, [de]
- ld [$ffb2], a
- call Function30b4
- ld de, $ffb5
- ld hl, $ffb1
- ld c, $2
- call StringCmp
- jr nc, .asm_3d9a2
- xor a
- ld [hMultiplicand], a
- ld a, $20
- ld [hMultiplier], a
- call Multiply
- ld a, [$ffb5]
- ld [hProduct], a
- ld a, [$ffb6]
- ld [hMultiplicand], a
- ld a, [$ffb1]
- ld b, a
- ld a, [$ffb2]
- srl b
- rr a
- srl b
- rr a
- and a
- jr z, .asm_3d9a2
- ld [hMultiplier], a
- ld b, $2
- call Divide
- ld a, [$ffb5]
- and a
- jr nz, .asm_3d9a2
- ld a, [$d267]
- ld c, a
-.asm_3d96c
- dec c
- jr z, .asm_3d97a
- ld b, $1e
- ld a, [$ffb6]
- add b
- ld [$ffb6], a
- jr c, .asm_3d9a2
- jr .asm_3d96c
-
-.asm_3d97a
- call BattleRandom
- ld b, a
- ld a, [$ffb6]
- cp b
- jr nc, .asm_3d9a2
- ld a, $1
- ld [$d0ec], a
- ld hl, BattleText_0x80b3b
- jr .asm_3d995
-
-.asm_3d98d
- ld hl, BattleText_0x80ba0
- jr .asm_3d995
-
-.asm_3d992
- ld hl, BattleText_0x80b49
-
-.asm_3d995
- call StdBattleTextBox
- ld a, $1
- ld [$d266], a
- call Function309d
- and a
- ret
-
-.asm_3d9a2
- ld a, [InLinkBattle]
- and a
- ld a, $2
- jr z, .asm_3d9cf
- call Function309d
- xor a
- ld [$d0ec], a
- ld a, $f
- ld [CurMoveNum], a
- xor a
- ld [CurPlayerMove], a
- call Function3e8e4
- call Function30b4
- call Function3d2e0
- jr c, .asm_3d9f5
-
-; Got away safely
- ld a, [$d430]
- cp $f
- ld a, $2
- jr z, .asm_3d9cf
- dec a
-.asm_3d9cf
- ld b, a
- ld a, [$d0ee]
- and $c0
- add b
- ld [$d0ee], a
- call Function3ceec
- push de
- ld de, SFX_RUN
- call WaitPlaySFX
- pop de
- call WaitSFX
- ld hl, BattleText_0x80b77
- call StdBattleTextBox
- call WaitSFX
- call Function309d
- scf
- ret
-
-.asm_3d9f5
- call Function3ceec
- ld hl, $cd2a
- bit 4, [hl]
- jr nz, .asm_3da05
- ld hl, BattleText_0x81863
- call StdBattleTextBox
-
-.asm_3da05
- call WaitSFX
- call Function309d
- scf
- ret
-; 3da0d
-
-
-Function3da0d: ; 3da0d
- ld a, $0
- call GetPartyParamLocation
- ld de, BattleMonSpecies
- ld bc, $0006
- call CopyBytes
- ld bc, $000f
- add hl, bc
- ld de, BattleMonAtkDefDV
- ld bc, $0007
- call CopyBytes
- inc hl
- inc hl
- inc hl
- ld de, BattleMonLevel
- ld bc, $0011
- call CopyBytes
- ld a, [BattleMonSpecies]
- ld [TempBattleMonSpecies], a
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BaseType1]
- ld [BattleMonType1], a
- ld a, [BaseType2]
- ld [BattleMonType2], a
- ld hl, PartyMon1Nickname
- ld a, [CurBattleMon]
- call SkipNames
- ld de, BattleMonNick
- ld bc, $000b
- call CopyBytes
- ld hl, BattleMonAtk
- ld de, PlayerStats
- ld bc, $000a
- call CopyBytes
- call Function3ec2c
- call BadgeStatBoosts
- ret
-; 3da74
-
-Function3da74: ; 3da74
- call Function3da85
- jr asm_3da7c
-
-Function3da79: ; 3da79
- call Function3da97
-
-asm_3da7c
- ld b, h
- ld c, l
- callab CheckShininess
- ret
-; 3da85
-
-Function3da85: ; 3da85
- ld hl, BattleMonAtkDefDV
- ld a, [PlayerSubStatus5]
- bit 3, a
- ret z
- ld hl, PartyMon1DVs
- ld a, [CurBattleMon]
- jp GetPartyLocation
-; 3da97
-
-Function3da97: ; 3da97
- ld hl, EnemyMonAtkDefDV
- ld a, [EnemySubStatus5]
- bit 3, a
- ret z
- ld hl, $c6f2
- ld a, [IsInBattle]
- dec a
- ret z
- ld hl, OTPartyMon1AtkDefDV
- ld a, [CurOTMon]
- jp GetPartyLocation
-; 3dab1
-
-Function3dab1: ; 3dab1
- ld a, $7
- ld b, $8
- ld hl, PlayerAtkLevel
-.asm_3dab8
- ld [hli], a
- dec b
- jr nz, .asm_3dab8
- ret
-; 3dabd
-
-
-Function3dabd: ; 3dabd
- ld a, [CurPartyMon]
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- ld de, EnemyMonSpecies
- ld bc, $0006
- call CopyBytes
- ld bc, $000f
- add hl, bc
- ld de, EnemyMonAtkDefDV
- ld bc, $0007
- call CopyBytes
- inc hl
- inc hl
- inc hl
- ld de, EnemyMonLevel
- ld bc, $0011
- call CopyBytes
- ld a, [EnemyMonSpecies]
- ld [CurSpecies], a
- call GetBaseData
- ld hl, OTPartyMon1Nickname
- ld a, [CurPartyMon]
- call SkipNames
- ld de, EnemyMonNick
- ld bc, $000b
- call CopyBytes
- ld hl, EnemyMonAtk
- ld de, EnemyStats
- ld bc, $000a
- call CopyBytes
- call Function3ec30
- ld hl, BaseType1
- ld de, EnemyMonType1
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ld hl, BaseHP
- ld de, EnemyMonBaseStats
- ld b, $5
-.asm_3db25
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .asm_3db25
- ld a, [CurPartyMon]
- ld [CurOTMon], a
- ret
-; 3db32
-
-
-Function3db32: ; 3db32
- call ClearSprites
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
- call Function3dab1
- call Function3dbde
- call Function3dc18
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- ret
-; 3db5f
-
-
-Function3db5f: ; 3db5f
- ld hl, BattleMonAtkDefDV
- ld a, $2d
- call Predef
- ld hl, $c505
- ld b, $7
- ld c, $8
- call ClearBox
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- call Function3f43d
- xor a
- ld [$ffad], a
- ld [$d0d2], a
- ld [CurMoveNum], a
- ld [TypeModifier], a
- ld [PlayerMoveAnimation], a
- ld [LastEnemyCounterMove], a
- ld [LastPlayerCounterMove], a
- ld [LastPlayerMove], a
- call Function3e4a8
- call Function3ee27
- xor a
- ld [$c731], a
- call SetPlayerTurn
- xor a
- ld [$cfca], a
- ld [$c689], a
- ld de, $0101
- call Function3ee17
- call Function3da74
- jr nc, .asm_3dbbc
- ld a, $1
- ld [$c689], a
- ld de, $0101
- call Function3ee17
-
-.asm_3dbbc
- ld a, $0
- call GetPartyParamLocation
- ld b, h
- ld c, l
- callba Function4e53f
- jr c, .asm_3dbd6
- ld a, $f0
- ld [CryTracks], a
- ld a, [CurPartySpecies]
- call Function37b6
-
-.asm_3dbd6
- call Function3df48
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 3dbde
-
-Function3dbde: ; 3dbde
- xor a
- ld [LastEnemyCounterMove], a
- ld [LastPlayerCounterMove], a
- ld [LastPlayerMove], a
- ld hl, PlayerSubStatus1
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, PlayerUsedMoves
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld [PlayerDisableCount], a
- ld [PlayerFuryCutterCount], a
- ld [$c679], a
- ld [$c72b], a
- ld [DisabledMove], a
- ld [$c6fe], a
- ld [$c731], a
- ld [$c730], a
- ld [PlayerTurnsTaken], a
- ld hl, EnemySubStatus5
- res 7, [hl]
- ret
-; 3dc18
-
-Function3dc18: ; 3dc18
- ld hl, PlayerSubStatus1
- res 7, [hl]
- ld hl, EnemySubStatus1
- res 7, [hl]
- ret
-; 3dc23
-
-Function3dc23: ; 3dc23
- ld hl, PlayerScreens
- ld de, BattleMonType1
- ld bc, Function3df48
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3dc3a
- ld hl, EnemyScreens
- ld de, EnemyMonType1
- ld bc, Function3e036
-
-.asm_3dc3a
- bit 0, [hl]
- ret z
- ld a, [de]
- cp $2
- ret z
- inc de
- ld a, [de]
- cp $2
- ret z
- push bc
- ld hl, BattleText_0x80bae
- call StdBattleTextBox
- call GetEighthMaxHP
- call Function3cc39
- pop hl
- call Function3dc5a
- jp WaitBGMap
-; 3dc5a
-
-Function3dc5a: ; 3dc5a
- jp [hl]
-; 3dc5b
-
-Function3dc5b: ; 3dc5b
- ld a, $10
- call GetBattleVar
- ld b, a
- call Function3c5ec
- ld a, b
- cp $80
- jr nz, .asm_3dce4
- ld a, [CurBattleMon]
- push af
- ld hl, DoPlayerTurn
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3dc7e
- ld hl, DoEnemyTurn
- ld a, [$c71a]
- ld [CurBattleMon], a
-
-.asm_3dc7e
- ld a, BANK(DoPlayerTurn)
- rst FarCall
- ld a, $10
- call _GetBattleVar
- ld a, $ff
- ld [hl], a
- pop af
- ld [CurBattleMon], a
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3dcc0
- ld a, [$c71a]
- call Function399f
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- jr nz, .asm_3dce4
- ld a, $f0
- ld [CryTracks], a
- ld a, [BattleMonSpecies]
- call Function37b6
- ld a, [$c71a]
- ld c, a
- ld hl, $c664
- ld b, $0
- ld a, $3
- call Predef
- call Function3d43b
- ld hl, BattleText_0x80a75
- jr .asm_3dcdf
-
-.asm_3dcc0
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- jr nz, .asm_3dce4
- ld de, SFX_KINESIS
- call PlaySFX
- call WaitSFX
- ld de, SFX_UNKNOWN_2A
- call PlaySFX
- call WaitSFX
- call Function3d432
- ld hl, BattleText_0x809a8
-
-.asm_3dcdf
- call StdBattleTextBox
- scf
- ret
-
-.asm_3dce4
- and a
- ret
-; 3dce6
-
-Function3dce6: ; 3dce6
- ld a, [hBattleTurn]
- push af
- xor a
- ld [hBattleTurn], a
- ld [$cfca], a
- ld de, $0102
- call Function3ee17
- pop af
- ld [hBattleTurn], a
- ret
-; 3dcf9
-
-Function3dcf9: ; 3dcf9
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3dd17
- call SetPlayerTurn
- call Function3dd2f
- call Function3dde9
- call Function3de51
- call SetEnemyTurn
- call Function3dd2f
- call Function3dde9
- jp Function3de51
-
-.asm_3dd17
- call SetEnemyTurn
- call Function3dd2f
- call Function3dde9
- call Function3de51
- call SetPlayerTurn
- call Function3dd2f
- call Function3dde9
- jp Function3de51
-; 3dd2f
-
-Function3dd2f: ; 3dd2f
- callab GetOpponentItem
- ld a, b
- cp $1
- ret nz
- ld de, EnemyMonHPLo
- ld hl, EnemyMonMaxHPHi
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3dd4a
- ld de, $c63d
- ld hl, BattleMonMaxHP
-
-.asm_3dd4a
- push bc
- ld a, [de]
- ld [$d1ec], a
- add a
- ld c, a
- dec de
- ld a, [de]
- inc de
- ld [$d1ed], a
- adc a
- ld b, a
- ld a, b
- cp [hl]
- ld a, c
- pop bc
- jr z, .asm_3dd62
- jr c, .asm_3dd66
- ret
-
-.asm_3dd62
- inc hl
- cp [hl]
- dec hl
- ret nc
-
-.asm_3dd66
- call Function3ddc8
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hl]
- ld [Buffer1], a
- ld a, [de]
- add c
- ld [$d1ee], a
- ld c, a
- dec de
- ld a, [de]
- adc $0
- ld [$d1ef], a
- ld b, a
- ld a, [hld]
- cp c
- ld a, [hl]
- sbc b
- jr nc, .asm_3dd8d
- ld a, [hli]
- ld [$d1ef], a
- ld a, [hl]
- ld [$d1ee], a
-
-.asm_3dd8d
- ld a, [$d1ef]
- ld [de], a
- inc de
- ld a, [$d1ee]
- ld [de], a
- ld a, [hBattleTurn]
- ld [$d10a], a
- and a
- ld hl, $c4ca
- jr z, .asm_3dda4
- ld hl, $c55e
-
-.asm_3dda4
- ld [$d10a], a
- ld a, $b
- call Predef
-Function3ddac:
- call RefreshBattleHuds
- callab GetOpponentItem
- ld a, [hl]
- ld [$d265], a
- call GetItemName
- callab Function27192
- ld hl, RecoveredUsingText
- jp StdBattleTextBox
-; 3ddc8
-
-
-Function3ddc8: ; 3ddc8
- push hl
- push de
- push bc
- call EmptyBattleTextBox
- ld a, $69
- ld [FXAnimIDLo], a
- call Function3c8e4
- xor a
- ld [$cfca], a
- ld [FXAnimIDHi], a
- ld a, $37
- call Predef
- call Function3c8e4
- pop bc
- pop de
- pop hl
- ret
-; 3dde9
-
-Function3dde9: ; 3dde9
- callab GetOpponentItem
- ld hl, .Statuses
-.asm_3ddf2
- ld a, [hli]
- cp $ff
- ret z
- inc hl
- cp b
- jr nz, .asm_3ddf2
- dec hl
- ld b, [hl]
- ld a, $b
- call _GetBattleVar
- and b
- ret z
- xor a
- ld [hl], a
- push bc
- call UpdateOpponentInParty
- pop bc
- ld a, $9
- call _GetBattleVar
- and [hl]
- res 0, [hl]
- ld a, $5
- call _GetBattleVar
- and [hl]
- res 0, [hl]
- ld a, b
- cp $7f
- jr nz, .asm_3de26
- ld a, $7
- call _GetBattleVar
- res 7, [hl]
-
-.asm_3de26
- ld hl, Function0x365fd
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3de31
- ld hl, Function0x365d7
-
-.asm_3de31
- call Function3c8e4
- ld a, BANK(Function0x365fd)
- rst FarCall
- call Function3c8e4
- call Function3ddc8
- call Function3ddac
- ld a, $1
- and a
- ret
-; 3de44
-
-.Statuses ; 3de44
- db HELD_HEAL_POISON, 1 << PSN
- db HELD_HEAL_FREEZE, 1 << FRZ
- db HELD_HEAL_BURN, 1 << BRN
- db HELD_HEAL_SLEEP, SLP
- db HELD_HEAL_PARALYZE, 1 << PAR
- db HELD_HEAL_STATUS, 1 << PSN | 1 << FRZ | 1 << BRN | SLP | 1 << PAR
- db $ff
-; 3de51
-
-
-Function3de51: ; 3de51
- ld a, $7
- call GetBattleVar
- bit 7, a
- ret z
- callab GetOpponentItem
- ld a, b
- cp $10
- jr z, .asm_3de67
- cp $f
- ret nz
-
-.asm_3de67
- ld a, [hl]
- ld [$d265], a
- ld a, $7
- call _GetBattleVar
- res 7, [hl]
- call GetItemName
- call Function3ddc8
- ld hl, BattleText_0x80dab
- call StdBattleTextBox
- ld a, [hBattleTurn]
- and a
- jr nz, .asm_3de90
- call Function3df1f
- xor a
- ld [bc], a
- ld a, [IsInBattle]
- dec a
- ret z
- ld [hl], $0
- ret
-
-.asm_3de90
- call Function3df12
- xor a
- ld [bc], a
- ld [hl], a
- ret
-; 3de97
-
-Function3de97: ; 3de97
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3dea3
- call Function3dea9
- jp Function3deb1
-
-.asm_3dea3
- call Function3deb1
- jp Function3dea9
-; 3dea9
-
-Function3dea9: ; 3dea9
- call Function3df12
- ld a, $0
- jp Function3deb6
-; 3deb1
-
-Function3deb1: ; 3deb1
- call Function3df1f
- ld a, $1
-Function3deb6: ; 3deb6
- ld [hBattleTurn], a
- ld d, h
- ld e, l
- push de
- push bc
- ld a, [bc]
- ld b, a
- callab GetItem
- ld hl, .data_3defc
-.asm_3dec7
- ld a, [hli]
- cp $ff
- jr z, .asm_3def9
- inc hl
- inc hl
- cp b
- jr nz, .asm_3dec7
- pop bc
- ld a, [bc]
- ld [$d265], a
- push bc
- dec hl
- dec hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, BANK(BattleCommand70)
- rst FarCall
- pop bc
- pop de
- ld a, [FailedMessage]
- and a
- ret nz
- xor a
- ld [bc], a
- ld [de], a
- call GetItemName
- ld hl, BattleText_0x80bde
- call StdBattleTextBox
- callab BattleCommand8c
- ret
-
-.asm_3def9
- pop bc
- pop de
- ret
-; 3defc
-
-.data_3defc
- dbw $1f, BattleCommand70
- dbw $20, BattleCommand71
- dbw $21, BattleCommand72
- dbw $22, BattleCommand73
- dbw $23, BattleCommand74
- dbw $24, BattleCommand75
- dbw $25, BattleCommand76
- db $ff
-; 3df12
-
-
-Function3df12: ; 3df12
- ld hl, PartyMon1Item
- ld a, [CurBattleMon]
- call GetPartyLocation
- ld bc, BattleMonItem
- ret
-; 3df1f
-
-Function3df1f: ; 3df1f
- ld hl, OTPartyMon1Item
- ld a, [CurOTMon]
- call GetPartyLocation
- ld bc, EnemyMonItem
- ret
-; 3df2c
-
-Function3df2c: ; 3df2c
- push hl
- push de
- push bc
- call DrawPlayerHUD
- ld hl, PlayerHPPal
- call SetHPPal
- call CheckDanger
- call Function3e043
- ld hl, EnemyHPPal
- call SetHPPal
- pop bc
- pop de
- pop hl
- ret
-; 3df48
-
-
-
-Function3df48: ; 3df48
- push hl
- push de
- push bc
- call DrawPlayerHUD
- call UpdatePlayerHPPal
- call CheckDanger
- pop bc
- pop de
- pop hl
- ret
-; 3df58
-
-DrawPlayerHUD: ; 3df58
- xor a
- ld [hBGMapMode], a
-
-; Clear the area
- hlcoord 9, 7
- ld bc, $050b
- call ClearBox
-
- callba DrawPlayerExpBar
-
- hlcoord 18, 9
- ld [hl], $73 ; vertical bar
- call PrintPlayerHUD
-
-; HP bar
- hlcoord 10, 9
- ld b, OTPARTYMON
- xor a
- ld [MonType], a
- ld a, PREDEF_DRAW_PLAYER_HP
- call Predef
-
-; Exp bar
- push de
- ld a, [CurBattleMon]
- ld hl, PartyMon1Exp + 2
- call GetPartyLocation
- ld d, h
- ld e, l
-
- hlcoord 10, 11
- ld a, [TempMonLevel]
- ld b, a
- call FillInExpBar
- pop de
- ret
-; 3df98
-
-UpdatePlayerHPPal: ; 3df98
- ld hl, PlayerHPPal
- jp Function3e12e
-; 3df9e
-
-CheckDanger: ; 3df9e
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- jr z, .asm_3dfb2
- ld a, [$c6fd]
- and a
- jr nz, .asm_3dfbe
- ld a, [PlayerHPPal]
- cp $2
- jr z, .asm_3dfb9
-
-.asm_3dfb2
- ld hl, Danger
- res 7, [hl]
- jr .asm_3dfbe
-
-.asm_3dfb9
- ld hl, Danger
- set 7, [hl]
-
-.asm_3dfbe
- ret
-; 3dfbf
-
-PrintPlayerHUD: ; 3dfbf
- ld de, BattleMonNick
- hlcoord 10, 7
- call Function3e138
- call PlaceString
-
- push bc
-
- ld a, [CurBattleMon]
- ld hl, PartyMon1DVs
- call GetPartyLocation
- ld de, TempMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ld hl, BattleMonLevel
- ld de, TempMonLevel
- ld bc, $0011
- call CopyBytes
- ld a, [CurBattleMon]
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld a, [hl]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
-
- pop hl
- dec hl
-
- ld a, $3
- ld [MonType], a
- callab GetGender
- ld a, $7f
- jr c, .asm_3e013
- ld a, $ef
- jr nz, .asm_3e013
- ld a, $f5
-
-.asm_3e013
- ld hl, $c551
- ld [hl], a
- ld hl, $c54e
- push af
- push hl
- ld de, BattleMonStatus
- ld a, $21
- call Predef
- pop hl
- pop bc
- ret nz
- ld a, b
- cp $7f
- jr nz, .asm_3e02d
- dec hl
-
-.asm_3e02d
- ld a, [BattleMonLevel]
- ld [TempMonLevel], a
- jp PrintLevel
-; 3e036
-
-Function3e036: ; 3e036
- push hl
- push de
- push bc
- call Function3e043
- call Function3e127
- pop bc
- pop de
- pop hl
- ret
-; 3e043
-
-Function3e043: ; 3e043
- xor a
- ld [hBGMapMode], a
- ld hl, $c4a1
- ld bc, $040b
- call ClearBox
- callba Function2c0c5
- ld a, [TempEnemyMonSpecies]
- ld [CurSpecies], a
- ld [CurPartySpecies], a
- call GetBaseData
- ld de, EnemyMonNick
- ld hl, $c4a1
- call Function3e138
- call PlaceString
- ld h, b
- ld l, c
- dec hl
- ld hl, EnemyMonAtkDefDV
- ld de, TempMonDVs
- ld a, [EnemySubStatus5]
- bit 3, a
- jr z, .asm_3e080
- ld hl, $c6f2
-
-.asm_3e080
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ld a, $3
- ld [MonType], a
- callab GetGender
- ld a, $7f
- jr c, .asm_3e09a
- ld a, $ef
- jr nz, .asm_3e09a
- ld a, $f5
-
-.asm_3e09a
- ld hl, $c4bd
- ld [hl], a
- ld hl, $c4ba
- push af
- push hl
- ld de, EnemyMonStatus
- ld a, $21
- call Predef
- pop hl
- pop bc
- jr nz, .asm_3e0be
- ld a, b
- cp $7f
- jr nz, .asm_3e0b5
- dec hl
-
-.asm_3e0b5
- ld a, [EnemyMonLevel]
- ld [TempMonLevel], a
- call PrintLevel
-
-.asm_3e0be
- ld hl, EnemyMonHPHi
- ld a, [hli]
- ld [$ffb5], a
- ld a, [hld]
- ld [$ffb6], a
- or [hl]
- jr nz, .asm_3e0d1
- ld c, a
- ld e, a
- ld d, $6
- jp .asm_3e11a
-
-.asm_3e0d1
- xor a
- ld [hMultiplicand], a
- ld a, $30
- ld [hMultiplier], a
- call Multiply
- ld hl, EnemyMonMaxHPHi
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld [hMultiplier], a
- ld a, b
- and a
- jr z, .asm_3e105
- ld a, [hMultiplier]
- srl b
- rr a
- srl b
- rr a
- ld [hMultiplier], a
- ld a, [$ffb5]
- ld b, a
- srl b
- ld a, [$ffb6]
- rr a
- srl b
- rr a
- ld [$ffb6], a
- ld a, b
- ld [$ffb5], a
-
-.asm_3e105
- ld a, [$ffb5]
- ld [hProduct], a
- ld a, [$ffb6]
- ld [hMultiplicand], a
- ld a, $2
- ld b, a
- call Divide
- ld a, [$ffb6]
- ld e, a
- ld a, $6
- ld d, a
- ld c, a
-.asm_3e11a
- xor a
- ld [$d10a], a
- ld hl, $c4ca
- ld b, $0
- call DrawHPBar
- ret
-; 3e127
-
-Function3e127: ; 3e127
- ld hl, EnemyHPPal
- call Function3e12e
- ret
-; 3e12e
-
-Function3e12e: ; 3e12e
- ld b, [hl]
- call SetHPPal
- ld a, [hl]
- cp b
- ret z
- jp Function3ee27
-; 3e138
-
-Function3e138: ; 3e138
- ret
-; 3e139
-
-Function3e139: ; 3e139
- xor a
- ld [hBGMapMode], a
- call Function30bf
- ld a, [BattleType]
- cp $2
- jr z, .asm_3e156
- cp $3
- jr z, .asm_3e156
- call EmptyBattleTextBox
- call UpdateBattleHuds
- call EmptyBattleTextBox
- call Function309d
-
-.asm_3e156
- ld a, [BattleType]
- cp $6
- jr nz, .asm_3e165
- callba LoadParkBattleMenuDataHeader
- jr .asm_3e175
-
-.asm_3e165
- ld a, [InputType]
- or a
- jr z, .asm_3e171
- callba Function1de294
-.asm_3e171
- call Function3e19b
- ret c
-
-.asm_3e175
- ld a, $1
- ld [hBGMapMode], a
- ld a, [$d0d2]
- cp $1
- jp z, Function3e192
- cp $3
- jp z, Function3e1c7
- cp $2
- jp z, Function3e28d
- cp $4
- jp z, Function3e489
- jr .asm_3e156
-; 3e192
-
-Function3e192: ; 3e192
- xor a
- ld [$d267], a
- call Function30b4
- and a
- ret
-; 3e19b
-
-Function3e19b: ; 3e19b
- call CheckInMobileLinkBattle
- jr z, .ismobilelinkbattle
- callba LoadBattleMenuDataHeader
- and a
- ret
-
-.ismobilelinkbattle
- callba Function100b12
- ld a, [$cd2b]
- and a
- ret z
- ld hl, $cd2a
- bit 4, [hl]
- jr nz, .asm_3e1c5
- ld hl, $5863
- call StdBattleTextBox
- ld c, $3c
- call DelayFrames
-
-.asm_3e1c5
- scf
- ret
-; 3e1c7
-
-Function3e1c7: ; 3e1c7
- ld a, [InLinkBattle]
- and a
- jp nz, Function3e22b
- ld a, [$cfc0]
- and a
- jp nz, Function3e22b
- call Function1d6e
- ld a, [BattleType]
- cp $3
- jr z, .asm_3e1f1
- cp $6
- jr z, .asm_3e201
- callba Function10493
- ld a, [$d0ec]
- and a
- jr z, .asm_3e20d
- jr .asm_3e209
-
-.asm_3e1f1
- callba Function107bb
- ld a, $5
- ld [CurItem], a
- call DoItemEffect
- jr .asm_3e209
-
-.asm_3e201
- ld a, $b1
- ld [CurItem], a
- call DoItemEffect
-
-.asm_3e209
- call Function3e234
- ret
-
-.asm_3e20d
- call ClearPalettes
- call DelayFrame
- call Function3ed9f
- call Function3f43d
- call Function3f47c
- call Function1c07
- call WaitBGMap
- call Function3ee27
- call Function309d
- jp Function3e139
-; 3e22b
-
-Function3e22b: ; 3e22b
- ld hl, BattleText_0x80bf3
- call StdBattleTextBox
- jp Function3e139
-; 3e234
-
-Function3e234: ; 3e234
- ld a, [$c64e]
- and a
- jr nz, .asm_3e279
- callab CheckItemPocket
- ld a, [$d142]
- cp $3
- jr z, .asm_3e24a
- call WhiteBGMap
-
-.asm_3e24a
- xor a
- ld [hBGMapMode], a
- call Function3ed9f
- call ClearSprites
- ld a, [BattleType]
- cp $3
- jr z, .asm_3e25d
- call Function3f43d
-
-.asm_3e25d
- call Function3f47c
- ld a, $1
- ld [$cfa9], a
- call Function1c07
- call Function3df2c
- call WaitBGMap
- call Function309d
- call Function1fbf
- call Function3ee27
- and a
- ret
-
-.asm_3e279
- xor a
- ld [$c64e], a
- ld a, [$d0ee]
- and $c0
- ld [$d0ee], a
- call Function1fbf
- call Function32f9
- scf
- ret
-; 3e28d
-
-Function3e28d: ; 3e28d
- call Function1d6e
-Function3e290:
- call Function1c07
- call Function1d6e
- call WhiteBGMap
-Function3e299:
- call Function3d2fa
- xor a
- ld [PartyMenuActionText], a
- call Function3d313
- call Function3d329
- jr c, .asm_3e2da
-.asm_3e2a8
- callba Function8ea4a
- call Function3e2f5
- jr c, .asm_3e2c8
- call Function1bee
- ld a, [$cfa9]
- cp $1
- jp z, Function3e358
- cp $2
- jr z, .asm_3e2cf
- cp $3
- jr z, .asm_3e2da
- jr .asm_3e2a8
-
-.asm_3e2c8
- call Function3d2e0
- jr c, .asm_3e2da
- jr Function3e299
-
-.asm_3e2cf
- call Function3e308
- call Function3d2e0
- jr c, .asm_3e2da
- jp Function3e290
-
-.asm_3e2da
- call ClearSprites
- call ClearPalettes
- call DelayFrame
- call Function3eda6
- call Function1c17
- call Function309d
- call ClearSGB
- call Function32f9
- jp Function3e139
-; 3e2f5
-
-Function3e2f5: ; 3e2f5
- call CheckInMobileLinkBattle
- jr z, .ismobilelinkbattle
- callba Function24e99
- ret
-
-.ismobilelinkbattle
- callba Function100d22
- ret
-; 3e308
-
-Function3e308: ; 3e308
- call DisableLCD
- ld hl, $9310
- ld de, VTiles0
- ld bc, $0110
- call CopyBytes
- ld hl, VTiles2
- ld de, $8110
- ld bc, $0310
- call CopyBytes
- call EnableLCD
- call ClearSprites
- call LowVolume
- xor a
- ld [MonType], a
- callba Function4dc7b
- call MaxVolume
- call DisableLCD
- ld hl, VTiles0
- ld de, $9310
- ld bc, $0110
- call CopyBytes
- ld hl, $8110
- ld de, VTiles2
- ld bc, $0310
- call CopyBytes
- call EnableLCD
- ret
-; 3e358
-
-
-Function3e358: ; 3e358
- ld a, [CurBattleMon]
- ld d, a
- ld a, [CurPartyMon]
- cp d
- jr nz, .asm_3e36b
- ld hl, BattleText_0x80c0d
- call StdBattleTextBox
- jp Function3e299
-
-.asm_3e36b
- ld a, [$c730]
- and a
- jr nz, .asm_3e378
- ld a, [EnemySubStatus5]
- bit 7, a
- jr z, .asm_3e381
-
-.asm_3e378
- ld hl, BattleText_0x80c22
- call StdBattleTextBox
- jp Function3e299
-
-.asm_3e381
- call Function3d887
- jp z, Function3e299
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, $2
- ld [$d0ec], a
- call ClearPalettes
- call DelayFrame
- call ClearSprites
- call Function3eda6
- call Function1c17
- call ClearSGB
- call Function32f9
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- ; fallthrough
-; 3e3ad
-
-Function3e3ad: ; 3e3ad
- ld a, $1
- ld [$c710], a
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3e3c1
- call Function1d6e
- call Function3e8e4
- call Function1c17
-
-.asm_3e3c1
- call Function3e7c1
- ld a, [InLinkBattle]
- and a
- jr nz, .asm_3e3cf
-
-.asm_3e3ca
- call Function3e40b
- and a
- ret
-
-.asm_3e3cf
- ld a, [$d430]
- cp $e
- jp z, .asm_3e3ca
- cp $d
- jp z, .asm_3e3ca
- cp $4
- jp c, .asm_3e3ca
- cp $f
- jr nz, .asm_3e3e9
- call Function3c0e5
- ret
-
-.asm_3e3e9
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3e3f7
- call Function3e40b
- call Function3e3ff
- and a
- ret
-
-.asm_3e3f7
- call Function3e3ff
- call Function3e40b
- and a
- ret
-; 3e3ff
-
-Function3e3ff: ; 3e3ff
- callab Function3846c
- call SetEnemyTurn
- jp Function3dc23
-; 3e40b
-
-Function3e40b: ; 3e40b
- call Function3f2f4
- ld c, $32
- call DelayFrames
- ld hl, PlayerSubStatus4
- res 6, [hl]
- call SetEnemyTurn
- call Function3dc5b
- jr c, .asm_3e423
- call Function3dce6
-
-.asm_3e423
- ld hl, $c535
- ld bc, $050b
- call ClearBox
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- call Function3d581
- call Function3da0d
- call Function3dab1
- call Function3f26d
- call Function3dbde
- call Function3dc18
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- call SetPlayerTurn
- call Function3dc23
- ld a, $2
- ld [$cfa9], a
- ret
-; 3e459
-
-Function3e459: ; 3e459
- ld c, $32
- call DelayFrames
- ld hl, $c535
- ld bc, $050b
- call ClearBox
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
- xor a
- ld [$d265], a
- call Function3ecab
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- call SetPlayerTurn
- jp Function3dc23
-; 3e489
-
-
-
-Function3e489: ; 3e489
- call Function30b4
- ld a, $3
- ld [$cfa9], a
- ld hl, BattleMonSpd
- ld de, EnemyMonSpd
- call Function3d8b3
- ld a, $0
- ld [$d266], a
- ret c
- ld a, [$d0ec]
- and a
- ret nz
- jp Function3e139
-; 3e4a8
-
-
-
-Function3e4a8: ; 3e4a8
- ld a, [BattleMonItem]
- ld b, a
- callab GetItem
- ld a, b
- cp $4c
- ret nz
- ld a, $1
- ld [$c73d], a
- ret
-; 3e4bc
-
-Function3e4bc: ; 3e4bc
- call CheckInMobileLinkBattle
- jr nz, .notmobilelinkbattle
- callba Function100b9f
- ret
-
-.notmobilelinkbattle
- ld hl, EnemyMonMove1
- ld a, [$d235]
- dec a
- jr z, .asm_3e4e2
- dec a
- jr z, .asm_3e4dd
- call Function3e786
- ret z
- ld hl, BattleMonMove1
- jr .asm_3e4e2
-
-.asm_3e4dd
- ld a, $2
- call GetPartyParamLocation
-
-.asm_3e4e2
- ld de, $d25e
- ld bc, $0004
- call CopyBytes
- xor a
- ld [hBGMapMode], a
- ld hl, $c594
- ld b, $4
- ld c, $e
- ld a, [$d235]
- cp $2
- jr nz, .asm_3e503
- ld hl, $c544
- ld b, $4
- ld c, $e
-
-.asm_3e503
- call TextBox
- ld hl, $c5aa
- ld a, [$d235]
- cp $2
- jr nz, .asm_3e513
- ld hl, $c55a
-
-.asm_3e513
- ld a, $14
- ld [Buffer1], a
- ld a, $20
- call Predef
- ld b, $5
- ld a, [$d235]
- cp $2
- ld a, $d
- jr nz, .asm_3e52c
- ld b, $5
- ld a, $9
-
-.asm_3e52c
- ld [$cfa1], a
- ld a, b
- ld [$cfa2], a
- ld a, [$d235]
- cp $1
- jr z, .asm_3e53e
- ld a, [CurMoveNum]
- inc a
-
-.asm_3e53e
- ld [$cfa9], a
- ld a, $1
- ld [$cfaa], a
- ld a, [$d0eb]
- inc a
- ld [$cfa3], a
- ld a, $1
- ld [$cfa4], a
- ld c, $2c
- ld a, [$d235]
- dec a
- ld b, $c1
- jr z, .asm_3e569
- dec a
- ld b, $c3
- jr z, .asm_3e569
- ld a, [InLinkBattle]
- and a
- jr nz, .asm_3e569
- ld b, $c7
-
-.asm_3e569
- ld a, b
- ld [$cfa8], a
- ld a, c
- ld [$cfa5], a
- xor a
- ld [$cfa6], a
- ld a, $10
- ld [$cfa7], a
-.asm_3e57a
- ld a, [$d235]
- and a
- jr z, .asm_3e58e
- dec a
- jr nz, .asm_3e5a3
- ld hl, $c5c3
- ld de, .string_3e61c
- call PlaceString
- jr .asm_3e5a3
-
-.asm_3e58e
- call MoveInfoBox
- ld a, [$d0e3]
- and a
- jr z, .asm_3e5a3
- ld hl, $c5a9
- ld bc, $0014
- dec a
- call AddNTimes
- ld [hl], $ec
-
-.asm_3e5a3
- ld a, $1
- ld [hBGMapMode], a
- call Function1bd3
- bit 6, a
- jp nz, .asm_3e61d
- bit 7, a
- jp nz, .asm_3e62e
- bit 2, a
- jp nz, Function3e643
- bit 1, a
- push af
- xor a
- ld [$d0e3], a
- ld a, [$cfa9]
- dec a
- ld [$cfa9], a
- ld b, a
- ld a, [$d235]
- dec a
- jr nz, .asm_3e5d0
- pop af
- ret
-
-.asm_3e5d0
- dec a
- ld a, b
- ld [CurMoveNum], a
- jr nz, .asm_3e5d9
- pop af
- ret
-
-.asm_3e5d9
- pop af
- ret nz
- ld hl, BattleMonPPMove1
- ld a, [$cfa9]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- and $3f
- jr z, .asm_3e610
- ld a, [PlayerDisableCount]
- swap a
- and $f
- dec a
- cp c
- jr z, .asm_3e60b
- ld a, [$c6e1]
- and a
- jr nz, .asm_3e606
- ld a, [$cfa9]
- ld hl, BattleMonMove1
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
-
-.asm_3e606
- ld [CurPlayerMove], a
- xor a
- ret
-
-.asm_3e60b
- ld hl, BattleText_0x80c5b
- jr .asm_3e613
-
-.asm_3e610
- ld hl, Function3cc39
-
-.asm_3e613
- call StdBattleTextBox
- call Function30b4
- jp Function3e4bc
-; 3e61c
-
-.string_3e61c ; 3e61c
- db "@"
-; 3e61d
-
-.asm_3e61d
- ld a, [$cfa9]
- and a
- jp nz, .asm_3e57a
- ld a, [$d0eb]
- inc a
- ld [$cfa9], a
- jp .asm_3e57a
-; 3e62e
-
-.asm_3e62e: ; 3e62e
- ld a, [$cfa9]
- ld b, a
- ld a, [$d0eb]
- inc a
- inc a
- cp b
- jp nz, .asm_3e57a
- ld a, $1
- ld [$cfa9], a
- jp .asm_3e57a
-; 3e643
-
-Function3e643: ; 3e643
- ld a, [$d0e3]
- and a
- jr z, .asm_3e6bf
- ld hl, BattleMonMoves
- call .asm_3e6a5
- ld hl, BattleMonPP
- call .asm_3e6a5
- ld hl, PlayerDisableCount
- ld a, [hl]
- swap a
- and $f
- ld b, a
- ld a, [$cfa9]
- cp b
- jr nz, .asm_3e671
- ld a, [hl]
- and $f
- ld b, a
- ld a, [$d0e3]
- swap a
- add b
- ld [hl], a
- jr .asm_3e682
-
-.asm_3e671
- ld a, [$d0e3]
- cp b
- jr nz, .asm_3e682
- ld a, [hl]
- and $f
- ld b, a
- ld a, [$cfa9]
- swap a
- add b
- ld [hl], a
-
-.asm_3e682
- ld a, [PlayerSubStatus5]
- bit 3, a
- jr nz, .asm_3e69e
- ld hl, PartyMon1Moves
- ld a, [CurBattleMon]
- call GetPartyLocation
- push hl
- call .asm_3e6a5
- pop hl
- ld bc, $0015
- add hl, bc
- call .asm_3e6a5
-
-.asm_3e69e
- xor a
- ld [$d0e3], a
- jp Function3e4bc
-
-.asm_3e6a5
- push hl
- ld a, [$d0e3]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- ld a, [$cfa9]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [de]
- ld b, [hl]
- ld [hl], a
- ld a, b
- ld [de], a
- ret
-
-.asm_3e6bf
- ld a, [$cfa9]
- ld [$d0e3], a
- jp Function3e4bc
-; 3e6c8
-
-MoveInfoBox: ; 3e6c8
- xor a
- ld [hBGMapMode], a
-
- hlcoord 0, 8
- ld b, 3
- ld c, 9
- call TextBox
- call MobileTextBorder
-
- ld a, [PlayerDisableCount]
- and a
- jr z, .asm_3e6f4
-
- swap a
- and $f
- ld b, a
- ld a, [$cfa9]
- cp b
- jr nz, .asm_3e6f4
-
- hlcoord 1, 10
- ld de, .Disabled
- call PlaceString
- jr .done
-
-.asm_3e6f4
- ld hl, $cfa9
- dec [hl]
- call SetPlayerTurn
- ld hl, BattleMonMoves
- ld a, [$cfa9]
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hl]
- ld [CurPlayerMove], a
-
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- ld a, WILDMON
- ld [MonType], a
- callab Functionf8ec
-
- ld hl, $cfa9
- ld c, [hl]
- inc [hl]
- ld b, 0
- ld hl, BattleMonPP
- add hl, bc
- ld a, [hl]
- and $3f
- ld [StringBuffer1], a
- call Function3e75f
-
- hlcoord 1, 9
- ld de, .Type
- call PlaceString
-
- hlcoord 7, 11
- ld [hl], "/"
-
- callab UpdateMoveData
- ld a, [PlayerMoveAnimation]
- ld b, a
- hlcoord 2, 10
- ld a, PREDEF_PRINT_MOVE_TYPE
- call Predef
-
-.done
- ret
-; 3e74f
-
-.Disabled
- db "Disabled!@"
-.Type
- db "TYPE/@"
-; 3e75f
-
-
-Function3e75f: ; 3e75f
- hlcoord 5, 11
- ld a, [InLinkBattle]
- cp $4
- jr c, .asm_3e76c
- hlcoord 5, 11
-
-.asm_3e76c
- push hl
- ld de, StringBuffer1
- ld bc, $0102
- call PrintNum
- pop hl
- inc hl
- inc hl
- ld [hl], "/"
- inc hl
- ld de, $d265
- ld bc, $0102
- call PrintNum
- ret
-; 3e786
-
-Function3e786: ; 3e786
- ld a, STRUGGLE
- ld [CurPlayerMove], a
- ld a, [PlayerDisableCount]
- and a
- ld hl, BattleMonPP
- jr nz, .asm_3e79f
-
- ld a, [hli]
- or [hl]
- inc hl
- or [hl]
- inc hl
- or [hl]
- and $3f
- ret nz
- jr .asm_3e7b4
-
-.asm_3e79f
- swap a
- and $f
- ld b, a
- ld d, $5
- xor a
-.asm_3e7a7
- dec d
- jr z, .asm_3e7b2
- ld c, [hl]
- inc hl
- dec b
- jr z, .asm_3e7a7
- or c
- jr .asm_3e7a7
-
-.asm_3e7b2
- and a
- ret nz
-
-.asm_3e7b4
- ld hl, BattleText_0x80c72
- call StdBattleTextBox
- ld c, 60
- call DelayFrames
- xor a
- ret
-; 3e7c1
-
-
-
-Function3e7c1: ; 3e7c1
- ld a, [$c711]
- and a
- ret nz
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3e817
- call EmptyBattleTextBox
- call Function309d
- ld a, [$d0ec]
- and a
- call z, Function3e8e4
- call Function30b4
- ld a, [$d430]
- cp $e
- jp z, .asm_3e8bd
- cp $d
- jp z, .asm_3e82c
- cp $4
- jp nc, Function3e8c1
- ld [CurEnemyMoveNum], a
- ld c, a
- ld a, [EnemySubStatus1]
- bit 6, a
- jp nz, .asm_3e882
- ld a, [EnemySubStatus3]
- and $13
- jp nz, .asm_3e882
- ld hl, EnemySubStatus5
- bit 4, [hl]
- ld a, [LastEnemyMove]
- jp nz, .asm_3e87f
- ld hl, EnemyMonMove1
- ld b, $0
- add hl, bc
- ld a, [hl]
- jp .asm_3e87f
-
-.asm_3e817
- ld hl, EnemySubStatus5
- bit 4, [hl]
- jr z, .asm_3e824
- ld a, [LastEnemyMove]
- jp .asm_3e87f
-
-.asm_3e824
- call Function3e8d1
- jp nz, Function3e8c1
- jr .asm_3e830
-
-.asm_3e82c
- ld a, $ff
- jr .asm_3e87f
-
-.asm_3e830
- ld hl, EnemyMonMove1
- ld de, EnemyMonPPMove1
- ld b, $4
-.asm_3e838
- ld a, [hl]
- and a
- jp z, .asm_3e8bd
- ld a, [EnemyDisabledMove]
- cp [hl]
- jr z, .asm_3e848
- ld a, [de]
- and $3f
- jr nz, .asm_3e84f
-
-.asm_3e848
- inc hl
- inc de
- dec b
- jr nz, .asm_3e838
- jr .asm_3e8bd
-
-.asm_3e84f
- ld a, [IsInBattle]
- dec a
- jr nz, .asm_3e882
-.asm_3e855
- ld hl, EnemyMonMove1
- call BattleRandom
- and $3
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [EnemyDisableCount]
- swap a
- and $f
- dec a
- cp c
- jr z, .asm_3e855
- ld a, [hl]
- and a
- jr z, .asm_3e855
- ld hl, EnemyMonPPMove1
- add hl, bc
- ld b, a
- ld a, [hl]
- and $3f
- jr z, .asm_3e855
- ld a, c
- ld [CurEnemyMoveNum], a
- ld a, b
-
-.asm_3e87f
- ld [CurEnemyMove], a
-
-.asm_3e882
- call SetEnemyTurn
- callab UpdateMoveData
- call Function3e8d1
- jr nz, .asm_3e894
- xor a
- ld [$c733], a
-
-.asm_3e894
- ld a, [EnemyMoveEffect]
- cp $77
- jr z, .asm_3e89f
- xor a
- ld [EnemyFuryCutterCount], a
-
-.asm_3e89f
- ld a, [EnemyMoveEffect]
- cp $51
- jr z, .asm_3e8af
- ld hl, EnemySubStatus4
- res 6, [hl]
- xor a
- ld [$c72c], a
-
-.asm_3e8af
- ld a, [EnemyMoveEffect]
- cp $6f
- ret z
- cp $74
- ret z
- xor a
- ld [$c681], a
- ret
-
-.asm_3e8bd
- ld a, $a5
- jr .asm_3e87f
-; 3e8c1
-
-Function3e8c1: ; 3e8c1
- xor a
- ld [EnemyFuryCutterCount], a
- ld [$c681], a
- ld [$c72c], a
- ld hl, EnemySubStatus4
- res 6, [hl]
- ret
-; 3e8d1
-
-Function3e8d1: ; 3e8d1
- ld a, [EnemySubStatus4]
- and $20
- ret nz
- ld hl, EnemySubStatus3
- ld a, [hl]
- and $13
- ret nz
- ld hl, EnemySubStatus1
- bit 6, [hl]
- ret
-; 3e8e4
-
-Function3e8e4: ; 3e8e4
- callba Function100a09
- ret
-; 3e8eb
-
-
-LoadEnemyMon: ; 3e8eb
-; Initialize enemy monster parameters
-; To do this we pull the species from TempEnemyMonSpecies
-
-; Notes:
-; BattleRandom is used to ensure sync between Game Boys
-
-; Clear the whole EnemyMon struct
- xor a
- ld hl, EnemyMonSpecies
- ld bc, EnemyMonEnd - EnemyMon
- call ByteFill
-
-; We don't need to be here if we're in a link battle
- ld a, [InLinkBattle]
- and a
- jp nz, Function3dabd
-
- ld a, [$cfc0] ; ????
- bit 0, a
- jp nz, Function3dabd
-
-; Make sure everything knows what species we're working with
- ld a, [TempEnemyMonSpecies]
- ld [EnemyMonSpecies], a
- ld [CurSpecies], a
- ld [CurPartySpecies], a
-
-; Grab the BaseData for this species
- call GetBaseData
-
-
-; Let's get the item:
-
-; Is the item predetermined?
- ld a, [IsInBattle]
- dec a
- jr z, .WildItem
-
-; If we're in a trainer battle, the item is in the party struct
- ld a, [CurPartyMon]
- ld hl, OTPartyMon1Item
- call GetPartyLocation ; bc = PartyMon[CurPartyMon] - PartyMons
- ld a, [hl]
- jr .UpdateItem
-
-
-.WildItem
-; In a wild battle, we pull from the item slots in BaseData
-
-; Force Item1
-; Used for Ho-Oh, Lugia and Snorlax encounters
- ld a, [BattleType]
- cp BATTLETYPE_FORCEITEM
- ld a, [BaseItems]
- jr z, .UpdateItem
-
-; Failing that, it's all up to chance
-; Effective chances:
-; 75% None
-; 23% Item1
-; 2% Item2
-
-; 25% chance of getting an item
- call BattleRandom
- cp a, $c0
- ld a, NO_ITEM
- jr c, .UpdateItem
-
-; From there, an 8% chance for Item2
- call BattleRandom
- cp a, $14 ; 8% of 25% = 2% Item2
- ld a, [BaseItems]
- jr nc, .UpdateItem
- ld a, [BaseItems+1]
-
-
-.UpdateItem
- ld [EnemyMonItem], a
-
-
-; Initialize DVs
-
-; If we're in a trainer battle, DVs are predetermined
- ld a, [IsInBattle]
- and a
- jr z, .InitDVs
-
-; ????
- ld a, [EnemySubStatus5]
- bit 3, a
- jr z, .InitDVs
-
-; Unknown
- ld hl, $c6f2
- ld de, EnemyMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- jp .Happiness
-
-
-.InitDVs
-
-; Trainer DVs
-
-; All trainers have preset DVs, determined by class
-; See GetTrainerDVs for more on that
- callba GetTrainerDVs
-; These are the DVs we'll use if we're actually in a trainer battle
- ld a, [IsInBattle]
- dec a
- jr nz, .UpdateDVs
-
-
-; Wild DVs
-; Here's where the fun starts
-
-; Roaming monsters (Entei, Raikou) work differently
-; They have their own structs, which are shorter than normal
- ld a, [BattleType]
- cp a, BATTLETYPE_ROAMING
- jr nz, .NotRoaming
-
-; Grab HP
- call GetRoamMonHP
- ld a, [hl]
-; Check if the HP has been initialized
- and a
-; We'll do something with the result in a minute
- push af
-
-; Grab DVs
- call GetRoamMonDVs
- inc hl
- ld a, [hld]
- ld c, a
- ld b, [hl]
-
-; Get back the result of our check
- pop af
-; If the RoamMon struct has already been initialized, we're done
- jr nz, .UpdateDVs
-
-; If it hasn't, we need to initialize the DVs
-; (HP is initialized at the end of the battle)
- call GetRoamMonDVs
- inc hl
- call BattleRandom
- ld [hld], a
- ld c, a
- call BattleRandom
- ld [hl], a
- ld b, a
-; We're done with DVs
- jr .UpdateDVs
-
-
-.NotRoaming
-; Register a contains BattleType
-
-; Forced shiny battle type
-; Used by Red Gyarados at Lake of Rage
- cp a, BATTLETYPE_SHINY
- jr nz, .GenerateDVs
-
- ld b, ATKDEFDV_SHINY ; $ea
- ld c, SPDSPCDV_SHINY ; $aa
- jr .UpdateDVs
-
-.GenerateDVs
-; Generate new random DVs
- call BattleRandom
- ld b, a
- call BattleRandom
- ld c, a
-
-.UpdateDVs
-; Input DVs in register bc
- ld hl, EnemyMonDVs
- ld a, b
- ld [hli], a
- ld [hl], c
-
-
-; We've still got more to do if we're dealing with a wild monster
- ld a, [IsInBattle]
- dec a
- jr nz, .Happiness
-
-
-; Species-specfic:
-
-
-; Unown
- ld a, [TempEnemyMonSpecies]
- cp a, UNOWN
- jr nz, .Magikarp
-
-; Get letter based on DVs
- ld hl, EnemyMonDVs
- ld a, PREDEF_GET_UNOWN_LETTER
- call Predef
-; Can't use any letters that haven't been unlocked
-; If combined with forced shiny battletype, causes an infinite loop
- call CheckUnownLetter
- jr c, .GenerateDVs ; try again
-
-
-.Magikarp
-; Skimming this part recommended
-
- ld a, [TempEnemyMonSpecies]
- cp a, MAGIKARP
- jr nz, .Happiness
-
-; Get Magikarp's length
- ld de, EnemyMonDVs
- ld bc, PlayerID
- callab CalcMagikarpLength
-
-; We're clear if the length is < 1536
- ld a, [MagikarpLength]
- cp a, $06 ; $600 = 1536
- jr nz, .CheckMagikarpArea
-
-; 5% chance of skipping size checks
- call Random
- cp a, $0c ; / $100
- jr c, .CheckMagikarpArea
-; Try again if > 1614
- ld a, [MagikarpLength + 1]
- cp a, $50
- jr nc, .GenerateDVs
-
-; 20% chance of skipping this check
- call Random
- cp a, $32 ; / $100
- jr c, .CheckMagikarpArea
-; Try again if > 1598
- ld a, [MagikarpLength + 1]
- cp a, $40
- jr nc, .GenerateDVs
-
-.CheckMagikarpArea
-; The z checks are supposed to be nz
-; Instead, all maps in GROUP_LAKE_OF_RAGE (mahogany area)
-; and routes 20 and 44 are treated as Lake of Rage
-
-; This also means Lake of Rage Magikarp can be smaller than ones
-; caught elsewhere rather than the other way around
-
-; Intended behavior enforces a minimum size at Lake of Rage
-; The real behavior prevents size flooring in the Lake of Rage area
- ld a, [MapGroup]
- cp a, GROUP_LAKE_OF_RAGE
- jr z, .Happiness
- ld a, [MapNumber]
- cp a, MAP_LAKE_OF_RAGE
- jr z, .Happiness
-; 40% chance of not flooring
- call Random
- cp a, $64 ; / $100
- jr c, .Happiness
-; Floor at length 1024
- ld a, [MagikarpLength]
- cp a, 1024 >> 8
- jr c, .GenerateDVs ; try again
-
-
-; Finally done with DVs
-
-.Happiness
-; Set happiness
- ld a, BASE_HAPPINESS
- ld [EnemyMonHappiness], a
-; Set level
- ld a, [CurPartyLevel]
- ld [EnemyMonLevel], a
-; Fill stats
- ld de, EnemyMonMaxHP
- ld b, $00
- ld hl, $d201 ; ?
- ld a, PREDEF_FILLSTATS
- call Predef
-
-; If we're in a trainer battle,
-; get the rest of the parameters from the party struct
- ld a, [IsInBattle]
- cp a, TRAINER_BATTLE
- jr z, .OpponentParty
-
-; If we're in a wild battle, check wild-specific stuff
- and a
- jr z, .TreeMon
-
-; ????
- ld a, [EnemySubStatus5]
- bit 3, a
- jp nz, .Moves
-
-.TreeMon
-; If we're headbutting trees, some monsters enter battle asleep
- call CheckSleepingTreeMon
- ld a, 7 ; Asleep for 7 turns
- jr c, .UpdateStatus
-; Otherwise, no status
- xor a
-
-.UpdateStatus
- ld hl, EnemyMonStatus
- ld [hli], a
-
-; Unused byte
- xor a
- ld [hli], a
-
-; Full HP...
- ld a, [EnemyMonMaxHPHi]
- ld [hli], a
- ld a, [EnemyMonMaxHPLo]
- ld [hl], a
-
-; ...unless it's a RoamMon
- ld a, [BattleType]
- cp a, BATTLETYPE_ROAMING
- jr nz, .Moves
-
-; Grab HP
- call GetRoamMonHP
- ld a, [hl]
-; Check if it's been initialized again
- and a
- jr z, .InitRoamHP
-; Update from the struct if it has
- ld a, [hl]
- ld [EnemyMonHPLo], a
- jr .Moves
-
-.InitRoamHP
-; HP only uses the lo byte in the RoamMon struct since
-; Raikou/Entei/Suicune will have < 256 hp at level 40
- ld a, [EnemyMonHPLo]
- ld [hl], a
- jr .Moves
-
-
-.OpponentParty
-; Get HP from the party struct
- ld hl, (PartyMon1CurHP + 1) - PartyMon1 + OTPartyMon1
- ld a, [CurPartyMon]
- call GetPartyLocation
- ld a, [hld]
- ld [EnemyMonHPLo], a
- ld a, [hld]
- ld [EnemyMonHPHi], a
-
-; Make sure everything knows which monster the opponent is using
- ld a, [CurPartyMon]
- ld [CurOTMon], a
-
-; Get status from the party struct
- dec hl
- ld a, [hl] ; OTPartyMonStatus
- ld [EnemyMonStatus], a
-
-
-.Moves
-; ????
- ld hl, BaseType1
- ld de, EnemyMonType1
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
-
-; Get moves
- ld de, EnemyMonMoves
-; Are we in a trainer battle?
- ld a, [IsInBattle]
- cp a, TRAINER_BATTLE
- jr nz, .WildMoves
-; Then copy moves from the party struct
- ld hl, OTPartyMon1Moves
- ld a, [CurPartyMon]
- call GetPartyLocation
- ld bc, NUM_MOVES
- call CopyBytes
- jr .PP
-
-.WildMoves
-; Clear EnemyMonMoves
- xor a
- ld h, d
- ld l, e
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
-; Make sure the predef knows this isn't a partymon
- ld [MagikarpLength], a
-; Fill moves based on level
- ld a, PREDEF_FILLMOVES
- call Predef
-
-.PP
-; Trainer battle?
- ld a, [IsInBattle]
- cp a, TRAINER_BATTLE
- jr z, .TrainerPP
-
-; Fill wild PP
- ld hl, EnemyMonMoves
- ld de, EnemyMonPP
- ld a, PREDEF_FILLPP
- call Predef
- jr .Finish
-
-.TrainerPP
-; Copy PP from the party struct
- ld hl, OTPartyMon1PP
- ld a, [CurPartyMon]
- call GetPartyLocation
- ld de, EnemyMonPP
- ld bc, NUM_MOVES
- call CopyBytes
-
-.Finish
-; Only the first five base stats are copied...
- ld hl, BaseStats
- ld de, EnemyMonBaseStats
- ld b, BaseSpecialDefense - BaseStats
-.loop
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .loop
-
- ld a, [BaseCatchRate]
- ld [de], a
- inc de
-
- ld a, [BaseExp]
- ld [de], a
-
- ld a, [TempEnemyMonSpecies]
- ld [$d265], a
-
- call GetPokemonName
-
-; Did we catch it?
- ld a, [IsInBattle]
- and a
- ret z
-
-; Update enemy nick
- ld hl, StringBuffer1
- ld de, EnemyMonNick
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-; Caught this mon
- ld a, [TempEnemyMonSpecies]
- dec a
- ld c, a
- ld b, 1 ; set
- ld hl, PokedexSeen
- ld a, PREDEF_FLAG
- call Predef
-
- ld hl, EnemyMonStats
- ld de, EnemyStats
- ld bc, EnemyMonStatsEnd - EnemyMonStats
- call CopyBytes
-
- ret
-; 3eb38
-
-
-CheckSleepingTreeMon: ; 3eb38
-; Return carry if species is in the list
-; for the current time of day
-
-; Don't do anything if this isn't a tree encounter
- ld a, [BattleType]
- cp a, BATTLETYPE_TREE
- jr nz, .NotSleeping
-
-; Get list for the time of day
- ld hl, .Morn
- ld a, [TimeOfDay]
- cp a, DAY
- jr c, .Check
- ld hl, .Day
- jr z, .Check
- ld hl, .Nite
-
-.Check
- ld a, [TempEnemyMonSpecies]
- ld de, 1 ; length of species id
- call IsInArray
-; If it's a match, the opponent is asleep
- ret c
-
-.NotSleeping
- and a
- ret
-
-.Nite
- db CATERPIE
- db METAPOD
- db BUTTERFREE
- db WEEDLE
- db KAKUNA
- db BEEDRILL
- db SPEAROW
- db EKANS
- db EXEGGCUTE
- db LEDYBA
- db AIPOM
- db $ff ; end
-
-.Day
- db VENONAT
- db HOOTHOOT
- db NOCTOWL
- db SPINARAK
- db HERACROSS
- db $ff ; end
-
-.Morn
- db VENONAT
- db HOOTHOOT
- db NOCTOWL
- db SPINARAK
- db HERACROSS
- db $ff ; end
-; 3eb75
-
-
-CheckUnownLetter: ; 3eb75
-; Return carry if the Unown letter hasn't been unlocked yet
-
- ld a, [UnlockedUnowns]
- ld c, a
- ld de, 0
-
-.loop
-
-; Don't check this set unless it's been unlocked
- srl c
- jr nc, .next
-
-; Is our letter in the set?
- ld hl, .LetterSets
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- push de
- ld a, [UnownLetter]
- ld de, 1
- push bc
- call IsInArray
- pop bc
- pop de
-
- jr c, .match
-
-.next
-; Make sure we haven't gone past the end of the table
- inc e
- inc e
- ld a, e
- cp a, .Set1 - .LetterSets
- jr c, .loop
-
-; Hasn't been unlocked, or the letter is invalid
- scf
- ret
-
-.match
-; Valid letter
- and a
- ret
-
-.LetterSets
- dw .Set1
- dw .Set2
- dw .Set3
- dw .Set4
-
-.Set1
- ; A B C D E F G H I J K
- db 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, $ff
-.Set2
- ; L M N O P Q R
- db 12, 13, 14, 15, 16, 17, 18, $ff
-.Set3
- ; S T U V W
- db 19, 20, 21, 22, 23, $ff
-.Set4
- ; X Y Z
- db 24, 25, 26, $ff
-
-; 3ebc7
-
-
-Function3ebc7: ; 3ebc7
- push bc
- ld a, [BattleMonLevel]
- ld b, a
- ld a, [EnemyMonLevel]
- ld [BattleMonLevel], a
- ld a, b
- ld [EnemyMonLevel], a
- pop bc
- ret
-; 3ebd8
-
-Function3ebd8: ; 3ebd8
- xor a
- ld [TempEnemyMonSpecies], a
- call Function3ee27
- ld a, [OtherTrainerClass]
- ld [TrainerClass], a
- ld de, VTiles2
- callab Function5120d
- ld hl, $c4b3
- ld c, $0
-.asm_3ebf3
- inc c
- ld a, c
- cp $7
- ret z
- xor a
- ld [hBGMapMode], a
- ld [hBGMapThird], a
- ld d, $0
- push bc
- push hl
-.asm_3ec01
- call Function3ec1a
- inc hl
- ld a, $7
- add d
- ld d, a
- dec c
- jr nz, .asm_3ec01
- ld a, $1
- ld [hBGMapMode], a
- ld c, $4
- call DelayFrames
- pop hl
- pop bc
- dec hl
- jr .asm_3ebf3
-; 3ec1a
-
-Function3ec1a: ; 3ec1a
- push hl
- push de
- push bc
- ld e, $7
-.asm_3ec1f
- ld [hl], d
- ld bc, $0014
- add hl, bc
- inc d
- dec e
- jr nz, .asm_3ec1f
- pop bc
- pop de
- pop hl
- ret
-; 3ec2c
-
-
-Function3ec2c: ; 3ec2c
- ld a, 1
- jr Function3ec31
-; 3ec30
-
-Function3ec30: ; 3ec30
- xor a
-; 3ec31
-
-Function3ec31: ; 3ec31
- ld [hBattleTurn], a
- call Function3ec39
- jp Function3ec76
-; 3ec39
-
-Function3ec39: ; 3ec39
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3ec5a
- ld a, [BattleMonStatus]
- and $40
- ret z
- ld hl, $c645
- ld a, [hld]
- ld b, a
- ld a, [hl]
- srl a
- rr b
- srl a
- rr b
- ld [hli], a
- or b
- jr nz, .asm_3ec58
- ld b, $1
-
-.asm_3ec58
- ld [hl], b
- ret
-
-.asm_3ec5a
- ld a, [EnemyMonStatus]
- and $40
- ret z
- ld hl, $d21f
- ld a, [hld]
- ld b, a
- ld a, [hl]
- srl a
- rr b
- srl a
- rr b
- ld [hli], a
- or b
- jr nz, .asm_3ec74
- ld b, $1
-
-.asm_3ec74
- ld [hl], b
- ret
-; 3ec76
-
-Function3ec76: ; 3ec76
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3ec93
- ld a, [BattleMonStatus]
- and $10
- ret z
- ld hl, $c641
- ld a, [hld]
- ld b, a
- ld a, [hl]
- srl a
- rr b
- ld [hli], a
- or b
- jr nz, .asm_3ec91
- ld b, $1
-
-.asm_3ec91
- ld [hl], b
- ret
-
-.asm_3ec93
- ld a, [EnemyMonStatus]
- and $10
- ret z
- ld hl, $d21b
- ld a, [hld]
- ld b, a
- ld a, [hl]
- srl a
- rr b
- ld [hli], a
- or b
- jr nz, .asm_3eca9
- ld b, $1
-
-.asm_3eca9
- ld [hl], b
- ret
-; 3ecab
-
-Function3ecab: ; 3ecab
- ld c, 0
-.asm_3ecad
- call Function3ecb7
- inc c
- ld a, c
- cp 5
- jr nz, .asm_3ecad
- ret
-; 3ecb7
-
-Function3ecb7: ; 3ecb7
- push bc
- push bc
- ld a, [$d265]
- and a
- ld a, c
- ld hl, BattleMonAtk
- ld de, PlayerStats
- ld bc, PlayerAtkLevel
- jr z, .asm_3ecd2
- ld hl, EnemyMonAtk
- ld de, EnemyStats
- ld bc, EnemyAtkLevel
-
-.asm_3ecd2
- add c
- ld c, a
- jr nc, .asm_3ecd7
- inc b
-.asm_3ecd7
- ld a, [bc]
- pop bc
- ld b, a
- push bc
- sla c
- ld b, 0
- add hl, bc
- ld a, c
- add e
- ld e, a
- jr nc, .asm_3ece6
- inc d
-.asm_3ece6
- pop bc
- push hl
- ld hl, .StatLevelMultipliers
- dec b
- sla b
- ld c, b
- ld b, 0
- add hl, bc
- xor a
- ld [hMultiplicand], a
- ld a, [de]
- ld [$ffb5], a
- inc de
- ld a, [de]
- ld [$ffb6], a
- ld a, [hli]
- ld [hMultiplier], a
- call Multiply
- ld a, [hl]
- ld [hMultiplier], a
- ld b, $4
- call Divide
- pop hl
-
-; Cap at 999.
- ld a, [$ffb6]
- sub 999 % $100
- ld a, [$ffb5]
- sbc 999 / $100
- jp c, .asm_3ed1e
-
- ld a, 999 / $100
- ld [$ffb5], a
- ld a, 999 % $100
- ld [$ffb6], a
-
-.asm_3ed1e
- ld a, [$ffb5]
- ld [hli], a
- ld b, a
- ld a, [$ffb6]
- ld [hl], a
- or b
- jr nz, .asm_3ed29
- inc [hl]
-
-.asm_3ed29
- pop bc
- ret
-; 3ed2b
-
-.StatLevelMultipliers
-; /
- db 25, 100 ; 25%
- db 28, 100 ; 28%
- db 33, 100 ; 33%
- db 40, 100 ; 40%
- db 50, 100 ; 50%
- db 66, 100 ; 66%
-
- db 1, 1 ; 100%
-
- db 15, 10 ; 150%
- db 2, 1 ; 200%
- db 25, 10 ; 250%
- db 3, 1 ; 300%
- db 35, 10 ; 350%
- db 4, 1 ; 400%
-; 3ed45
-
-
-BadgeStatBoosts: ; 3ed45
-; Raise BattleMon stats depending on which badges have been obtained.
-
-; Every other badge boosts a stat, starting from the first.
-
-; ZephyrBadge: Attack
-; PlainBadge: Speed
-; MineralBadge: Defense
-; GlacierBadge: Special Attack
-; RisingBadge: Special Defense
-
-; The boosted stats are in order, except PlainBadge and MineralBadge's boosts are swapped.
-
- ld a, [InLinkBattle]
- and a
- ret nz
-
- ld a, [$cfc0]
- and a
- ret nz
-
- ld a, [JohtoBadges]
-
-; Swap badges 3 (PlainBadge) and 5 (MineralBadge).
- ld d, a
- and %00000100
- add a
- add a
- ld b, a
- ld a, d
- and %00010000
- rrca
- rrca
- ld c, a
- ld a, d
- and %11101011
- or b
- or c
- ld b, a
-
- ld hl, BattleMonAtk
- ld c, 4
-.CheckBadge
- ld a, b
- srl b
- call c, BoostStat
- inc hl
- inc hl
-; Check every other badge.
- srl b
- dec c
- jr nz, .CheckBadge
-; And the last one (RisingBadge) too.
- srl a
- call c, BoostStat
- ret
-; 3ed7c
-
-
-BoostStat: ; 3ed7c
-; Raise stat at hl by 1/8.
-
- ld a, [hli]
- ld d, a
- ld e, [hl]
- srl d
- rr e
- srl d
- rr e
- srl d
- rr e
- ld a, [hl]
- add e
- ld [hld], a
- ld a, [hl]
- adc d
- ld [hli], a
-
-; Cap at 999.
- ld a, [hld]
- sub 999 % $100
- ld a, [hl]
- sbc 999 / $100
- ret c
- ld a, 999 / $100
- ld [hli], a
- ld a, 999 % $100
- ld [hld], a
- ret
-; 3ed9f
-
-
-Function3ed9f: ; 3ed9f
- callab Functionfb4f2
- ret
-; 3eda6
-
-Function3eda6: ; 3eda6
- callab Functionfb50d
- ret
-; 3edad
-
-
-Function3edad: ; 3edad
- ld de, $4ac0
- ld hl, $96c0
- ld bc, $3e04
- call Get1bpp
- ld de, $4ae0
- ld hl, $9730
- ld bc, $3e06
- call Get1bpp
- ld de, $4b10
- ld hl, $9550
- ld bc, $3e08
- jp Get2bpp
-; 3edd1
-
-
-EmptyBattleTextBox: ; 3edd1
- ld hl, .empty
- jp BattleTextBox
-.empty
- db "@"
-; 3edd8
-
-
-_BattleRandom: ; 3edd8
-; If the normal RNG is used in a link battle it'll desync.
-; To circumvent this a shared PRNG is used instead.
-
-; But if we're in a non-link battle we're safe to use it
- ld a, [InLinkBattle]
- and a
- jp z, Random
-
-; The PRNG operates in streams of 10 values.
-
-; Which value are we trying to pull?
- push hl
- push bc
- ld a, [LinkBattleRNCount]
- ld c, a
- ld b, 0
- ld hl, LinkBattleRNs
- add hl, bc
- inc a
- ld [LinkBattleRNCount], a
-
-; If we haven't hit the end yet, we're good
- cp 10 - 1 ; Exclude last value. See the closing comment
- ld a, [hl]
- pop bc
- pop hl
- ret c
-
-; If we have, we have to generate new pseudorandom data
-; Instead of having multiple PRNGs, ten seeds are used
- push hl
- push bc
- push af
-
-; Reset count to 0
- xor a
- ld [LinkBattleRNCount], a
- ld hl, LinkBattleRNs
- ld b, 10 ; number of seeds
-
-; Generate next number in the sequence for each seed
-; The algorithm takes the form *5 + 1 % 256
-.loop
- ; get last #
- ld a, [hl]
-
- ; a * 5 + 1
- ld c, a
- add a
- add a
- add c
- inc a
-
- ; update #
- ld [hli], a
- dec b
- jr nz, .loop
-
-; This has the side effect of pulling the last value first,
-; then wrapping around. As a result, when we check to see if
-; we've reached the end, we check the one before it.
-
- pop af
- pop bc
- pop hl
- ret
-; 3ee0f
-
-
-Function3ee0f: ; 3ee0f
- ld a, BATTLE_VARS_SUBSTATUS3
- call GetBattleVar
- and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
- ret nz
-; 3ee17
-
-Function3ee17: ; 3ee17
- ld a, e
- ld [FXAnimIDLo], a
- ld a, d
- ld [FXAnimIDHi], a
- call WaitBGMap
- ld a, $37
- jp Predef
-; 3ee27
-
-Function3ee27: ; 3ee27
- push af
- push bc
- push de
- push hl
- ld b, $1
- call GetSGBLayout
- call Function32f9
- call DelayFrame
- pop hl
- pop de
- pop bc
- pop af
- ret
-; 3ee3b
-
-
-Function3ee3b: ; 3ee3b
- ld a, [InLinkBattle]
- and a
- ret nz
- ld a, [$cfc0]
- bit 0, a
- ret nz
- call Function3f0d4
- xor a
- ld [CurPartyMon], a
- ld bc, PartyMon1Species
-
-.asm_3ee50
- ld hl, $0022
- add hl, bc
- ld a, [hli]
- or [hl]
- jp z, .asm_3f0b9
- push bc
- ld hl, $c664
- ld a, [CurPartyMon]
- ld c, a
- ld b, $2
- ld d, $0
- ld a, $3
- call Predef
- ld a, c
- and a
- pop bc
- jp z, .asm_3f0b9
- ld hl, $000c
- add hl, bc
- ld d, h
- ld e, l
- ld hl, EnemyMonType2
- push bc
- ld c, $5
-.asm_3ee7c
- inc hl
- ld a, [de]
- add [hl]
- ld [de], a
- jr nc, .asm_3ee89
- dec de
- ld a, [de]
- inc a
- jr z, .asm_3eea4
- ld [de], a
- inc de
-
-.asm_3ee89
- push hl
- push bc
- ld a, $1c
- call GetPartyParamLocation
- ld a, [hl]
- and a
- pop bc
- pop hl
- jr z, .asm_3eea9
- ld a, [de]
- add [hl]
- ld [de], a
- jr nc, .asm_3eea9
- dec de
- ld a, [de]
- inc a
- jr z, .asm_3eea4
- ld [de], a
- inc de
- jr .asm_3eea9
-
-.asm_3eea4
- ld a, $ff
- ld [de], a
- inc de
- ld [de], a
-
-.asm_3eea9
- inc de
- inc de
- dec c
- jr nz, .asm_3ee7c
- xor a
- ld [hMultiplicand], a
- ld [$ffb5], a
- ld a, [EnemyMonBaseExp]
- ld [$ffb6], a
- ld a, [EnemyMonLevel]
- ld [hMultiplier], a
- call Multiply
- ld a, $7
- ld [hMultiplier], a
- ld b, $4
- call Divide
- pop bc
- ld hl, $0006
- add hl, bc
- ld a, [PlayerID]
- cp [hl]
- jr nz, .asm_3eedd
- inc hl
- ld a, [$d47c]
- cp [hl]
- ld a, $0
- jr z, .asm_3eee2
-
-.asm_3eedd
- call Function3f106
- ld a, $1
-
-.asm_3eee2
- ld [$d088], a
- ld a, [IsInBattle]
- dec a
- call nz, Function3f106
- push bc
- ld a, $1
- call GetPartyParamLocation
- ld a, [hl]
- cp $7e
- call z, Function3f106
- ld a, [$ffb6]
- ld [$d087], a
- ld a, [$ffb5]
- ld [StringBuffer2], a
- ld a, [CurPartyMon]
- ld hl, PartyMon1Nickname
- call GetNick
- ld hl, UnknownText_0x3f11b
- call BattleTextBox
- ld a, [$d087]
- ld [$ffb6], a
- ld a, [StringBuffer2]
- ld [$ffb5], a
- pop bc
- call Function3f136
- push bc
- call Function309d
- pop bc
- ld hl, $000a
- add hl, bc
- ld d, [hl]
- ld a, [$ffb6]
- add d
- ld [hld], a
- ld d, [hl]
- ld a, [$ffb5]
- adc d
- ld [hl], a
- jr nc, .asm_3ef3d
- dec hl
- inc [hl]
- jr nz, .asm_3ef3d
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
-.asm_3ef3d
- ld a, [CurPartyMon]
- ld e, a
- ld d, $0
- ld hl, PartySpecies
- add hl, de
- ld a, [hl]
- ld [CurSpecies], a
- call GetBaseData
- push bc
- ld d, $64
- callab Function50e47
- pop bc
- ld hl, $000a
- add hl, bc
- push bc
- ld a, [hMultiplicand]
- ld b, a
- ld a, [$ffb5]
- ld c, a
- ld a, [$ffb6]
- ld d, a
- ld a, [hld]
- sub d
- ld a, [hld]
- sbc c
- ld a, [hl]
- sbc b
- jr c, .asm_3ef74
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, d
- ld [hld], a
-
-.asm_3ef74
- xor a
- ld [MonType], a
- ld a, $1f
- call Predef
- callab Function50e1b
- pop bc
- ld hl, $001f
- add hl, bc
- ld a, [hl]
- cp $64
- jp nc, .asm_3f0b9
- cp d
- jp z, .asm_3f0b9
- ld [$c719], a
- ld a, [CurPartyLevel]
- push af
- ld a, d
- ld [CurPartyLevel], a
- ld [hl], a
- ld hl, $0000
- add hl, bc
- ld a, [hl]
- ld [CurSpecies], a
- ld [$d265], a
- call GetBaseData
- ld hl, $0025
- add hl, bc
- ld a, [hld]
- ld e, a
- ld d, [hl]
- push de
- ld hl, $0024
- add hl, bc
- ld d, h
- ld e, l
- ld hl, $000a
- add hl, bc
- push bc
- ld b, $1
- ld a, $c
- call Predef
- pop bc
- pop de
- ld hl, $0025
- add hl, bc
- ld a, [hld]
- sub e
- ld e, a
- ld a, [hl]
- sbc d
- ld d, a
- dec hl
- ld a, [hl]
- add e
- ld [hld], a
- ld a, [hl]
- adc d
- ld [hl], a
- ld a, [CurBattleMon]
- ld d, a
- ld a, [CurPartyMon]
- cp d
- jr nz, .asm_3f035
- ld de, BattleMonHP
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ld de, BattleMonMaxHP
- push bc
- ld bc, $000c
- call CopyBytes
- pop bc
- ld hl, $001f
- add hl, bc
- ld a, [hl]
- ld [BattleMonLevel], a
- ld a, [PlayerSubStatus5]
- bit 3, a
- jr nz, .asm_3f012
- ld hl, $0026
- add hl, bc
- ld de, PlayerStats
- ld bc, $000a
- call CopyBytes
-
-.asm_3f012
- xor a
- ld [$d265], a
- call Function3ecab
- callab Function3ec2c
- callab BadgeStatBoosts
- callab Function3df48
- call EmptyBattleTextBox
- call Function309d
- ld a, $1
- ld [hBGMapMode], a
-
-.asm_3f035
- callba Function2709e
- ld a, [CurBattleMon]
- ld b, a
- ld a, [CurPartyMon]
- cp b
- jr z, .asm_3f057
- ld de, SFX_HIT_END_OF_EXP_BAR
- call PlaySFX
- call WaitSFX
- ld hl, BattleText_0x80c9c
- call StdBattleTextBox
- call Function309d
-
-.asm_3f057
- xor a
- ld [MonType], a
- ld a, $1f
- call Predef
- ld hl, $c4a9
- ld b, $a
- ld c, $9
- call TextBox
- ld hl, $c4bf
- ld bc, $0004
- ld a, $28
- call Predef
- ld c, $1e
- call DelayFrames
- call Functiona80
- call Function30b4
- xor a
- ld [MonType], a
- ld a, [CurSpecies]
- ld [$d265], a
- ld a, [CurPartyLevel]
- push af
- ld c, a
- ld a, [$c719]
- ld b, a
-
-.asm_3f093
- inc b
- ld a, b
- ld [CurPartyLevel], a
- push bc
- ld a, $1a
- call Predef
- pop bc
- ld a, b
- cp c
- jr nz, .asm_3f093
- pop af
- ld [CurPartyLevel], a
- ld hl, EvolvableFlags
- ld a, [CurPartyMon]
- ld c, a
- ld b, $1
- ld a, $3
- call Predef
- pop af
- ld [CurPartyLevel], a
-
-.asm_3f0b9
- ld a, [PartyCount]
- ld b, a
- ld a, [CurPartyMon]
- inc a
- cp b
- jr z, .asm_3f0d1
- ld [CurPartyMon], a
- ld a, $0
- call GetPartyParamLocation
- ld b, h
- ld c, l
- jp .asm_3ee50
-
-.asm_3f0d1
- jp Function3d57a
-; 3f0d4
-
-Function3f0d4: ; 3f0d4
- ld a, [$c664]
- ld b, a
- ld c, $6
- ld d, $0
-.asm_3f0dc
- xor a
- srl b
- adc d
- ld d, a
- dec c
- jr nz, .asm_3f0dc
- cp $2
- ret c
- ld [$d265], a
- ld hl, EnemyMonBaseStats
- ld c, $7
-.asm_3f0ef
- xor a
- ld [hProduct], a
- ld a, [hl]
- ld [hMultiplicand], a
- ld a, [$d265]
- ld [hMultiplier], a
- ld b, $2
- call Divide
- ld a, [$ffb6]
- ld [hli], a
- dec c
- jr nz, .asm_3f0ef
- ret
-; 3f106
-
-Function3f106: ; 3f106
- push bc
- ld a, [$ffb5]
- ld b, a
- ld a, [$ffb6]
- ld c, a
- srl b
- rr c
- add c
- ld [$ffb6], a
- ld a, [$ffb5]
- adc b
- ld [$ffb5], a
- pop bc
- ret
-; 3f11b
-
-UnknownText_0x3f11b: ; 3f11b
- text_jump UnknownText_0x1c029c, BANK(UnknownText_0x1c029c)
- start_asm
- ld hl, UnknownText_0x3f131
- ld a, [$d088] ; IsTradedMon
- and a
- ret z
- ld hl, UnknownText_0x3f12c
- ret
-; 3f12c
-
-UnknownText_0x3f12c: ; 3f12c
- text_jump UnknownText_0x1c02a9, BANK(UnknownText_0x1c02a9)
- db "@"
-; 3f131
-
-UnknownText_0x3f131: ; 3f131
- text_jump UnknownText_0x1c02c9, BANK(UnknownText_0x1c02c9)
- db "@"
-; 3f136
-
-
-Function3f136: ; 3f136
-
- push bc
-
- ld hl, CurPartyMon
- ld a, [CurBattleMon]
- cp [hl]
- jp nz, .asm_3f219
-
- ld a, [BattleMonLevel]
- cp MAX_LEVEL
- jp nc, .asm_3f219
-
- ld a, [$ffb6]
- ld [$d004], a
- push af
- ld a, [$ffb5]
- ld [$d003], a
- push af
- xor a
- ld [DefaultFlypoint], a
- xor a
- ld [MonType], a
- ld a, $1f
- call Predef
- ld a, [TempMonLevel]
- ld b, a
- ld e, a
- push de
- ld de, $d118
- call Function3f39c
- push bc
- ld hl, $d118
- ld a, [$d004]
- add [hl]
- ld [hld], a
- ld a, [$d003]
- adc [hl]
- ld [hld], a
- jr nc, .asm_3f186
- inc [hl]
- jr nz, .asm_3f186
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
-.asm_3f186
- ld d, $64
- callab Function50e47
- ld a, [hMultiplicand]
- ld b, a
- ld a, [$ffb5]
- ld c, a
- ld a, [$ffb6]
- ld d, a
- ld hl, $d118
- ld a, [hld]
- sub d
- ld a, [hld]
- sbc c
- ld a, [hl]
- sbc b
- jr c, .asm_3f1a8
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, d
- ld [hld], a
-
-.asm_3f1a8
- callab Function50e1b
- ld a, d
- pop bc
- pop de
- ld d, a
- cp e
- jr nc, .asm_3f1b7
- ld a, e
- ld d, a
-
-.asm_3f1b7
- ld a, e
- cp $64
- jr nc, .asm_3f1ff
- cp d
- jr z, .asm_3f1ff
- inc a
- ld [TempMonLevel], a
- ld [CurPartyLevel], a
- ld [BattleMonLevel], a
- push de
- call Function3f21b
- ld c, $40
- call Function3f22c
- call PrintPlayerHUD
- ld hl, BattleMonNick
- ld de, StringBuffer1
- ld bc, $000b
- call CopyBytes
- call Function3dfe
- ld de, SFX_HIT_END_OF_EXP_BAR
- call PlaySFX
- callba Function8e79d
- call WaitSFX
- ld hl, BattleText_0x80c9c
- call StdBattleTextBox
- pop de
- inc e
- ld b, $0
- jr .asm_3f1b7
-
-.asm_3f1ff
- push bc
- ld b, d
- ld de, $d118
- call Function3f39c
- ld a, b
- pop bc
- ld c, a
- call Function3f21b
- call Function3f22c
- call Function3dfe
- pop af
- ld [$ffb5], a
- pop af
- ld [$ffb6], a
-
-.asm_3f219
- pop bc
- ret
-; 3f21b
-
-Function3f21b: ; 3f21b
- push bc
- call WaitSFX
- ld de, SFX_EXP_BAR
- call PlaySFX
- ld c, 10
- call DelayFrames
- pop bc
- ret
-; 3f22c
-
-Function3f22c: ; 3f22c
- ld d, $3
- dec b
-.asm_3f22f
- inc b
- push bc
- push de
- ld hl, $c58d
- call Function3f41c
- pop de
- ld a, $1
- ld [hBGMapMode], a
- ld c, d
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- pop bc
- ld a, c
- cp b
- jr z, .asm_3f268
- inc b
- push bc
- push de
- ld hl, $c58d
- call Function3f41c
- pop de
- ld a, $1
- ld [hBGMapMode], a
- ld c, d
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- dec d
- jr nz, .asm_3f263
- ld d, $1
-
-.asm_3f263
- pop bc
- ld a, c
- cp b
- jr nz, .asm_3f22f
-
-.asm_3f268
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 3f26d
-
-
-
-Function3f26d: ; 3f26d
-; SendOutMonText?
-
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3f27c
- ld hl, UnknownText_0x3f2d1
- ld a, [$d264]
- and a
- jr nz, .asm_3f2ce
-
-.asm_3f27c
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- ld hl, UnknownText_0x3f2d1
- jr z, .asm_3f2ce
- xor a
- ld [hMultiplicand], a
- ld hl, EnemyMonHPHi
- ld a, [hli]
- ld [$c6ea], a
- ld [$ffb5], a
- ld a, [hl]
- ld [$c6eb], a
- ld [$ffb6], a
- ld a, $19
- ld [hMultiplier], a
- call Multiply
- ld hl, EnemyMonMaxHPHi
- ld a, [hli]
- ld b, [hl]
- srl a
- rr b
- srl a
- rr b
- ld a, b
- ld b, $4
- ld [hMultiplier], a
- call Divide
- ld a, [$ffb6]
- ld hl, UnknownText_0x3f2d1
- cp $46
- jr nc, .asm_3f2ce
- ld hl, UnknownText_0x3f2d8
- cp $28
- jr nc, .asm_3f2ce
- ld hl, UnknownText_0x3f2df
- cp $a
- jr nc, .asm_3f2ce
- ld hl, UnknownText_0x3f2e6
-
-.asm_3f2ce
- jp BattleTextBox
-; 3f2d1
-
-
-UnknownText_0x3f2d1: ; 3f2d1
- text_jump UnknownText_0x1c02df, BANK(UnknownText_0x1c02df)
- start_asm
- jr Function3f2eb
-; 3f2d6
-
-UnknownText_0x3f2d8: ; 3f2d8
- text_jump UnknownText_0x1c02e6, BANK(UnknownText_0x1c02e6)
- start_asm
- jr Function3f2eb
-; 3f2dd
-
-UnknownText_0x3f2df: ; 3f2df
- text_jump UnknownText_0x1c02f0, BANK(UnknownText_0x1c02f0)
- start_asm
- jr Function3f2eb
-; 3f2e4
-
-UnknownText_0x3f2e6: ; 3f2e6
- text_jump UnknownText_0x1c02fe, BANK(UnknownText_0x1c02fe)
- start_asm
-; 3f2eb
-
-Function3f2eb: ; 3f2eb
- ld hl, UnknownText_0x3f2ef
- ret
-; 3f2ef
-
-UnknownText_0x3f2ef: ; 3f2ef
- text_jump UnknownText_0x1c0317, BANK(UnknownText_0x1c0317)
- db "@"
-; 3f2f4
-
-
-Function3f2f4: ; 3f2f4
- ld hl, UnknownText_0x3f2fa
- jp BattleTextBox
-; 3f2fa
-
-UnknownText_0x3f2fa: ; 3f2fa
- text_jump UnknownText_0x1c031d, BANK(UnknownText_0x1c031d)
- start_asm
-; 3f2ff
-
-Function3f2ff: ; 3f2ff
- push de
- push bc
- ld hl, EnemyMonHPLo
- ld de, $c6eb
- ld b, [hl]
- dec hl
- ld a, [de]
- sub b
- ld [$ffb6], a
- dec de
- ld b, [hl]
- ld a, [de]
- sbc b
- ld [$ffb5], a
- ld a, $19
- ld [hMultiplier], a
- call Multiply
- ld hl, EnemyMonMaxHPHi
- ld a, [hli]
- ld b, [hl]
- srl a
- rr b
- srl a
- rr b
- ld a, b
- ld b, $4
- ld [hMultiplier], a
- call Divide
- pop bc
- pop de
- ld a, [$ffb6]
- ld hl, UnknownText_0x3f348
- and a
- ret z
- ld hl, UnknownText_0x3f35b
- cp $1e
- ret c
- ld hl, UnknownText_0x3f34d
- cp $46
- ret c
- ld hl, UnknownText_0x3f352
- ret
-; 3f348
-
-UnknownText_0x3f348: ; 3f348
- text_jump UnknownText_0x1c0324, BANK(UnknownText_0x1c0324)
- db "@"
-; 3f34d
-
-UnknownText_0x3f34d: ; 3f34d
- text_jump UnknownText_0x1c0340, BANK(UnknownText_0x1c0340)
- db "@"
-; 3f352
-
-UnknownText_0x3f352: ; 3f352
- text_jump UnknownText_0x1c0352, BANK(UnknownText_0x1c0352)
- db "@"
-; 3f357
-
-Function3f357: ; 3f357
- ld hl, UnknownText_0x3f35b
- ret
-; 3f35b
-
-UnknownText_0x3f35b: ; 3f35b
- text_jump UnknownText_0x1c0366, BANK(UnknownText_0x1c0366)
- db "@"
-; 3f360
-
-
-Function3f360: ; 3f360
- ld hl, $c6f0
- ld a, [hl]
- and a
- jr z, .asm_3f36d
- dec [hl]
- ld hl, BattleText_0x80cba
- jr .asm_3f388
-
-.asm_3f36d
- dec hl
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ld hl, BattleText_0x80cd1
- jr nz, .asm_3f388
- push hl
- ld a, [EnemyMonSpecies]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BaseCatchRate]
- ld [EnemyMonCatchRate], a
- pop hl
-
-.asm_3f388
- push hl
- call Function30b4
- pop hl
- jp StdBattleTextBox
-; 3f390
-
-
-FillInExpBar: ; 3f390
- push hl
- call Function3f39c
- pop hl
- ld de, $0007
- add hl, de
- jp Function3f41c
-; 3f39c
-
-Function3f39c: ; 3f39c
- push de
- ld d, b
- push de
- callab Function50e47
- pop de
- ld hl, hMultiplicand
- ld a, [hli]
- push af
- ld a, [hli]
- push af
- ld a, [hl]
- push af
- inc d
- callab Function50e47
- ld hl, $ffb6
- ld a, [hl]
- ld [$ffba], a
- pop bc
- sub b
- ld [hld], a
- ld a, [hl]
- ld [$ffb9], a
- pop bc
- sbc b
- ld [hld], a
- ld a, [hl]
- ld [hMathBuffer], a
- pop bc
- sbc b
- ld [hl], a
- pop de
- ld hl, $ffb5
- ld a, [hli]
- push af
- ld a, [hl]
- push af
- ld a, [de]
- dec de
- ld c, a
- ld a, [$ffba]
- sub c
- ld [hld], a
- ld a, [de]
- dec de
- ld b, a
- ld a, [$ffb9]
- sbc b
- ld [hld], a
- ld a, [de]
- ld c, a
- ld a, [hMathBuffer]
- sbc c
- ld [hld], a
- xor a
- ld [hl], a
- ld a, $40
- ld [hMultiplier], a
- call Multiply
- pop af
- ld c, a
- pop af
- ld b, a
-.asm_3f3f4
- ld a, b
- and a
- jr z, .asm_3f40c
- srl b
- rr c
- ld hl, hProduct
- srl [hl]
- inc hl
- rr [hl]
- inc hl
- rr [hl]
- inc hl
- rr [hl]
- jr .asm_3f3f4
-
-.asm_3f40c
- ld a, c
- ld [hMultiplier], a
- ld b, $4
- call Divide
- ld a, [$ffb6]
- ld b, a
- ld a, $40
- sub b
- ld b, a
- ret
-; 3f41c
-
-Function3f41c: ; 3f41c
- ld c, $8
-.asm_3f41e
- ld a, b
- sub $8
- jr c, .asm_3f42c
- ld b, a
- ld a, $6a
- ld [hld], a
- dec c
- jr z, .asm_3f43c
- jr .asm_3f41e
-
-.asm_3f42c
- add $8
- jr z, .asm_3f434
- add $54
- jr .asm_3f436
-
-.asm_3f434
- ld a, $62
-
-.asm_3f436
- ld [hld], a
- ld a, $62
- dec c
- jr nz, .asm_3f434
-
-.asm_3f43c
- ret
-; 3f43d
-
-Function3f43d: ; 3f43d
- ld a, [PlayerSubStatus4]
- bit 4, a
- ld hl, Functioncc640
- jr nz, asm_3f46f
-Function3f447: ; 3f447
- ld a, [$c6fe]
- and a
- ld hl, Functioncc6cf
- jr nz, asm_3f46f
- ld a, [CurPartySpecies]
- push af
- ld a, [BattleMonSpecies]
- ld [CurPartySpecies], a
- ld hl, BattleMonAtkDefDV
- ld a, $2d
- call Predef
- ld de, $9310
- ld a, $3d
- call Predef
- pop af
- ld [CurPartySpecies], a
- ret
-
-asm_3f46f
- ld a, [hBattleTurn]
- push af
- xor a
- ld [hBattleTurn], a
- ld a, BANK(Functioncc640)
- rst FarCall
- pop af
- ld [hBattleTurn], a
- ret
-; 3f47c
-
-Function3f47c: ; 3f47c
- ld a, [EnemySubStatus4]
- bit 4, a
- ld hl, Functioncc640
- jr nz, asm_3f4b4
-Function3f486: ; 3f486
- ld a, [$c6fa]
- and a
- ld hl, Functioncc6cf
- jr nz, asm_3f4b4
- ld a, [CurPartySpecies]
- push af
- ld a, [EnemyMonSpecies]
- ld [CurSpecies], a
- ld [CurPartySpecies], a
- call GetBaseData
- ld hl, EnemyMonAtkDefDV
- ld a, $2d
- call Predef
- ld de, VTiles2
- ld a, $3e
- call Predef
- pop af
- ld [CurPartySpecies], a
- ret
-
-asm_3f4b4
- ld a, [hBattleTurn]
- push af
- call SetEnemyTurn
- ld a, BANK(Functioncc640)
- rst FarCall
- pop af
- ld [hBattleTurn], a
- ret
-; 3f4c1
-
-
-StartBattle: ; 3f4c1
- ld a, [PartyCount]
- and a
- ret z
- ld a, [TimeOfDayPal]
- push af
- call Function3f4dd
- call Function3c000
- call Function3f69e
- pop af
- ld [TimeOfDayPal], a
- scf
- ret
-; 3f4d9
-
-
-Function3f4d9: ; 3f4d9
- call Function3c000
- ret
-; 3f4dd
-
-
-Function3f4dd: ; 3f4dd
- callba Function106050
- call Function3f54e
- xor a
- ld [TempBattleMonSpecies], a
- ld [$d0d2], a
- xor a
- ld [$ffde], a
- callba PlayBattleMusic
- callba Function2ee18
- callba Function2ee2f
- call Function2ed3
- callba ClearBattleRAM
- call Function3f55e
- call Function3f568
- ld b, $0
- call GetSGBLayout
- ld hl, rLCDC
- res 6, [hl]
- call Function3fb6c
- call BattleStartMessage
- ld hl, rLCDC
- set 6, [hl]
- xor a
- ld [hBGMapMode], a
- call EmptyBattleTextBox
- hlcoord 9, 7
- ld bc, 5 << 8 + 11
- call ClearBox
- hlcoord 1, 0
- ld bc, 4 << 8 + 10
- call ClearBox
- call ClearSprites
- ld a, [IsInBattle]
- cp $1
- call z, Function3e036
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 3f54e
-
-Function3f54e: ; 3f54e
- ld a, [OtherTrainerClass]
- and a
- jr nz, .asm_3f55a
- ld a, [$d22e]
- ld [CurPartySpecies], a
-
-.asm_3f55a
- ld [TempEnemyMonSpecies], a
- ret
-; 3f55e
-
-Function3f55e: ; 3f55e
- ld a, [OtherTrainerClass]
- and a
- jp nz, Function3f594
- jp Function3f607
-; 3f568
-
-Function3f568: ; 3f568
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, $d000
- ld bc, VBlank5
- ld a, $2
- call ByteFill
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- ld de, $d000
- ld hl, VBGMap0
- ld bc, $0f40
- call Request2bpp
- pop af
- ld [rVBK], a
- pop af
- ld [rSVBK], a
- ret
-; 3f594
-
-Function3f594: ; 3f594
- ld [TrainerClass], a
- callba Function10606a
- xor a
- ld [TempEnemyMonSpecies], a
- callab Function3957b
- callab Function39771
- ld a, [TrainerClass]
- cp $9
- jr nz, .asm_3f5b8
- xor a
- ld [OTPartyMon1Item], a
-
-.asm_3f5b8
- ld de, VTiles2
- callab Function5120d
- xor a
- ld [$ffad], a
- dec a
- ld [$c6e6], a
- ld hl, $c4ac
- ld bc, $0707
- ld a, $13
- call Predef
- ld a, $ff
- ld [CurOTMon], a
- ld a, $2
- ld [IsInBattle], a
- call IsJohtoGymLeader
- jr nc, .asm_3f606
- xor a
- ld [CurPartyMon], a
- ld a, [PartyCount]
- ld b, a
-.asm_3f5ea
- push bc
- ld a, $22
- call GetPartyParamLocation
- ld a, [hli]
- or [hl]
- jr z, .asm_3f5fc
- ld c, $4
- callab ChangeHappiness
-
-.asm_3f5fc
- pop bc
- dec b
- jr z, .asm_3f606
- ld hl, CurPartyMon
- inc [hl]
- jr .asm_3f5ea
-
-.asm_3f606
- ret
-; 3f607
-
-Function3f607: ; 3f607
- ld a, $1
- ld [IsInBattle], a
- callba Function10605d
- call LoadEnemyMon
- ld hl, EnemyMonMove1
- ld de, $c735
- ld bc, $0004
- call CopyBytes
- ld hl, EnemyMonPPMove1
- ld de, $c739
- ld bc, $0004
- call CopyBytes
- ld hl, EnemyMonAtkDefDV
- ld a, $2d
- call Predef
- ld a, [CurPartySpecies]
- cp $c9
- jr nz, .asm_3f648
- ld a, [$def4]
- and a
- jr nz, .asm_3f648
- ld a, [UnownLetter]
- ld [$def4], a
-
-.asm_3f648
- ld de, VTiles2
- ld a, $3e
- call Predef
- xor a
- ld [TrainerClass], a
- ld [$ffad], a
- ld hl, $c4ac
- ld bc, $0707
- ld a, $13
- call Predef
- ret
-; 3f662
-
-Function3f662: ; 3f662
- ld hl, EnemyMonMove1
- ld de, $d25e
- ld b, $4
-.asm_3f66a
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr z, .asm_3f690
- push bc
- push hl
- push hl
- dec a
- ld hl, $5b00
- ld bc, $0007
- call AddNTimes
- ld a, $10
- call GetFarByte
- pop hl
- ld bc, $0005
- add hl, bc
- ld [hl], a
- pop hl
- pop bc
- dec b
- jr nz, .asm_3f66a
- ret
-
-.asm_3f68e
- xor a
- ld [hli], a
-
-.asm_3f690
- push bc
- push hl
- ld bc, $0005
- add hl, bc
- xor a
- ld [hl], a
- pop hl
- pop bc
- dec b
- jr nz, .asm_3f68e
- ret
-; 3f69e
-
-
-Function3f69e: ; 3f69e
- call Function3f6a5
- call Function3f6d0
- ret
-; 3f6a5
-
-Function3f6a5: ; 3f6a5
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3f6b7
- call Function3f759
- ld c, $96
- call DelayFrames
- call Function3f77c
- ret
-
-.asm_3f6b7
- ld a, [$d0ee]
- and $f
- ret nz
- call Function3f71d
- xor a
- ld [$d1e9], a
- ld a, $1c
- call Predef
- callba Function2ed44
- ret
-; 3f6d0
-
-Function3f6d0: ; 3f6d0
- call Function3f998
- xor a
- ld [Danger], a
- ld [IsInBattle], a
- ld [BattleType], a
- ld [AttackMissed], a
- ld [$d22e], a
- ld [OtherTrainerClass], a
- ld [$d266], a
- ld [$d267], a
- ld [$d232], a
- ld [$d0d8], a
- ld [$d0da], a
- ld [$d0d9], a
- ld [$d0d2], a
- ld [CurMoveNum], a
- ld [$d0db], a
- ld [$d0d6], a
- ld [$d0e4], a
- ld [$d0e0], a
- ld [$d0df], a
- ld [$d0e1], a
- ld hl, PlayerSubStatus1
- ld b, $18
-.asm_3f715
- ld [hli], a
- dec b
- jr nz, .asm_3f715
- call WaitSFX
- ret
-; 3f71d
-
-Function3f71d: ; 3f71d
- ld hl, $c6ec
- ld a, [hli]
- or [hl]
- inc hl
- or [hl]
- ret z
- ld a, [$c73d]
- and a
- jr z, .asm_3f73d
- ld hl, $c6ee
- sla [hl]
- dec hl
- rl [hl]
- dec hl
- rl [hl]
- jr nc, .asm_3f73d
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
-.asm_3f73d
- ld hl, $c6ee
- ld de, $d850
- call Function3d0be
- ld hl, BattleText_0x80730
- call StdBattleTextBox
- ld a, [$cfc0]
- bit 0, a
- ret z
- call ClearTileMap
- call WhiteBGMap
- ret
-; 3f759
-
-Function3f759: ; 3f759
- callba Function1060df
- callba Function106187
- ld a, [CurOTMon]
- ld hl, OTPartyMon1Status
- call GetPartyLocation
- ld a, [EnemyMonStatus]
- ld [hl], a
- call ClearTileMap
- callba Function2c1b2
- ret
-; 3f77c
-
-Function3f77c: ; 3f77c
- callba Function3d2e0
- jp c, Function3f80f
- call Function3f830
- jr nz, .asm_3f797
- ld hl, $cd2a
- bit 4, [hl]
- jr z, .asm_3f797
- callba Function2b930
-
-.asm_3f797
- ld a, [$d0ee]
- and $f
- cp $1
- jr c, .asm_3f7ad
- jr z, .asm_3f7b8
- callba Function106107
- ld de, .Draw
- jr .asm_3f7c3
-
-.asm_3f7ad
- callba Function1060fb
- ld de, .Win
- jr .asm_3f7c3
-
-.asm_3f7b8
- callba Function106101
- ld de, .Lose
- jr .asm_3f7c3
-
-.asm_3f7c3
- ld hl, $c546
- call PlaceString
- callba Function106187
- ld c, $c8
- call DelayFrames
- ld a, $1
- call GetSRAMBank
- call Function3fa42
- call Function3f85f
- call CloseSRAM
- call Function3f830
- jr z, .asm_3f7ee
- call Functiona80
- call ClearTileMap
- ret
-
-.asm_3f7ee
- ld c, $c8
- call DelayFrames
- call ClearTileMap
- ret
-; 3f7f7
-
-.Win
- db "YOU WIN@"
-.Lose
- db "YOU LOSE@"
-.Draw
- db " DRAW@"
-; 3f80f
-
-
-Function3f80f: ; 3f80f
- ld hl, $c546
- ld de, .Invalid
- call PlaceString
- ld c, $c8
- call DelayFrames
- call ClearTileMap
- ret
-; 3f821
-
-.Invalid
- db "INVALID BATTLE@"
-; 3f830
-
-
-Function3f830: ; 3f830
- ld a, [InLinkBattle]
- cp $4
- ret
-; 3f836
-
-
-Function3f836: ; 3f836
- ld a, $1
- call GetSRAMBank
- call Function3f85f
- call CloseSRAM
- ld hl, AttrMap
- xor a
- ld bc, $0168
- call ByteFill
- call Function3200
- ld b, $8
- call GetSGBLayout
- call Function32f9
- ld c, $8
- call DelayFrames
- call Functiona80
- ret
-; 3f85f
-
-
-Function3f85f: ; 3f85f
- call ClearTileMap
- call ClearSprites
- call .asm_3f8e0
- ld hl, $c540
- ld b, $5
- ld de, $b268
-.asm_3f870
- push bc
- push hl
- push de
- ld a, [de]
- and a
- jr z, .asm_3f8c9
- ld a, [$d4b4]
- and a
- jr z, .asm_3f8c9
- push hl
- push hl
- ld h, d
- ld l, e
- ld de, DefaultFlypoint
- ld bc, $000a
- call CopyBytes
- ld a, $50
- ld [de], a
- inc de
- ld bc, $0006
- call CopyBytes
- ld de, DefaultFlypoint
- pop hl
- call PlaceString
- pop hl
- ld de, $001a
- add hl, de
- push hl
- ld de, $d00d
- ld bc, $0204
- call PrintNum
- pop hl
- ld de, $0005
- add hl, de
- push hl
- ld de, $d00f
- ld bc, $0204
- call PrintNum
- pop hl
- ld de, $0005
- add hl, de
- ld de, $d011
- ld bc, $0204
- call PrintNum
- jr .asm_3f8cf
-
-.asm_3f8c9
- ld de, .Format
- call PlaceString
-
-.asm_3f8cf
- pop hl
- ld bc, $0012
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- ld bc, $0028
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_3f870
- ret
-
-.asm_3f8e0
- ld hl, $c4a1
- ld de, .Record
- call PlaceString
-
- ld hl, $c518
- ld de, .Result
- call PlaceString
-
- ld hl, $c4c8
- ld de, .Total
- call PlaceString
-
- ld hl, $c4f6
- ld de, $b260
- call .asm_3f92b
- jr c, .asm_3f92a
-
- ld bc, $0204
- call PrintNum
-
- ld hl, $c4fb
- ld de, $b262
- call .asm_3f92b
-
- ld bc, $0204
- call PrintNum
-
- ld hl, $c500
- ld de, $b264
- call .asm_3f92b
-
- ld bc, $0204
- call PrintNum
-
-.asm_3f92a
- ret
-
-.asm_3f92b
- ld a, [$d4b4]
- and a
- ret nz
- ld de, .Scores
- call PlaceString
- scf
- ret
-; 3f938
-
-.Scores
- db " 0 0 0@"
-; 3f947
-
-.Format ; 3f947
- db " --- ", $22, " - - -@"
-.Record ; 3f964
- db $52, "'s RECORD@"
-.Result ; 3f96e
- db "RESULT WIN LOSE DRAW@"
-.Total ; 3f983
- db "TOTAL WIN LOSE DRAW@"
-; 3f998
-
-
-Function3f998: ; 3f998
- ld a, [BattleType]
- cp BATTLETYPE_ROAMING
- jr nz, .asm_3f9c4
- ld a, [$d0ee]
- and $f
- jr z, .asm_3f9af
- call GetRoamMonHP
- ld a, [EnemyMonHPLo]
- ld [hl], a
- jr .asm_3f9ca
-
-.asm_3f9af
- call GetRoamMonHP
- ld [hl], $0
- call GetRoamMonMapGroup
- ld [hl], $ff
- call GetRoamMonMapNumber
- ld [hl], $ff
- call GetRoamMonSpecies
- ld [hl], $0
- ret
-
-.asm_3f9c4
- call BattleRandom
- and $f
- ret nz
-
-.asm_3f9ca
- callab Function2a30d
- ret
-; 3f9d1
-
-GetRoamMonMapGroup: ; 3f9d1
- ld a, [TempEnemyMonSpecies]
- ld b, a
- ld a, [RoamMon1Species]
- cp b
- ld hl, RoamMon1MapGroup
- ret z
- ld a, [RoamMon2Species]
- cp b
- ld hl, RoamMon2MapGroup
- ret z
- ld hl, RoamMon3MapGroup
- ret
-; 3f9e9
-
-GetRoamMonMapNumber: ; 3f9e9
- ld a, [TempEnemyMonSpecies]
- ld b, a
- ld a, [RoamMon1Species]
- cp b
- ld hl, RoamMon1MapNumber
- ret z
- ld a, [RoamMon2Species]
- cp b
- ld hl, RoamMon2MapNumber
- ret z
- ld hl, RoamMon3MapNumber
- ret
-; 3fa01
-
-GetRoamMonHP: ; 3fa01
-; output: hl = RoamMonCurHP
- ld a, [TempEnemyMonSpecies]
- ld b, a
- ld a, [RoamMon1Species]
- cp b
- ld hl, RoamMon1CurHP
- ret z
- ld a, [RoamMon2Species]
- cp b
- ld hl, RoamMon2CurHP
- ret z
- ld hl, RoamMon3CurHP
- ret
-; 3fa19
-
-GetRoamMonDVs: ; 3fa19
-; output: hl = RoamMonDVs
- ld a, [TempEnemyMonSpecies]
- ld b, a
- ld a, [RoamMon1Species]
- cp b
- ld hl, RoamMon1DVs
- ret z
- ld a, [RoamMon2Species]
- cp b
- ld hl, RoamMon2DVs
- ret z
- ld hl, RoamMon3DVs
- ret
-; 3fa31
-
-GetRoamMonSpecies: ; 3fa31
- ld a, [TempEnemyMonSpecies]
- ld hl, RoamMon1Species
- cp [hl]
- ret z
- ld hl, RoamMon2Species
- cp [hl]
- ret z
- ld hl, RoamMon3Species
- ret
-; 3fa42
-
-
-Function3fa42: ; 3fa42
- ld hl, $d276
- ld de, StringBuffer1
- ld bc, $0002
- call CopyBytes
- ld hl, $d26b
- ld bc, $000a
- call CopyBytes
- ld hl, $b254
- call Function3faa0
- ld hl, $b266
- ld d, $5
-.asm_3fa62
- push hl
- inc hl
- inc hl
- ld a, [hl]
- dec hl
- dec hl
- and a
- jr z, .asm_3fa85
- push de
- ld bc, $000c
- ld de, StringBuffer1
- call CompareLong
- pop de
- pop hl
- jr c, .asm_3fa99
- ld bc, $0012
- add hl, bc
- dec d
- jr nz, .asm_3fa62
- ld bc, $ffee
- add hl, bc
- push hl
-
-.asm_3fa85
- ld d, h
- ld e, l
- ld hl, StringBuffer1
- ld bc, $000c
- call CopyBytes
- ld b, $6
- xor a
-.asm_3fa93
- ld [de], a
- inc de
- dec b
- jr nz, .asm_3fa93
- pop hl
-
-.asm_3fa99
- call Function3faa0
- call Function3fac8
- ret
-; 3faa0
-
-Function3faa0: ; 3faa0
- ld a, [$d0ee]
- and $f
- cp $1
- ld bc, $000d
- jr c, .asm_3fab4
- ld bc, $000f
- jr z, .asm_3fab4
- ld bc, $0011
-
-.asm_3fab4
- add hl, bc
- call Function3fabe
- ret nc
- inc [hl]
- ret nz
- dec hl
- inc [hl]
- ret
-; 3fabe
-
-Function3fabe: ; 3fabe
- dec hl
- ld a, [hl]
- inc hl
- cp $27
- ret c
- ld a, [hl]
- cp $f
- ret
-; 3fac8
-
-Function3fac8: ; 3fac8
- ld b, $5
- ld hl, $b277
- ld de, DefaultFlypoint
-.asm_3fad0
- push bc
- push de
- push hl
- call Function3fb54
- pop hl
- ld a, e
- pop de
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- inc de
- ld a, c
- ld [de], a
- inc de
- ld bc, $0012
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_3fad0
- ld b, $0
- ld c, $1
-.asm_3faed
- ld a, b
- add b
- add b
- ld e, a
- ld d, $0
- ld hl, DefaultFlypoint
- add hl, de
- push hl
- ld a, c
- add c
- add c
- ld e, a
- ld d, $0
- ld hl, DefaultFlypoint
- add hl, de
- ld d, h
- ld e, l
- pop hl
- push bc
- ld c, $3
- call StringCmp
- pop bc
- jr z, .asm_3fb10
- jr nc, .asm_3fb1f
-
-.asm_3fb10
- inc c
- ld a, c
- cp $5
- jr nz, .asm_3faed
- inc b
- ld c, b
- inc c
- ld a, b
- cp $4
- jr nz, .asm_3faed
- ret
-
-.asm_3fb1f
- push bc
- ld a, b
- ld bc, $0012
- ld hl, $b266
- call AddNTimes
- push hl
- ld de, DefaultFlypoint
- ld bc, $0012
- call CopyBytes
- pop hl
- pop bc
- push hl
- ld a, c
- ld bc, $0012
- ld hl, $b266
- call AddNTimes
- pop de
- push hl
- ld bc, $0012
- call CopyBytes
- ld hl, DefaultFlypoint
- ld bc, $0012
- pop de
- call CopyBytes
- ret
-; 3fb54
-
-Function3fb54: ; 3fb54
- ld e, $0
- ld a, [hld]
- ld c, a
- ld a, [hld]
- ld b, a
- ld a, [hld]
- add c
- ld c, a
- ld a, [hld]
- adc b
- ld b, a
- jr nc, .asm_3fb63
- inc e
-
-.asm_3fb63
- ld a, [hld]
- add c
- ld c, a
- ld a, [hl]
- adc b
- ld b, a
- ret nc
- inc e
- ret
-; 3fb6c
-
-Function3fb6c: ; 3fb6c
- call Function3fbf8
- ld hl, $c590
- ld b, $4
- ld c, $12
- call TextBox
- callba MobileTextBorder
- ld hl, $c505
- ld bc, $0307
- call ClearBox
- call Functione51
- call Function3ed9f
- call Function3fbd6
- xor a
- ld [$ffde], a
- ld [hSCY], a
- ld a, $90
- ld [hWY], a
- ld [rWY], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- callba Function4e980
- ld a, $1
- ld [hBGMapMode], a
- ld a, $31
- ld [$ffad], a
- ld hl, $c51a
- ld bc, $0606
- ld a, $13
- call Predef
- xor a
- ld [hWY], a
- ld [rWY], a
- call WaitBGMap
- call HideSprites
- ld b, $1
- call GetSGBLayout
- call Function32f9
- ld a, $90
- ld [hWY], a
- xor a
- ld [hSCX], a
- ret
-; 3fbd6
-
-Function3fbd6: ; 3fbd6
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, $d000
- ld bc, VBlank5
- ld a, $7f
- call ByteFill
- ld de, $d000
- ld hl, VBGMap0
- ld bc, $0f40
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-; 3fbf8
-
-Function3fbf8: ; 3fbf8
- call GetBattleBackpic
- call Function3fc30
- ret
-; 3fbff
-
-
-GetBattleBackpic: ; 3fbff
-; Load the player character's backpic (6x6) into VRAM starting from $9310.
-
-; Special exception for Dude.
- ld b, BANK(DudeBackpic)
- ld hl, DudeBackpic
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- jr z, .Decompress
-
-; What gender are we?
- ld a, [$d45b]
- bit 2, a
- jr nz, .Chris
- ld a, [PlayerGender]
- bit 0, a
- jr z, .Chris
-
-; It's a girl.
- callba GetKrisBackpic
- ret
-
-.Chris
-; It's a boy.
- ld b, BANK(ChrisBackpic)
- ld hl, ChrisBackpic
-
-.Decompress
- ld de, $9310
- ld c, $31
- ld a, PREDEF_DECOMPRESS
- call Predef
- ret
-; 3fc30
-
-
-Function3fc30: ; 3fc30
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, VTiles0
- ld de, $9310
- ld a, [hROMBank]
- ld b, a
- ld c, $31
- call Get2bpp
- pop af
- ld [rSVBK], a
- call Function3fc5b
- ld a, $31
- ld [$ffad], a
- ld hl, $c51a
- ld bc, $0606
- ld a, $13
- call Predef
- ret
-; 3fc5b
-
-Function3fc5b: ; 3fc5b
- ld hl, Sprites
- xor a
- ld [hConnectionStripLength], a
- ld b, $6
- ld e, $a8
-.asm_3fc65
- ld c, $3
- ld d, $40
-.asm_3fc69
- ld [hl], d
- inc hl
- ld [hl], e
- inc hl
- ld a, [hConnectionStripLength]
- ld [hli], a
- inc a
- ld [hConnectionStripLength], a
- ld a, $1
- ld [hli], a
- ld a, d
- add $8
- ld d, a
- dec c
- jr nz, .asm_3fc69
- ld a, [hConnectionStripLength]
- add $3
- ld [hConnectionStripLength], a
- ld a, e
- add $8
- ld e, a
- dec b
- jr nz, .asm_3fc65
- ret
-; 3fc8b
-
-
-BattleStartMessage: ; 3fc8b
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3fcaa
-
- ld de, SFX_SHINE
- call PlaySFX
- call WaitSFX
-
- ld c, 20
- call DelayFrames
-
- callba Function39939
-
- ld hl, WantsToBattleText
- jr .asm_3fd0e
-
-.asm_3fcaa
- call Function3da79
- jr nc, .asm_3fcc2
-
- xor a
- ld [$cfca], a
- ld a, 1
- ld [hBattleTurn], a
- ld a, 1
- ld [$c689], a
- ld de, $0101
- call Function3ee17
-
-.asm_3fcc2
- callba CheckSleepingTreeMon
- jr c, .asm_3fceb
-
- callba Function4ea44
- jr c, .asm_3fce0
-
- hlcoord 12, 0
- ld d, $0
- ld e, $1
- ld a, $47
- call Predef
- jr .asm_3fceb
-
-.asm_3fce0
- ld a, $0f
- ld [CryTracks], a
- ld a, [TempEnemyMonSpecies]
- call Function37b6
-
-.asm_3fceb
- ld a, [BattleType]
- cp BATTLETYPE_FISH
- jr nz, .asm_3fcfd
-
- callba Function106086
-
- ld hl, HookedPokemonAttackedText
- jr .asm_3fd0e
+SECTION "bankF", ROMX, BANK[$F]
-.asm_3fcfd
- ld hl, PokemonFellFromTreeText
- cp BATTLETYPE_TREE
- jr z, .asm_3fd0e
- ld hl, WildPokemonAppearedText2
- cp $b
- jr z, .asm_3fd0e
- ld hl, WildPokemonAppearedText
-
-.asm_3fd0e
- push hl
- callba Function2c000
- pop hl
- call StdBattleTextBox
-
- call Function3f830
- ret nz
-
- ld c, $2
- callba Function4ea0a
-
- ret
-; 3fd26
-
-
- dw $0000 ; padding
-
-
-BattleCommandPointers: ; 3fd28
+INCLUDE "battle/core.asm"
INCLUDE "battle/effect_command_pointers.asm"
+SECTION "bank10", ROMX, BANK[$10]
-SECTION "bank10",ROMX,BANK[$10]
+Pokedex: ; 40000
-Function40000: ; 40000
ld a, [hWX]
ld l, a
ld a, [hWY]
@@ -51941,7 +38456,7 @@ Function40000: ; 40000
ld hl, Options
ld a, [hl]
push af
- set 4, [hl]
+ set NO_TEXT_SCROLL, [hl]
ld a, [VramState]
push af
xor a
@@ -51950,26 +38465,29 @@ Function40000: ; 40000
push af
ld a, $1
ld [$ffaa], a
+
xor a
ld [$ffde], a
- call Function40063
+ call InitPokedex
call DelayFrame
-.asm_40029
+
+.main
call Functiona57
ld a, [$cf63]
bit 7, a
- jr nz, .asm_4003b
+ jr nz, .exit
call Function4010b
call DelayFrame
- jr .asm_40029
+ jr .main
-.asm_4003b
+.exit
ld de, SFX_READ_TEXT_2
call PlaySFX
call WaitSFX
call ClearSprites
ld a, [$c7d4]
ld [$d959], a
+
pop af
ld [$ffaa], a
pop af
@@ -51986,23 +38504,28 @@ Function40000: ; 40000
ret
; 40063
-Function40063: ; 40063
+InitPokedex: ; 40063
call WhiteBGMap
call ClearSprites
call ClearTileMap
call Function414b7
- ld hl, PlayerSDefLevel
+
+ ld hl, $c6d0
ld bc, $0115
xor a
call ByteFill
+
xor a
ld [$cf63], a
ld [$cf64], a
ld [$cf65], a
ld [$cf66], a
+
call Function400a2
+
ld a, [$d959]
ld [$c7d4], a
+
call Function40bdc
call Function400b4
call Function400ed
@@ -52015,27 +38538,30 @@ Function400a2: ; 400a2
ld a, [StatusFlags]
bit 1, a
jr nz, .asm_400ae
+
xor a
ld [$c7dc], a
ret
.asm_400ae
- ld a, $1
+ ld a, 1
ld [$c7dc], a
ret
; 400b4
Function400b4: ; 400b4
- ld hl, PlayerSDefLevel
+ ld hl, $c6d0
ld a, [$c2d6]
and a
jr z, .asm_400ec
cp $fc
jr nc, .asm_400ec
+
ld b, a
ld a, [$c7d2]
cp $8
jr c, .asm_400db
+
sub $7
ld c, a
.asm_400cc
@@ -52072,8 +38598,10 @@ Function400ed: ; 400ed
ld a, [MapNumber]
ld c, a
call GetWorldMapLocation
- cp $0
+
+ cp SPECIAL_MAP
jr nz, .asm_40107
+
ld a, [BackupMapGroup]
ld b, a
ld a, [BackupMapNumber]
@@ -52087,7 +38615,7 @@ Function400ed: ; 400ed
Function4010b: ; 4010b
ld a, [$cf63]
- ld hl, $4115
+ ld hl, Jumptable_40115
call Function41432
jp [hl]
; 40115
@@ -52149,6 +38677,7 @@ Function4013c: ; 4013c (10:413c)
ld a, $4a
jr z, .asm_4017b
ld a, $47
+
.asm_4017b
ld [hWX], a ; $ff00+$d1
xor a
@@ -52194,6 +38723,7 @@ Function401ae: ; 401ae (10:41ae)
call Function41ad7
call Function41af7
ret
+
.asm_401d9
call Function40bb1
call Function40bd0
@@ -52203,6 +38733,7 @@ Function401ae: ; 401ae (10:41ae)
ld a, $0
ld [$cf64], a
ret
+
.asm_401eb
call Function41401
ld a, $7
@@ -52213,6 +38744,7 @@ Function401ae: ; 401ae (10:41ae)
ld [hWX], a ; $ff00+$d1
call DelayFrame
ret
+
.asm_401fe
call Function41401
ld a, $5
@@ -52223,6 +38755,7 @@ Function401ae: ; 401ae (10:41ae)
ld [hWX], a ; $ff00+$d1
call DelayFrame
ret
+
.asm_40211
ld a, $d
ld [$cf63], a
@@ -52270,17 +38803,20 @@ Function40258: ; 40258 (10:4258)
ret nc
call Function40131
ret
+
.asm_40273
ld a, [$c7d8]
ld hl, $42f2
call Function41432
jp [hl]
+
.asm_4027d
ld a, [LastVolume] ; $c2b4
and a
jr z, .asm_40288
ld a, $77
ld [LastVolume], a ; $c2b4
+
.asm_40288
call MaxVolume
ld a, [$cf64]
@@ -52342,6 +38878,7 @@ Function403be: ; 403be (10:43be)
jr nz, .asm_403c9
ld de, $43f3
jr .asm_403cc
+
.asm_403c9
ld de, $43fb
.asm_403cc
@@ -52355,11 +38892,13 @@ Function403be: ; 403be (10:43be)
and $1
jr nz, .asm_403e0
ret
+
.asm_403e0
ld a, [$c7d8]
- ld hl, $4405
+ ld hl, Jumptable_40405
call Function41432
jp [hl]
+
.asm_403ea
call Function41401
ld a, $0
@@ -52380,17 +38919,17 @@ Jumptable_40405: ; 40405 (10:4405)
; no known jump sources
Function4040d: ; 4040d (10:440d)
ld b, $0
- jr asm_40417
+ jr Function40417
; no known jump sources
Function40411: ; 40411 (10:4411)
ld b, $1
- jr asm_40417
+ jr Function40417
; no known jump sources
Function40415: ; 40415 (10:4415)
ld b, $2
-asm_40417: ; 40417 (10:4417)
+Function40417: ; 40417 (10:4417)
ld a, [$c7d4]
cp b
jr z, .asm_40431
@@ -52402,6 +38941,7 @@ asm_40417: ; 40417 (10:4417)
ld [$c7d0], a
ld [$c7d1], a
call Function400b4
+
.asm_40431
call Function41401
ld a, $0
@@ -52450,11 +38990,13 @@ Function40471: ; 40471 (10:4471)
and $1
jr nz, .asm_4048b
ret
+
.asm_4048b
ld a, [$c7d8]
ld hl, $44a8
call Function41432
jp [hl]
+
.asm_40495
call Function41401
ld a, $0
@@ -52518,6 +39060,7 @@ Function40562: ; 40562 (10:4562)
call Function41ad7
call Function41af7
ret
+
.asm_40583
call Function40bb1
call Function40bd0
@@ -52527,6 +39070,7 @@ Function40562: ; 40562 (10:4562)
ld a, $9
ld [$cf64], a
ret
+
.asm_40595
ld a, [$c7e0]
ld [$c7d0], a
@@ -52564,10 +39108,11 @@ Function405bd: ; 405bd (10:45bd)
Function405df: ; 405df (10:45df)
ld hl, hJoyPressed ; $ffa7
ld a, [hl]
- and $3
+ and A_BUTTON | B_BUTTON
jr nz, .asm_405eb
call Function40610
ret
+
.asm_405eb
call Function41401
ld a, $7
@@ -52577,11 +39122,13 @@ Function405df: ; 405df (10:45df)
jr nz, .asm_40603
callba Function1ddf26
jr .asm_4060f
+
.asm_40603
ld hl, $550e
ld de, $9310
ld bc, $103a
call Functione73
+
.asm_4060f
ret
@@ -52595,6 +39142,7 @@ Function40610: ; 40610 (10:4610)
and $20
jr nz, .asm_4062d
ret
+
.asm_4061e
ld a, [$c7de]
ld e, a
@@ -52606,6 +39154,7 @@ Function40610: ; 40610 (10:4610)
ld a, [hl]
inc [hl]
jr .asm_40635
+
.asm_4062d
ld hl, $c7dd
ld a, [hl]
@@ -52613,6 +39162,7 @@ Function40610: ; 40610 (10:4610)
ret z
ld a, [hl]
dec [hl]
+
.asm_40635
push af
xor a
@@ -53962,7 +40512,7 @@ Function41a24: ; 41a24
Function41a2c: ; 41a2c
ld a, $0
call GetSRAMBank
- ld hl, Function40000
+ ld hl, Pokedex
ld de, $a188
ld bc, Function270
ld a, $77
@@ -54679,7 +41229,7 @@ GetPreEvolution: ; 42581
-SECTION "bank11",ROMX,BANK[$11]
+SECTION "bank11", ROMX, BANK[$11]
INCLUDE "engine/fruit_trees.asm"
@@ -55539,7 +42089,7 @@ Function4484a: ; 0x4484a
.PutInPack ; 0x44877
ld hl, .MessageLostText
call Function1d4f
- call Function1dcf
+ call YesNoBox
call Function1c07
ret c
ld a, [MenuSelection]
@@ -55678,7 +42228,7 @@ MenuData44964: ; 0x44964
db "ATTACH MAIL@"
db "CANCEL@"
-SECTION "bank12",ROMX,BANK[$12]
+SECTION "bank12", ROMX, BANK[$12]
Function48000: ; 48000
ld a, $1
@@ -58496,7 +45046,7 @@ Function49e75: ; 49e75
; 49e8c
UnknownText_0x49e8c: ; 49e8c
- text_jump UnknownText_0x1c5182, BANK(UnknownText_0x1c5182)
+ text_jump UnknownText_0x1c5182
db "@"
; 49e91
@@ -59756,7 +46306,7 @@ Function4a9d7: ; 4a9d7
call CopyBytes
ld hl, $6a1d
call PrintText
- call Function1dcf
+ call YesNoBox
ret
; 4aa1d
@@ -60257,7 +46807,7 @@ Function4ad17: ; 4ad17
UnknownText_0x4ad51: ; 0x4ad51
; Only three #MON may enter.
- text_jump UnknownText_0x1c521c, BANK(UnknownText_0x1c521c)
+ text_jump UnknownText_0x1c521c
db "@"
; 0x4ad56
@@ -60369,7 +46919,7 @@ Function4ae12: ; 4ae12
Function4ae1f: ; 4ae1f
ld bc, $0e07
push bc
- ld hl, MenuDataHeader_0x1e1d
+ ld hl, YesNoMenuDataHeader
call Function1d3c
pop bc
ld a, b
@@ -60418,7 +46968,7 @@ Function4ae5e: ; 4ae5e
; 4ae78
-SECTION "bank13",ROMX,BANK[$13]
+SECTION "bank13", ROMX, BANK[$13]
Function4c000: ; 4c000
ld hl, TileMap
@@ -60511,8 +47061,6 @@ Function4c03f: ; 4c03f
INCLUDE "tilesets/palette_maps.asm"
-INCBIN "baserom.gbc",$4ce05,$4ce1f - $4ce05
-
TileCollisionTable: ; 4ce1f
; 00 land
; 01 water
@@ -61805,7 +48353,7 @@ Function4db35: ; 4db35
Function4db3b: ; 4db3b
ld hl, $5b44
call PrintText
- jp Function1dcf
+ jp YesNoBox
; 4db44
INCBIN "baserom.gbc",$4db44,$4db49 - $4db44
@@ -62264,7 +48812,7 @@ Function4ddf2: ; 4ddf2 (13:5df2)
; known jump sources: 4ddac (13:5dac), 4ddd6 (13:5dd6)
Function4de2c: ; 4de2c (13:5e2c)
- call GetJoypadPublic
+ call GetJoypad
ld a, [MonType] ; $cf5f
cp $3
jr nz, .asm_4de4e
@@ -63410,7 +49958,7 @@ Function4e711: ; 4e711
; 4e726
Function4e726: ; 4e726
- call ClearJoypadPublic
+ call ClearJoypad
ld bc, $010e
.asm_4e72c
push bc
@@ -63869,30 +50417,37 @@ Function4ea0a: ; 4ea0a
-Function4ea44: ; 4ea44
- ld a, $0
+CheckBattleScene: ; 4ea44
+; Return carry if battle scene is turned off.
+
+ ld a, 0
ld hl, InLinkBattle
call GetFarWRAMByte
- cp $4
- jr z, .asm_4ea59
+ cp 4
+ jr z, .mobile
+
ld a, [Options]
- bit 7, a
- jr nz, .asm_4ea80
+ bit BATTLE_SCENE, a
+ jr nz, .off
+
and a
ret
-.asm_4ea59
+.mobile
ld a, [$cd2f]
and a
jr nz, .asm_4ea72
+
ld a, $4
call GetSRAMBank
ld a, [$a60c]
ld c, a
call CloseSRAM
+
ld a, c
bit 0, c
- jr z, .asm_4ea80
+ jr z, .off
+
and a
ret
@@ -63901,449 +50456,23 @@ Function4ea44: ; 4ea44
ld hl, $dc00
call GetFarWRAMByte
bit 0, a
- jr z, .asm_4ea80
- and a
- ret
-
-.asm_4ea80
- scf
- ret
-; 4ea82
-
-
+ jr z, .off
-Function4ea82: ; 4ea82
- ld a, [hCGB]
and a
- ret nz
- ld de, $0000
- call PlayMusic
- call ClearTileMap
- ld hl, $6b76
- ld de, $d000
- ld a, [rSVBK]
- push af
- ld a, $0
- ld [rSVBK], a
- call Decompress
- pop af
- ld [rSVBK], a
- ld de, $d000
- ld hl, VTiles2
- ld bc, Text_1354
- call Get2bpp
- ld de, $4200
- ld hl, VTiles1
- ld bc, Function3e80
- call Get1bpp
- call Function4eac5
- call WaitBGMap
-.asm_4eac0
- call DelayFrame
- jr .asm_4eac0
-; 4eac5
-
-Function4eac5: ; 4eac5
- call Function4eaea
- ld hl, $c4cb
- ld b, $e
- ld c, $4
- ld a, $8
- call Function4eb27
- ld hl, $c51d
- ld b, $a
- ld c, $2
- ld a, $40
- call Function4eb27
- ld de, $6b38
- ld hl, $c569
- call PlaceString
- ret
-; 4eaea
-
-Function4eaea: ; 4eaea
- ld hl, TileMap
- ld [hl], $0
- inc hl
- ld a, $1
- call Function4eb15
- ld [hl], $2
- ld hl, $c4b4
- ld a, $3
- call Function4eb1c
- ld hl, $c4c7
- ld a, $4
- call Function4eb1c
- ld hl, $c5f4
- ld [hl], $5
- inc hl
- ld a, $6
- call Function4eb15
- ld [hl], $7
- ret
-; 4eb15
-
-Function4eb15: ; 4eb15
- ld c, $12
-.asm_4eb17
- ld [hli], a
- dec c
- jr nz, .asm_4eb17
- ret
-; 4eb1c
-
-Function4eb1c: ; 4eb1c
- ld de, $0014
- ld c, $10
-.asm_4eb21
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_4eb21
- ret
-; 4eb27
-
-Function4eb27: ; 4eb27
- ld de, $0014
-.asm_4eb2a
- push bc
- push hl
-.asm_4eb2c
- ld [hli], a
- inc a
- dec b
- jr nz, .asm_4eb2c
- pop hl
- add hl, de
- pop bc
- dec c
- jr nz, .asm_4eb2a
- ret
-; 4eb38
-
-INCBIN "baserom.gbc",$4eb38,$4f0bc - $4eb38
-
-Function4f0bc: ; 4f0bc
- ld a, $0
- call Function4f26d
- call Functiona36
- ld b, $6
- callba Function50000
- jr c, .asm_4f0e1
- ld a, [CurPartySpecies]
- cp $fd
- jr z, .asm_4f0e8
- call IsAPokemon
- jr c, .asm_4f0e7
- call Function4f134
- call Function4f0ee
- ret
-
-.asm_4f0e1
- ld a, $5
- call Function4f26d
- ret
-
-.asm_4f0e7
- ret
-
-.asm_4f0e8
- ld a, $6
- call Function4f26d
- ret
-; 4f0ee
-
-Function4f0ee: ; 4f0ee
- ld a, [DefaultFlypoint]
- ld hl, $70f6
- rst JumpTable
- ret
-; 4f0f6
-
-Table4f0f6: ; 4f0f6
- dw Function4f100
- dw Function4f10e
- dw Function4f11f
- dw Function4f125
- dw Function4f12b
-; 4f100
-
-Function4f100: ; 4f100
- ld a, $2
- call Function4f26d
- ld a, $3
- call Function4f26d
- call Function4f2b4
- ret
-; 4f10e
-
-Function4f10e: ; 4f10e
- call Function4f242
- ld a, $4
- call Function4f26d
- ld a, $3
- call Function4f26d
- call Function4f2b4
- ret
-; 4f11f
-
-Function4f11f: ; 4f11f
- ld a, $1
- call Function4f26d
- ret
-; 4f125
-
-Function4f125: ; 4f125
- ld a, $1
- call Function4f26d
- ret
-; 4f12b
-
-Function4f12b: ; 4f12b
- ld a, $7
- call Function4f26d
- call Function4f2b4
- ret
-; 4f134
-
-Function4f134: ; 4f134
- ld a, $1d
- call GetPartyParamLocation
- ld a, [hli]
- ld [$d03b], a
- ld a, [hld]
- ld [$d03c], a
- or [hl]
- jr z, .asm_4f170
- ld a, $1
- ld [DefaultFlypoint], a
- ld a, $6
- call GetPartyParamLocation
- ld a, [PlayerID]
- cp [hl]
- jr nz, .asm_4f15f
- inc hl
- ld a, [$d47c]
- jr nz, .asm_4f15f
- ld a, $0
- ld [DefaultFlypoint], a
-
-.asm_4f15f
- call Function4f18c
- call Function4f242
- call Function4f176
- call Function4f1c5
- call Function4f20a
- and a
- ret
-
-.asm_4f170
- ld a, $2
- ld [DefaultFlypoint], a
- ret
-; 4f176
-
-Function4f176: ; 4f176
- ld a, [CurPartyMon]
- ld hl, PartyMon1Nickname
- ld bc, $000b
- call AddNTimes
- ld de, $d003
- ld bc, $000b
- call CopyBytes
- ret
-; 4f18c
-
-Function4f18c: ; 4f18c
- ld a, $50
- ld hl, $d036
- ld bc, $0004
- call ByteFill
- ld a, [$d03b]
- and $3f
- jr z, .asm_4f1b4
- cp $1
- jr nz, .asm_4f1a4
- ld a, $5
-
-.asm_4f1a4
- ld [$d03a], a
- ld hl, $d036
- ld de, $d03a
- ld bc, $4103
- call PrintNum
ret
-.asm_4f1b4
- ld de, $d036
- ld hl, $71c1
- ld bc, $0004
- call CopyBytes
- ret
-; 4f1c1
-
-INCBIN "baserom.gbc",$4f1c1,$4f1c5 - $4f1c1
-
-Function4f1c5: ; 4f1c5
- ld a, [$d03b]
- and $c0
- jr z, .asm_4f1df
- rlca
- rlca
- dec a
- ld hl, $71e6
- call GetNthString
- ld d, h
- ld e, l
- ld hl, $d01f
- call CopyName2
- and a
- ret
-
-.asm_4f1df
- ld de, $d01f
- call Function4f1f8
- ret
-; 4f1e6
-
-INCBIN "baserom.gbc",$4f1e6,$4f1f8 - $4f1e6
-
-Function4f1f8: ; 4f1f8
- ld hl, $7202
- ld bc, $000b
- call CopyBytes
- ret
-; 4f202
-
-INCBIN "baserom.gbc",$4f202,$4f20a - $4f202
-
-Function4f20a: ; 4f20a
- ld a, [$d03c]
- and $7f
- jr z, .asm_4f22e
- cp $7f
- jr z, .asm_4f234
- cp $7e
- jr z, .asm_4f23b
- ld e, a
- callba GetLandmarkName
- ld hl, StringBuffer1
- ld de, $d00e
- ld bc, $0011
- call CopyBytes
- and a
- ret
-
-.asm_4f22e
- ld de, $d00e
- jp Function4f1f8
-
-.asm_4f234
- ld a, $4
- ld [DefaultFlypoint], a
+.off
scf
ret
+; 4ea82
-.asm_4f23b
- ld a, $3
- ld [DefaultFlypoint], a
- scf
- ret
-; 4f242
-
-Function4f242: ; 4f242
- ld a, [CurPartyMon]
- ld hl, PartyMon1OT
- ld bc, $000b
- call AddNTimes
- ld de, $d02a
- ld bc, $000b
- call CopyBytes
- ld hl, $726b
- ld a, [$d03c]
- bit 7, a
- jr z, .asm_4f264
- ld hl, $726c
-
-.asm_4f264
- ld de, $d035
- ld a, $50
- ld [de], a
- ret
-; 4f26b
-
-INCBIN "baserom.gbc",$4f26b,$4f26d - $4f26b
-
-Function4f26d: ; 4f26d
- ld e, a
- ld d, $0
- ld hl, $727c
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; 4f27c
-
-INCBIN "baserom.gbc",$4f27c,$4f2b4 - $4f27c
-
-Function4f2b4: ; 4f2b4
- ld a, $1f
- call GetPartyParamLocation
- ld a, [$d03a]
- ld c, a
- ld a, [hl]
- sub c
- ld c, a
- ld hl, $72d6
- ld de, $0003
-.asm_4f2c6
- cp [hl]
- jr c, .asm_4f2ce
- jr z, .asm_4f2ce
- add hl, de
- jr .asm_4f2c6
-
-.asm_4f2ce
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; 4f2d6
-
-INCBIN "baserom.gbc",$4f2d6,$4f301 - $4f2d6
+INCLUDE "misc/gbc_only.asm"
-Function4f301: ; 4f301
- ld hl, $001e
- add hl, bc
- ld a, [hl]
- and $7f
- jr z, .asm_4f319
- cp $7f
- jr z, .asm_4f319
- ld a, [hl]
- and $80
- jr nz, .asm_4f316
- ld c, $1
- ret
-
-.asm_4f316
- ld c, $2
- ret
+INCLUDE "event/poke_seer.asm"
-.asm_4f319
- ld c, $0
- ret
-; 4f31c
-
-
-SECTION "bank14",ROMX,BANK[$14]
+SECTION "bank14", ROMX, BANK[$14]
Function50000: ; 50000
call Function2ed3
@@ -65014,7 +51143,7 @@ Function5042d: ; 0x5042d
INCBIN "baserom.gbc",$5044f,$50457 - $5044f
PartyMenuSelect: ; 0x50457
-; sets carry if exited menu.
+; sets carry if exitted menu.
call Function1bc9
call Function1bee
ld a, [PartyCount]
@@ -65247,16 +51376,16 @@ Function50658: ; 50658
; 50669
UnknownScript_0x50669: ; 50669
- 3callasm BANK(Function50658), Function50658
+ 3callasm Function50658
loadfont
- 3callasm BANK(Function5067b), Function5067b
+ 3callasm Function5067b
iffalse UnknownScript_0x50677
loadmovesprites
end
; 50677
UnknownScript_0x50677: ; 50677
- 3jump BANK(UnknownScript_0x124c8), UnknownScript_0x124c8
+ 3jump UnknownScript_0x124c8
; 5067b
Function5067b: ; 5067b
@@ -65290,12 +51419,12 @@ Function5067b: ; 5067b
; 506b2
PoisonFaintText: ; 506b2
- text_jump UnknownText_0x1c0acc, BANK(UnknownText_0x1c0acc)
+ text_jump UnknownText_0x1c0acc
db "@"
; 506b7
PoisonWhiteOutText: ; 506b7
- text_jump UnknownText_0x1c0ada, BANK(UnknownText_0x1c0ada)
+ text_jump UnknownText_0x1c0ada
db "@"
; 506bc
@@ -65311,10 +51440,10 @@ Function506bc: ; 506bc
UnknownScript_0x506c8: ; 0x506c8
reloadmappart
special $0035
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0x50726
closetext
- 3callasm BANK(Function506ef), Function506ef
+ 3callasm Function506ef
iffalse UnknownScript_0x506e9
checkflag $0011
iftrue UnknownScript_0x506e5
@@ -65325,7 +51454,7 @@ UnknownScript_0x506c8: ; 0x506c8
; 0x506e5
UnknownScript_0x506e5: ; 0x506e5
- 3jump BANK(UnknownScript_0x135eb), UnknownScript_0x135eb
+ 3jump UnknownScript_0x135eb
; 0x506e9
UnknownScript_0x506e9: ; 0x506e9
@@ -65365,12 +51494,12 @@ Function506ef: ; 506ef
; 50726
UnknownText_0x50726: ; 0x50726
- text_jump UnknownText_0x1c0b03, BANK(UnknownText_0x1c0b03)
+ text_jump UnknownText_0x1c0b03
db $50
; 0x5072b
UnknownText_0x5072b: ; 0x5072b
- text_jump UnknownText_0x1c0b1a, BANK(UnknownText_0x1c0b1a)
+ text_jump UnknownText_0x1c0b1a
db $50
; 0x50730
@@ -65386,9 +51515,9 @@ _Squirtbottle: ; 50730
UnknownScript_0x5073c: ; 0x5073c
reloadmappart
special $0035
- 3callasm BANK(Function50753), Function50753
+ 3callasm Function50753
iffalse UnknownScript_0x5074b
- 3jump BANK(WateredWeirdTreeScript), WateredWeirdTreeScript
+ 3jump WateredWeirdTreeScript
; 0x5074b
UnknownScript_0x5074b: ; 0x5074b
@@ -65396,7 +51525,7 @@ UnknownScript_0x5074b: ; 0x5074b
; 0x5074e
UnknownText_0x5074e: ; 0x5074e
- text_jump UnknownText_0x1c0b3b, BANK(UnknownText_0x1c0b3b)
+ text_jump UnknownText_0x1c0b3b
db $50
; 0x50753
@@ -65463,7 +51592,7 @@ _CardKey: ; 50779
UnknownScript_0x507af: ; 0x507af
loadmovesprites
- 3jump BANK(MapRadioTower3FSignpost2Script), MapRadioTower3FSignpost2Script
+ 3jump MapRadioTower3FSignpost2Script
; 0x507b4
@@ -65498,7 +51627,7 @@ _BasementKey: ; 507b4
UnknownScript_0x507e1: ; 0x507e1
loadmovesprites
- 3jump BANK(MapWarehouseEntranceSignpost0Script), MapWarehouseEntranceSignpost0Script
+ 3jump MapWarehouseEntranceSignpost0Script
; 0x507e6
@@ -65571,7 +51700,7 @@ UnknownScript_0x50821: ; 0x50821
; 0x50845
UnknownText_0x50845: ; 0x50845
- text_jump UnknownText_0x1c0b65, BANK(UnknownText_0x1c0b65)
+ text_jump UnknownText_0x1c0b65
db $50
; 0x5084a
@@ -67267,223 +53396,14 @@ INCLUDE "stats/pokemon_names.asm"
INCBIN "baserom.gbc",$53d84,$53e2e - $53d84
-SECTION "bank15",ROMX,BANK[$15]
-
-; Map Scripts I
-
-INCLUDE "maps/GoldenrodGym.asm"
-INCLUDE "maps/GoldenrodBikeShop.asm"
-INCLUDE "maps/GoldenrodHappinessRater.asm"
-INCLUDE "maps/GoldenrodBillsHouse.asm"
-INCLUDE "maps/GoldenrodMagnetTrainStation.asm"
-INCLUDE "maps/GoldenrodFlowerShop.asm"
-INCLUDE "maps/GoldenrodPPSpeechHouse.asm"
-INCLUDE "maps/GoldenrodNameRatersHouse.asm"
-INCLUDE "maps/GoldenrodDeptStore1F.asm"
-INCLUDE "maps/GoldenrodDeptStore2F.asm"
-INCLUDE "maps/GoldenrodDeptStore3F.asm"
-INCLUDE "maps/GoldenrodDeptStore4F.asm"
-INCLUDE "maps/GoldenrodDeptStore5F.asm"
-INCLUDE "maps/GoldenrodDeptStore6F.asm"
-INCLUDE "maps/GoldenrodDeptStoreElevator.asm"
-INCLUDE "maps/GoldenrodDeptStoreRoof.asm"
-INCLUDE "maps/GoldenrodGameCorner.asm"
-
-
-SECTION "bank16",ROMX,BANK[$16]
-
-; Map Scripts II
-
-INCLUDE "maps/RuinsofAlphOutside.asm"
-INCLUDE "maps/RuinsofAlphHoOhChamber.asm"
-INCLUDE "maps/RuinsofAlphKabutoChamber.asm"
-INCLUDE "maps/RuinsofAlphOmanyteChamber.asm"
-INCLUDE "maps/RuinsofAlphAerodactylChamber.asm"
-INCLUDE "maps/RuinsofAlphInnerChamber.asm"
-INCLUDE "maps/RuinsofAlphResearchCenter.asm"
-INCLUDE "maps/RuinsofAlphHoOhItemRoom.asm"
-INCLUDE "maps/RuinsofAlphKabutoItemRoom.asm"
-INCLUDE "maps/RuinsofAlphOmanyteItemRoom.asm"
-INCLUDE "maps/RuinsofAlphAerodactylItemRoom.asm"
-INCLUDE "maps/RuinsofAlphHoOhWordRoom.asm"
-INCLUDE "maps/RuinsofAlphKabutoWordRoom.asm"
-INCLUDE "maps/RuinsofAlphOmanyteWordRoom.asm"
-INCLUDE "maps/RuinsofAlphAerodactylWordRoom.asm"
-INCLUDE "maps/UnionCave1F.asm"
-INCLUDE "maps/UnionCaveB1F.asm"
-INCLUDE "maps/UnionCaveB2F.asm"
-INCLUDE "maps/SlowpokeWellB1F.asm"
-INCLUDE "maps/SlowpokeWellB2F.asm"
-INCLUDE "maps/OlivineLighthouse1F.asm"
-INCLUDE "maps/OlivineLighthouse2F.asm"
-INCLUDE "maps/OlivineLighthouse3F.asm"
-INCLUDE "maps/OlivineLighthouse4F.asm"
-
-
-SECTION "bank17",ROMX,BANK[$17]
-
-; Map Scripts III
-
-INCLUDE "maps/NationalPark.asm"
-INCLUDE "maps/NationalParkBugContest.asm"
-INCLUDE "maps/RadioTower1F.asm"
-INCLUDE "maps/RadioTower2F.asm"
-INCLUDE "maps/RadioTower3F.asm"
-INCLUDE "maps/RadioTower4F.asm"
-
-
-SECTION "bank18",ROMX,BANK[$18]
-
-; Map Scripts IV
-
-INCLUDE "maps/RadioTower5F.asm"
-INCLUDE "maps/OlivineLighthouse5F.asm"
-INCLUDE "maps/OlivineLighthouse6F.asm"
-INCLUDE "maps/GoldenrodPokeCenter1F.asm"
-INCLUDE "maps/GoldenrodPokeComCenter2FMobile.asm"
-INCLUDE "maps/IlexForestAzaleaGate.asm"
-INCLUDE "maps/Route34IlexForestGate.asm"
-INCLUDE "maps/DayCare.asm"
-
-
-SECTION "bank19",ROMX,BANK[$19]
+
+SECTION "bank19", ROMX, BANK[$19]
INCLUDE "text/phone/extra.asm"
-SECTION "bank1A",ROMX,BANK[$1A]
-
-; Map Scripts V
-
-INCLUDE "maps/Route11.asm"
-INCLUDE "maps/VioletMart.asm"
-INCLUDE "maps/VioletGym.asm"
-INCLUDE "maps/EarlsPokemonAcademy.asm"
-INCLUDE "maps/VioletNicknameSpeechHouse.asm"
-INCLUDE "maps/VioletPokeCenter1F.asm"
-INCLUDE "maps/VioletOnixTradeHouse.asm"
-INCLUDE "maps/Route32RuinsofAlphGate.asm"
-INCLUDE "maps/Route32PokeCenter1F.asm"
-INCLUDE "maps/Route35Goldenrodgate.asm"
-INCLUDE "maps/Route35NationalParkgate.asm"
-INCLUDE "maps/Route36RuinsofAlphgate.asm"
-INCLUDE "maps/Route36NationalParkgate.asm"
-
-
-SECTION "bank1B",ROMX,BANK[$1B]
-
-; Map Scripts VI
-
-INCLUDE "maps/Route8.asm"
-INCLUDE "maps/MahoganyMart1F.asm"
-INCLUDE "maps/TeamRocketBaseB1F.asm"
-INCLUDE "maps/TeamRocketBaseB2F.asm"
-INCLUDE "maps/TeamRocketBaseB3F.asm"
-INCLUDE "maps/IlexForest.asm"
-
-
-SECTION "bank1C",ROMX,BANK[$1C]
-
-; Map Scripts VII
-
-INCLUDE "maps/LakeofRage.asm"
-INCLUDE "maps/CeladonDeptStore1F.asm"
-INCLUDE "maps/CeladonDeptStore2F.asm"
-INCLUDE "maps/CeladonDeptStore3F.asm"
-INCLUDE "maps/CeladonDeptStore4F.asm"
-INCLUDE "maps/CeladonDeptStore5F.asm"
-INCLUDE "maps/CeladonDeptStore6F.asm"
-INCLUDE "maps/CeladonDeptStoreElevator.asm"
-INCLUDE "maps/CeladonMansion1F.asm"
-INCLUDE "maps/CeladonMansion2F.asm"
-INCLUDE "maps/CeladonMansion3F.asm"
-INCLUDE "maps/CeladonMansionRoof.asm"
-INCLUDE "maps/CeladonMansionRoofHouse.asm"
-INCLUDE "maps/CeladonPokeCenter1F.asm"
-INCLUDE "maps/CeladonPokeCenter2FBeta.asm"
-INCLUDE "maps/CeladonGameCorner.asm"
-INCLUDE "maps/CeladonGameCornerPrizeRoom.asm"
-INCLUDE "maps/CeladonGym.asm"
-INCLUDE "maps/CeladonCafe.asm"
-INCLUDE "maps/Route16FuchsiaSpeechHouse.asm"
-INCLUDE "maps/Route16Gate.asm"
-INCLUDE "maps/Route7SaffronGate.asm"
-INCLUDE "maps/Route1718Gate.asm"
-
-
-SECTION "bank1D",ROMX,BANK[$1D]
-
-; Map Scripts VIII
-
-INCLUDE "maps/DiglettsCave.asm"
-INCLUDE "maps/MountMoon.asm"
-INCLUDE "maps/Underground.asm"
-INCLUDE "maps/RockTunnel1F.asm"
-INCLUDE "maps/RockTunnelB1F.asm"
-INCLUDE "maps/SafariZoneFuchsiaGateBeta.asm"
-INCLUDE "maps/SafariZoneBeta.asm"
-INCLUDE "maps/VictoryRoad.asm"
-INCLUDE "maps/OlivinePort.asm"
-INCLUDE "maps/VermilionPort.asm"
-INCLUDE "maps/FastShip1F.asm"
-INCLUDE "maps/FastShipCabins_NNW_NNE_NE.asm"
-INCLUDE "maps/FastShipCabins_SW_SSW_NW.asm"
-INCLUDE "maps/FastShipCabins_SE_SSE_CaptainsCabin.asm"
-INCLUDE "maps/FastShipB1F.asm"
-INCLUDE "maps/OlivinePortPassage.asm"
-INCLUDE "maps/VermilionPortPassage.asm"
-INCLUDE "maps/MountMoonSquare.asm"
-INCLUDE "maps/MountMoonGiftShop.asm"
-INCLUDE "maps/TinTowerRoof.asm"
-
-
-SECTION "bank1E",ROMX,BANK[$1E]
-
-; Map Scripts IX
-
-INCLUDE "maps/Route34.asm"
-INCLUDE "maps/ElmsLab.asm"
-INCLUDE "maps/KrissHouse1F.asm"
-INCLUDE "maps/KrissHouse2F.asm"
-INCLUDE "maps/KrissNeighborsHouse.asm"
-INCLUDE "maps/ElmsHouse.asm"
-INCLUDE "maps/Route26HealSpeechHouse.asm"
-INCLUDE "maps/Route26DayofWeekSiblingsHouse.asm"
-INCLUDE "maps/Route27SandstormHouse.asm"
-INCLUDE "maps/Route2946Gate.asm"
-
-
-SECTION "bank1F",ROMX,BANK[$1F]
-
-; Map Scripts X
-
-INCLUDE "maps/Route22.asm"
-INCLUDE "maps/WarehouseEntrance.asm"
-INCLUDE "maps/UndergroundPathSwitchRoomEntrances.asm"
-INCLUDE "maps/GoldenrodDeptStoreB1F.asm"
-INCLUDE "maps/UndergroundWarehouse.asm"
-INCLUDE "maps/MountMortar1FOutside.asm"
-INCLUDE "maps/MountMortar1FInside.asm"
-INCLUDE "maps/MountMortar2FInside.asm"
-INCLUDE "maps/MountMortarB1F.asm"
-INCLUDE "maps/IcePath1F.asm"
-INCLUDE "maps/IcePathB1F.asm"
-INCLUDE "maps/IcePathB2FMahoganySide.asm"
-INCLUDE "maps/IcePathB2FBlackthornSide.asm"
-INCLUDE "maps/IcePathB3F.asm"
-INCLUDE "maps/LavenderPokeCenter1F.asm"
-INCLUDE "maps/LavenderPokeCenter2FBeta.asm"
-INCLUDE "maps/MrFujisHouse.asm"
-INCLUDE "maps/LavenderTownSpeechHouse.asm"
-INCLUDE "maps/LavenderNameRater.asm"
-INCLUDE "maps/LavenderMart.asm"
-INCLUDE "maps/SoulHouse.asm"
-INCLUDE "maps/LavRadioTower1F.asm"
-INCLUDE "maps/Route8SaffronGate.asm"
-INCLUDE "maps/Route12SuperRodHouse.asm"
-
-
-SECTION "bank20",ROMX,BANK[$20]
+
+SECTION "bank20", ROMX, BANK[$20]
DoPlayerMovement: ; 80000
@@ -68486,7 +54406,7 @@ INCBIN "gfx/debug/color_test.2bpp"
INCBIN "baserom.gbc",$82153,$823c8 - $82153
-SECTION "bank21",ROMX,BANK[$21]
+SECTION "bank21", ROMX, BANK[$21]
Function84000: ; 84000
ld hl, OverworldMap
@@ -69903,7 +55823,7 @@ Function84a0e: ; 84a0e (21:4a0e)
.asm_84a13
push bc
push hl
- ld de, $4a25
+ ld de, String84a25
call PlaceString
pop hl
ld bc, $3c
@@ -69914,164 +55834,13 @@ Function84a0e: ; 84a0e (21:4a0e)
ret
; 84a25 (21:4a25)
-INCBIN "baserom.gbc",$84a25,$84a2e - $84a25
-
-FX00GFX:
-FX01GFX: ; 84a2e
-INCBIN "gfx/fx/001.lz"
-; 84b1e
-
-FX02GFX: ; 84b1e
-INCBIN "gfx/fx/002.lz"
-; 84b7e
-
-FX03GFX: ; 84b7e
-INCBIN "gfx/fx/003.lz"
-; 84bde
-
-FX04GFX: ; 84bde
-INCBIN "gfx/fx/004.lz"
-; 84cae
-
-FX05GFX: ; 84cae
-INCBIN "gfx/fx/005.lz"
-; 84dee
-
-FX07GFX: ; 84dee
-INCBIN "gfx/fx/007.lz"
-; 84e7e
-
-FX08GFX: ; 84e7e
-INCBIN "gfx/fx/008.lz"
-; 84ede
-
-FX10GFX: ; 84ede
-INCBIN "gfx/fx/010.lz"
-; 84f1e
-
-FX09GFX: ; 84f1e
-INCBIN "gfx/fx/009.lz"
-; 8500e
-
-FX12GFX: ; 8500e
-INCBIN "gfx/fx/012.lz"
-; 8507e
-
-FX06GFX: ; 8507e
-INCBIN "gfx/fx/006.lz"
-; 8515e
-
-FX11GFX: ; 8515e
-INCBIN "gfx/fx/011.lz"
-; 851ae
-
-FX13GFX: ; 851ae
-INCBIN "gfx/fx/013.lz"
-; 8524e
-
-FX14GFX: ; 8524e
-INCBIN "gfx/fx/014.lz"
-; 8520e
-
-FX24GFX: ; 8530e
-INCBIN "gfx/fx/024.lz"
-; 8537e
-
-FX15GFX: ; 8537e
-INCBIN "gfx/fx/015.lz"
-; 8539e
-
-FX16GFX: ; 8539e
-INCBIN "gfx/fx/016.lz"
-; 8542e
-
-FX17GFX: ; 8542e
-INCBIN "gfx/fx/017.lz"
-; 8547e
-
-FX18GFX: ; 8547e
-INCBIN "gfx/fx/018.lz"
-; 854ee
-
-FX19GFX: ; 854ee
-INCBIN "gfx/fx/019.lz"
-; 855ae
-
-FX20GFX: ; 855ae
-INCBIN "gfx/fx/020.lz"
-; 8562e
-
-FX22GFX: ; 8562e
-INCBIN "gfx/fx/022.lz"
-; 856ee
-
-FX21GFX: ; 856ee
-INCBIN "gfx/fx/021.lz"
-; 8576e
-
-FX23GFX: ; 8576e
-INCBIN "gfx/fx/023.lz"
-; 857de
-
-FX26GFX: ; 857de
-INCBIN "gfx/fx/026.lz"
-; 8583e
-
-FX27GFX: ; 8583e
-INCBIN "gfx/fx/027.lz"
-; 858be
-
-FX28GFX: ; 858be
-INCBIN "gfx/fx/028.lz"
-; 8594e
-
-FX29GFX: ; 8594e
-INCBIN "gfx/fx/029.lz"
-; 859ae
-
-FX30GFX: ; 859ae
-INCBIN "gfx/fx/030.lz"
-; 8590e
+String84a25: ; 84a25
+ db " ------@"
+; 84a2e
-FX31GFX: ; 85a0e
-INCBIN "gfx/fx/031.lz"
-; 85bae
-FX32GFX: ; 85bae
-INCBIN "gfx/fx/032.lz"
-; 85d0e
+INCLUDE "battle/anim_gfx.asm"
-FX33GFX: ; 85d0e
-INCBIN "gfx/fx/033.lz"
-; 85dfe
-
-FX34GFX: ; 85dfe
-INCBIN "gfx/fx/034.lz"
-; 85e9e
-
-FX25GFX: ; 85e9e
-INCBIN "gfx/fx/025.lz"
-; 85fbe
-
-FX35GFX: ; 85fbe
-INCBIN "gfx/fx/035.lz"
-; 8609e
-
-FX36GFX: ; 8609e
-INCBIN "gfx/fx/036.lz"
-; 8617e
-
-FX37GFX: ; 8617e
-INCBIN "gfx/fx/037.lz"
-; 862ee
-
-FX38GFX: ; 862ee
-INCBIN "gfx/fx/038.lz"
-; 8638e
-
-FX39GFX: ; 8638e
-INCBIN "gfx/fx/039.lz"
-; 8640e
HallOfFame: ; 0x8640e
call Function8648e
@@ -70582,7 +56351,7 @@ Function86810: ; 86810
; 868f7
-SECTION "bank22",ROMX,BANK[$22]
+SECTION "bank22", ROMX, BANK[$22]
Function88000: ; 88000
ld hl, $4007
@@ -75543,7 +61312,7 @@ Function8afd4: ; 8afd4
call GetItemName
ld hl, $7077
call Function105a
- call Function1dcf
+ call YesNoBox
jr c, .asm_8afeb
ld a, [$cf75]
call Function8b154
@@ -76751,7 +62520,7 @@ Function8b9e9: ; 8b9e9 (22:79e9)
INCBIN "baserom.gbc",$8ba1c,$8ba24 - $8ba1c
-SECTION "bank23",ROMX,BANK[$23]
+SECTION "bank23", ROMX, BANK[$23]
Function8c000: ; 8c000
ret
@@ -78028,7 +63797,103 @@ Function8c7d4: ; 8c7d4
ret
; 8c7e1
-INCBIN "baserom.gbc",$8c7e1,$8c940 - $8c7e1
+Function8c7e1: ; 8c7e1
+ callba Function8c084
+ ld hl, StatusFlags
+ set 2, [hl]
+ callba Function8c0e5
+ callba Function8c001
+ ld b, $9
+ call GetSGBLayout
+ callba Function49409
+ callba Function8c079
+ ret
+; 8c80a
+
+Function8c80a: ; 8c80a
+ callba Function8cf53
+ ld de, $49cc
+ ld hl, VTiles1
+ ld bc, $2304
+ call Request2bpp
+ ld de, $4893
+ ld hl, $8840
+ ld bc, $2308
+ call Request2bpp
+ call Function8cad3
+ ld a, $1b
+ call Function3b2a
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $84
+ ld a, $90
+ ld [$c3b5], a
+ callba Function8cf7a
+ call Function8c913
+ ld a, $20
+ ld [$cf64], a
+ call WaitSFX
+ ld de, $006d
+ call PlaySFX
+.asm_8c852
+ ld hl, $cf64
+ ld a, [hl]
+ and a
+ jr z, .asm_8c86a
+ dec [hl]
+ ld a, $90
+ ld [$c3b5], a
+ callba Function8cf7a
+ call DelayFrame
+ jr .asm_8c852
+
+.asm_8c86a
+ call Function2173
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ callba Function8cf53
+ ld hl, $c490
+ ld bc, $0010
+ xor a
+ call ByteFill
+ ld de, $4200
+ ld hl, VTiles1
+ ld bc, $3e0c
+ call Get1bpp
+ call Functione4a
+ ret
+; 8c893
+
+INCBIN "baserom.gbc", $8c893, $8c913 - $8c893
+
+Function8c913: ; 8c913
+ xor a
+ ld [hBGMapMode], a
+ ld a, [PlayerDirection]
+ and $c
+ srl a
+ ld e, a
+ ld d, $0
+ ld hl, $4938
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, $5
+ ld [hli], a
+ ld [hld], a
+ ld bc, $0014
+ add hl, bc
+ ld [hli], a
+ ld [hld], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 8c938
+
+INCBIN "baserom.gbc", $8c938, $8c940 - $8c938
Function8c940: ; 8c940
ld a, e
@@ -78205,6 +64070,8 @@ Function8cad3: ; 8cad3 (23:4ad3)
; 8cae5 (23:4ae5)
INCBIN "baserom.gbc",$8cae5,$8caed - $8cae5
+
+Function8caed: ; 8caed
call DelayFrame
ld a, [VramState] ; $d0ed
push af
@@ -78236,6 +64103,9 @@ INCBIN "baserom.gbc",$8cae5,$8caed - $8cae5
pop af
ld [VramState], a ; $d0ed
ret
+; 8cb33
+
+Function8cb33: ; 8cb33
call DelayFrame
ld a, [VramState] ; $d0ed
push af
@@ -80421,7 +66291,7 @@ Function8ea8c: ; 8ea8c
INCLUDE "menu/mon_icons.asm"
-SECTION "bank24",ROMX,BANK[$24]
+SECTION "bank24", ROMX, BANK[$24]
Function90000: ; 90000
call Function9001c
@@ -80918,7 +66788,7 @@ Function9031d: ; 9031d
; 9032a
UnknownText_0x9032a: ; 9032a
- text_jump UnknownText_0x1c5580, BANK(UnknownText_0x1c5580)
+ text_jump UnknownText_0x1c5580
db "@"
; 9032f
@@ -80930,7 +66800,7 @@ Function9032f: ; 9032f
; 90336
UnknownText_0x90336: ; 0x90336
- text_jump UnknownText_0x1c5588, BANK(UnknownText_0x1c5588)
+ text_jump UnknownText_0x1c5588
db "@"
; 0x9033b
@@ -81169,7 +67039,7 @@ Function90672: ; 90672 (24:4672)
call Function90783
ld hl, $4886
call PrintText
- call Function1dcf
+ call YesNoBox
jr nc, .asm_9072e
call Function90783
jr .asm_906e8
@@ -81196,7 +67066,7 @@ Function90672: ; 90672 (24:4672)
call Function90783
ld hl, $48a4
call PrintText
- call Function1dcf
+ call YesNoBox
jr nc, .asm_90773
call Function90783
jr .asm_9072e
@@ -81444,7 +67314,7 @@ Function90913: ; 90913
call Function1ad2
ld hl, $4a44
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_90936
ld a, [DefaultFlypoint]
ld [StringBuffer2], a
@@ -81743,52 +67613,62 @@ Function90bea: ; 90bea (24:4bea)
Function90c4e: ; 90c4e
call Functiond79
- ld hl, $4ba0
+ ld hl, TownMapGFX
ld de, VTiles2
- ld a, $3e
+ ld a, BANK(TownMapGFX)
call FarDecompress
- ld hl, $62e4
+
+ ld hl, PokegearGFX
ld de, $9300
- ld a, $77
+ ld a, BANK(PokegearGFX)
call FarDecompress
+
ld hl, PokegearSpritesGFX
ld de, VTiles0
- ld a, $24
+ ld a, BANK(PokegearSpritesGFX)
call Decompress
+
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
ld c, a
call GetWorldMapLocation
- cp $5f
- jr z, .asm_90ca5
+ cp FAST_SHIP
+ jr z, .ssaqua
+
callba GetPlayerIcon
+
push de
ld h, d
ld l, e
ld a, b
+
push af
ld de, $8100
- ld bc, $0040
+ ld bc, $40
call FarCopyBytes
pop af
+
pop hl
- ld de, $00c0
+
+ ld de, $c0
add hl, de
ld de, $8140
- ld bc, $0040
+ ld bc, $40
call FarCopyBytes
ret
-.asm_90ca5
- ld hl, $4cb2
+.ssaqua
+ ld hl, FastShipGFX
ld de, $8100
- ld bc, $0080
+ ld bc, $80
call CopyBytes
ret
; 90cb2
-INCBIN "baserom.gbc",$90cb2,$90d32 - $90cb2
+FastShipGFX: ; 90cb2
+INCBIN "gfx/misc/fast_ship.2bpp"
+; 90d32
; known jump sources: 90c08 (24:4c08)
Function90d32: ; 90d32 (24:4d32)
@@ -81822,7 +67702,7 @@ Function90d56: ; 90d56
ld a, [MapNumber]
ld c, a
call GetWorldMapLocation
- cp $0
+ cp SPECIAL_MAP
ret nz
ld a, [BackupMapGroup]
ld b, a
@@ -81840,23 +67720,28 @@ Function90d70: ; 90d70 (24:4d70)
ld a, [MapNumber] ; $dcb6
ld c, a
call GetWorldMapLocation
- cp $5f
+
+ cp FAST_SHIP
jr z, .asm_90d95
- cp $0
+
+ cp SPECIAL_MAP
jr nz, .asm_90d8e
+
ld a, [BackupMapGroup] ; $dcad
ld b, a
ld a, [BackupMapNumber] ; $dcae
ld c, a
call GetWorldMapLocation
+
.asm_90d8e
- ld [EnemySDefLevel], a ; $c6d8
- ld [EnemySAtkLevel], a ; $c6d7
+ ld [$c6d8], a
+ ld [$c6d7], a
ret
+
.asm_90d95
- ld [EnemySDefLevel], a ; $c6d8
- ld a, $1
- ld [EnemySAtkLevel], a ; $c6d7
+ ld [$c6d8], a
+ ld a, 1
+ ld [$c6d7], a
ret
; known jump sources: 90c36 (24:4c36)
@@ -81871,23 +67756,25 @@ Function90d9e: ; 90d9e (24:4d9e)
Function90da8: ; 90da8 (24:4da8)
xor a
ld [hBGMapMode], a ; $ff00+$d4
- ld hl, TileMap ; $c4a0 (aliases: SpritesEnd)
- ld bc, $168
+ ld hl, TileMap
+ ld bc, TileMapEnd - TileMap
ld a, $4f
call ByteFill
ld a, [$cf64]
and $3
add a
ld e, a
- ld d, $0
+ ld d, 0
ld hl, $4e12
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, $4dcb
+ ld de, .asm_90dcb
push de
jp [hl]
+
+.asm_90dcb
call Function90eb0
callba TownMapPals
ld a, [$cf65]
@@ -81910,8 +67797,8 @@ Function90da8: ; 90da8 (24:4da8)
.asm_90df3
ld [hWY], a ; $ff00+$d2
ld a, [$cf65]
- and $1
- xor $1
+ and 1
+ xor 1
ld [$cf65], a
ret
@@ -81929,30 +67816,42 @@ Function90e00: ; 90e00 (24:4e00)
ret
; 90e12 (24:4e12)
-INCBIN "baserom.gbc",$90e12,$90e1a - $90e12
+JumpTable90e12: ; 90e12
+ dw Function90e1a
+ dw Function90e3f
+ dw Function90e82
+ dw Function90e72
+; 90e1a
+
+Function90e1a: ; 90e1a
ld de, $55db
call Function914bb
ld hl, $c4c0
- ld de, $4e36
+ ld de, .switch
call PlaceString
ld hl, $c590
- ld bc, $412
+ lb bc, 4, 18
call TextBox
call Function90f86
ret
; 90e36 (24:4e36)
-INCBIN "baserom.gbc",$90e36,$90e3f - $90e36
- ld a, [EnemySDefLevel] ; $c6d8
- cp $5f
- jr z, .asm_90e4a
- cp $2f
- jr nc, .asm_90e4e
-.asm_90e4a
- ld e, $0
+.switch
+ db " SWITCH▶@"
+; 90e3f
+
+Function90e3f: ; 90e3f
+
+ ld a, [$c6d8]
+ cp FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr nc, .kanto
+.johto
+ ld e, 0
jr .asm_90e50
-.asm_90e4e
- ld e, $1
+.kanto
+ ld e, 1
.asm_90e50
callba Function91ae1
ld a, $7
@@ -81963,15 +67862,21 @@ INCBIN "baserom.gbc",$90e36,$90e3f - $90e36
ld [hl], $6
ld hl, $c4db
ld [hl], $17
- ld a, [EnemySAtkLevel] ; $c6d7
+ ld a, [$c6d7]
call Function910b4
ret
+; 90e72
+
+Function90e72: ; 90e72
ld de, $550d
call Function914bb
ld hl, $c590
ld bc, $412
call TextBox
ret
+; 90e82
+
+Function90e82: ; 90e82
ld de, $558a
call Function914bb
ld hl, $c590
@@ -81980,6 +67885,7 @@ INCBIN "baserom.gbc",$90e36,$90e3f - $90e36
call Function90e98
call Function912d8
ret
+; 90e98
; known jump sources: 90e91 (24:4e91)
Function90e98: ; 90e98 (24:4e98)
@@ -83702,12 +69608,12 @@ Function91c3c: ; 91c3c
push de
push hl
ld l, [hl]
- ld h, $0
+ ld h, 0
add hl, hl
- ld de, $5c5f
+ ld de, Flypoints + 1
add hl, de
ld c, [hl]
- call GetFlyPermission
+ call HasVisitedSpawn
pop hl
pop de
pop bc
@@ -83715,51 +69621,78 @@ Function91c3c: ; 91c3c
ret
; 91c50
-GetFlyPermission: ; 91c50
-; Return flypoint c permission flag in a
- ld hl, FlypointPerms
- ld b, $2
- ld d, $0
- ld a, 3 ; PREDEF_GET_FLAG_NO
+HasVisitedSpawn: ; 91c50
+; Check if spawn point c has been visited.
+ ld hl, VisitedSpawns
+ ld b, CHECK_FLAG
+ ld d, 0
+ ld a, PREDEF_FLAG
call Predef
ld a, c
ret
; 91c5e
Flypoints: ; 91c5e
-; location id, blackout id
+; landmark, spawn point
+
+ const_def
; Johto
- db 01, 14 ; New Bark Town
- db 03, 15 ; Cherrygrove City
- db 06, 16 ; Violet City
- db 12, 18 ; Azalea Town
- db 16, 20 ; Goldenrod City
- db 22, 22 ; Ecruteak City
- db 27, 21 ; Olivine City
- db 33, 19 ; Cianwood City
- db 36, 23 ; Mahogany Town
- db 38, 24 ; Lake of Rage
- db 41, 25 ; Blackthorn City
- db 46, 26 ; Silver Cave
-
-; Kanto
- db 47, 02 ; Pallet Town
- db 49, 03 ; Viridian City
- db 51, 04 ; Pewter City
- db 55, 05 ; Cerulean City
- db 61, 07 ; Vermilion City
- db 66, 06 ; Rock Tunnel
- db 69, 08 ; Lavender Town
- db 71, 10 ; Celadon City
- db 72, 09 ; Saffron City
- db 81, 11 ; Fuchsia City
- db 85, 12 ; Cinnabar Island
- db 90, 13 ; Indigo Plateau
-
-; 91c8e
+ const FLY_NEW_BARK
+ const FLY_CHERRYGROVE
+ const FLY_VIOLET
+ const FLY_AZALEA
+ const FLY_GOLDENROD
+ const FLY_ECRUTEAK
+ const FLY_OLIVINE
+ const FLY_CIANWOOD
+ const FLY_MAHOGANY
+ const FLY_LAKE
+ const FLY_BLACKTHORN
+ const FLY_MT_SILVER
+
+ db NEW_BARK_TOWN, SPAWN_NEW_BARK
+ db CHERRYGROVE_CITY, SPAWN_CHERRYGROVE
+ db VIOLET_CITY, SPAWN_VIOLET
+ db AZALEA_TOWN, SPAWN_AZALEA
+ db GOLDENROD_CITY, SPAWN_GOLDENROD
+ db ECRUTEAK_CITY, SPAWN_ECRUTEAK
+ db OLIVINE_CITY, SPAWN_OLIVINE
+ db CIANWOOD_CITY, SPAWN_CIANWOOD
+ db MAHOGANY_TOWN, SPAWN_MAHOGANY
+ db LAKE_OF_RAGE, SPAWN_LAKE
+ db BLACKTHORN_CITY, SPAWN_BLACKTHORN
+ db SILVER_CAVE, SPAWN_MT_SILVER
-INCBIN "baserom.gbc",$91c8e,$91c8f - $91c8e
+; Kanto
+ const FLY_PALLET
+ const FLY_VIRIDIAN
+ const FLY_PEWTER
+ const FLY_CERULEAN
+ const FLY_VERMILION
+ const FLY_ROCK_TUNNEL
+ const FLY_LAVENDER
+ const FLY_CELADON
+ const FLY_SAFFRON
+ const FLY_FUCHSIA
+ const FLY_CINNABAR
+ const FLY_INDIGO_PLATEAU
+
+ db PALLET_TOWN, SPAWN_PALLET
+ db VIRIDIAN_CITY, SPAWN_VIRIDIAN
+ db PEWTER_CITY, SPAWN_PEWTER
+ db CERULEAN_CITY, SPAWN_CERULEAN
+ db VERMILION_CITY, SPAWN_VERMILION
+ db ROCK_TUNNEL, SPAWN_ROCK_TUNNEL
+ db LAVENDER_TOWN, SPAWN_LAVENDER
+ db CELADON_CITY, SPAWN_CELADON
+ db SAFFRON_CITY, SPAWN_SAFFRON
+ db FUCHSIA_CITY, SPAWN_FUCHSIA
+ db CINNABAR_ISLAND, SPAWN_CINNABAR
+ db INDIGO_PLATEAU, SPAWN_INDIGO_PLATEAU
+
+ db -1
+; 91c8f
Function91c8f: ; 91c8f
ret
@@ -83776,7 +69709,7 @@ FlyMap: ; 91c90
; If we're not in a valid location, i.e. Pokecenter floor 2F,
; the backup map information is used
- cp 0
+ cp SPECIAL_MAP
jr nz, .CheckRegion
ld a, [BackupMapGroup]
@@ -83787,7 +69720,7 @@ FlyMap: ; 91c90
.CheckRegion
; The first 46 locations are part of Johto. The rest are in Kanto
- cp 47
+ cp KANTO_LANDMARK
jr nc, .KantoFlyMap
.JohtoFlyMap
@@ -83796,13 +69729,13 @@ FlyMap: ; 91c90
push af
; Start from New Bark Town
- ld a, 0
+ ld a, FLY_NEW_BARK
ld [DefaultFlypoint], a
; Flypoints begin at New Bark Town...
ld [StartFlypoint], a
; ..and end at Silver Cave
- ld a, $b
+ ld a, FLY_MT_SILVER
ld [EndFlypoint], a
; Fill out the map
@@ -83825,18 +69758,18 @@ FlyMap: ; 91c90
; visited and its flypoint enabled
push af
- ld c, $d ; Indigo Plateau
- call GetFlyPermission
+ ld c, SPAWN_INDIGO_PLATEAU
+ call HasVisitedSpawn
and a
jr z, .NoKanto
; Kanto's map is only loaded if we've visited Indigo Plateau
; Flypoints begin at Pallet Town...
- ld a, $c
+ ld a, FLY_PALLET
ld [StartFlypoint], a
; ...and end at Indigo Plateau
- ld a, $17
+ ld a, FLY_INDIGO_PLATEAU
ld [EndFlypoint], a
; Because Indigo Plateau is the first flypoint the player
@@ -83854,13 +69787,13 @@ FlyMap: ; 91c90
; If Indigo Plateau hasn't been visited, we use Johto's map instead
; Start from New Bark Town
- ld a, 0
+ ld a, FLY_NEW_BARK
ld [DefaultFlypoint], a
; Flypoints begin at New Bark Town...
ld [StartFlypoint], a
; ..and end at Silver Cave
- ld a, $b
+ ld a, FLY_MT_SILVER
ld [EndFlypoint], a
call FillJohtoMap
@@ -85256,8 +71189,8 @@ Function930e9: ; 930e9 (24:70e9)
ld hl, UnknownText_9311f
call PrintText
call Function1d58
- ld bc, $e0c
- call Function1dd2
+ lb bc, 14, 12
+ call PlaceYesNoBox
ld a, [$cfa9]
dec a
call Function1c17
@@ -85545,100 +71478,26 @@ Function9331e: ; 9331e (24:731e)
INCBIN "baserom.gbc",$93327,$93a31 - $93327
-SECTION "bank25",ROMX,BANK[$25]
-
-INCLUDE "maps/map_headers.asm"
-INCLUDE "maps/second_map_headers.asm"
-
-
-
-SECTION "bank26",ROMX,BANK[$26]
-
-; Map Scripts XI
-
-INCLUDE "maps/EcruteakHouse.asm"
-INCLUDE "maps/WiseTriosRoom.asm"
-INCLUDE "maps/EcruteakPokeCenter1F.asm"
-INCLUDE "maps/EcruteakLugiaSpeechHouse.asm"
-INCLUDE "maps/DanceTheatre.asm"
-INCLUDE "maps/EcruteakMart.asm"
-INCLUDE "maps/EcruteakGym.asm"
-INCLUDE "maps/EcruteakItemfinderHouse.asm"
-INCLUDE "maps/ViridianGym.asm"
-INCLUDE "maps/ViridianNicknameSpeechHouse.asm"
-INCLUDE "maps/TrainerHouse1F.asm"
-INCLUDE "maps/TrainerHouseB1F.asm"
-INCLUDE "maps/ViridianMart.asm"
-INCLUDE "maps/ViridianPokeCenter1F.asm"
-INCLUDE "maps/ViridianPokeCenter2FBeta.asm"
-INCLUDE "maps/Route2NuggetSpeechHouse.asm"
-INCLUDE "maps/Route2Gate.asm"
-INCLUDE "maps/VictoryRoadGate.asm"
-
-
-SECTION "bank27",ROMX,BANK[$27]
-
-; Map Scripts XII
-
-INCLUDE "maps/OlivinePokeCenter1F.asm"
-INCLUDE "maps/OlivineGym.asm"
-INCLUDE "maps/OlivineVoltorbHouse.asm"
-INCLUDE "maps/OlivineHouseBeta.asm"
-INCLUDE "maps/OlivinePunishmentSpeechHouse.asm"
-INCLUDE "maps/OlivineGoodRodHouse.asm"
-INCLUDE "maps/OlivineCafe.asm"
-INCLUDE "maps/OlivineMart.asm"
-INCLUDE "maps/Route38EcruteakGate.asm"
-INCLUDE "maps/Route39Barn.asm"
-INCLUDE "maps/Route39Farmhouse.asm"
-INCLUDE "maps/ManiasHouse.asm"
-INCLUDE "maps/CianwoodGym.asm"
-INCLUDE "maps/CianwoodPokeCenter1F.asm"
-INCLUDE "maps/CianwoodPharmacy.asm"
-INCLUDE "maps/CianwoodCityPhotoStudio.asm"
-INCLUDE "maps/CianwoodLugiaSpeechHouse.asm"
-INCLUDE "maps/PokeSeersHouse.asm"
-INCLUDE "maps/BattleTower1F.asm"
-INCLUDE "maps/BattleTowerBattleRoom.asm"
-INCLUDE "maps/BattleTowerElevator.asm"
-INCLUDE "maps/BattleTowerHallway.asm"
-INCLUDE "maps/Route40BattleTowerGate.asm"
-INCLUDE "maps/BattleTowerOutside.asm"
-
-
-SECTION "bank28",ROMX,BANK[$28]
+
+SECTION "bank28", ROMX, BANK[$28]
INCBIN "baserom.gbc",$a0000,$a0c28 - $a0000
INCLUDE "text/buena.asm"
-SECTION "bank29",ROMX,BANK[$29]
+SECTION "bank29", ROMX, BANK[$29]
INCLUDE "text/phone/extra2.asm"
-SECTION "bank2A",ROMX,BANK[$2A]
-
-INCLUDE "maps/blockdata_1.asm"
-
-
-SECTION "bank2B",ROMX,BANK[$2B]
-
-INCLUDE "maps/blockdata_2.asm"
-
-
-SECTION "bank2C",ROMX,BANK[$2C]
-
-INCLUDE "maps/blockdata_3.asm"
-
-SECTION "bank2D",ROMX,BANK[$2D]
+SECTION "Tileset Data 5", ROMX, BANK[TILESETS_5]
INCLUDE "tilesets/data_5.asm"
-SECTION "bank2E",ROMX,BANK[$2E]
+SECTION "bank2E", ROMX, BANK[$2E]
Functionb8000: ; b8000
xor a
@@ -85969,7 +71828,29 @@ Functionb81e2: ; b81e2
ret
; b81ea
-INCBIN "baserom.gbc",$b81ea,$b8219 - $b81ea
+Functionb81ea: ; b81ea
+ callba Function1060ef
+ xor a
+ ld [$d22e], a
+ ld [CurPartyLevel], a
+ ld hl, $425e
+ call GetTreeMonEncounterTable
+ jr nc, .asm_b8214
+ call LoadTreeMonData
+ jr nc, .asm_b8214
+ call Functionb83e5
+ jr nc, .asm_b8214
+ ld a, $8
+ ld [BattleType], a
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_b8214
+ xor a
+ ld [ScriptVar], a
+ ret
+; b8219
Functionb8219: ; b8219
; get a RockMon encounter
@@ -87845,7 +73726,7 @@ Functionb9237: ; b9237
Functionb929a: ; b929a
.asm_b929a
- call GetJoypadPublic
+ call GetJoypad
ld a, [hJoyPressed]
and $b
jr z, .asm_b929a
@@ -87932,7 +73813,7 @@ ItemIsMail: ; b9e76
; b9e8b
-SECTION "bank2F",ROMX,BANK[$2F]
+SECTION "bank2F", ROMX, BANK[$2F]
INCLUDE "engine/std_scripts.asm"
@@ -87951,7 +73832,7 @@ UnknownScript_0xbe675: ; 0xbe675
loadtrainerdata
playrammusic
showemote $0, $fe, 30
- 3callasm BANK(Function831e), Function831e
+ 3callasm Function831e
applymovement2 $d007
writepersonxy $fe
faceperson $0, $fe
@@ -87972,2943 +73853,20 @@ UnknownScript_0xbe68a: ; 0xbe68a
; 0xbe699
-SECTION "bank30",ROMX,BANK[$30]
+SECTION "bank30", ROMX, BANK[$30]
INCLUDE "gfx/overworld/sprites_1.asm"
-SECTION "bank31",ROMX,BANK[$31]
+SECTION "bank31", ROMX, BANK[$31]
INCLUDE "gfx/overworld/sprites_2.asm"
-SECTION "bank32",ROMX,BANK[$32]
-
-
-; no known jump sources
-Functionc8000: ; c8000 (32:4000)
- ld hl, $d3fa
- ld e, $5
-.asm_c8005
- ld a, [hl]
- and a
- jr z, .asm_c8012
- ld c, l
- ld b, h
- push hl
- push de
- call Functionc804a
- pop de
- pop hl
-.asm_c8012
- ld bc, $4
- add hl, bc
- dec e
- jr nz, .asm_c8005
- ret
-
-; no known jump sources
-Functionc801a: ; c801a (32:401a)
- ld hl, $d3fa
- ld e, $5
-.asm_c801f
- ld a, [hl]
- and a
- jr z, .asm_c802c
- ld bc, $4
- add hl, bc
- dec e
- jr nz, .asm_c801f
- scf
- ret
-.asm_c802c
- ld c, l
- ld b, h
- ld hl, $0
- add hl, bc
- ld a, [$d419]
- ld [hli], a
- ld a, [$d41a]
- ld [hli], a
- ld a, [$d41b]
- ld [hli], a
- ld a, [$d41c]
- ld [hl], a
- ret
-
-; known jump sources: c80c6 (32:40c6), c811c (32:411c), c8139 (32:4139), c814d (32:414d), c8164 (32:4164), c81e6 (32:41e6), c81ef (32:41ef), c822c (32:422c), c827d (32:427d), c8299 (32:4299), c82ea (32:42ea), c8377 (32:4377), c8437 (32:4437), c85ca (32:45ca), c85ff (32:45ff), c8d13 (32:4d13), c8dd0 (32:4dd0), c8e26 (32:4e26), c8e4e (32:4e4e), c8f15 (32:4f15)
-Functionc8043: ; c8043 (32:4043)
- ld hl, $0
- add hl, bc
- ld [hl], $0
- ret
-
-; known jump sources: c800d (32:400d)
-Functionc804a: ; c804a (32:404a)
- ld hl, $0
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $405a
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-; no known jump sources
-Jumptable_c805a: ; c805a (32:405a)
- dw Functionc80c6
- dw Functionc80eb
- dw Functionc80f3
- dw Functionc812d
- dw Functionc8141
- dw Functionc8155
- dw Functionc8171
- dw Functionc818b
- dw Functionc81a5
- dw Functionc81b3
- dw Functionc81ea
- dw Functionc837b
- dw Functionc83a8
- dw Functionc8545
- dw Functionc8599
- dw Functionc863f
- dw Functionc8662
- dw Functionc8214
- dw Functionc8281
- dw Functionc8689
- dw Functionc8709
- dw Functionc8be8
- dw Functionc8bf2
- dw Functionc8bfd
- dw Functionc8c08
- dw Functionc8c14
- dw Functionc8c20
- dw Functionc8c30
- dw Functionc8b00
- dw Functionc8c3c
- dw Functionc8c55
- dw Functionc8cf9
- dw Functionc8d02
- dw Functionc8761
- dw Functionc89ee
- dw Functionc87a7
- dw Functionc8805
- dw Functionc8837
- dw Functionc892a
- dw Functionc82f5
- dw Functionc89b5
- dw Functionc8607
- dw Functionc8a3a
- dw Functionc8acc
- dw Functionc8964
- dw Functionc88e7
- dw Functionc8ce1
- dw Functionc8919
- dw Functionc85c2
- dw Functionc85ce
- dw Functionc8603
- dw Functionc8c61
- dw Functionc8ca2
- dw Functionc8d3a
-
-
-; no known jump sources
-Functionc80c6: ; c80c6 (32:40c6)
- call Functionc8043
- ret
-
-; known jump sources: c8b7d (32:4b7d), c8d80 (32:4d80), c8dd8 (32:4dd8)
-Functionc80ca: ; c80ca (32:40ca)
- ld hl, $1
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-; known jump sources: c81b3 (32:41b3), c8214 (32:4214), c8281 (32:4281), c82f5 (32:42f5), c83ed (32:43ed), c8545 (32:4545), c8599 (32:4599), c8607 (32:4607), c863f (32:463f), c8662 (32:4662), c8689 (32:4689), c8709 (32:4709), c8761 (32:4761), c87a7 (32:47a7), c8805 (32:4805), c8837 (32:4837), c88e7 (32:48e7), c8919 (32:4919), c892a (32:492a), c8964 (32:4964), c89b5 (32:49b5), c89ee (32:49ee), c8a3a (32:4a3a), c8acc (32:4acc), c8b05 (32:4b05), c8c61 (32:4c61), c8ca2 (32:4ca2)
-Functionc80d7: ; c80d7 (32:40d7)
- pop de
- ld hl, $1
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-; known jump sources: c81c0 (32:41c0), c8230 (32:4230), c825a (32:425a), c829d (32:429d), c82c7 (32:42c7), c8302 (32:4302), c835c (32:435c), c841d (32:441d), c854e (32:454e), c85a2 (32:45a2), c8610 (32:4610), c8648 (32:4648), c866b (32:466b), c8698 (32:4698), c86cb (32:46cb), c8712 (32:4712), c876a (32:476a), c87b2 (32:47b2), c87db (32:47db), c8810 (32:4810), c8842 (32:4842), c8876 (32:4876), c8890 (32:4890), c88f6 (32:48f6), c8933 (32:4933), c896d (32:496d), c89be (32:49be), c89f7 (32:49f7), c8a49 (32:4a49), c8a84 (32:4a84), c8a96 (32:4a96), c8ad3 (32:4ad3), c8b0e (32:4b0e), c8c68 (32:4c68), c8cab (32:4cab), c8d8b (32:4d8b), c8dec (32:4dec), c8def (32:4def), c8df2 (32:4df2)
-Functionc80e5: ; c80e5 (32:40e5)
- ld hl, $1
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functionc80eb: ; c80eb (32:40eb)
- ld de, $40f1
- jp Functionc80fb
-; c80f1 (32:40f1)
-
-INCBIN "baserom.gbc",$c80f1,$c80f3 - $c80f1
-
-; no known jump sources
-Functionc80f3: ; c80f3 (32:40f3)
- ld de, $40f9
- jp Functionc80fb
-; c80f9 (32:40f9)
-
-INCBIN "baserom.gbc",$c80f9,$c80fb - $c80f9
-
-; known jump sources: c80ee (32:40ee), c80f6 (32:40f6)
-Functionc80fb: ; c80fb (32:40fb)
- ld a, $1
- ld [$d419], a
- ld hl, $1
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c810a
- dec [hl]
- ret
-.asm_c810a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- ld hl, $1
- add hl, bc
- ld [hl], a
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_c8120
- call Functionc8043
- ret
-.asm_c8120
- dec a
- ld [hl], a
- and $1
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- ld [$cfc7], a
- ret
-
-; no known jump sources
-Functionc812d: ; c812d (32:412d)
- ld de, $413d
- call Functionc8d57
- jr c, .asm_c8139
- ld [$cfc7], a
- ret
-.asm_c8139
- call Functionc8043
- ret
-; c813d (32:413d)
-
-INCBIN "baserom.gbc",$c813d,$c8141 - $c813d
-
-; no known jump sources
-Functionc8141: ; c8141 (32:4141)
- ld de, $4151
- call Functionc8d57
- jr c, .asm_c814d
- ld [$cfc7], a
- ret
-.asm_c814d
- call Functionc8043
- ret
-; c8151 (32:4151)
-
-INCBIN "baserom.gbc",$c8151,$c8155 - $c8151
-
-; no known jump sources
-Functionc8155: ; c8155 (32:4155)
- ld de, $4168
- call Functionc8d57
- jr c, .asm_c8164
- ld [$cfc7], a
- ld [$cfc9], a
- ret
-.asm_c8164
- call Functionc8043
- ret
-; c8168 (32:4168)
-
-INCBIN "baserom.gbc",$c8168,$c8171 - $c8168
-
-; no known jump sources
-Functionc8171: ; c8171 (32:4171)
- call Functionc9059
- jr nz, .asm_c817b
- ld de, $4185
- jr .asm_c817e
-.asm_c817b
- ld de, $4188
-.asm_c817e
- call Functionc8d57
- ld [$cfc8], a
- ret
-; c8185 (32:4185)
-
-INCBIN "baserom.gbc",$c8185,$c818b - $c8185
-
-; no known jump sources
-Functionc818b: ; c818b (32:418b)
- call Functionc9059
- jr nz, .asm_c8195
- ld de, $419f
- jr .asm_c8198
-.asm_c8195
- ld de, $41a2
-.asm_c8198
- call Functionc8d57
- ld [$cfc8], a
- ret
-; c819f (32:419f)
-
-INCBIN "baserom.gbc",$c819f,$c81a5 - $c819f
-
-; no known jump sources
-Functionc81a5: ; c81a5 (32:41a5)
- ld de, $41af
- call Functionc8d57
- ld [$cfc7], a
- ret
-; c81af (32:41af)
-
-INCBIN "baserom.gbc",$c81af,$c81b3 - $c81af
-
-; no known jump sources
-Functionc81b3: ; c81b3 (32:41b3)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c81b6: ; c81b6 (32:41b6)
- dw Functionc81c0
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc81e3
-
-
-; no known jump sources
-Functionc81c0: ; c81c0 (32:41c0)
- call Functionc80e5
- push bc
- call Functionc9038
- jr nz, .asm_c81d1
- ld hl, $c4ac
- ld bc, $707
- jr .asm_c81d7
-.asm_c81d1
- ld hl, $c51a
- ld bc, $606
-.asm_c81d7
- call ClearBox
- pop bc
- xor a
- ld [hBGMapThird], a ; $ff00+$d5
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- ret
-
-; no known jump sources
-Functionc81e3: ; c81e3 (32:41e3)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc81ea: ; c81ea (32:41ea)
- call Functionc9042
- jr z, .asm_c81f3
- call Functionc8043
- ret
-.asm_c81f3
- call Functionc9038
- jr nz, .asm_c81fd
- ld de, $4210
- jr .asm_c8200
-.asm_c81fd
- ld de, $420c
-.asm_c8200
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- call Functionc83ed
- ret
-; c820c (32:420c)
-
-INCBIN "baserom.gbc",$c820c,$c8214 - $c820c
-
-; no known jump sources
-Functionc8214: ; c8214 (32:4214)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8217: ; c8217 (32:4217)
- dw Functionc8223
- dw Functionc825a
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc827a
-
-
-; no known jump sources
-Functionc8223: ; c8223 (32:4223)
- call Functionc9042
- jr z, .asm_c8230
- ld hl, $d40e
- inc [hl]
- call Functionc8043
- ret
-.asm_c8230
- call Functionc80e5
- push bc
- call Functionc9038
- jr nz, .asm_c8242
- ld a, $b8
- ld [$d419], a
- ld a, $84
- jr .asm_c8249
-.asm_c8242
- ld a, $b9
- ld [$d419], a
- ld a, $30
-.asm_c8249
- ld [$d41a], a
- ld a, $40
- ld [$d41b], a
- xor a
- ld [$d41c], a
- call Functionc82ee
- pop bc
- ret
-
-; no known jump sources
-Functionc825a: ; c825a (32:425a)
- call Functionc80e5
- push bc
- call Functionc9038
- jr nz, .asm_c826b
- ld hl, $c524
- ld bc, $107
- jr .asm_c8271
-.asm_c826b
- ld hl, $c51a
- ld bc, $106
-.asm_c8271
- call ClearBox
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- pop bc
- ret
-
-; no known jump sources
-Functionc827a: ; c827a (32:427a)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc8281: ; c8281 (32:4281)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8284: ; c8284 (32:4284)
- dw Functionc8290
- dw Functionc82c7
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc82e7
-
-
-; no known jump sources
-Functionc8290: ; c8290 (32:4290)
- call Functionc9042
- jr z, .asm_c829d
- ld hl, $d40e
- inc [hl]
- call Functionc8043
- ret
-.asm_c829d
- call Functionc80e5
- push bc
- call Functionc9038
- jr nz, .asm_c82af
- ld a, $ba
- ld [$d419], a
- ld a, $84
- jr .asm_c82b6
-.asm_c82af
- ld a, $bb
- ld [$d419], a
- ld a, $30
-.asm_c82b6
- ld [$d41a], a
- ld a, $40
- ld [$d41b], a
- xor a
- ld [$d41c], a
- call Functionc82ee
- pop bc
- ret
-
-; no known jump sources
-Functionc82c7: ; c82c7 (32:42c7)
- call Functionc80e5
- push bc
- call Functionc9038
- jr nz, .asm_c82d8
- ld hl, $c510
- ld bc, $207
- jr .asm_c82de
-.asm_c82d8
- ld hl, $c51a
- ld bc, $206
-.asm_c82de
- call ClearBox
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- pop bc
- ret
-
-; no known jump sources
-Functionc82e7: ; c82e7 (32:42e7)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functionc8043
- ret
-
-; known jump sources: c8255 (32:4255), c82c2 (32:42c2)
-Functionc82ee: ; c82ee (32:42ee)
- callab Functioncc9a1
- ret
-
-; no known jump sources
-Functionc82f5: ; c82f5 (32:42f5)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c82f8: ; c82f8 (32:42f8)
- dw Functionc8302
- dw Functionc831d
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc8365
-
-
-; no known jump sources
-Functionc8302: ; c8302 (32:4302)
- call Functionc80e5
- call Functionc9038
- ld [hl], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c8315
- ld a, $9
- jr .asm_c8317
-.asm_c8315
- ld a, $8
-.asm_c8317
- ld hl, $3
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc831d: ; c831d (32:431d)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c833e
- ld hl, $c518
- ld de, $806
-.asm_c832b
- push de
- push hl
-.asm_c832d
- inc hl
- ld a, [hld]
- ld [hli], a
- dec d
- jr nz, .asm_c832d
- pop hl
- ld de, $14
- add hl, de
- pop de
- dec e
- jr nz, .asm_c832b
- jr .asm_c8355
-.asm_c833e
- ld hl, $c4b3
- ld de, $807
-.asm_c8344
- push de
- push hl
-.asm_c8346
- dec hl
- ld a, [hli]
- ld [hld], a
- dec d
- jr nz, .asm_c8346
- pop hl
- ld de, $14
- add hl, de
- pop de
- dec e
- jr nz, .asm_c8344
-.asm_c8355
- xor a
- ld [hBGMapThird], a ; $ff00+$d5
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- call Functionc80e5
- ld hl, $3
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionc8365: ; c8365 (32:4365)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c8377
- ld hl, $1
- add hl, bc
- ld [hl], $1
- ret
-.asm_c8377
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc837b: ; c837b (32:437b)
- call Functionc9038
- jr nz, .asm_c8385
- ld de, $439e
- jr .asm_c8388
-.asm_c8385
- ld de, $4394
-.asm_c8388
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- call Functionc83ed
- ret
-; c8394 (32:4394)
-
-INCBIN "baserom.gbc",$c8394,$c83a8 - $c8394
-
-; no known jump sources
-Functionc83a8: ; c83a8 (32:43a8)
- call Functionc9038
- jr nz, .asm_c83b2
- ld de, $43d7
- jr .asm_c83b5
-.asm_c83b2
- ld de, $43c1
-.asm_c83b5
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- call Functionc83ed
- ret
-; c83c1 (32:43c1)
-
-INCBIN "baserom.gbc",$c83c1,$c83ed - $c83c1
-
-; known jump sources: c8208 (32:4208), c8390 (32:4390), c83bd (32:43bd)
-Functionc83ed: ; c83ed (32:43ed)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c83f0: ; c83f0 (32:43f0)
- dw Functionc83fa
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc842a
- dw Functionc8434
-
-
-; known jump sources: c8428 (32:4428)
-Functionc83fa: ; c83fa (32:43fa)
- ld hl, $3
- add hl, bc
- ld e, [hl]
- ld d, $0
- inc [hl]
- ld a, [$d41a]
- ld l, a
- ld a, [$d41b]
- ld h, a
- add hl, de
- add hl, de
- add hl, de
- ld a, [hl]
- cp $ff
- jr z, Functionc8434
- cp $fe
- jr z, .asm_c8425
- cp $fd
- jr z, .asm_c841d
- call Functionc8458
-.asm_c841d
- call Functionc80e5
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- ret
-.asm_c8425
- call Functionc843b
- jr Functionc83fa
-
-; no known jump sources
-Functionc842a: ; c842a (32:442a)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld hl, $1
- add hl, bc
- ld [hl], $0
- ret
-
-; known jump sources: c8410 (32:4410)
-Functionc8434: ; c8434 (32:4434)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functionc8043
- ret
-
-; known jump sources: c8425 (32:4425)
-Functionc843b: ; c843b (32:443b)
- push bc
- inc hl
- ld a, [hli]
- ld b, a
- and $f
- ld c, a
- ld a, b
- swap a
- and $f
- ld b, a
- ld e, [hl]
- ld d, $0
- ld hl, $449c
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call ClearBox
- pop bc
- ret
-
-; known jump sources: c841a (32:441a)
-Functionc8458: ; c8458 (32:4458)
- push bc
- push hl
- ld e, [hl]
- ld d, $0
- ld hl, $44a8
- add hl, de
- add hl, de
- add hl, de
- ld a, [hli]
- ld b, a
- and $f
- ld c, a
- ld a, b
- swap a
- and $f
- ld b, a
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- inc hl
- ld a, [hli]
- ld [$d419], a
- push de
- ld e, [hl]
- ld d, $0
- ld hl, $449c
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
-.asm_c8484
- push bc
- push hl
- ld a, [$d419]
- ld b, a
-.asm_c848a
- ld a, [de]
- add b
- ld [hli], a
- inc de
- dec c
- jr nz, .asm_c848a
- pop hl
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_c8484
- pop bc
- ret
-; c849c (32:449c)
-
-INCBIN "baserom.gbc",$c849c,$c8545 - $c849c
-
-; no known jump sources
-Functionc8545: ; c8545 (32:4545)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8548: ; c8548 (32:4548)
- dw Functionc854e
- dw Functionc8557
- dw Functionc8561
-
-
-; no known jump sources
-Functionc854e: ; c854e (32:454e)
- call Functionc80e5
- ld de, $202
- call Functionc8f69
-
-; no known jump sources
-Functionc8557: ; c8557 (32:4557)
- ld a, [hLCDStatCustom] ; $ff00+$c6
- and a
- ret z
- push bc
- call Functionc8565
- pop bc
- ret
-
-; no known jump sources
-Functionc8561: ; c8561 (32:4561)
- call Functionc8f0a
- ret
-
-; known jump sources: c855c (32:455c)
-Functionc8565: ; c8565 (32:4565)
- ld hl, $d422
- ld de, $d423
- ld c, $3f
- ld a, [hl]
- push af
-.asm_c856f
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_c856f
- pop af
- ld [hl], a
- ld de, $d200
- ld hl, $d422
- ld bc, $0
-.asm_c8580
- ld a, [$FF00+$c7]
- cp e
- jr nc, .asm_c858b
- push hl
- add hl, bc
- ld a, [hl]
- pop hl
- jr .asm_c858c
-.asm_c858b
- xor a
-.asm_c858c
- ld [de], a
- ld a, c
- inc a
- and $3f
- ld c, a
- inc de
- ld a, e
- cp $5f
- jr c, .asm_c8580
- ret
-
-; no known jump sources
-Functionc8599: ; c8599 (32:4599)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c859c: ; c859c (32:459c)
- dw Functionc85a2
- dw Functionc85ba
- dw Functionc85be
-
-
-; no known jump sources
-Functionc85a2: ; c85a2 (32:45a2)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- ld [hLCDStatCustom], a ; $ff00+$c6
- xor a
- ld [$FF00+$c7], a
- ld a, $5e
- ld [$FF00+$c8], a
- ld de, $202
- call Functionc8f2e
- ret
-
-; no known jump sources
-Functionc85ba: ; c85ba (32:45ba)
- call Functionc8fef
- ret
-
-; no known jump sources
-Functionc85be: ; c85be (32:45be)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc85c2: ; c85c2 (32:45c2)
- call Functionc8eca
- ld a, $42
- call Functionc8ede
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc85ce: ; c85ce (32:45ce)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld e, a
- add $4
- ld [hl], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and $f0
- swap a
- xor $ff
- add $4
- ld d, a
- ld hl, $1
- add hl, bc
- ld a, [hl]
- ld [$d419], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- cp $20
- jr nc, .asm_c85fc
- inc [hl]
- inc [hl]
- call Functionc8f9a
- ret
-.asm_c85fc
- call Functionc8eca
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc8603: ; c8603 (32:4603)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8607: ; c8607 (32:4607)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c860a: ; c860a (32:460a)
- dw Functionc8610
- dw Functionc862e
- dw Functionc863b
-
-
-; no known jump sources
-Functionc8610: ; c8610 (32:4610)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- ld [hLCDStatCustom], a ; $ff00+$c6
- xor a
- ld [$FF00+$c7], a
- ld a, $5f
- ld [$FF00+$c8], a
- ld de, $605
- call Functionc8f2e
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ret
-; no known jump sources
-Functionc862e: ; c862e (32:462e)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc [hl]
- and $3
- ret nz
- call Functionc8fef
- ret
+SECTION "bank32", ROMX, BANK[$32]
-; no known jump sources
-Functionc863b: ; c863b (32:463b)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc863f: ; c863f (32:463f)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8642: ; c8642 (32:4642)
- dw Functionc8648
- dw Functionc865a
- dw Functionc865e
-
-
-; no known jump sources
-Functionc8648: ; c8648 (32:4648)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld de, $605
- call Functionc8f2e
- ret
-
-; no known jump sources
-Functionc865a: ; c865a (32:465a)
- call Functionc8fef
- ret
-
-; no known jump sources
-Functionc865e: ; c865e (32:465e)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8662: ; c8662 (32:4662)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8665: ; c8665 (32:4665)
- dw Functionc866b
- dw Functionc8681
- dw Functionc8685
-
-
-; no known jump sources
-Functionc866b: ; c866b (32:466b)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- call Functionc8ede
- ld hl, $3
- add hl, bc
- ld e, [hl]
- ld d, $2
- call Functionc8f2e
- ret
-
-; no known jump sources
-Functionc8681: ; c8681 (32:4681)
- call Functionc8fef
- ret
-
-; no known jump sources
-Functionc8685: ; c8685 (32:4685)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8689: ; c8689 (32:4689)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c868c: ; c868c (32:468c)
- dw Functionc8698
- dw Functionc86af
- dw Functionc86cf
- dw Functionc86bd
- dw Functionc86e9
- dw Functionc8705
-
-
-; no known jump sources
-Functionc8698: ; c8698 (32:4698)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $2
- add hl, bc
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc86af: ; c86af (32:46af)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $10
- jr nc, asm_c86cb
- inc [hl]
- call Functionc86ea
- ret
-
-; no known jump sources
-Functionc86bd: ; c86bd (32:46bd)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $ff
- jr z, asm_c86cb
- dec [hl]
- call Functionc86ea
- ret
-asm_c86cb: ; c86cb (32:46cb)
- call Functionc80e5
- ret
+INCLUDE "battle/bg_effects.asm"
-; no known jump sources
-Functionc86cf: ; c86cf (32:46cf)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- ld d, $2
- call Functionc905d
- ld hl, $3
- add hl, bc
- add [hl]
- call Functionc86ea
- ld hl, $2
- add hl, bc
- ld a, [hl]
- add $4
- ld [hl], a
-
-; no known jump sources
-Functionc86e9: ; c86e9 (32:46e9)
- ret
-
-; known jump sources: c86b9 (32:46b9), c86c7 (32:46c7), c86de (32:46de)
-Functionc86ea: ; c86ea (32:46ea)
- ld e, a
- xor $ff
- inc a
- ld d, a
- ld h, $d2
- ld a, [$FF00+$c7]
- ld l, a
- ld a, [$FF00+$c8]
- sub l
- srl a
- push af
-.asm_c86fa
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- dec a
- jr nz, .asm_c86fa
- pop af
- ret nc
- ld [hl], e
- ret
-
-; no known jump sources
-Functionc8705: ; c8705 (32:4705)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8709: ; c8709 (32:4709)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c870c: ; c870c (32:470c)
- dw Functionc8712
- dw Functionc8732
- dw Functionc875d
-
-
-; no known jump sources
-Functionc8712: ; c8712 (32:4712)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- call Functionc8ede
- ld hl, $3
- add hl, bc
- ld e, [hl]
- ld d, $2
- call Functionc8f2e
- ld h, $d2
- ld a, [$FF00+$c8]
- ld l, a
- ld [hl], $0
- dec l
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc8732: ; c8732 (32:4732)
- ld a, [$FF00+$c8]
- ld l, a
- ld h, $d2
- ld e, l
- ld d, h
- dec de
-.asm_c873a
- ld a, [de]
- dec de
- ld [hld], a
- ld a, [$FF00+$c7]
- cp l
- jr nz, .asm_c873a
- ld [hl], $90
- ld a, [$FF00+$c8]
- ld l, a
- ld a, [hl]
- cp $1
- jr c, .asm_c8752
- cp $90
- jr z, .asm_c8752
- ld [hl], $0
-.asm_c8752
- dec l
- ld a, [hl]
- cp $2
- ret c
- cp $90
- ret z
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc875d: ; c875d (32:475d)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8761: ; c8761 (32:4761)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8764: ; c8764 (32:4764)
- dw Functionc876a
- dw Functionc8781
- dw Functionc87a3
-
-
-; no known jump sources
-Functionc876a: ; c876a (32:476a)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $2
- add hl, bc
- ld [hl], $1
- ret
-
-; no known jump sources
-Functionc8781: ; c8781 (32:4781)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and $3f
- ld d, a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- cp d
- ret nc
- call Functionc901b
- ld hl, $3
- add hl, bc
- ld a, [hl]
- rlca
- rlca
- and $3
- ld hl, $2
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc87a3: ; c87a3 (32:47a3)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc87a7: ; c87a7 (32:47a7)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c87aa: ; c87aa (32:47aa)
- dw Functionc87b2
- dw Functionc87cf
- dw Functionc87de
- dw Functionc8801
-
-
-; no known jump sources
-Functionc87b2: ; c87b2 (32:47b2)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $2
- add hl, bc
- ld [hl], $2
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc87cf: ; c87cf (32:47cf)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c87d9
- dec [hl]
- ret
-.asm_c87d9
- ld [hl], $10
- call Functionc80e5
-
-; no known jump sources
-Functionc87de: ; c87de (32:47de)
- ld a, [$FF00+$c7]
- ld l, a
- ld a, [$FF00+$c8]
- sub l
- dec a
- ld hl, $2
- add hl, bc
- cp [hl]
- ret c
- ld a, [hl]
- push af
- and $7
- jr nz, .asm_c87f6
- ld hl, $1
- add hl, bc
- dec [hl]
-.asm_c87f6
- pop af
- call Functionc901b
- ld hl, $2
- add hl, bc
- inc [hl]
- inc [hl]
- ret
-
-; no known jump sources
-Functionc8801: ; c8801 (32:4801)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8805: ; c8805 (32:4805)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8808: ; c8808 (32:4808)
- dw Functionc8810
- dw Functionc8869
- dw Functionc8888
- dw Functionc8833
-
-
-; no known jump sources
-Functionc8810: ; c8810 (32:4810)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- call Functionc9038
- jr nz, .asm_c882f
- ld a, $2
- jr .asm_c8831
-.asm_c882f
- ld a, $fe
-.asm_c8831
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8833: ; c8833 (32:4833)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8837: ; c8837 (32:4837)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c883a: ; c883a (32:483a)
- dw Functionc8842
- dw Functionc8869
- dw Functionc8888
- dw Functionc8865
-
-
-; no known jump sources
-Functionc8842: ; c8842 (32:4842)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ef4
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- call Functionc9038
- jr nz, .asm_c8861
- ld a, $2
- jr .asm_c8863
-.asm_c8861
- ld a, $fe
-.asm_c8863
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8865: ; c8865 (32:4865)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8869: ; c8869 (32:4869)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $f8
- jr z, .asm_c8876
- cp $8
- jr nz, .asm_c8879
-.asm_c8876
- call Functionc80e5
-.asm_c8879
- call Functionc88a5
- ld hl, $2
- add hl, bc
- ld a, [hl]
- ld hl, $3
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8888: ; c8888 (32:4888)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_c8893
- call Functionc80e5
-.asm_c8893
- call Functionc88a5
- ld hl, $2
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld hl, $3
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-; known jump sources: c8879 (32:4879), c8893 (32:4893)
-Functionc88a5: ; c88a5 (32:48a5)
- push af
- ld a, [FXAnimIDHi] ; $cfc3
- or a
- jr nz, .asm_c88b3
- ld a, [FXAnimIDLo] ; $cfc2
- cp $cd
- jr z, .asm_c88b7
-.asm_c88b3
- pop af
- jp Functionc900b
-.asm_c88b7
- ld a, [$FF00+$c7]
- ld d, a
- ld a, [$FF00+$c8]
- sub d
- ld d, a
- ld h, $d2
- ld a, [hSCY] ; $ff00+$d0
- or a
- jr nz, .asm_c88d0
- ld a, [$FF00+$c7]
- or a
- jr z, .asm_c88d6
- dec a
- ld l, a
- ld [hl], $0
- jr .asm_c88d6
-.asm_c88d0
- ld a, [$FF00+$c8]
- dec a
- ld l, a
- ld [hl], $0
-.asm_c88d6
- ld a, [hSCY] ; $ff00+$d0
- ld l, a
- ld a, [$FF00+$c7]
- sub l
- jr nc, .asm_c88e0
- xor a
- dec d
-.asm_c88e0
- ld l, a
- pop af
-.asm_c88e2
- ld [hli], a
- dec d
- jr nz, .asm_c88e2
- ret
-
-; no known jump sources
-Functionc88e7: ; c88e7 (32:48e7)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c88ea: ; c88ea (32:48ea)
- dw Functionc88f6
- dw Functionc8869
- dw Functionc8888
- dw Functionc88f2
-
-
-; no known jump sources
-Functionc88f2: ; c88f2 (32:48f2)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc88f6: ; c88f6 (32:48f6)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- call Functionc9038
- jr nz, .asm_c8915
- ld a, $fe
- jr .asm_c8917
-.asm_c8915
- ld a, $2
-.asm_c8917
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8919: ; c8919 (32:4919)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c891c: ; c891c (32:491c)
- dw Functionc88f6
- dw Functionc8869
- dw Functionc8929
- dw Functionc8888
- dw Functionc8926
-
-
-; no known jump sources
-Functionc8926: ; c8926 (32:4926)
- call Functionc8f0a
-
-; no known jump sources
-Functionc8929: ; c8929 (32:4929)
- ret
-
-; no known jump sources
-Functionc892a: ; c892a (32:492a)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c892d: ; c892d (32:492d)
- dw Functionc8933
- dw Functionc894a
- dw Functionc8960
-
-
-; no known jump sources
-Functionc8933: ; c8933 (32:4933)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc894a: ; c894a (32:494a)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld d, $8
- call Functionc905d
- call Functionc900b
- ld hl, $3
- add hl, bc
- ld a, [hl]
- add $4
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8960: ; c8960 (32:4960)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8964: ; c8964 (32:4964)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8967: ; c8967 (32:4967)
- dw Functionc896d
- dw Functionc8985
- dw Functionc89b1
-
-
-; no known jump sources
-Functionc896d: ; c896d (32:496d)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- xor a
- ld hl, $2
- add hl, bc
- ld [hli], a
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8985: ; c8985 (32:4985)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld d, $6
- call Functionc905d
- push af
- ld hl, $2
- add hl, bc
- ld a, [hl]
- ld d, $2
- call Functionc905d
- ld e, a
- pop af
- add e
- call Functionc900b
- ld hl, $2
- add hl, bc
- ld a, [hl]
- add $8
- ld [hl], a
- ld hl, $3
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc89b1: ; c89b1 (32:49b1)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc89b5: ; c89b5 (32:49b5)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c89b8: ; c89b8 (32:49b8)
- dw Functionc89be
- dw Functionc89ca
- dw Functionc89da
-
-
-; no known jump sources
-Functionc89be: ; c89be (32:49be)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ret
-
-; no known jump sources
-Functionc89ca: ; c89ca (32:49ca)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $20
- ret nc
- inc [hl]
- ld d, a
- ld e, $4
- call Functionc8f2e
- ret
-
-; no known jump sources
-Functionc89da: ; c89da (32:49da)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c89ea
- dec [hl]
- ld d, a
- ld e, $4
- call Functionc8f2e
- ret
-.asm_c89ea
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc89ee: ; c89ee (32:49ee)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c89f1: ; c89f1 (32:49f1)
- dw Functionc89f7
- dw Functionc8a14
- dw Functionc8a36
-
-
-; no known jump sources
-Functionc89f7: ; c89f7 (32:49f7)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- call Functionc8ef4
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $2
- add hl, bc
- ld [hl], $1
- ld hl, $3
- add hl, bc
- ld [hl], $20
- ret
-
-; no known jump sources
-Functionc8a14: ; c8a14 (32:4a14)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- cp $38
- ret nc
- push af
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionc9066
- add $10
- ld d, a
- pop af
- add d
- call Functionc901b
- ld hl, $3
- add hl, bc
- inc [hl]
- inc [hl]
- ret
-
-; no known jump sources
-Functionc8a36: ; c8a36 (32:4a36)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8a3a: ; c8a3a (32:4a3a)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8a3d: ; c8a3d (32:4a3d)
- dw Functionc8a49
- dw Functionc8a6f
- dw Functionc8a70
- dw Functionc8a88
- dw Functionc8a6f
- dw Functionc8aac
-
-
-; no known jump sources
-Functionc8a49: ; c8a49 (32:4a49)
- call Functionc80e5
- ld a, $e4
- call Functionc8ecb
- ld a, $47
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld a, [$FF00+$c7]
- ld l, a
- ld h, $d2
-.asm_c8a60
- ld a, [$FF00+$c8]
- cp l
- jr z, .asm_c8a69
- xor a
- ld [hli], a
- jr .asm_c8a60
-.asm_c8a69
- ld hl, $3
- add hl, bc
- ld [hl], $0
-
-; no known jump sources
-Functionc8a6f: ; c8a6f (32:4a6f)
- ret
-
-; no known jump sources
-Functionc8a70: ; c8a70 (32:4a70)
- call Functionc8ab0
- jr nc, .asm_c8a79
- call Functionc8a9a
- ret
-.asm_c8a79
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ld a, [$FF00+$c7]
- inc a
- ld [$FF00+$c7], a
- call Functionc80e5
- ret
-
-; no known jump sources
-Functionc8a88: ; c8a88 (32:4a88)
- call Functionc8ab0
- jr nc, .asm_c8a96
- call Functionc8a9a
- ld a, [$FF00+$c8]
- dec a
- ld l, a
- ld [hl], e
- ret
-.asm_c8a96
- call Functionc80e5
- ret
-
-; known jump sources: c8a75 (32:4a75), c8a8d (32:4a8d)
-Functionc8a9a: ; c8a9a (32:4a9a)
- ld e, a
- ld a, [$FF00+$c7]
- ld l, a
- ld a, [$FF00+$c8]
- sub l
- srl a
- ld h, $d2
-.asm_c8aa5
- ld [hl], e
- inc hl
- inc hl
- dec a
- jr nz, .asm_c8aa5
- ret
-
-; no known jump sources
-Functionc8aac: ; c8aac (32:4aac)
- call Functionc8f19
- ret
-
-; known jump sources: c8a70 (32:4a70), c8a88 (32:4a88)
-Functionc8ab0: ; c8ab0 (32:4ab0)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc [hl]
- srl a
- srl a
- srl a
- ld e, a
- ld d, $0
- ld hl, $4ac7
- add hl, de
- ld a, [hl]
- cp $ff
- ret
-; c8ac7 (32:4ac7)
-
-INCBIN "baserom.gbc",$c8ac7,$c8acc - $c8ac7
-
-; no known jump sources
-Functionc8acc: ; c8acc (32:4acc)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8acf: ; c8acf (32:4acf)
- dw Functionc8ad3
- dw Functionc8ae5
-
-
-; no known jump sources
-Functionc8ad3: ; c8ad3 (32:4ad3)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld hl, $2
- add hl, bc
- ld [hl], $40
- ret
-
-; no known jump sources
-Functionc8ae5: ; c8ae5 (32:4ae5)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c8afc
- dec [hl]
- srl a
- srl a
- srl a
- and $f
- ld d, a
- ld e, a
- call Functionc8f2e
- ret
-.asm_c8afc
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8b00: ; c8b00 (32:4b00)
- ld a, [hCGB] ; $ff00+$e6
- and a
- jr nz, asm_c8b7a
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8b08: ; c8b08 (32:4b08)
- dw Functionc8b0e
- dw Functionc8b22
- dw Functionc8b60
-
-
-; no known jump sources
-Functionc8b0e: ; c8b0e (32:4b0e)
- call Functionc80e5
- ld a, $e4
- call Functionc8ecb
- ld a, $47
- ld [hLCDStatCustom], a ; $ff00+$c6
- xor a
- ld [$FF00+$c7], a
- ld a, $60
- ld [$FF00+$c8], a
- ret
-
-; no known jump sources
-Functionc8b22: ; c8b22 (32:4b22)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld e, a
- and $7
- ret nz
- ld a, e
- and $18
- sla a
- swap a
- sla a
- ld e, a
- ld d, $0
- push bc
- call Functionc9038
- jr nz, .asm_c8b4d
- ld hl, $4bd8
- add hl, de
- ld a, [hli]
- ld [$cfc9], a
- ld d, a
- ld e, [hl]
- ld bc, $2f30
- jr .asm_c8b5b
-.asm_c8b4d
- ld hl, $4be0
- add hl, de
- ld d, [hl]
- inc hl
- ld a, [hl]
- ld [$cfc9], a
- ld e, a
- ld bc, $3728
-.asm_c8b5b
- call Functionc8b6c
- pop bc
- ret
-
-; no known jump sources
-Functionc8b60: ; c8b60 (32:4b60)
- call Functionc8f19
- ld a, $e4
- ld [$cfc7], a
- ld [$cfc9], a
- ret
-
-; known jump sources: c8b5b (32:4b5b)
-Functionc8b6c: ; c8b6c (32:4b6c)
- ld hl, $d200
-.asm_c8b6f
- ld [hl], d
- inc hl
- dec b
- jr nz, .asm_c8b6f
-.asm_c8b74
- ld [hl], e
- inc hl
- dec c
- jr nz, .asm_c8b74
- ret
-asm_c8b7a: ; c8b7a (32:4b7a)
- ld de, $4b81
- call Functionc80ca
- jp [hl]
-; c8b81 (32:4b81)
-
-INCBIN "baserom.gbc",$c8b81,$c8be8 - $c8b81
-
-; no known jump sources
-Functionc8be8: ; c8be8 (32:4be8)
- ld de, $4bef
- call Functionc8d77
- ret
-; c8bef (32:4bef)
-
-INCBIN "baserom.gbc",$c8bef,$c8bf2 - $c8bef
-
-; no known jump sources
-Functionc8bf2: ; c8bf2 (32:4bf2)
- ld de, $4bf9
- call Functionc8d77
- ret
-; c8bf9 (32:4bf9)
-
-INCBIN "baserom.gbc",$c8bf9,$c8bfd - $c8bf9
-
-; no known jump sources
-Functionc8bfd: ; c8bfd (32:4bfd)
- ld de, $4c04
- call Functionc8d77
- ret
-; c8c04 (32:4c04)
-
-INCBIN "baserom.gbc",$c8c04,$c8c08 - $c8c04
-
-; no known jump sources
-Functionc8c08: ; c8c08 (32:4c08)
- ld de, $4c0f
- call Functionc8d77
- ret
-; c8c0f (32:4c0f)
-
-INCBIN "baserom.gbc",$c8c0f,$c8c14 - $c8c0f
-
-; no known jump sources
-Functionc8c14: ; c8c14 (32:4c14)
- ld de, $4c1b
- call Functionc8d77
- ret
-; c8c1b (32:4c1b)
-
-INCBIN "baserom.gbc",$c8c1b,$c8c20 - $c8c1b
-
-; no known jump sources
-Functionc8c20: ; c8c20 (32:4c20)
- ld de, $4c27
- call Functionc8d77
- ret
-; c8c27 (32:4c27)
-
-INCBIN "baserom.gbc",$c8c27,$c8c30 - $c8c27
-
-; no known jump sources
-Functionc8c30: ; c8c30 (32:4c30)
- ld de, $4c37
- call Functionc8d77
- ret
-; c8c37 (32:4c37)
-
-INCBIN "baserom.gbc",$c8c37,$c8c3c - $c8c37
-
-; no known jump sources
-Functionc8c3c: ; c8c3c (32:4c3c)
- ld de, $4c43
- call Functionc8d77
- ret
-; c8c43 (32:4c43)
-
-INCBIN "baserom.gbc",$c8c43,$c8c55 - $c8c43
-
-; no known jump sources
-Functionc8c55: ; c8c55 (32:4c55)
- ld de, $4c5c
- call Functionc8d77
- ret
-; c8c5c (32:4c5c)
-
-INCBIN "baserom.gbc",$c8c5c,$c8c61 - $c8c5c
-
-; no known jump sources
-Functionc8c61: ; c8c61 (32:4c61)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8c64: ; c8c64 (32:4c64)
- dw Functionc8c68
- dw Functionc8c85
-
-
-; no known jump sources
-Functionc8c68: ; c8c68 (32:4c68)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $2
- add hl, bc
- ld [hl], $1
- ld hl, $3
- add hl, bc
- ld [hl], $20
- ret
-
-; no known jump sources
-Functionc8c85: ; c8c85 (32:4c85)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c8c9e
- dec [hl]
- and $1
- ret nz
- ld hl, $2
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- call Functionc900b
- ret
-.asm_c8c9e
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8ca2: ; c8ca2 (32:4ca2)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8ca5: ; c8ca5 (32:4ca5)
- dw Functionc8cab
- dw Functionc8cc3
- dw Functionc8cdd
-
-
-; no known jump sources
-Functionc8cab: ; c8cab (32:4cab)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- ld [hLCDStatCustom], a ; $ff00+$c6
- xor a
- ld [$FF00+$c7], a
- ld a, $37
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc8cc3: ; c8cc3 (32:4cc3)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, Functionc8cdd
- ld d, $6
- call Functionc905d
- call Functionc900b
- ld hl, $3
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ret
-
-; known jump sources: c8cca (32:4cca)
-Functionc8cdd: ; c8cdd (32:4cdd)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8ce1: ; c8ce1 (32:4ce1)
- call Functionc8d0b
- jr c, .asm_c8cea
- bit 7, a
- jr z, .asm_c8ceb
-.asm_c8cea
- xor a
-.asm_c8ceb
- push af
- call DelayFrame
- pop af
- ld [hSCY], a ; $ff00+$d0
- xor $ff
- inc a
- ld [$d314], a
- ret
-
-; no known jump sources
-Functionc8cf9: ; c8cf9 (32:4cf9)
- call Functionc8d0b
- jr nc, .asm_c8cff
- xor a
-.asm_c8cff
- ld [hSCX], a ; $ff00+$cf
- ret
-
-; no known jump sources
-Functionc8d02: ; c8d02 (32:4d02)
- call Functionc8d0b
- jr nc, .asm_c8d08
- xor a
-.asm_c8d08
- ld [hSCY], a ; $ff00+$d0
- ret
-
-; known jump sources: c8ce1 (32:4ce1), c8cf9 (32:4cf9), c8d02 (32:4d02)
-Functionc8d0b: ; c8d0b (32:4d0b)
- ld hl, $1
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_c8d18
- call Functionc8043
- scf
- ret
-.asm_c8d18
- dec [hl]
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .asm_c8d2a
- dec [hl]
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and a
- ret
-.asm_c8d2a
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- and a
- ret
-
-; no known jump sources
-Functionc8d3a: ; c8d3a (32:4d3a)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, .asm_c8d53
- ld d, $6
- call Functionc905d
- ld [hSCX], a ; $ff00+$cf
- ld hl, $3
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ret
-.asm_c8d53
- xor a
- ld [hSCX], a ; $ff00+$cf
- ret
-
-; known jump sources: c8130 (32:4130), c8144 (32:4144), c8158 (32:4158), c817e (32:417e), c8198 (32:4198), c81a8 (32:41a8)
-Functionc8d57: ; c8d57 (32:4d57)
- ld hl, $1
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c8d69
- dec [hl]
- ld hl, $3
- add hl, bc
- ld a, [hl]
- call Functionc8eb2
- ret
-.asm_c8d69
- ld hl, $2
- add hl, bc
- ld a, [hl]
- ld hl, $1
- add hl, bc
- ld [hl], a
- call Functionc8eac
- ret
-
-; known jump sources: c8beb (32:4beb), c8bf5 (32:4bf5), c8c00 (32:4c00), c8c0b (32:4c0b), c8c17 (32:4c17), c8c23 (32:4c23), c8c33 (32:4c33), c8c3f (32:4c3f), c8c58 (32:4c58)
-Functionc8d77: ; c8d77 (32:4d77)
- ld a, [hCGB] ; $ff00+$e6
- and a
- jr nz, asm_c8dd4
- push de
- ld de, $4d85
- call Functionc80ca
- pop de
- jp [hl]
-
-; no known jump sources
-Jumptable_c8d85: ; c8d85 (32:4d85)
- dw Functionc8d8b
- dw Functionc8daa
- dw Functionc8dc9
-
-
-; no known jump sources
-Functionc8d8b: ; c8d8b (32:4d8b)
- call Functionc80e5
- ld a, $e4
- call Functionc8ecb
- ld a, $47
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld [hl], $0
- ld hl, $2
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8daa: ; c8daa (32:4daa)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .asm_c8db5
- dec [hl]
- ret
-.asm_c8db5
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- call Functionc8eac
- jr c, .asm_c8dc3
- call Functionc900b
- ret
-.asm_c8dc3
- ld hl, $3
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionc8dc9: ; c8dc9 (32:4dc9)
- call Functionc8f19
- ld a, $e4
- ld [rBGP], a ; $ff00+$47
- call Functionc8043
- ret
-asm_c8dd4: ; c8dd4 (32:4dd4)
- push de
- ld de, $4ddd
- call Functionc80ca
- pop de
- jp [hl]
-
-; no known jump sources
-Jumptable_c8ddd: ; c8ddd (32:4ddd)
- dw Functionc8de7
- dw Functionc8e02
- dw Functionc8e21
- dw Functionc8e2a
- dw Functionc8e49
-
-
-; no known jump sources
-Functionc8de7: ; c8de7 (32:4de7)
- call Functionc9038
- jr nz, .asm_c8df2
- call Functionc80e5
- call Functionc80e5
-.asm_c8df2
- call Functionc80e5
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld [hl], $0
- ld hl, $2
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8e02: ; c8e02 (32:4e02)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .asm_c8e0d
- dec [hl]
- ret
-.asm_c8e0d
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- call Functionc8eac
- jr c, .asm_c8e1b
- call Functionc8e52
- ret
-.asm_c8e1b
- ld hl, $3
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionc8e21: ; c8e21 (32:4e21)
- ld a, $e4
- call Functionc8e52
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc8e2a: ; c8e2a (32:4e2a)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .asm_c8e35
- dec [hl]
- ret
-.asm_c8e35
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- call Functionc8eac
- jr c, .asm_c8e43
- call Functionc8e7f
- ret
-.asm_c8e43
- ld hl, $3
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionc8e49: ; c8e49 (32:4e49)
- ld a, $e4
- call Functionc8e7f
- call Functionc8043
- ret
-
-; known jump sources: c8e17 (32:4e17), c8e23 (32:4e23)
-Functionc8e52: ; c8e52 (32:4e52)
- ld h, a
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld a, h
- push bc
- push af
- ld hl, BGPals ; $d080
- ld de, Unkn1Pals ; $d000
- ld b, a
- ld c, $1
- call CopyPals
- ld hl, $d0c8
- ld de, $d048
- pop af
- ld b, a
- ld c, $1
- call CopyPals
- pop bc
- pop af
- ld [rSVBK], a ; $ff00+$70
- ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
- ret
-
-; known jump sources: c8e3f (32:4e3f), c8e4b (32:4e4b)
-Functionc8e7f: ; c8e7f (32:4e7f)
- ld h, a
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld a, h
- push bc
- push af
- ld hl, $d088
- ld de, $d008
- ld b, a
- ld c, $1
- call CopyPals
- ld hl, OBPals ; $d0c0
- ld de, MartPointer ; $d040 (aliases: Unkn2Pals)
- pop af
- ld b, a
- ld c, $1
- call CopyPals
- pop bc
- pop af
- ld [rSVBK], a ; $ff00+$70
- ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
- ret
-
-; known jump sources: c8d73 (32:4d73), c8dba (32:4dba), c8e12 (32:4e12), c8e3a (32:4e3a)
-Functionc8eac: ; c8eac (32:4eac)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc [hl]
-
-; known jump sources: c8d65 (32:4d65)
-Functionc8eb2: ; c8eb2 (32:4eb2)
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- cp $ff
- jr z, .asm_c8ec8
- cp $fe
- jr nz, .asm_c8ec6
- ld a, [de]
- ld hl, $3
- add hl, bc
- ld [hl], $0
-.asm_c8ec6
- and a
- ret
-.asm_c8ec8
- scf
- ret
-
-; known jump sources: c85a5 (32:45a5), c85c2 (32:45c2), c85fc (32:45fc), c8613 (32:4613), c864b (32:464b), c866e (32:466e), c869b (32:469b), c8715 (32:4715), c876d (32:476d), c87b5 (32:47b5), c8813 (32:4813), c8845 (32:4845), c88f9 (32:48f9), c8936 (32:4936), c8970 (32:4970), c89c1 (32:49c1), c89fa (32:49fa), c8ad6 (32:4ad6), c8c6b (32:4c6b), c8cae (32:4cae), c8f0f (32:4f0f), c8f2a (32:4f2a)
-Functionc8eca: ; c8eca (32:4eca)
- xor a
-
-; known jump sources: c8a4e (32:4a4e), c8b13 (32:4b13), c8d90 (32:4d90)
-Functionc8ecb: ; c8ecb (32:4ecb)
- ld hl, CurMartEnd ; $d100 (aliases: LYOverrides)
- ld e, $99
-.asm_c8ed0
- ld [hli], a
- dec e
- jr nz, .asm_c8ed0
- ld hl, $d200
- ld e, $91
-.asm_c8ed9
- ld [hli], a
- dec e
- jr nz, .asm_c8ed9
- ret
-
-; known jump sources: c85c7 (32:45c7), c8650 (32:4650), c8673 (32:4673), c86a0 (32:46a0), c871a (32:471a), c8772 (32:4772), c87ba (32:47ba), c8818 (32:4818), c88fe (32:48fe), c893b (32:493b), c8975 (32:4975), c89c6 (32:49c6), c8a53 (32:4a53), c8adb (32:4adb), c8c70 (32:4c70), c8d95 (32:4d95)
-Functionc8ede: ; c8ede (32:4ede)
- ld [hLCDStatCustom], a ; $ff00+$c6
- call Functionc9038
- jr nz, .asm_c8eea
- ld de, $36
- jr .asm_c8eed
-.asm_c8eea
- ld de, $2f5e
-.asm_c8eed
- ld a, d
- ld [$FF00+$c7], a
- ld a, e
- ld [$FF00+$c8], a
- ret
-
-; known jump sources: c884a (32:484a), c89ff (32:49ff)
-Functionc8ef4: ; c8ef4 (32:4ef4)
- ld [hLCDStatCustom], a ; $ff00+$c6
- call Functionc9038
- jr nz, .asm_c8f00
- ld de, $36
- jr .asm_c8f03
-.asm_c8f00
- ld de, $2d5e
-.asm_c8f03
- ld a, d
- ld [$FF00+$c7], a
- ld a, e
- ld [$FF00+$c8], a
- ret
-
-; known jump sources: c8561 (32:4561), c85be (32:45be), c8603 (32:4603), c863b (32:463b), c865e (32:465e), c8685 (32:4685), c8705 (32:4705), c875d (32:475d), c87a3 (32:47a3), c8801 (32:4801), c8833 (32:4833), c8865 (32:4865), c88f2 (32:48f2), c8926 (32:4926), c8960 (32:4960), c89b1 (32:49b1), c89ea (32:49ea), c8a36 (32:4a36), c8afc (32:4afc), c8c9e (32:4c9e), c8cdd (32:4cdd)
-Functionc8f0a: ; c8f0a (32:4f0a)
- xor a
- ld [$FF00+$c7], a
- ld [$FF00+$c8], a
- call Functionc8eca
- xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
- call Functionc8043
- ret
-
-; known jump sources: c8aac (32:4aac), c8b60 (32:4b60), c8dc9 (32:4dc9)
-Functionc8f19: ; c8f19 (32:4f19)
- xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
- ld a, $e4
- ld [rBGP], a ; $ff00+$47
- ld [$cfc7], a
- ld [$cfc9], a
- ld [$FF00+$c7], a
- ld [$FF00+$c8], a
- call Functionc8eca
- ret
-
-; known jump sources: c85b6 (32:45b6), c8624 (32:4624), c8656 (32:4656), c867d (32:467d), c8724 (32:4724), c89d6 (32:49d6), c89e6 (32:49e6), c8af8 (32:4af8)
-Functionc8f2e: ; c8f2e (32:4f2e)
- push bc
- xor a
- ld [$d419], a
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- ld a, $80
- ld [$d41c], a
- ld bc, $d200
-.asm_c8f43
- ld a, [$FF00+$c7]
- cp c
- jr nc, .asm_c8f58
- ld a, [$FF00+$c8]
- cp c
- jr c, .asm_c8f58
- ld a, [$d41b]
- ld d, a
- ld a, [$d419]
- call Functionc905d
- ld [bc], a
-.asm_c8f58
- inc bc
- ld a, [$d41a]
- ld hl, $d419
- add [hl]
- ld [hl], a
- ld hl, $d41c
- dec [hl]
- jr nz, .asm_c8f43
- pop bc
- ret
-
-; known jump sources: c8554 (32:4554)
-Functionc8f69: ; c8f69 (32:4f69)
- push bc
- xor a
- ld [$d419], a
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- ld a, $40
- ld [$d41c], a
- ld bc, $d422
-.asm_c8f7e
- ld a, [$d41b]
- ld d, a
- ld a, [$d419]
- call Functionc905d
- ld [bc], a
- inc bc
- ld a, [$d41a]
- ld hl, $d419
- add [hl]
- ld [hl], a
- ld hl, $d41c
- dec [hl]
- jr nz, .asm_c8f7e
- pop bc
- ret
-
-; known jump sources: c85f8 (32:45f8)
-Functionc8f9a: ; c8f9a (32:4f9a)
- push bc
- ld [$d41c], a
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- call Functionc8fe4
- ld hl, $d200
- add hl, de
- ld c, l
- ld b, h
-.asm_c8faf
- ld a, [$d41c]
- and a
- jr z, .asm_c8fe1
- dec a
- ld [$d41c], a
- push af
- ld a, [$d41b]
- ld d, a
- ld a, [$d41a]
- push hl
- call Functionc905d
- ld e, a
- pop hl
- ld a, [$FF00+$c8]
- cp c
- jr c, .asm_c8fcf
- ld a, e
- ld [bc], a
- inc bc
-.asm_c8fcf
- ld a, [$FF00+$c7]
- cp l
- jr nc, .asm_c8fd6
- ld [hl], e
- dec hl
-.asm_c8fd6
- ld a, [$d41a]
- add $4
- ld [$d41a], a
- pop af
- jr .asm_c8faf
-.asm_c8fe1
- pop bc
- and a
- ret
-
-; known jump sources: c8fa6 (32:4fa6)
-Functionc8fe4: ; c8fe4 (32:4fe4)
- ld a, [$FF00+$c7]
- ld e, a
- ld a, [$d419]
- add e
- ld e, a
- ld d, $0
- ret
-
-; known jump sources: c85ba (32:45ba), c8637 (32:4637), c865a (32:465a), c8681 (32:4681)
-Functionc8fef: ; c8fef (32:4fef)
- push bc
- ld a, [$FF00+$c7]
- ld l, a
- inc a
- ld e, a
- ld h, $d2
- ld d, h
- ld a, [$FF00+$c8]
- sub l
- and a
- jr z, .asm_c9009
- ld c, a
- ld a, [hl]
- push af
-.asm_c9001
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_c9001
- pop af
- ld [hl], a
-.asm_c9009
- pop bc
- ret
-
-; known jump sources: c88b4 (32:48b4), c8954 (32:4954), c899d (32:499d), c8c9a (32:4c9a), c8cd1 (32:4cd1), c8dbf (32:4dbf)
-Functionc900b: ; c900b (32:500b)
- push af
- ld h, $d2
- ld a, [$FF00+$c7]
- ld l, a
- ld a, [$FF00+$c8]
- sub l
- ld d, a
- pop af
-.asm_c9016
- ld [hli], a
- dec d
- jr nz, .asm_c9016
- ret
-
-; known jump sources: c8790 (32:4790), c87f7 (32:47f7), c8a2c (32:4a2c)
-Functionc901b: ; c901b (32:501b)
- push af
- ld e, a
- ld a, [$FF00+$c7]
- ld l, a
- ld a, [$FF00+$c8]
- sub l
- sub e
- ld d, a
- ld h, $d2
- ld a, [$FF00+$c7]
- ld l, a
- ld a, $90
-.asm_c902c
- ld [hli], a
- dec e
- jr nz, .asm_c902c
- pop af
- xor $ff
-.asm_c9033
- ld [hli], a
- dec d
- jr nz, .asm_c9033
- ret
-
-; known jump sources: c81c4 (32:41c4), c81f3 (32:41f3), c8234 (32:4234), c825e (32:425e), c82a1 (32:42a1), c82cb (32:42cb), c8305 (32:4305), c837b (32:437b), c83a8 (32:43a8), c8826 (32:4826), c8858 (32:4858), c890c (32:490c), c8b39 (32:4b39), c8de7 (32:4de7), c8ee0 (32:4ee0), c8ef6 (32:4ef6)
-Functionc9038: ; c9038 (32:5038)
- ld hl, $2
- add hl, bc
- ld a, [hBattleTurn] ; $ff00+$e4
- and $1
- xor [hl]
- ret
-
-; known jump sources: c81ea (32:41ea), c8223 (32:4223), c8290 (32:4290)
-Functionc9042: ; c9042 (32:5042)
- ld hl, $2
- add hl, bc
- ld a, [hBattleTurn] ; $ff00+$e4
- and $1
- xor [hl]
- jr nz, .asm_c9053
- ld a, [EnemySubStatus3] ; $c66f
- and $60
- ret
-.asm_c9053
- ld a, [PlayerSubStatus3] ; $c66a
- and $60
- ret
-
-; known jump sources: c8171 (32:4171), c818b (32:418b)
-Functionc9059: ; c9059 (32:5059)
- ld a, [hSGB] ; $ff00+$e7
- and a
- ret
-
-; known jump sources: c86d6 (32:46d6), c8951 (32:4951), c898c (32:498c), c8997 (32:4997), c8cce (32:4cce), c8d45 (32:4d45), c8f54 (32:4f54), c8f85 (32:4f85), c8fc2 (32:4fc2)
-Functionc905d: ; c905d (32:505d)
- ld e, a
- callab Functionce765
- ld a, e
- ret
-
-; known jump sources: c8a24 (32:4a24)
-Functionc9066: ; c9066 (32:5066)
- ld e, a
- callab Functionce76b
- ld a, e
- ret
-; c906f (32:506f)
-
-INCBIN "baserom.gbc",$c906f,$cbcdd - $c906f
+INCLUDE "battle/anims.asm"
Functioncbcdd: ; cbcdd
call Functioncbce5
@@ -90960,70 +73918,89 @@ Functioncbce5: ; cbce5
ret
; cbd2e
-INCBIN "baserom.gbc",$cbd2e,$cbe2b - $cbd2e
+TheEndGFX: ; cbd2e
+INCBIN "gfx/credits/theend.2bpp"
+; cbe2e
-SECTION "bank33",ROMX,BANK[$33]
+SECTION "bank33", ROMX, BANK[$33]
Functioncc000: ; cc000
+
call WhiteBGMap
call ClearTileMap
call ClearSprites
call Functione58
+
ld hl, Options
ld a, [hl]
push af
set 4, [hl]
- ld hl, TileMap
- ld b, $4
- ld c, $d
+
+ hlcoord 0, 0
+ ld b, 4
+ ld c, 13
call TextBox
- ld hl, $c518
- ld b, $4
- ld c, $d
+
+ hlcoord 0, 6
+ ld b, 4
+ ld c, 13
call TextBox
- ld hl, $c4a2
- ld de, $40ae
+
+ hlcoord 2, 0
+ ld de, .Stock
call PlaceString
- ld hl, $c51a
- ld de, $40b8
+
+ hlcoord 2, 6
+ ld de, .This
call PlaceString
- ld hl, $c4f5
- ld de, $40a7
+
+ hlcoord 5, 4
+ ld de, .Health
call PlaceString
- ld hl, $c56d
- ld de, $40a7
+
+ hlcoord 5, 10
+ ld de, .Health
call PlaceString
+
ld a, [$df9c]
ld [$d265], a
call GetPokemonName
ld de, StringBuffer1
- ld hl, $c4c9
+ hlcoord 1, 2
call PlaceString
+
ld h, b
ld l, c
ld a, [$dfbb]
ld [TempMonLevel], a
call PrintLevel
+
ld de, EnemyMonNick
- ld hl, $c541
+ hlcoord 1, 8
call PlaceString
+
ld h, b
ld l, c
ld a, [EnemyMonLevel]
ld [TempMonLevel], a
call PrintLevel
- ld hl, $c4fb
+
+ hlcoord 11, 4
ld de, $dfc0
ld bc, $0203
call PrintNum
- ld hl, $c573
+
+ hlcoord 11, 10
ld de, EnemyMonMaxHPHi
call PrintNum
- ld hl, $40c2
+
+ ld hl, SwitchMonText
call PrintText
+
pop af
ld [Options], a
+
call WaitBGMap
ld b, $8
call GetSGBLayout
@@ -91031,7510 +74008,46 @@ Functioncc000: ; cc000
ret
; cc0a7
-INCBIN "baserom.gbc",$cc0a7,$cc0c7 - $cc0a7
+.Health
+ db "HEALTH@"
+.Stock
+ db " STOCK ", $4a, " @"
+.This
+ db " THIS ", $4a, " @"
+SwitchMonText: ; cc0c2
+ ; Switch #MON?
+ text_jump UnknownText_0x1c10cf
+ db "@"
+; cc0c7
Functioncc0c7: ; cc0c7
call GetPokemonName
- ld hl, $40d0
+ ld hl, AlreadyCaughtText
jp PrintText
; cc0d0
-INCBIN "baserom.gbc",$cc0d0,$cc0d5 - $cc0d0
+AlreadyCaughtText: ; 0xcc0d0
+ ; You already caught a @ .
+ text_jump UnknownText_0x1c10dd
+ db "@"
+; 0xcc0d5
-Functioncc0d5: ; cc0d5
+Predef2F:
+Predef38:
+Predef39: ; cc0d5
ret
; cc0d6
-Functioncc0d6: ; cc0d6
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call Functioncc0e4
- pop af
- ld [rSVBK], a
- ret
-; cc0e4
-
-Functioncc0e4: ; cc0e4
- ld c, $6
-.asm_cc0e6
- call Functioncc1fb
- dec c
- jr nz, .asm_cc0e6
- call Functioncc8a4
- call Functioncc1e2
- call Functioncc1fb
- ld c, $1
- ld a, [rKEY1]
- bit 7, a
- jr nz, .asm_cc0ff
- ld c, $3
-
-.asm_cc0ff
- ld hl, $ff9e
- ld a, [hl]
- push af
- ld [hl], c
- call Functioncc11c
- pop af
- ld [$ff9e], a
- ld a, $1
- ld [hBGMapMode], a
- call Functioncc1fb
- call Functioncc1fb
- call Functioncc1fb
- call WaitSFX
- ret
-; cc11c
-
-Functioncc11c: ; cc11c
- ld a, [FXAnimIDHi]
- and a
- jr nz, .asm_cc156
- callba Function4ea44
- jr c, .asm_cc141
- call Functioncc1a1
- call Functioncc163
- call Functioncc8a4
- call Functioncc1e2
- xor a
- ld [hSCX], a
- ld [hSCY], a
- call Functioncc1fb
- call Functioncc1bb
-
-.asm_cc141
- ld a, [$cfca]
- and a
- jr z, .asm_cc15f
- ld l, a
- ld h, $0
- ld de, $010e
- add hl, de
- ld a, l
- ld [FXAnimIDLo], a
- ld a, h
- ld [FXAnimIDHi], a
-
-.asm_cc156
- call WaitSFX
- call Functioncc881
- call Functioncc163
-
-.asm_cc15f
- call Functioncc8f6
- ret
-; cc163
-
-Functioncc163: ; cc163
- call Functioncc8d3
-.asm_cc166
- call Functioncc25f
- call Functionccb48
- call Functioncc96e
- call Function3b0c
- call Functioncc1e2
- ld a, [FXAnimIDHi]
- or a
- jr nz, .asm_cc193
- ld a, [FXAnimIDLo]
- cp $cd
- jr nz, .asm_cc193
- ld a, $2e
- ld b, $5
- ld de, $0004
- ld hl, $d3fa
-.asm_cc18c
- cp [hl]
- jr z, .asm_cc196
- add hl, de
- dec b
- jr nz, .asm_cc18c
-
-.asm_cc193
- call Functioncc1fb
-
-.asm_cc196
- ld a, [$d40f]
- bit 0, a
- jr z, .asm_cc166
- call Functioncc23d
- ret
-; cc1a1
-
-Functioncc1a1: ; cc1a1
- call Functioncc1fb
- call WaitTop
- call Functioncc207
- ld a, $1
- ld [hBGMapMode], a
- call Functioncc1fb
- call Functioncc1fb
- call Functioncc1fb
- call WaitTop
- ret
-; cc1bb
-
-Functioncc1bb: ; cc1bb
- call Functioncc1fb
- call WaitTop
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, UpdateBattleHuds
- ld a, $f
- rst FarCall
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hBGMapMode], a
- call Functioncc1fb
- call Functioncc1fb
- call Functioncc1fb
- call WaitTop
- ret
-; cc1e2
-
-Functioncc1e2: ; cc1e2
- ld a, [hCGB]
- and a
- ret z
- ld a, [rBGP]
- ld b, a
- ld a, [$cfc7]
- cp b
- call nz, Functioncc91a
- ld a, [rOBP0]
- ld b, a
- ld a, [$cfc8]
- cp b
- call nz, Functioncc94b
- ret
-; cc1fb
-
-Functioncc1fb: ; cc1fb
- ld a, $1
- ld [VBlankOccurred], a
-.asm_cc200
- ld a, [VBlankOccurred]
- and a
- jr nz, .asm_cc200
- ret
-; cc207
-
-Functioncc207: ; cc207
- ld a, [hBattleTurn]
- and a
- jr z, .asm_cc216
- ld hl, $c4a1
- ld bc, $040a
- call ClearBox
- ret
-
-.asm_cc216
- ld hl, $c535
- ld bc, $050b
- call ClearBox
- ret
-; cc220
-
-INCBIN "baserom.gbc",$cc220,$cc23d - $cc220
-
-
-Functioncc23d: ; cc23d
- ld a, [$d40f]
- bit 3, a
- jr z, .asm_cc254
- ld hl, $c403
- ld c, $28
-.asm_cc249
- ld a, [hl]
- and $f0
- ld [hli], a
- inc hl
- inc hl
- inc hl
- dec c
- jr nz, .asm_cc249
- ret
-
-.asm_cc254
- ld hl, Sprites
- ld c, $a0
- xor a
-.asm_cc25a
- ld [hli], a
- dec c
- jr nz, .asm_cc25a
- ret
-; cc25f
-
-Functioncc25f: ; cc25f
- call Functioncc267
- ret nc
- call Functioncc275
- ret
-; cc267
-
-Functioncc267: ; cc267
- ld a, [$d412]
- and a
- jr z, .asm_cc273
- dec a
- ld [$d412], a
- and a
- ret
-
-.asm_cc273
- scf
- ret
-; cc275
-
-Functioncc275: ; cc275
-.asm_cc275
- call Function3af0
- cp $ff
- jr nz, .asm_cc286
- ld hl, $d40f
- bit 1, [hl]
- jr nz, .asm_cc28e
- set 0, [hl]
- ret
-
-.asm_cc286
- cp $d0
- jr nc, .asm_cc28e
- ld [$d412], a
- ret
-
-.asm_cc28e
- call Functioncc293
- jr .asm_cc275
-; cc293
-
-Functioncc293: ; cc293
- ld a, [$d417]
- sub $d0
- ld e, a
- ld d, $0
- ld hl, $42a4
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; cc2a4
-
-
-; no known jump sources
-Jumptable_cc2a4: ; cc2a4 (33:42a4)
- dw Functioncc41f
- dw Functioncc485
- dw Functioncc485
- dw Functioncc485
- dw Functioncc485
- dw Functioncc485
- dw Functioncc4c0
- dw Functioncc506
- dw Functioncc4e3
- dw Functioncc52c
- dw Functioncc57e
- dw Functioncc5d0
- dw Functioncc5dc
- dw Functioncc640
- dw Functioncc750
- dw Functioncc46c
- dw Functioncc7cd
- dw Functioncc807
- dw Functioncc6cf
- dw Functioncc7bb
- dw Functioncc7bf
- dw Functioncc479
- dw Functioncc776
- dw Functioncc5db
- dw Functioncc622
- dw Functioncc735
- dw Functioncc304
- dw Functioncc304
- dw Functioncc304
- dw Functioncc304
- dw Functioncc3fa
- dw Functioncc383
- dw Functioncc43b
- dw Functioncc457
- dw Functioncc45e
- dw Functioncc465
- dw Functioncc7c4
- dw Functioncc7ca
- dw Functioncc7cb
- dw Functioncc7cc
- dw Functioncc3d6
- dw Functioncc3a6
- dw Functioncc3ad
- dw Functioncc3b2
- dw Functioncc339
- dw Functioncc348
- dw Functioncc317
- dw Functioncc305
-
-
-; no known jump sources
-Functioncc304: ; cc304 (33:4304)
- ret
-
-; no known jump sources
-Functioncc305: ; cc305 (33:4305)
- ld hl, $d40f
- res 1, [hl]
- ld hl, $d413
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncc317: ; cc317 (33:4317)
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- push de
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $d413
- ld [hl], e
- inc hl
- ld [hl], d
- pop de
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $d40f
- set 1, [hl]
- ret
-
-; no known jump sources
-Functioncc339: ; cc339 (33:4339)
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncc348: ; cc348 (33:4348)
- call Function3af0
- ld hl, $d40f
- bit 2, [hl]
- jr nz, .asm_cc35b
- and a
- jr z, .asm_cc363
- dec a
- set 2, [hl]
- ld [$d415], a
-.asm_cc35b
- ld hl, $d415
- ld a, [hl]
- and a
- jr z, .asm_cc372
- dec [hl]
-.asm_cc363
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-.asm_cc372
- ld hl, $d40f
- res 2, [hl]
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncc383: ; cc383 (33:4383)
- ld hl, $c689
- ld a, [hl]
- and a
- jr z, .asm_cc39a
- dec [hl]
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-.asm_cc39a
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncc3a6: ; cc3a6 (33:43a6)
- call Function3af0
- ld [$d416], a
- ret
-
-; no known jump sources
-Functioncc3ad: ; cc3ad (33:43ad)
- ld hl, $d416
- inc [hl]
- ret
-
-; no known jump sources
-Functioncc3b2: ; cc3b2 (33:43b2)
- call Function3af0
- ld hl, $d416
- cp [hl]
- jr z, .asm_cc3c7
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-.asm_cc3c7
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncc3d6: ; cc3d6 (33:43d6)
- call Function3af0
- ld hl, $c689
- cp [hl]
- jr z, .asm_cc3eb
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-.asm_cc3eb
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncc3fa: ; cc3fa (33:43fa)
- call Function3af0
- ld e, a
- ld a, [$c689]
- and e
- jr nz, .asm_cc410
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-.asm_cc410
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncc41f: ; cc41f (33:441f)
- call Function3af0
- ld [$d419], a
- call Function3af0
- ld [$d41a], a
- call Function3af0
- ld [$d41b], a
- call Function3af0
- ld [$d41c], a
- call Functioncc9a1
- ret
-
-; no known jump sources
-Functioncc43b: ; cc43b (33:443b)
- call Function3af0
- ld [$d419], a
- call Function3af0
- ld [$d41a], a
- call Function3af0
- ld [$d41b], a
- call Function3af0
- ld [$d41c], a
- call Functionccb4f
- ret
-
-; no known jump sources
-Functioncc457: ; cc457 (33:4457)
- call Function3af0
- ld [$cfc7], a
- ret
-
-; no known jump sources
-Functioncc45e: ; cc45e (33:445e)
- call Function3af0
- ld [$cfc8], a
- ret
-
-; no known jump sources
-Functioncc465: ; cc465 (33:4465)
- call Function3af0
- ld [$cfc9], a
- ret
-
-; no known jump sources
-Functioncc46c: ; cc46c (33:446c)
- ld a, [hSGB] ; $ff00+$e7
- and a
- ld a, $e0
- jr z, .asm_cc475
- ld a, $f0
-.asm_cc475
- ld [$cfc8], a
- ret
-
-; no known jump sources
-Functioncc479: ; cc479 (33:4479)
- ld hl, $d30a
- ld a, $a0
-.asm_cc47e
- ld [hl], $0
- inc hl
- dec a
- jr nz, .asm_cc47e
- ret
-
-; no known jump sources
-Functioncc485: ; cc485 (33:4485)
- ld a, [$d417]
- and $f
- ld c, a
- ld hl, $d300
- xor a
- ld [$d419], a
-.asm_cc492
- ld a, [$d419]
- cp $4f
- ret nc
- call Function3af0
- ld [hli], a
- ld a, [$d419]
- ld [hli], a
- push bc
- push hl
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
- ld de, $8310
- add hl, de
- ld a, [$d417]
- call Functionce846
- ld a, [$d419]
- add c
- ld [$d419], a
- pop hl
- pop bc
- dec c
- jr nz, .asm_cc492
- ret
-
-; no known jump sources
-Functioncc4c0: ; cc4c0 (33:44c0)
- call Function3af0
- ld e, $a
- ld bc, $d30a
-.asm_cc4c8
- ld hl, $0
- add hl, bc
- ld d, [hl]
- ld a, [$d417]
- cp d
- jr z, .asm_cc4dd
- ld hl, $18
- add hl, bc
- ld c, l
- ld b, h
- dec e
- jr nz, .asm_cc4c8
- ret
-.asm_cc4dd
- ld hl, $e
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncc4e3: ; cc4e3 (33:44e3)
- call Function3af0
- ld e, $5
- ld bc, $d3fa
-.asm_cc4eb
- ld hl, $0
- add hl, bc
- ld d, [hl]
- ld a, [$d417]
- cp d
- jr z, .asm_cc500
- ld hl, $4
- add hl, bc
- ld c, l
- ld b, h
- dec e
- jr nz, .asm_cc4eb
- ret
-.asm_cc500
- ld hl, $1
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncc506: ; cc506 (33:4506)
- call Function3af0
- ld e, $a
- ld bc, $d30a
-.asm_cc50e
- ld hl, $0
- add hl, bc
- ld d, [hl]
- ld a, [$d417]
- cp d
- jr z, .asm_cc523
- ld hl, $18
- add hl, bc
- ld c, l
- ld b, h
- dec e
- jr nz, .asm_cc50e
- ret
-.asm_cc523
- call Function3af0
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncc52c: ; cc52c (33:452c)
- ld hl, $d300
-.asm_cc52f
- ld a, [hl]
- and a
- jr z, .asm_cc537
- inc hl
- inc hl
- jr .asm_cc52f
-.asm_cc537
- ld a, $28
- ld [hli], a
- ld a, $42
- ld [hli], a
- ld a, $29
- ld [hli], a
- ld a, $49
- ld [hl], a
- ld hl, $8730
- ld de, $9060
- ld a, $70
- ld [$d419], a
- ld a, $7
- call Functioncc561
- ld de, $9310
- ld a, $60
- ld [$d419], a
- ld a, $6
- call Functioncc561
- ret
-
-; known jump sources: cc550 (33:4550), cc55d (33:455d), cc57b (33:457b)
-Functioncc561: ; cc561 (33:4561)
- push af
- push hl
- push de
- ld bc, $3301
- call Request2bpp
- pop de
- ld a, [$d419]
- ld l, a
- ld h, $0
- add hl, de
- ld e, l
- ld d, h
- pop hl
- ld bc, $10
- add hl, bc
- pop af
- dec a
- jr nz, Functioncc561
- ret
-
-; no known jump sources
-Functioncc57e: ; cc57e (33:457e)
- ld hl, $d300
-.asm_cc581
- ld a, [hl]
- and a
- jr z, .asm_cc589
- inc hl
- inc hl
- jr .asm_cc581
-.asm_cc589
- ld a, $28
- ld [hli], a
- ld a, $35
- ld [hli], a
- ld a, $29
- ld [hli], a
- ld a, $43
- ld [hl], a
- ld hl, $8660
- ld de, $9050
- ld a, $70
- ld [$d419], a
- ld a, $7
- call Functioncc5b3
- ld de, $9310
- ld a, $60
- ld [$d419], a
- ld a, $6
- call Functioncc5b3
- ret
-
-; known jump sources: cc5a2 (33:45a2), cc5af (33:45af), cc5cd (33:45cd)
-Functioncc5b3: ; cc5b3 (33:45b3)
- push af
- push hl
- push de
- ld bc, $3302
- call Request2bpp
- pop de
- ld a, [$d419]
- ld l, a
- ld h, $0
- add hl, de
- ld e, l
- ld d, h
- pop hl
- ld bc, $20
- add hl, bc
- pop af
- dec a
- jr nz, Functioncc5b3
- ret
-
-; no known jump sources
-Functioncc5d0: ; cc5d0 (33:45d0)
- callab Functionf971
- ld a, c
- ld [$d416], a
- ret
-
-; no known jump sources
-Functioncc5db: ; cc5db (33:45db)
- ret
-
-; no known jump sources
-Functioncc5dc: ; cc5dc (33:45dc)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [CurPartySpecies] ; $d108
- push af
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc604
- ld a, [TempBattleMonSpecies] ; $d205
- ld [CurPartySpecies], a ; $d108
- ld hl, BattleMonDVs ; $c632 (aliases: BattleMonAtkDefDV)
- ld a, $2d
- call Predef
- ld de, $8000
- ld a, $3c
- call Predef
- jr .asm_cc61a
-.asm_cc604
- ld a, [TempEnemyMonSpecies] ; $d204
- ld [CurPartySpecies], a ; $d108
- ld hl, EnemyMonAtkDefDV ; $d20c (aliases: EnemyMonDVs, EnemyMonMovesEnd)
- ld a, $2d
- call Predef
- ld de, $8000
- ld a, $3d
- call Predef
-.asm_cc61a
- pop af
- ld [CurPartySpecies], a ; $d108
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; no known jump sources
-Functioncc622: ; cc622 (33:4622)
- ld de, $8000
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc635
- ld hl, $9000
- ld b, $0
- ld c, $31
- call Request2bpp
- ret
-.asm_cc635
- ld hl, $9310
- ld b, $0
- ld c, $24
- call Request2bpp
- ret
-
-; no known jump sources
-Functioncc640: ; cc640 (33:4640)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- xor a
- call GetSRAMBank
- ld hl, $a000
- ld bc, $310
-.asm_cc651
- xor a
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_cc651
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc68f
- ld hl, $6a80
- ld de, $a130
- call Functioncc6c6
- ld hl, $6a90
- ld de, $a1a0
- call Functioncc6c6
- ld hl, $6aa0
- ld de, $a140
- call Functioncc6c6
- ld hl, $6ab0
- ld de, $a1b0
- call Functioncc6c6
- ld hl, $9000
- ld de, $a000
- ld bc, $3331
- call Request2bpp
- jr .asm_cc6bf
-.asm_cc68f
- ld hl, $6ac0
- ld de, $a100
- call Functioncc6c6
- ld hl, $6ad0
- ld de, $a160
- call Functioncc6c6
- ld hl, $6ae0
- ld de, $a110
- call Functioncc6c6
- ld hl, $6af0
- ld de, $a170
- call Functioncc6c6
- ld hl, $9310
- ld de, $a000
- ld bc, $3324
- call Request2bpp
-.asm_cc6bf
- call CloseSRAM
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; known jump sources: cc663 (33:4663), cc66c (33:466c), cc675 (33:4675), cc67e (33:467e), cc695 (33:4695), cc69e (33:469e), cc6a7 (33:46a7), cc6b0 (33:46b0)
-Functioncc6c6: ; cc6c6 (33:46c6)
- ld bc, $10
- ld a, $31
- call FarCopyBytes
- ret
-
-; no known jump sources
-Functioncc6cf: ; cc6cf (33:46cf)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- xor a
- call GetSRAMBank
- call Functioncc6e7
- call Request2bpp
- call CloseSRAM
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; known jump sources: cc6da (33:46da), cc740 (33:4740)
-Functioncc6e7: ; cc6e7 (33:46e7)
- ld hl, $a000
- ld bc, $310
-.asm_cc6ed
- xor a
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_cc6ed
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc709
- ld de, $a1a0
- call Functioncc719
- ld hl, $9000
- ld de, $a000
- ld bc, $3331
- ret
-.asm_cc709
- ld de, $a160
- call Functioncc719
- ld hl, $9310
- ld de, $a000
- ld bc, $3324
- ret
-
-; known jump sources: cc6fc (33:46fc), cc70c (33:470c)
-Functioncc719: ; cc719 (33:4719)
- ld hl, $4725
- ld bc, $10
- ld a, $33
- call FarCopyBytes
- ret
-; cc725 (33:4725)
-
-INCBIN "baserom.gbc",$cc725,$cc735 - $cc725
-
-; no known jump sources
-Functioncc735: ; cc735 (33:4735)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- xor a
- call GetSRAMBank
- call Functioncc6e7
- ld hl, $8000
- call Request2bpp
- call CloseSRAM
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; no known jump sources
-Functioncc750: ; cc750 (33:4750)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [CurPartySpecies] ; $d108
- push af
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc768
- callab Function3f486
- jr .asm_cc76e
-.asm_cc768
- callab Function3f447
-.asm_cc76e
- pop af
- ld [CurPartySpecies], a ; $d108
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; no known jump sources
-Functioncc776: ; cc776 (33:4776)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [CurPartySpecies] ; $d108
- push af
- ld a, [$c689]
- ld [CurPartySpecies], a ; $d108
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc79e
- ld hl, BattleMonDVs ; $c632 (aliases: BattleMonAtkDefDV)
- ld a, $2d
- call Predef
- ld de, $9000
- ld a, $3c
- call Predef
- jr .asm_cc7ae
-.asm_cc79e
- ld hl, EnemyMonAtkDefDV ; $d20c (aliases: EnemyMonDVs, EnemyMonMovesEnd)
- ld a, $2d
- call Predef
- ld de, $9310
- ld a, $3d
- call Predef
-.asm_cc7ae
- pop af
- ld [CurPartySpecies], a ; $d108
- ld b, $1
- call GetSGBLayout
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; no known jump sources
-Functioncc7bb: ; cc7bb (33:47bb)
- xor a
- ld [hOAMUpdate], a ; $ff00+$d8
- ret
-
-; no known jump sources
-Functioncc7bf: ; cc7bf (33:47bf)
- ld a, $1
- ld [hOAMUpdate], a ; $ff00+$d8
- ret
-
-; no known jump sources
-Functioncc7c4: ; cc7c4 (33:47c4)
- ld hl, $d40f
- set 3, [hl]
- ret
-
-; no known jump sources
-Functioncc7ca: ; cc7ca (33:47ca)
- ret
-
-; no known jump sources
-Functioncc7cb: ; cc7cb (33:47cb)
- ret
-
-; no known jump sources
-Functioncc7cc: ; cc7cc (33:47cc)
- ret
-
-; no known jump sources
-Functioncc7cd: ; cc7cd (33:47cd)
- call Function3af0
- ld e, a
- srl a
- srl a
- ld [$c2be], a
- call Functioncc7fc
- and $3
- ld [CryTracks], a ; $c2bd
- ld e, a
- ld d, $0
- ld hl, $47f8
- add hl, de
- ld a, [hl]
- ld [$c2bc], a
- call Function3af0
- ld e, a
- ld d, $0
- callab PlayStereoSFX
- ret
-; cc7f8 (33:47f8)
-
-INCBIN "baserom.gbc",$cc7f8,$cc7fc - $cc7f8
-
-; known jump sources: cc7d8 (33:47d8)
-Functioncc7fc: ; cc7fc (33:47fc)
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr nz, .asm_cc803
- ld a, e
- ret
-.asm_cc803
- ld a, e
- xor $1
- ret
-
-; no known jump sources
-Functioncc807: ; cc807 (33:4807)
- call Function3af0
- and $3
- ld e, a
- ld d, $0
- ld hl, $4871
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr nz, .asm_cc82c
- ld a, $f0
- ld [CryTracks], a ; $c2bd
- ld a, [BattleMonSpecies] ; $c62c
- jr .asm_cc834
-.asm_cc82c
- ld a, $f
- ld [CryTracks], a ; $c2bd
- ld a, [EnemyMon] ; $d206 (aliases: EnemyMonSpecies)
-.asm_cc834
- push hl
- call Function37f3
- pop hl
- jr c, .asm_cc86d
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- push hl
- ld hl, CryPitch ; $c2b0
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- ld a, l
- ld [CryPitch], a ; $c2b0
- ld a, h
- ld [CryEcho], a ; $c2b1
- pop hl
- ld a, [hli]
- ld c, a
- ld b, [hl]
- ld hl, CryLength ; $c2b2
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- ld a, l
- ld [CryLength], a ; $c2b2
- ld a, h
- ld [$c2b3], a
- ld a, $1
- ld [$c2bc], a
- callab PlayCry
-.asm_cc86d
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-; cc871 (33:4871)
-
-INCBIN "baserom.gbc",$cc871,$cc881 - $cc871
-
-
-Functioncc881: ; cc881
- ld a, [$cfca]
- cp $1
- jr z, .asm_cc88b
- cp $4
- ret nz
-
-.asm_cc88b
- ld a, [TypeModifier]
- and $7f
- ret z
- cp $a
- ld de, $00ac
- jr z, .asm_cc8a0
- ld de, $00ad
- jr nc, .asm_cc8a0
- ld de, $00ab
-
-.asm_cc8a0
- call PlaySFX
- ret
-; cc8a4
-
-Functioncc8a4: ; cc8a4
- ld a, [hCGB]
- and a
- jr nz, .asm_cc8be
- ld a, [hSGB]
- and a
- ld a, $e0
- jr z, .asm_cc8b2
- ld a, $f0
-
-.asm_cc8b2
- ld [$cfc8], a
- ld a, $e4
- ld [$cfc7], a
- ld [$cfc9], a
- ret
-
-.asm_cc8be
- ld a, $e4
- ld [$cfc7], a
- ld [$cfc8], a
- ld [$cfc9], a
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- ret
-; cc8d3
-
-Functioncc8d3: ; cc8d3
- ld hl, LYOverrides
- ld bc, $0354
-.asm_cc8d9
- ld [hl], $0
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .asm_cc8d9
- ld hl, FXAnimIDLo
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $506f
- add hl, de
- add hl, de
- call Function3ae1
- call Functioncc8a4
- call Functioncc1fb
- ret
-; cc8f6
-
-Functioncc8f6: ; cc8f6
- call WaitTop
- ld a, $e4
- ld [$cfc7], a
- ld [$cfc8], a
- ld [$cfc9], a
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- xor a
- ld [hSCX], a
- ld [hSCY], a
- call Functioncc1fb
- ld a, $1
- ld [hBGMapMode], a
- ret
-; cc91a
-
-Functioncc91a: ; cc91a
- ld [rBGP], a
- ld a, [hCGB]
- and a
- ret z
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $d080
- ld de, $d000
- ld a, [rBGP]
- ld b, a
- ld c, $7
- call CopyPals
- ld hl, $d0c0
- ld de, MartPointer
- ld a, [rBGP]
- ld b, a
- ld c, $2
- call CopyPals
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; cc94b
-
-Functioncc94b: ; cc94b
- ld [rOBP0], a
- ld a, [hCGB]
- and a
- ret z
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $d0d0
- ld de, $d050
- ld a, [rOBP0]
- ld b, a
- ld c, $2
- call CopyPals
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; cc96e
-
-Functioncc96e: ; cc96e
- ld a, $0
- ld [$d418], a
- ld hl, $d30a
- ld e, $a
-.asm_cc978
- ld a, [hl]
- and a
- jr z, .asm_cc98a
- ld c, l
- ld b, h
- push hl
- push de
- call Functionccfbe
- call Functioncca09
- pop de
- pop hl
- jr c, .asm_cc9a0
-
-.asm_cc98a
- ld bc, $0018
- add hl, bc
- dec e
- jr nz, .asm_cc978
- ld a, [$d418]
- ld l, a
- ld h, $c4
-.asm_cc997
- ld a, l
- cp $a0
- jr nc, .asm_cc9a0
- xor a
- ld [hli], a
- jr .asm_cc997
-
-.asm_cc9a0
- ret
-; cc9a1
-
-
-; known jump sources: cc437 (33:4437)
-Functioncc9a1: ; cc9a1 (33:49a1)
- ld hl, $d30a
- ld e, $a
-.asm_cc9a6
- ld a, [hl]
- and a
- jr z, .asm_cc9b3
- ld bc, $18
- add hl, bc
- dec e
- jr nz, .asm_cc9a6
- scf
- ret
-.asm_cc9b3
- ld c, l
- ld b, h
- ld hl, $d40e
- inc [hl]
- call Functioncc9c4
- ret
-
-
-Functioncc9bd: ; cc9bd
- ld hl, $0000
- add hl, bc
- ld [hl], $0
- ret
-; cc9c4
-
-
-; known jump sources: cc9b9 (33:49b9)
-Functioncc9c4: ; cc9c4 (33:49c4)
- ld a, [$d419]
- ld e, a
- ld d, $0
- ld hl, $4b56
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- ld e, l
- ld d, h
- ld hl, $0
- add hl, bc
- ld a, [$d40e]
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- call Functionccb31
- ld [hli], a
- ld a, [$d41a]
- ld [hli], a
- ld a, [$d41b]
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld a, [$d41c]
- ld [hli], a
- xor a
- ld [hli], a
- dec a
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ret
-
-
-Functioncca09: ; cca09
- call Functionccaaa
- call Functionce7d1
- cp EGG
- jp z, .asm_ccaa5
- cp NUM_POKEMON + 1
- jp z, .asm_ccaa2
- push af
- ld hl, $d419
- ld a, [$d420]
- xor [hl]
- and $e0
- ld [hl], a
- pop af
- push bc
- call Functionce83c
- ld a, [$d41b]
- add [hl]
- ld [$d41b], a
- inc hl
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$d418]
- ld e, a
- ld d, $c4
-.asm_cca3c
- ld a, [$d41d]
- ld b, a
- ld a, [$d41f]
- add b
- ld b, a
- push hl
- ld a, [hl]
- ld hl, $d419
- bit 6, [hl]
- jr z, .asm_cca53
- add $8
- xor $ff
- inc a
-
-.asm_cca53
- pop hl
- add b
- ld [de], a
- inc hl
- inc de
- ld a, [$d41c]
- ld b, a
- ld a, [$d41e]
- add b
- ld b, a
- push hl
- ld a, [hl]
- ld hl, $d419
- bit 5, [hl]
- jr z, .asm_cca6f
- add $8
- xor $ff
- inc a
-
-.asm_cca6f
- pop hl
- add b
- ld [de], a
- inc hl
- inc de
- ld a, [$d41b]
- add $31
- add [hl]
- ld [de], a
- inc hl
- inc de
- ld a, [$d419]
- ld b, a
- ld a, [hl]
- xor b
- and $e0
- ld b, a
- ld a, [hl]
- and $10
- or b
- ld b, a
- ld a, [OTPartyMon6Nickname]
- and $f
- or b
- ld [de], a
- inc hl
- inc de
- ld a, e
- ld [$d418], a
- cp $a0
- jr nc, .asm_ccaa7
- dec c
- jr nz, .asm_cca3c
- pop bc
- jr .asm_ccaa5
-
-.asm_ccaa2
- call Functioncc9bd
-
-.asm_ccaa5
- and a
- ret
-
-.asm_ccaa7
- pop bc
- scf
- ret
-; ccaaa
-
-Functionccaaa: ; ccaaa
- ld hl, $0001
- add hl, bc
- ld a, [hl]
- and $80
- ld [$d419], a
- xor a
- ld [$d420], a
- ld hl, $0005
- add hl, bc
- ld a, [hl]
- ld [OTPartyMon6Nickname], a
- ld hl, $0002
- add hl, bc
- ld a, [hl]
- ld [$d41a], a
- ld hl, $0006
- add hl, bc
- ld a, [hli]
- ld [$d41b], a
- ld a, [hli]
- ld [$d41c], a
- ld a, [hli]
- ld [$d41d], a
- ld a, [hli]
- ld [$d41e], a
- ld a, [hli]
- ld [$d41f], a
- ld a, [hBattleTurn]
- and a
- ret z
- ld hl, $0001
- add hl, bc
- ld a, [hl]
- ld [$d419], a
- bit 0, [hl]
- ret z
- ld hl, $0007
- add hl, bc
- ld a, [hli]
- ld d, a
- ld a, $b4
- sub d
- ld [$d41c], a
- ld a, [hli]
- ld d, a
- ld a, [$d41a]
- cp $ff
- jr nz, .asm_ccb09
- ld a, $28
- add d
- jr .asm_ccb26
-
-.asm_ccb09
- sub d
- push af
- ld a, [FXAnimIDHi]
- or a
- jr nz, .asm_ccb25
- ld a, [FXAnimIDLo]
- cp $86
- jr z, .asm_ccb20
- cp $87
- jr z, .asm_ccb20
- cp $d0
- jr nz, .asm_ccb25
-
-.asm_ccb20
- pop af
- sub $8
- jr .asm_ccb26
-
-.asm_ccb25
- pop af
-
-.asm_ccb26
- ld [$d41d], a
- ld a, [hli]
- xor $ff
- inc a
- ld [$d41e], a
- ret
-; ccb31
-
-
-; known jump sources: cc9ed (33:49ed)
-Functionccb31: ; ccb31 (33:4b31)
- push hl
- push bc
- ld hl, $d300
- ld b, a
- ld c, $5
-.asm_ccb39
- ld a, [hli]
- cp b
- jr z, .asm_ccb44
- inc hl
- dec c
- jr nz, .asm_ccb39
- xor a
- jr .asm_ccb45
-.asm_ccb44
- ld a, [hl]
-.asm_ccb45
- pop bc
- pop hl
- ret
-
-
-Functionccb48: ; ccb48
- callab Functionc8000
- ret
-; ccb4f
-
-
-; known jump sources: cc453 (33:4453)
-Functionccb4f: ; ccb4f (33:4b4f)
- callab Functionc801a
- ret
-; ccb56 (33:4b56)
-
-INCBIN "baserom.gbc",$ccb56,$ccfbe - $ccb56
-
-
-Functionccfbe: ; ccfbe
- ld hl, $0004
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $4fce
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; ccfce
-
-
-; no known jump sources
-Jumptable_ccfce: ; ccfce (33:4fce)
- dw Functioncd06e
- dw Functioncd12a
- dw Functioncd146
- dw Functioncd0e3
- dw Functioncd0a6
- dw Functioncd081
- dw Functioncd079
- dw Functioncd2be
- dw Functioncd306
- dw Functioncd3ae
- dw Functioncd3f2
- dw Functioncd478
- dw Functioncd5e9
- dw Functioncd66a
- dw Functioncd6e3
- dw Functioncd71a
- dw Functioncd284
- dw Functioncd777
- dw Functioncd15c
- dw Functioncd212
- dw Functioncd7a4
- dw Functioncd80c
- dw Functioncd824
- dw Functioncd89a
- dw Functioncd900
- dw Functioncd954
- dw Functioncdafa
- dw Functioncdb06
- dw Functioncda0a
- dw Functioncdb80
- dw Functioncdca6
- dw Functioncda31
- dw Functioncda4d
- dw Functioncdcc3
- dw Functioncdd2a
- dw Functioncdd90
- dw Functioncddf9
- dw Functioncde28
- dw Functioncde54
- dw Functioncde6b
- dw Functioncde89
- dw Functioncdedd
- dw Functioncdf59
- dw Functionce063
- dw Functionce0c5
- dw Functioncdf1b
- dw Functionce10e
- dw Functionce15c
- dw Functionce1e7
- dw Functionce226
- dw Functionce255
- dw Functionce2cc
- dw Functioncdf8c
- dw Functionce00b
- dw Functionce2fd
- dw Functionce35f
- dw Functionce389
- dw Functionce3b4
- dw Functionce3d2
- dw Functionce3ff
- dw Functioncdfcb
- dw Functionce416
- dw Functionce43a
- dw Functioncdad6
- dw Functionce49c
- dw Functionce4dc
- dw Functionce1b0
- dw Functionce508
- dw Functionce532
- dw Functionce55b
- dw Functionce593
- dw Functionce5b4
- dw Functionce5dc
- dw Functionce5ee
- dw Functionce62f
- dw Functionce688
- dw Functionce6b3
- dw Functionce6d2
- dw Functioncd58a
- dw Functionce6bf
-
-
-; no known jump sources
-Functioncd06e: ; cd06e (33:506e)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd071: ; cd071 (33:5071)
- dw Functioncd078
- dw Functioncd075
-
-
-; no known jump sources
-Functioncd075: ; cd075 (33:5075)
- call Functioncc9bd
-
-; no known jump sources
-Functioncd078: ; cd078 (33:5078)
- ret
-
-; no known jump sources
-Functioncd079: ; cd079 (33:5079)
- call Functioncd081
- ret c
- call Functioncc9bd
- ret
-
-; known jump sources: cd079 (33:5079), cd17e (33:517e), cd22b (33:522b)
-Functioncd081: ; cd081 (33:5081)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- ret nc
- add $2
- ld [hl], a
- ld hl, $8
- add hl, bc
- dec [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- scf
- ret
-
-; no known jump sources
-Functioncd0a6: ; cd0a6 (33:50a6)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr c, .asm_cd0b3
- call Functioncc9bd
- ret
-.asm_cd0b3
- add $2
- ld [hl], a
- ld hl, $8
- add hl, bc
- dec [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- inc [hl]
- inc [hl]
- ld d, $10
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- sra a
- sra a
- sra a
- sra a
- ld [hl], a
- ret
-
-; known jump sources: cdafa (33:5afa)
-Functioncd0e3: ; cd0e3 (33:50e3)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd0e6: ; cd0e6 (33:50e6)
- dw Functioncd0ea
- dw Functioncd106
-
-
-; no known jump sources
-Functioncd0ea: ; cd0ea (33:50ea)
- call Functionce72c
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- ld a, $0
- jr z, .asm_cd0f9
- ld a, $20
-.asm_cd0f9
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-; no known jump sources
-Functioncd106: ; cd106 (33:5106)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncd12a: ; cd12a (33:512a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd12d: ; cd12d (33:512d)
- dw Functioncd135
- dw Functioncd131
-
-
-; no known jump sources
-Functioncd131: ; cd131 (33:5131)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd135: ; cd135 (33:5135)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- ret nc
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-
-; no known jump sources
-Functioncd146: ; cd146 (33:5146)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr nc, .asm_cd158
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-.asm_cd158
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd15c: ; cd15c (33:515c)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd15f: ; cd15f (33:515f)
- dw Functioncd177
- dw Functioncd17e
- dw Functioncd1dc
- dw Functioncd196
- dw Functioncd1a7
- dw Functioncd1dc
- dw Functioncd1d2
- dw Functioncd1dd
- dw Functioncd1ee
- dw Functioncd1dc
- dw Functioncd1ee
- dw Functioncd20e
-
-
-; no known jump sources
-Functioncd177: ; cd177 (33:5177)
- call Functioncd249
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd17e: ; cd17e (33:517e)
- call Functioncd081
- ret c
- ld hl, $a
- add hl, bc
- ld a, [hl]
- ld hl, $8
- add hl, bc
- add [hl]
- ld [hl], a
- ld a, $b
- call Functionce7bf
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd196: ; cd196 (33:5196)
- call Functionce72c
- ld a, $9
- call Functionce7bf
- ld hl, $f
- add hl, bc
- ld [hl], $0
- inc hl
- ld [hl], $10
-
-; no known jump sources
-Functioncd1a7: ; cd1a7 (33:51a7)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec a
- ld [hl], a
- and $1f
- ret nz
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- sub $4
- ld [hl], a
- ret nz
- ld a, $c
- call Functionce7bf
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd1d2: ; cd1d2 (33:51d2)
- ld a, $d
- call Functionce7bf
- ld hl, $e
- add hl, bc
- dec [hl]
-
-; no known jump sources
-Functioncd1dc: ; cd1dc (33:51dc)
- ret
-
-; no known jump sources
-Functioncd1dd: ; cd1dd (33:51dd)
- call Functioncd249
- ld a, $a
- call Functionce7bf
- call Functionce72c
- ld hl, $10
- add hl, bc
- ld [hl], $20
-
-; no known jump sources
-Functioncd1ee: ; cd1ee (33:51ee)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec a
- ld [hl], a
- and $1f
- jr z, Functioncd20e
- and $f
- ret nz
- call Functionce72c
- ret
-
-; known jump sources: cd205 (33:5205)
-Functioncd20e: ; cd20e (33:520e)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd212: ; cd212 (33:5212)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd215: ; cd215 (33:5215)
- dw Functioncd21b
- dw Functioncd222
- dw Functioncd232
-
-
-; no known jump sources
-Functioncd21b: ; cd21b (33:521b)
- call Functioncd249
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd222: ; cd222 (33:5222)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $70
- jr nc, .asm_cd22f
- call Functioncd081
- ret
-.asm_cd22f
- call Functionce72c
-
-; no known jump sources
-Functioncd232: ; cd232 (33:5232)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $80
- jr nc, .asm_cd245
- add $4
- ld [hl], a
- ld hl, $7
- add hl, bc
- dec [hl]
- dec [hl]
- ret
-.asm_cd245
- call Functioncc9bd
- ret
-
-; known jump sources: cd177 (33:5177), cd1dd (33:51dd), cd21b (33:521b)
-Functioncd249: ; cd249 (33:5249)
- ld hl, $526c
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [CurItem] ; $d106
- ld e, a
- pop af
- ld [rSVBK], a ; $ff00+$70
-.asm_cd25a
- ld a, [hli]
- cp $ff
- jr z, .asm_cd265
- cp e
- jr z, .asm_cd265
- inc hl
- jr .asm_cd25a
-.asm_cd265
- ld a, [hl]
- ld hl, $5
- add hl, bc
- ld [hl], a
- ret
-; cd26c (33:526c)
-
-INCBIN "baserom.gbc",$cd26c,$cd284 - $cd26c
-
-; no known jump sources
-Functioncd284: ; cd284 (33:5284)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd287: ; cd287 (33:5287)
- dw Functioncd291
- dw Functioncd2a0
- dw Functioncd2b1
- dw Functioncd2b5
- dw Functioncd2bd
-
-
-; no known jump sources
-Functioncd291: ; cd291 (33:5291)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- swap a
- and $f
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncd2a0: ; cd2a0 (33:52a0)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- ret nc
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-
-; no known jump sources
-Functioncd2b1: ; cd2b1 (33:52b1)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd2b5: ; cd2b5 (33:52b5)
- call Functionce72c
- ld a, $f
- call Functionce7bf
-
-; no known jump sources
-Functioncd2bd: ; cd2bd (33:52bd)
- ret
-
-; no known jump sources
-Functioncd2be: ; cd2be (33:52be)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd2c1: ; cd2c1 (33:52c1)
- dw Functioncd2c5
- dw Functioncd2d1
-
-
-; no known jump sources
-Functioncd2c5: ; cd2c5 (33:52c5)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $30
- inc hl
- ld [hl], $48
-
-; no known jump sources
-Functioncd2d1: ; cd2d1 (33:52d1)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3f
- ret nz
- ld hl, $f
- add hl, bc
- ld [hl], $20
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- sub [hl]
- jr z, .asm_cd302
- jr c, .asm_cd302
- ld hl, $10
- add hl, bc
- ld [hl], a
- ret
-.asm_cd302
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd306: ; cd306 (33:5306)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd309: ; cd309 (33:5309)
- dw Functioncd311
- dw Functioncd321
- dw Functioncd32a
- dw Functioncd37d
-
-
-; no known jump sources
-Functioncd311: ; cd311 (33:5311)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $80
- jr nc, .asm_cd31e
- call Functioncd38e
- ret
-.asm_cd31e
- call Functionce72c
-
-; no known jump sources
-Functioncd321: ; cd321 (33:5321)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
-
-; no known jump sources
-Functioncd32a: ; cd32a (33:532a)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, .asm_cd363
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- call Functionce732
- sub $18
- sra a
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $f
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-.asm_cd363
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- jr z, .asm_cd37a
- sub $10
- ld d, a
- ld a, [hl]
- and $f
- or d
- ld [hl], a
- ld hl, $e
- add hl, bc
- dec [hl]
- ret
-.asm_cd37a
- call Functionce72c
-
-; no known jump sources
-Functioncd37d: ; cd37d (33:537d)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $b0
- jr c, .asm_cd38a
- call Functioncc9bd
- ret
-.asm_cd38a
- call Functioncd38e
- ret
-
-; known jump sources: cd31a (33:531a), cd38a (33:538a)
-Functioncd38e: ; cd38e (33:538e)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $7
- add hl, bc
- add [hl]
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld e, a
- srl e
- ld hl, $8
- add hl, bc
-.asm_cd3a9
- dec [hl]
- dec e
- jr nz, .asm_cd3a9
- ret
-
-; no known jump sources
-Functioncd3ae: ; cd3ae (33:53ae)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd3b1: ; cd3b1 (33:53b1)
- dw Functioncd3b7
- dw Functioncd3cc
- dw Functioncd3ee
-
-
-; no known jump sources
-Functioncd3b7: ; cd3b7 (33:53b7)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $9
- add hl, bc
- ld [hl], a
-
-; no known jump sources
-Functioncd3cc: ; cd3cc (33:53cc)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd3d6
- dec [hl]
- ret
-.asm_cd3d6
- ld hl, $b
- add hl, bc
- ld a, [hl]
- swap a
- and $f
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncd3ee: ; cd3ee (33:53ee)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd3f2: ; cd3f2 (33:53f2)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd3f5: ; cd3f5 (33:53f5)
- dw Functioncd409
- dw Functioncd45c
- dw Functioncd467
- dw Functioncd472
- dw Functioncd462
- dw Functioncd46d
- dw Functioncd477
- dw Functioncd41d
- dw Functioncd437
- dw Functioncd458
-
-
-; no known jump sources
-Functioncd409: ; cd409 (33:5409)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- cp $7
- jr z, Functioncd41d
- ld a, $11
- call Functionce7bf
- ret
-
-; known jump sources: cd415 (33:5415)
-Functioncd41d: ; cd41d (33:541d)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr nc, .asm_cd42f
- add $2
- ld [hl], a
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-.asm_cd42f
- call Functionce72c
- ld a, $10
- call Functionce7bf
-
-; no known jump sources
-Functioncd437: ; cd437 (33:5437)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncd458: ; cd458 (33:5458)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd45c: ; cd45c (33:545c)
- ld hl, $a
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functioncd462: ; cd462 (33:5462)
- ld hl, $a
- add hl, bc
- inc [hl]
-
-; no known jump sources
-Functioncd467: ; cd467 (33:5467)
- ld hl, $9
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functioncd46d: ; cd46d (33:546d)
- ld hl, $a
- add hl, bc
- inc [hl]
-
-; no known jump sources
-Functioncd472: ; cd472 (33:5472)
- ld hl, $9
- add hl, bc
- inc [hl]
-
-; no known jump sources
-Functioncd477: ; cd477 (33:5477)
- ret
-
-; no known jump sources
-Functioncd478: ; cd478 (33:5478)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd47b: ; cd47b (33:547b)
- dw Functioncd48d
- dw Functioncd496
- dw Functioncd4ee
- dw Functioncd53a
- dw Functioncd545
- dw Functioncd545
- dw Functioncd545
- dw Functioncd545
- dw Functioncd549
-
-
-; no known jump sources
-Functioncd48d: ; cd48d (33:548d)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $40
-
-; no known jump sources
-Functioncd496: ; cd496 (33:5496)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $30
- jr nc, .asm_cd4bc
- call Functionce72c
- xor a
- ld hl, $f
- add hl, bc
- ld [hli], a
- ld [hl], a
- ld a, $17
- call Functionce7bf
- ld hl, $b
- add hl, bc
- bit 6, [hl]
- ret z
- ld hl, $d
- add hl, bc
- ld [hl], $5
- ret
-.asm_cd4bc
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3f
- ld d, a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- call Functioncd557
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncd4ee: ; cd4ee (33:54ee)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $20
- jr nz, .asm_cd4fb
- call Functioncc9bd
- ret
-.asm_cd4fb
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- bit 6, [hl]
- jr nz, .asm_cd519
- ld hl, $f
- add hl, bc
- inc [hl]
- jr .asm_cd51e
-.asm_cd519
- ld hl, $f
- add hl, bc
- dec [hl]
-.asm_cd51e
- ld de, $80
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $a
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncd53a: ; cd53a (33:553a)
- ld a, $16
- call Functionce7bf
- ld hl, $1
- add hl, bc
- res 5, [hl]
-
-; no known jump sources
-Functioncd545: ; cd545 (33:5545)
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd549: ; cd549 (33:5549)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $c0
- ret nc
- ld a, $8
- call Functionce70a
- ret
-
-; known jump sources: cd4d2 (33:54d2), cd5cd (33:55cd)
-Functioncd557: ; cd557 (33:5557)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- bit 7, a
- jr nz, .asm_cd574
- cp $20
- jr nc, .asm_cd570
- cp $18
- jr nc, .asm_cd56c
- ld de, $200
- ret
-.asm_cd56c
- ld de, $180
- ret
-.asm_cd570
- ld de, $100
- ret
-.asm_cd574
- and $3f
- cp $20
- jr nc, .asm_cd586
- cp $18
- jr nc, .asm_cd582
- ld de, $fe00
- ret
-.asm_cd582
- ld de, $fe80
- ret
-.asm_cd586
- ld de, rJOYP ; $ff00
- ret
-
-; no known jump sources
-Functioncd58a: ; cd58a (33:558a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd58d: ; cd58d (33:558d)
- dw Functioncd591
- dw Functioncd5aa
-
-
-; no known jump sources
-Functioncd591: ; cd591 (33:5591)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $40
- rlca
- rlca
- add $19
- ld hl, $3
- add hl, bc
- ld [hl], a
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $40
-
-; no known jump sources
-Functioncd5aa: ; cd5aa (33:55aa)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $30
- jr nc, .asm_cd5b7
- call Functioncc9bd
- ret
-.asm_cd5b7
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3f
- ld d, a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- call Functioncd557
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncd5e9: ; cd5e9 (33:55e9)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd5ec: ; cd5ec (33:55ec)
- dw Functioncd5f2
- dw Functioncd5fb
- dw Functioncd61b
-
-
-; no known jump sources
-Functioncd5f2: ; cd5f2 (33:55f2)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $c
-
-; no known jump sources
-Functioncd5fb: ; cd5fb (33:55fb)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd60d
- dec [hl]
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-.asm_cd60d
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
- ld a, $22
- call Functionce7bf
-
-; no known jump sources
-Functioncd61b: ; cd61b (33:561b)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $98
- jr nc, .asm_cd63f
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- ld h, [hl]
- ld l, a
- ld de, $60
- add hl, de
- ld e, l
- ld d, h
- ld hl, $f
- add hl, bc
- ld [hl], e
- ld hl, $7
- add hl, bc
- ld [hl], d
-.asm_cd63f
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $20
- ret c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- ld e, a
- ld d, $ff
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $8
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $10
- add hl, bc
- ld [hl], e
- ld hl, $8
- add hl, bc
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncd66a: ; cd66a (33:566a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd66d: ; cd66d (33:566d)
- dw Functioncd677
- dw Functioncd687
- dw Functioncd6c5
- dw Functioncd6c6
- dw Functioncd6d6
-
-
-; no known jump sources
-Functioncd677: ; cd677 (33:5677)
- call Functionce72c
- ld a, $42
- ld [hLCDStatCustom], a ; $ff00+$c6
- ld a, $58
- ld [$FF00+$c7], a
- ld a, $5e
- ld [$FF00+$c8], a
- ret
-
-; no known jump sources
-Functioncd687: ; cd687 (33:5687)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp e
- jr nc, .asm_cd69b
- call Functionce72c
- xor a
- ld [$FF00+$c7], a
- ret
-.asm_cd69b
- dec a
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- add [hl]
- sub $10
- ret c
- ld [$FF00+$c7], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- inc a
- and $7
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- inc [hl]
-
-; no known jump sources
-Functioncd6c5: ; cd6c5 (33:56c5)
- ret
-
-; no known jump sources
-Functioncd6c6: ; cd6c6 (33:56c6)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $70
- jr c, asm_cd6da
- xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
- ld [$FF00+$c7], a
- ld [$FF00+$c8], a
-
-; no known jump sources
-Functioncd6d6: ; cd6d6 (33:56d6)
- call Functioncc9bd
- ret
-asm_cd6da: ; cd6da (33:56da)
- inc a
- inc a
- ld [hl], a
- sub $10
- ret c
- ld [$FF00+$c7], a
- ret
-
-; no known jump sources
-Functioncd6e3: ; cd6e3 (33:56e3)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd6e6: ; cd6e6 (33:56e6)
- dw Functioncd6ea
- dw Functioncd6f7
-
-
-; no known jump sources
-Functioncd6ea: ; cd6ea (33:56ea)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, $24
- add [hl]
- call Functionce7bf
-
-; no known jump sources
-Functioncd6f7: ; cd6f7 (33:56f7)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $b8
- jr c, .asm_cd704
- call Functioncc9bd
- ret
-.asm_cd704
- ld a, $2
- call Functionce70a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- ld d, $8
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncd71a: ; cd71a (33:571a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd71d: ; cd71d (33:571d)
- dw Functioncd725
- dw Functioncd728
- dw Functioncd763
- dw Functioncd776
-
-
-; no known jump sources
-Functioncd725: ; cd725 (33:5725)
- call Functionce72c
-
-; no known jump sources
-Functioncd728: ; cd728 (33:5728)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_cd747
- ld a, $2
- call Functionce70a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- ld d, $8
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-.asm_cd747
- call Functionce72c
- ld a, $28
- call Functionce7bf
- ld hl, $a
- add hl, bc
- ld [hl], $0
- ld hl, $8
- add hl, bc
- ld [hl], $30
- ld hl, $1
- add hl, bc
- ld a, [hl]
- and $1
- ld [hl], a
-
-; no known jump sources
-Functioncd763: ; cd763 (33:5763)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $18
- jr nc, .asm_cd76e
- inc [hl]
- ret
-.asm_cd76e
- call Functionce72c
- ld a, $29
- call Functionce7bf
-
-; no known jump sources
-Functioncd776: ; cd776 (33:5776)
- ret
-
-; no known jump sources
-Functioncd777: ; cd777 (33:5777)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $38
- jr c, .asm_cd784
- call Functioncc9bd
- ret
-.asm_cd784
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld l, [hl]
- ld h, a
- ld de, $80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $f
- add hl, bc
- ld [hl], e
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $9
- add hl, bc
- ld a, [hl]
- xor $10
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncd7a4: ; cd7a4 (33:57a4)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd7a7: ; cd7a7 (33:57a7)
- dw Functioncd7ab
- dw Functioncd7d2
-
-
-; no known jump sources
-Functioncd7ab: ; cd7ab (33:57ab)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- sla a
- sla a
- sla a
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld [hl], $1
-
-; no known jump sources
-Functioncd7d2: ; cd7d2 (33:57d2)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_cd7de
- call Functioncc9bd
- ret
-.asm_cd7de
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld hl, $10
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- xor $1
- ld [hl], a
- ret z
- ld hl, $10
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functioncd80c: ; cd80c (33:580c)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd80f: ; cd80f (33:580f)
- dw Functioncd81f
- dw Functioncd817
- dw Functioncd81f
- dw Functioncd820
-
-
-; no known jump sources
-Functioncd817: ; cd817 (33:5817)
- call Functionce72c
- ld a, $35
- call Functionce7bf
-
-; no known jump sources
-Functioncd81f: ; cd81f (33:581f)
- ret
-
-; no known jump sources
-Functioncd820: ; cd820 (33:5820)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd824: ; cd824 (33:5824)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd827: ; cd827 (33:5827)
- dw Functioncd835
- dw Functioncd860
- dw Functioncd88f
- dw Functioncd88f
- dw Functioncd88f
- dw Functioncd88f
- dw Functioncd893
-
-
-; no known jump sources
-Functioncd835: ; cd835 (33:5835)
- call Functionce72c
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- jr nz, .asm_cd852
- ld hl, $f
- add hl, bc
- ld [hl], $10
- jr .asm_cd858
-.asm_cd852
- ld hl, $f
- add hl, bc
- ld [hl], $30
-.asm_cd858
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-; no known jump sources
-Functioncd860: ; cd860 (33:5860)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- bit 7, a
- jr nz, .asm_cd87e
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc a
- jr .asm_cd883
-.asm_cd87e
- ld hl, $10
- add hl, bc
- ld a, [hl]
-.asm_cd883
- call Functionce7bf
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $1f
- ret nz
-
-; no known jump sources
-Functioncd88f: ; cd88f (33:588f)
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd893: ; cd893 (33:5893)
- ld hl, $e
- add hl, bc
- ld [hl], $1
- ret
-
-; no known jump sources
-Functioncd89a: ; cd89a (33:589a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd89d: ; cd89d (33:589d)
- dw Functioncd8ab
- dw Functioncd8cc
- dw Functioncd8f5
- dw Functioncd8f5
- dw Functioncd8f5
- dw Functioncd8f5
- dw Functioncd8f9
-
-
-; no known jump sources
-Functioncd8ab: ; cd8ab (33:58ab)
- call Functionce72c
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- jr nz, .asm_cd8be
- ld hl, $f
- add hl, bc
- ld [hl], $10
- jr .asm_cd8c4
-.asm_cd8be
- ld hl, $f
- add hl, bc
- ld [hl], $30
-.asm_cd8c4
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-; no known jump sources
-Functioncd8cc: ; cd8cc (33:58cc)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- bit 7, a
- jr nz, .asm_cd8e6
- ld a, $3d
- jr .asm_cd8e8
-.asm_cd8e6
- ld a, $3c
-.asm_cd8e8
- call Functionce7bf
- ld hl, $f
- add hl, bc
- inc [hl]
- inc [hl]
- ld a, [hl]
- and $1f
- ret nz
-
-; no known jump sources
-Functioncd8f5: ; cd8f5 (33:58f5)
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd8f9: ; cd8f9 (33:58f9)
- ld hl, $e
- add hl, bc
- ld [hl], $1
- ret
-
-; no known jump sources
-Functioncd900: ; cd900 (33:5900)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd903: ; cd903 (33:5903)
- dw Functioncd907
- dw Functioncd913
-
-
-; no known jump sources
-Functioncd907: ; cd907 (33:5907)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $28
- inc hl
- ld [hl], $0
-
-; no known jump sources
-Functioncd913: ; cd913 (33:5913)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd950
- ld d, a
- ld hl, $10
- add hl, bc
- ld e, [hl]
- ld hl, hPushOAM ; $ff80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $10
- add hl, bc
- ld [hl], e
- ld hl, $f
- add hl, bc
- ld [hl], d
- ret
-.asm_cd950
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd954: ; cd954 (33:5954)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd957: ; cd957 (33:5957)
- dw Functioncd961
- dw Functioncd96a
- dw Functioncd96e
- dw Functioncd96a
- dw Functioncd97b
-
-
-; no known jump sources
-Functioncd961: ; cd961 (33:5961)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld [hl], $0
-
-; no known jump sources
-Functioncd96a: ; cd96a (33:596a)
- call Functioncd99a
- ret
-
-; no known jump sources
-Functioncd96e: ; cd96e (33:596e)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr c, asm_cd988
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd97b: ; cd97b (33:597b)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $b8
- jr c, asm_cd988
- call Functioncc9bd
- ret
-
-; known jump sources: cd975 (33:5975), cd982 (33:5982)
-asm_cd988: ; cd988 (33:5988)
- call Functioncd99a
- ld hl, $7
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $1
- ret nz
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-
-; known jump sources: cd96a (33:596a), cd988 (33:5988)
-Functioncd99a: ; cd99a (33:599a)
- call Functioncd9f4
- ld hl, $f
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- sra a
- ld hl, $b
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- sub $8
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd9d7
- cp $c2
- jr c, .asm_cd9e2
-.asm_cd9d7
- dec a
- ld [hl], a
- and $7
- ret nz
- ld hl, $10
- add hl, bc
- inc [hl]
- ret
-.asm_cd9e2
- xor a
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld [hli], a
- ld [hl], a
- ret
-
-; known jump sources: cd99a (33:599a)
-Functioncd9f4: ; cd9f4 (33:59f4)
- ld hl, $10
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $5a01
- add hl, de
- ld d, [hl]
- ret
-; cda01 (33:5a01)
-
-INCBIN "baserom.gbc",$cda01,$cda0a - $cda01
-
-; no known jump sources
-Functioncda0a: ; cda0a (33:5a0a)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $30
- jr nc, .asm_cda17
- call Functioncc9bd
- ret
-.asm_cda17
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld e, a
- ld hl, $7
- add hl, bc
- ld a, [hl]
- sub e
- ld [hl], a
- srl e
- ld hl, $8
- add hl, bc
-.asm_cda2c
- inc [hl]
- dec e
- jr nz, .asm_cda2c
- ret
-
-; no known jump sources
-Functioncda31: ; cda31 (33:5a31)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cda34: ; cda34 (33:5a34)
- dw Functioncda4c
- dw Functioncda3a
- dw Functioncda4c
-
-
-; no known jump sources
-Functioncda3a: ; cda3a (33:5a3a)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc a
- call Functionce7bf
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $8
-
-; no known jump sources
-Functioncda4c: ; cda4c (33:5a4c)
- ret
-
-; no known jump sources
-Functioncda4d: ; cda4d (33:5a4d)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cda50: ; cda50 (33:5a50)
- dw Functioncda58
- dw Functioncda62
- dw Functioncda7a
- dw Functioncda8c
-
-
-; no known jump sources
-Functioncda58: ; cda58 (33:5a58)
- call Functionce72c
- ld hl, $10
- add hl, bc
- ld [hl], $40
- ret
-
-; no known jump sources
-Functioncda62: ; cda62 (33:5a62)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_cda6f
- call Functioncda8d
- ret
-.asm_cda6f
- ld [hl], $40
- ld a, $57
- call Functionce7bf
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncda7a: ; cda7a (33:5a7a)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cda84
- dec [hl]
- ret
-.asm_cda84
- call Functionce72c
- ld a, $58
- call Functionce7bf
-
-; no known jump sources
-Functioncda8c: ; cda8c (33:5a8c)
- ret
-
-; known jump sources: cda6b (33:5a6b), cdaf2 (33:5af2)
-Functioncda8d: ; cda8d (33:5a8d)
- dec [hl]
- ld d, $20
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, $7
- add hl, bc
- ld d, [hl]
- ld hl, $b
- add hl, bc
- ld h, [hl]
- ld a, h
- and $f
- swap a
- ld l, a
- ld a, h
- and $f0
- swap a
- ld h, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $f
- add hl, bc
- ld [hl], e
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and $1
- ret nz
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functioncdad6: ; cdad6 (33:5ad6)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdad9: ; cdad9 (33:5ad9)
- dw Functioncdadf
- dw Functioncdae9
- dw Functioncdaf9
-
-
-; no known jump sources
-Functioncdadf: ; cdadf (33:5adf)
- call Functionce72c
- ld hl, $10
- add hl, bc
- ld [hl], $40
- ret
-
-; no known jump sources
-Functioncdae9: ; cdae9 (33:5ae9)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_cdaf6
- call Functioncda8d
- ret
-.asm_cdaf6
- call Functionce72c
-
-; no known jump sources
-Functioncdaf9: ; cdaf9 (33:5af9)
- ret
-
-; no known jump sources
-Functioncdafa: ; cdafa (33:5afa)
- call Functioncd0e3
- ld hl, $f
- add hl, bc
- ld a, [hl]
- add $f
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdb06: ; cdb06 (33:5b06)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdb09: ; cdb09 (33:5b09)
- dw Functioncdb13
- dw Functioncdb14
- dw Functioncdb28
- dw Functioncdb50
- dw Functioncdb65
-
-
-; no known jump sources
-Functioncdb13: ; cdb13 (33:5b13)
- ret
-
-; no known jump sources
-Functioncdb14: ; cdb14 (33:5b14)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_cdb24
- ld hl, $e
- add hl, bc
- ld [hl], $0
- ret
-.asm_cdb24
- add $4
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdb28: ; cdb28 (33:5b28)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $98
- ret nc
- inc [hl]
- inc [hl]
- ld hl, $1
- add hl, bc
- set 0, [hl]
- ld hl, $2
- add hl, bc
- ld [hl], $90
- ld hl, $d
- add hl, bc
- ld [hl], $0
- ld hl, $c
- add hl, bc
- ld [hl], $2
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functioncdb50: ; cdb50 (33:5b50)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $2c
- ld hl, $d
- add hl, bc
- ld [hl], $0
- ld hl, $c
- add hl, bc
- ld [hl], $80
-
-; no known jump sources
-Functioncdb65: ; cdb65 (33:5b65)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $98
- ret nc
- inc [hl]
- inc [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $8
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdb80: ; cdb80 (33:5b80)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdb83: ; cdb83 (33:5b83)
- dw Functioncdb9f
- dw Functioncdbb3
- dw Functioncdbcf
- dw Functioncdbeb
- dw Functioncdc74
- dw Functioncdc1a
- dw Functioncdbc1
- dw Functioncdc1e
- dw Functioncdc27
- dw Functioncdc39
- dw Functioncdc74
- dw Functioncdc48
- dw Functioncdc57
- dw Functioncdc74
-
-
-; no known jump sources
-Functioncdb9f: ; cdb9f (33:5b9f)
- ld hl, $f
- add hl, bc
- ld [hl], $28
- inc hl
- ld [hl], $10
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdbb3: ; cdbb3 (33:5bb3)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, .asm_cdbbd
- inc [hl]
-.asm_cdbbd
- call Functioncdc75
- ret
-
-; no known jump sources
-Functioncdbc1: ; cdbc1 (33:5bc1)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $4b
- jr nc, .asm_cdbcb
- inc [hl]
-.asm_cdbcb
- call Functioncdc75
- ret
-
-; no known jump sources
-Functioncdbcf: ; cdbcf (33:5bcf)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr nc, .asm_cdbe6
- and $f
- jr nz, asm_cdbfa
- ld hl, $10
- add hl, bc
- ld [hl], $10
- call Functionce72c
- ret
-.asm_cdbe6
- call Functionce72c
- inc [hl]
- ret
-
-; no known jump sources
-Functioncdbeb: ; cdbeb (33:5beb)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdbf5
- dec [hl]
- ret
-.asm_cdbf5
- ld hl, $e
- add hl, bc
- dec [hl]
-asm_cdbfa: ; cdbfa (33:5bfa)
- ld hl, $7
- add hl, bc
- inc [hl]
- ld hl, $8
- add hl, bc
- ld d, [hl]
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, hPushOAM ; $ff80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $8
- add hl, bc
- ld [hl], d
- ld hl, $f
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncdc1a: ; cdc1a (33:5c1a)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncdc1e: ; cdc1e (33:5c1e)
- ld a, $4e
- call Functionce7bf
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncdc27: ; cdc27 (33:5c27)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- ld d, $2
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdc39: ; cdc39 (33:5c39)
- ld a, $50
- call Functionce7bf
- ld hl, $a
- add hl, bc
- ld [hl], $4
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncdc48: ; cdc48 (33:5c48)
- ld a, $4f
- call Functionce7bf
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $40
- ret
-
-; no known jump sources
-Functioncdc57: ; cdc57 (33:5c57)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $20
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_cdc71
- dec [hl]
- ret
-.asm_cdc71
- call Functionce72c
-
-; no known jump sources
-Functioncdc74: ; cdc74 (33:5c74)
- ret
-
-; known jump sources: cdbbd (33:5bbd), cdbcb (33:5bcb)
-Functioncdc75: ; cdc75 (33:5c75)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3f
- ret nz
- ld hl, $f
- add hl, bc
- ld [hl], $20
- ld hl, $10
- add hl, bc
- ld a, [hl]
- sub $8
- ld [hl], a
- ret nz
- xor a
- ld hl, $f
- add hl, bc
- ld [hli], a
- ld [hl], a
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncdca6: ; cdca6 (33:5ca6)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdcb6
- cp $d8
- jr nc, .asm_cdcb6
- call Functioncc9bd
- ret
-.asm_cdcb6
- ld hl, $b
- add hl, bc
- ld d, [hl]
- ld hl, $a
- add hl, bc
- ld a, [hl]
- sub d
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdcc3: ; cdcc3 (33:5cc3)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdcc6: ; cdcc6 (33:5cc6)
- dw Functioncdcca
- dw Functioncdced
-
-
-; no known jump sources
-Functioncdcca: ; cdcca (33:5cca)
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cdcd9
- ld hl, $b
- add hl, bc
- ld a, [hl]
- xor $ff
- add $3
- ld [hl], a
-.asm_cdcd9
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $8
- ld hl, $b
- add hl, bc
- ld a, $59
- add [hl]
- call Functionce7bf
- ret
-
-; no known jump sources
-Functioncdced: ; cdced (33:5ced)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdcfa
- dec [hl]
- call Functioncdcfe
- ret
-.asm_cdcfa
- call Functioncc9bd
- ret
-
-; known jump sources: cdcf6 (33:5cf6)
-Functioncdcfe: ; cdcfe (33:5cfe)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- ld d, $10
- call Functionce734
- ld d, a
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdd20
- dec a
- ret z
- ld hl, $a
- add hl, bc
- ld [hl], d
- ret
-.asm_cdd20
- ld hl, $a
- add hl, bc
- ld a, d
- xor $ff
- inc a
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdd2a: ; cdd2a (33:5d2a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdd2d: ; cdd2d (33:5d2d)
- dw Functioncdd31
- dw Functioncdd4f
-
-
-; no known jump sources
-Functioncdd31: ; cdd31 (33:5d31)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3f
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $80
- rlca
- ld [hl], a
- add $5d
- call Functionce7bf
- ret
-
-; no known jump sources
-Functioncdd4f: ; cdd4f (33:5d4f)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- swap a
- ld d, a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $80
- ret nc
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and $3
- jr nz, .asm_cdd87
- ld hl, $8
- add hl, bc
- dec [hl]
-.asm_cdd87
- and $1
- ret nz
- ld hl, $7
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncdd90: ; cdd90 (33:5d90)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdd93: ; cdd93 (33:5d93)
- dw Functioncdd97
- dw Functioncddbc
-
-
-; no known jump sources
-Functioncdd97: ; cdd97 (33:5d97)
- call Functionce72c
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $80
- rlca
- ld hl, $f
- add hl, bc
- add [hl]
- call Functionce7bf
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-; no known jump sources
-Functioncddbc: ; cddbc (33:5dbc)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $10
- push af
- push de
- call Functionce734
- sra a
- sra a
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- and $3f
- jr z, .asm_cddf0
- and $1f
- ret nz
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc a
- jr .asm_cddf5
-.asm_cddf0
- ld hl, $f
- add hl, bc
- ld a, [hl]
-.asm_cddf5
- call Functionce7bf
- ret
-
-; no known jump sources
-Functioncddf9: ; cddf9 (33:5df9)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cddfc: ; cddfc (33:5dfc)
- dw Functioncde02
- dw Functioncde20
- dw Functioncde21
-
-
-; no known jump sources
-Functioncde02: ; cde02 (33:5e02)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- add $63
- call Functionce7bf
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $5e25
- add hl, de
- ld a, [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
-
-; no known jump sources
-Functioncde20: ; cde20 (33:5e20)
- ret
-
-; no known jump sources
-Functioncde21: ; cde21 (33:5e21)
- call Functioncc9bd
- ret
-; cde25 (33:5e25)
-
-INCBIN "baserom.gbc",$cde25,$cde28 - $cde25
-
-; no known jump sources
-Functioncde28: ; cde28 (33:5e28)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- ld d, $4
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $a
- add hl, bc
- ld d, [hl]
- ld hl, $10
- add hl, bc
- ld e, [hl]
- ld hl, $ffa0
- add hl, de
- ld e, l
- ld d, h
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncde54: ; cde54 (33:5e54)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- dec [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $7
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncde6b: ; cde6b (33:5e6b)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cde6e: ; cde6e (33:5e6e)
- dw Functioncde72
- dw Functioncde88
-
-
-; no known jump sources
-Functioncde72: ; cde72 (33:5e72)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_cde83
- ld hl, $1
- add hl, bc
- set 6, [hl]
-.asm_cde83
- add $6a
- call Functionce7bf
-
-; no known jump sources
-Functioncde88: ; cde88 (33:5e88)
- ret
+INCLUDE "battle/anim_commands.asm"
-; no known jump sources
-Functioncde89: ; cde89 (33:5e89)
- call Functionce71e ; ; ; call does not return
+INCLUDE "battle/anim_objects.asm"
-; no known jump sources
-Jumptable_cde8c: ; cde8c (33:5e8c)
- dw Functioncde90
- dw Functioncdebf
+SECTION "Pic Animations 1", ROMX, BANK[$34]
-; no known jump sources
-Functioncde90: ; cde90 (33:5e90)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld a, e
- and $70
- swap a
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, e
- and $80
- jr nz, .asm_cdeb2
- ld a, e
- and $f
- ld [hl], a
- ret
-.asm_cdeb2
- ld a, e
- and $f
- xor $ff
- inc a
- ld [hl], a
- ld a, $6e
- call Functionce7bf
- ret
-
-; no known jump sources
-Functioncdebf: ; cdebf (33:5ebf)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdec9
- dec [hl]
- ret
-.asm_cdec9
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdedd: ; cdedd (33:5edd)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $7
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $28
- jr nc, .asm_cdf17
- inc [hl]
- ret
-.asm_cdf17
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncdf1b: ; cdf1b (33:5f1b)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $28
- jr nc, .asm_cdf55
- inc [hl]
- ret
-.asm_cdf55
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncdf59: ; cdf59 (33:5f59)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdf5c: ; cdf5c (33:5f5c)
- dw Functioncdf60
- dw Functioncdedd
-
-
-; no known jump sources
-Functioncdf60: ; cdf60 (33:5f60)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr nc, .asm_cdf88
- inc [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $18
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $7
- add hl, bc
- ld a, [hl]
- and $1
- ret nz
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-.asm_cdf88
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncdf8c: ; cdf8c (33:5f8c)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- inc [hl]
- inc [hl]
- ld a, [hl]
- and $7
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $e8
- jr z, .asm_cdfc7
- dec [hl]
- ret
-.asm_cdfc7
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncdfcb: ; cdfcb (33:5fcb)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- inc [hl]
- inc [hl]
- ld a, [hl]
- and $3
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $d0
- jr z, .asm_ce007
- dec [hl]
- dec [hl]
- ret
-.asm_ce007
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce00b: ; ce00b (33:600b)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce00e: ; ce00e (33:600e)
- dw Functionce014
- dw Functionce023
- dw Functionce05f
-
-
-; no known jump sources
-Functionce014: ; ce014 (33:6014)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $34
- ld hl, $10
- add hl, bc
- ld [hl], $10
-
-; no known jump sources
-Functionce023: ; ce023 (33:6023)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $6c
- jr c, .asm_ce02d
- ret
-.asm_ce02d
- ld a, $2
- call Functionce70a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $10
- add hl, bc
- ld d, [hl]
- call Functionce734
- bit 7, a
- jr nz, .asm_ce046
- xor $ff
- inc a
-.asm_ce046
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- sub $4
- ld [hl], a
- and $1f
- cp $20
- ret nz
- ld hl, $10
- add hl, bc
- srl [hl]
- ret
-
-; no known jump sources
-Functionce05f: ; ce05f (33:605f)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce063: ; ce063 (33:6063)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce066: ; ce066 (33:6066)
- dw Functionce06e
- dw Functionce083
- dw Functionce091
- dw Functionce09e
-
-
-; no known jump sources
-Functionce06e: ; ce06e (33:606e)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce083: ; ce083 (33:6083)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $58
- ret nc
- ld a, $2
- call Functionce70a
- ret
-
-; no known jump sources
-Functionce091: ; ce091 (33:6091)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, Functionce09e
- call Functioncc9bd
- ret
-
-; known jump sources: ce098 (33:6098)
-Functionce09e: ; ce09e (33:609e)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld d, $8
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- sra a
- xor $ff
- inc a
- ld hl, $f
- add hl, bc
- add [hl]
- ld hl, $8
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- add $8
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce0c5: ; ce0c5 (33:60c5)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce0c8: ; ce0c8 (33:60c8)
- dw Functionce0ce
- dw Functionce0f8
- dw Functionce0dd
-
-
-; no known jump sources
-Functionce0ce: ; ce0ce (33:60ce)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- swap a
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce0dd: ; ce0dd (33:60dd)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- bit 7, a
- jr z, .asm_ce0f0
- ld [hl], a
-.asm_ce0f0
- ld hl, $f
- add hl, bc
- ld a, [hl]
- sub $4
- ld [hl], a
-
-; no known jump sources
-Functionce0f8: ; ce0f8 (33:60f8)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr c, .asm_ce105
- call Functioncc9bd
- ret
-.asm_ce105
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-
-; no known jump sources
-Functionce10e: ; ce10e (33:610e)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce111: ; ce111 (33:6111)
- dw Functionce115
- dw Functionce12a
-
-
-; no known jump sources
-Functionce115: ; ce115 (33:6115)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $28
- ld hl, $8
- add hl, bc
- ld a, [hl]
- sub $28
- ld hl, $10
- add hl, bc
- ld [hl], a
-
-; no known jump sources
-Functionce12a: ; ce12a (33:612a)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- and [hl]
- jr nz, .asm_ce149
- ld hl, $7
- add hl, bc
- dec [hl]
-.asm_ce149
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3f
- ret nz
- ld hl, $f
- add hl, bc
- ld [hl], $20
- inc hl
- srl [hl]
- ret
-
-; no known jump sources
-Functionce15c: ; ce15c (33:615c)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $1
- jr nz, .asm_ce189
- ld hl, $7
- add hl, bc
- dec [hl]
-.asm_ce189
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3
- jr nz, .asm_ce197
- ld hl, $8
- add hl, bc
- inc [hl]
-.asm_ce197
- ld hl, $7
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- cp $5a
- jr nc, .asm_ce1aa
- ld a, [hl]
- and a
- jr z, .asm_ce1ac
- dec [hl]
- ret
-.asm_ce1aa
- inc [hl]
- ret
-.asm_ce1ac
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce1b0: ; ce1b0 (33:61b0)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld hl, $f
- add hl, bc
- cp $40
- jr nc, .asm_ce1df
- inc [hl]
- ret
-.asm_ce1df
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce1e7: ; ce1e7 (33:61e7)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce1ea: ; ce1ea (33:61ea)
- dw Functionce1ee
- dw Functionce1fb
-
-
-; no known jump sources
-Functionce1ee: ; ce1ee (33:61ee)
- call Functionce72c
- ld hl, $8
- add hl, bc
- ld a, [hl]
- ld hl, $10
- add hl, bc
- ld [hl], a
-
-; no known jump sources
-Functionce1fb: ; ce1fb (33:61fb)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $30
- call Functionce734
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $8
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- add $8
- ld d, $30
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functionce226: ; ce226 (33:6226)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce229: ; ce229 (33:6229)
- dw Functionce22d
- dw Functionce254
-
-
-; no known jump sources
-Functionce22d: ; ce22d (33:622d)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld [hl], $f
-
-; no known jump sources
-Functionce254: ; ce254 (33:6254)
- ret
-
-; no known jump sources
-Functionce255: ; ce255 (33:6255)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce258: ; ce258 (33:6258)
- dw Functionce260
- dw Functionce274
- dw Functionce278
- dw Functionce289
-
-
-; no known jump sources
-Functionce260: ; ce260 (33:6260)
- call Functionce72c
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr nz, .asm_ce26c
- ld a, $f0
- jr .asm_ce26e
-.asm_ce26c
- ld a, $cc
-.asm_ce26e
- ld hl, $f
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce274: ; ce274 (33:6274)
- call Functionce29f
- ret
-
-; no known jump sources
-Functionce278: ; ce278 (33:6278)
- call Functionce29f
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- ret nc
- ld a, $4
- call Functionce70a
- ret
-
-; no known jump sources
-Functionce289: ; ce289 (33:6289)
- call Functionce29f
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $d0
- jr nc, .asm_ce29b
- ld a, $4
- call Functionce70a
- ret
-.asm_ce29b
- call Functioncc9bd
- ret
-
-; known jump sources: ce274 (33:6274), ce278 (33:6278), ce289 (33:6289)
-Functionce29f: ; ce29f (33:629f)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and $7
- inc [hl]
- srl a
- ld e, a
- ld d, $0
- ld a, [hSGB] ; $ff00+$e7
- and a
- jr nz, .asm_ce2b6
- ld hl, $62c4
- jr .asm_ce2b9
-.asm_ce2b6
- ld hl, $62c8
-.asm_ce2b9
- add hl, de
- ld a, [hl]
- ld hl, $f
- add hl, bc
- and [hl]
- ld [$cfc8], a
- ret
-; ce2c4 (33:62c4)
-
-INCBIN "baserom.gbc",$ce2c4,$ce2cc - $ce2c4
-
-; no known jump sources
-Functionce2cc: ; ce2cc (33:62cc)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $18
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- dec [hl]
- dec [hl]
- ret
-
-; no known jump sources
-Functionce2fd: ; ce2fd (33:62fd)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce300: ; ce300 (33:6300)
- dw Functionce306
- dw Functionce330
- dw Functionce34c
-
-
-; no known jump sources
-Functionce306: ; ce306 (33:6306)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $e0
- jr nz, .asm_ce319
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $2
- ret
-.asm_ce319
- ld d, a
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, hPushOAM ; $ff80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $f
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functionce330: ; ce330 (33:6330)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce33a
- dec [hl]
- ret
-.asm_ce33a
- ld [hl], $4
- ld hl, $f
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ld hl, $a
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce34c: ; ce34c (33:634c)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr nc, .asm_ce35b
- ld a, $4
- call Functionce70a
- ret
-.asm_ce35b
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce35f: ; ce35f (33:635f)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce362: ; ce362 (33:6362)
- dw Functionce366
- dw Functionce375
-
-
-; no known jump sources
-Functionce366: ; ce366 (33:6366)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- add $81
- call Functionce7bf
-
-; no known jump sources
-Functionce375: ; ce375 (33:6375)
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- jr nz, .asm_ce383
- ld hl, $9
- add hl, bc
- inc [hl]
- ret
-.asm_ce383
- ld hl, $9
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionce389: ; ce389 (33:6389)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce38c: ; ce38c (33:638c)
- dw Functionce392
- dw Functionce39c
- dw Functionce3ae
-
-
-; no known jump sources
-Functionce392: ; ce392 (33:6392)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $c
- ret
-
-; no known jump sources
-Functionce39c: ; ce39c (33:639c)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce3a6
- dec [hl]
- ret
-.asm_ce3a6
- call Functionce72c
- ld a, $20
- call Functionce7bf
-
-; no known jump sources
-Functionce3ae: ; ce3ae (33:63ae)
- ld hl, $a
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionce3b4: ; ce3b4 (33:63b4)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- push af
- ld d, $2
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop af
- ld d, $8
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce3d2: ; ce3d2 (33:63d2)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_ce3df
- call Functioncc9bd
- ret
-.asm_ce3df
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $8
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- and $7
- ret nz
- ld hl, $a
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functionce3ff: ; ce3ff (33:63ff)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce402: ; ce402 (33:6402)
- dw Functionce406
- dw Functionce412
-
-
-; no known jump sources
-Functionce406: ; ce406 (33:6406)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce412: ; ce412 (33:6412)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce416: ; ce416 (33:6416)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- sra a
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- ret
-
-; no known jump sources
-Functionce43a: ; ce43a (33:643a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce43d: ; ce43d (33:643d)
- dw Functionce443
- dw Functionce465
- dw Functionce490
-
-
-; no known jump sources
-Functionce443: ; ce443 (33:6443)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $28
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $3
- add hl, bc
- add [hl]
- call Functionce7bf
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- or $8
- ld [hl], a
-
-; no known jump sources
-Functionce465: ; ce465 (33:6465)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce48b
- dec [hl]
- add $8
- ld d, a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-.asm_ce48b
- ld [hl], $10
- call Functionce72c
-
-; no known jump sources
-Functionce490: ; ce490 (33:6490)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce49c: ; ce49c (33:649c)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce49f: ; ce49f (33:649f)
- dw Functionce4a3
- dw Functionce4b0
-
-
-; no known jump sources
-Functionce4a3: ; ce4a3 (33:64a3)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, $24
- add [hl]
- call Functionce7bf
-
-; no known jump sources
-Functionce4b0: ; ce4b0 (33:64b0)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $38
- jr nc, .asm_ce4d8
- inc [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $18
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- ld a, [hl]
- and $1
- ret nz
- ld hl, $7
- add hl, bc
- dec [hl]
- ret
-.asm_ce4d8
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce4dc: ; ce4dc (33:64dc)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- ret z
- ld d, a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- call Functionce734
- bit 7, a
- jr nz, .asm_ce4f4
- xor $ff
- inc a
-.asm_ce4f4
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and $1f
- ret nz
- ld hl, $b
- add hl, bc
- srl [hl]
- ret
-
-; no known jump sources
-Functionce508: ; ce508 (33:6508)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $10
- jr nc, .asm_ce52e
- inc [hl]
- inc [hl]
- ld d, a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-.asm_ce52e
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce532: ; ce532 (33:6532)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- ld a, e
- and $c0
- rlca
- rlca
- add [hl]
- ld [hl], a
- ld a, e
- and $3f
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce55b: ; ce55b (33:655b)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce55e: ; ce55e (33:655e)
- dw Functionce564
- dw Functionce56e
- dw Functionce577
-
-
-; no known jump sources
-Functionce564: ; ce564 (33:6564)
- ld d, $18
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- jr asm_ce58f
-
-; no known jump sources
-Functionce56e: ; ce56e (33:656e)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $18
-
-; no known jump sources
-Functionce577: ; ce577 (33:6577)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $80
- jr nc, .asm_ce58b
- ld d, a
- add $8
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- jr asm_ce58f
-.asm_ce58b
- call Functioncc9bd
- ret
-asm_ce58f: ; ce58f (33:658f)
- call Functionce6f1
- ret
-
-; no known jump sources
-Functionce593: ; ce593 (33:6593)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce596: ; ce596 (33:6596)
- dw Functionce5b3
- dw Functionce59a
-
-
-; no known jump sources
-Functionce59a: ; ce59a (33:659a)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_ce5b0
- ld hl, $7
- add hl, bc
- dec [hl]
- dec [hl]
- ld hl, $8
- add hl, bc
- inc [hl]
- inc [hl]
- ret
-.asm_ce5b0
- call Functioncc9bd
-
-; no known jump sources
-Functionce5b3: ; ce5b3 (33:65b3)
- ret
-
-; no known jump sources
-Functionce5b4: ; ce5b4 (33:65b4)
- ld d, $50
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- push af
- push de
- call Functionce734
- sra a
- sra a
- ld hl, $f
- add hl, bc
- add [hl]
- inc [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce5dc: ; ce5dc (33:65dc)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $d0
- jr z, .asm_ce5ea
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-.asm_ce5ea
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce5ee: ; ce5ee (33:65ee)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce5f1: ; ce5f1 (33:65f1)
- dw Functionce5f9
- dw Functionce60a
- dw Functionce622
- dw Functionce618
-
-
-; no known jump sources
-Functionce5f9: ; ce5f9 (33:65f9)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr nz, asm_ce61c
- call Functionce72c
- ld hl, $a
- add hl, bc
- ld [hl], $ec
-
-; no known jump sources
-Functionce60a: ; ce60a (33:660a)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $4
- jr z, Functionce618
- inc [hl]
- inc [hl]
- inc [hl]
- inc [hl]
- ret
-
-; known jump sources: ce611 (33:6611)
-Functionce618: ; ce618 (33:6618)
- call Functioncc9bd
- ret
-asm_ce61c: ; ce61c (33:661c)
- call Functionce72c
- call Functionce72c
-
-; no known jump sources
-Functionce622: ; ce622 (33:6622)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $d8
- ret z
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-
-; no known jump sources
-Functionce62f: ; ce62f (33:662f)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce632: ; ce632 (33:6632)
- dw Functionce63a
- dw Functionce648
- dw Functionce65c
- dw Functionce672
-
-
-; no known jump sources
-Functionce63a: ; ce63a (33:663a)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- call Functionce72c
- ret
-
-; no known jump sources
-Functionce648: ; ce648 (33:6648)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- add $4
- cp $70
- jr c, .asm_ce654
- xor a
-.asm_ce654
- ld [hl], a
- ld hl, $9
- add hl, bc
- inc [hl]
- inc [hl]
- ret
-
-; no known jump sources
-Functionce65c: ; ce65c (33:665c)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- add $4
- cp $70
- jr c, .asm_ce668
- xor a
-.asm_ce668
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- add $8
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce672: ; ce672 (33:6672)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- add $4
- cp $70
- jr c, .asm_ce67e
- xor a
-.asm_ce67e
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- add $4
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce688: ; ce688 (33:6688)
- ld hl, $7
- add hl, bc
- ld d, [hl]
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld l, a
- and $f0
- ld h, a
- swap a
- or h
- ld h, a
- ld a, l
- and $f
- swap a
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $f
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functionce6b3: ; ce6b3 (33:66b3)
- ld d, $18
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- call Functionce6f1
- ret
-
-; no known jump sources
-Functionce6bf: ; ce6bf (33:66bf)
- ld d, $18
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- srl a
- ld hl, $b
- add hl, bc
- add [hl]
- call Functionce6f1
- ret
-
-; no known jump sources
-Functionce6d2: ; ce6d2 (33:66d2)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $20
- jr nc, .asm_ce6ed
- inc [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- xor $ff
- inc a
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-.asm_ce6ed
- call Functioncc9bd
- ret
-
-; known jump sources: ce58f (33:658f), ce6bb (33:66bb), ce6ce (33:66ce)
-Functionce6f1: ; ce6f1 (33:66f1)
- push af
- push de
- call Functionce734
- sra a
- sra a
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-; known jump sources: cd142 (33:5142), cd154 (33:5154), cd2ad (33:52ad), cd553 (33:5553), cd609 (33:5609), cd706 (33:5706), cd733 (33:5733), ce02f (33:602f), ce08d (33:608d), ce10a (33:610a), ce285 (33:6285), ce297 (33:6297), ce357 (33:6357)
-Functionce70a: ; ce70a (33:670a)
- and $f
- ld e, a
- ld hl, $7
- add hl, bc
- add [hl]
- ld [hl], a
- srl e
- ld hl, $8
- add hl, bc
-.asm_ce719
- dec [hl]
- dec e
- jr nz, .asm_ce719
- ret
-
-; known jump sources: cd06e (33:506e), cd0e3 (33:50e3), cd12a (33:512a), cd15c (33:515c), cd212 (33:5212), cd284 (33:5284), cd2be (33:52be), cd306 (33:5306), cd3ae (33:53ae), cd3f2 (33:53f2), cd478 (33:5478), cd58a (33:558a), cd5e9 (33:55e9), cd66a (33:566a), cd6e3 (33:56e3), cd71a (33:571a), cd7a4 (33:57a4), cd80c (33:580c), cd824 (33:5824), cd89a (33:589a), cd900 (33:5900), cd954 (33:5954), cda31 (33:5a31), cda4d (33:5a4d), cdad6 (33:5ad6), cdb06 (33:5b06), cdb80 (33:5b80), cdcc3 (33:5cc3), cdd2a (33:5d2a), cdd90 (33:5d90), cddf9 (33:5df9), cde6b (33:5e6b), cde89 (33:5e89), cdf59 (33:5f59), ce00b (33:600b), ce063 (33:6063), ce0c5 (33:60c5), ce10e (33:610e), ce1e7 (33:61e7), ce226 (33:6226), ce255 (33:6255), ce2fd (33:62fd), ce35f (33:635f), ce389 (33:6389), ce3ff (33:63ff), ce43a (33:643a), ce49c (33:649c), ce55b (33:655b), ce593 (33:6593), ce5ee (33:65ee), ce62f (33:662f)
-Functionce71e: ; ce71e (33:671e)
- pop de
- ld hl, $e
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-; known jump sources: cd0ea (33:50ea), cd17a (33:517a), cd192 (33:5192), cd196 (33:5196), cd1ce (33:51ce), cd1e5 (33:51e5), cd20a (33:520a), cd21e (33:521e), cd22f (33:522f), cd2b5 (33:52b5), cd2c5 (33:52c5), cd31e (33:531e), cd321 (33:5321), cd37a (33:537a), cd3b7 (33:53b7), cd42f (33:542f), cd48d (33:548d), cd49f (33:549f), cd545 (33:5545), cd5a1 (33:55a1), cd5f2 (33:55f2), cd60d (33:560d), cd677 (33:5677), cd694 (33:5694), cd6ea (33:56ea), cd725 (33:5725), cd747 (33:5747), cd76e (33:576e), cd7ab (33:57ab), cd817 (33:5817), cd835 (33:5835), cd88f (33:588f), cd8ab (33:58ab), cd8f5 (33:58f5), cd907 (33:5907), cd961 (33:5961), cd977 (33:5977), cda43 (33:5a43), cda58 (33:5a58), cda76 (33:5a76), cda84 (33:5a84), cdadf (33:5adf), cdaf6 (33:5af6), cdb50 (33:5b50), cdbe2 (33:5be2), cdbe6 (33:5be6), cdc23 (33:5c23), cdc44 (33:5c44), cdc4d (33:5c4d), cdc71 (33:5c71), cdca2 (33:5ca2), cdcd9 (33:5cd9), cdd31 (33:5d31), cdd97 (33:5d97), cde02 (33:5e02), cde72 (33:5e72), cde90 (33:5e90), cdf88 (33:5f88), ce014 (33:6014), ce115 (33:6115), ce1ee (33:61ee), ce22d (33:622d), ce260 (33:6260), ce30f (33:630f), ce366 (33:6366), ce392 (33:6392), ce3a6 (33:63a6), ce443 (33:6443), ce48d (33:648d), ce4a3 (33:64a3), ce56e (33:656e), ce601 (33:6601), ce61c (33:661c), ce61f (33:661f), ce644 (33:6644)
-Functionce72c: ; ce72c (33:672c)
- ld hl, $e
- add hl, bc
- inc [hl]
- ret
-
-; known jump sources: cd0d2 (33:50d2), cd11c (33:511c), cd33a (33:533a), cd44a (33:544a), cd7f5 (33:57f5), cd929 (33:5929), cd9bb (33:59bb), cdd69 (33:5d69), cddd3 (33:5dd3), cdefb (33:5efb), cdf39 (33:5f39), cdf72 (33:5f72), cdfaa (33:5faa), cdfe9 (33:5fe9), ce172 (33:6172), ce1c7 (33:61c7), ce218 (33:6218), ce246 (33:6246), ce2ee (33:62ee), ce3c9 (33:63c9), ce3e6 (33:63e6), ce429 (33:6429), ce482 (33:6482), ce4c2 (33:64c2), ce525 (33:6525), ce552 (33:6552), ce5d3 (33:65d3), ce701 (33:6701), ce76c (33:676c)
-Functionce732: ; ce732 (33:6732)
- add $10
-
-; known jump sources: cd09c (33:509c), cd0c8 (33:50c8), cd112 (33:5112), cd1ad (33:51ad), cd1f4 (33:51f4), cd2d7 (33:52d7), cd34d (33:534d), cd440 (33:5440), cd4ca (33:54ca), cd502 (33:5502), cd5c5 (33:55c5), cd6a4 (33:56a4), cd711 (33:5711), cd73e (33:573e), cd7eb (33:57eb), cd86a (33:586a), cd8d6 (33:58d6), cd91f (33:591f), cd9a4 (33:59a4), cda90 (33:5a90), cdb77 (33:5b77), cdc30 (33:5c30), cdc5e (33:5c5e), cdc7b (33:5c7b), cdd07 (33:5d07), cdd5f (33:5d5f), cddc5 (33:5dc5), cde31 (33:5e31), cde5d (33:5e5d), cdee6 (33:5ee6), cdf24 (33:5f24), cdf95 (33:5f95), cdfd4 (33:5fd4), ce03c (33:603c), ce0a5 (33:60a5), ce0e4 (33:60e4), ce130 (33:6130), ce168 (33:6168), ce1bd (33:61bd), ce202 (33:6202), ce237 (33:6237), ce2d3 (33:62d3), ce3be (33:63be), ce41f (33:641f), ce478 (33:6478), ce4ea (33:64ea), ce51b (33:651b), ce548 (33:6548), ce5bf (33:65bf), ce6e1 (33:66e1), ce6f3 (33:66f3), ce766 (33:6766)
-Functionce734: ; ce734 (33:6734)
- and $3f
- cp $20
- jr nc, .asm_ce73f
- call Functionce749
- ld a, h
- ret
-.asm_ce73f
- and $1f
- call Functionce749
- ld a, h
- xor $ff
- inc a
- ret
-
-; known jump sources: ce73a (33:673a), ce741 (33:6741)
-Functionce749: ; ce749 (33:6749)
- ld e, a
- ld a, d
- ld d, $0
- ld hl, $677f
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $0
-.asm_ce758
- srl a
- jr nc, .asm_ce75d
- add hl, de
-.asm_ce75d
- sla e
- rl d
- and a
- jr nz, .asm_ce758
- ret
-
-; no known jump sources
-Functionce765: ; ce765 (33:6765)
- ld a, e
- call Functionce734
- ld e, a
- ret
-
-; no known jump sources
-Functionce76b: ; ce76b (33:676b)
- ld a, e
- call Functionce732
- ld e, a
- ret
-; ce771 (33:6771)
-
-INCBIN "baserom.gbc",$ce771,$ce7bf - $ce771
-
-; known jump sources: cd18f (33:518f), cd19b (33:519b), cd1cb (33:51cb), cd1d4 (33:51d4), cd1e2 (33:51e2), cd2ba (33:52ba), cd419 (33:5419), cd434 (33:5434), cd4ab (33:54ab), cd53c (33:553c), cd618 (33:5618), cd6f4 (33:56f4), cd74c (33:574c), cd773 (33:5773), cd81c (33:581c), cd883 (33:5883), cd8e8 (33:58e8), cda40 (33:5a40), cda73 (33:5a73), cda89 (33:5a89), cdc20 (33:5c20), cdc3b (33:5c3b), cdc4a (33:5c4a), cdce9 (33:5ce9), cdd4b (33:5d4b), cddb1 (33:5db1), cddf5 (33:5df5), cde0c (33:5e0c), cde85 (33:5e85), cdebb (33:5ebb), ce372 (33:6372), ce3ab (33:63ab), ce458 (33:6458), ce4ad (33:64ad)
-Functionce7bf: ; ce7bf (33:67bf)
- ld hl, $3
- add hl, bc
- ld [hl], a
- ld hl, $c
- add hl, bc
- ld [hl], $0
- ld hl, $d
- add hl, bc
- ld [hl], $ff
- ret
-
-
-Functionce7d1: ; ce7d1
-.asm_ce7d1
- ld hl, $000c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce7e1
- dec [hl]
- call Functionce823
- ld a, [hli]
- push af
- jr .asm_ce7fd
-
-.asm_ce7e1
- ld hl, $000d
- add hl, bc
- inc [hl]
- call Functionce823
- ld a, [hli]
- cp $fe
- jr z, .asm_ce815
- cp $ff
- jr z, .asm_ce807
- push af
- ld a, [hl]
- push hl
- and $3f
- ld hl, $000c
- add hl, bc
- ld [hl], a
- pop hl
-
-.asm_ce7fd
- ld a, [hl]
- and $c0
- srl a
- ld [$d420], a
- pop af
- ret
-
-.asm_ce807
- xor a
- ld hl, $000c
- add hl, bc
- ld [hl], a
- ld hl, $000d
- add hl, bc
- dec [hl]
- dec [hl]
- jr .asm_ce7d1
-
-.asm_ce815
- xor a
- ld hl, $000c
- add hl, bc
- ld [hl], a
- dec a
- ld hl, $000d
- add hl, bc
- ld [hl], a
- jr .asm_ce7d1
-; ce823
-
-Functionce823: ; ce823
- ld hl, $0003
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $685e
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $000d
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ret
-; ce83c
-
-Functionce83c: ; ce83c
- ld l, a
- ld h, $0
- ld de, $6eae
- add hl, hl
- add hl, hl
- add hl, de
- ret
-; ce846
-
-
-; known jump sources: cc4b0 (33:44b0)
-Functionce846: ; ce846 (33:6846)
- push hl
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld de, $7cf6
- add hl, de
- ld c, [hl]
- inc hl
- ld b, [hl]
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
- push bc
- call Functione73
- pop bc
- ret
-; ce85e (33:685e)
-
-INCBIN "baserom.gbc",$ce85e,$cfd9e - $ce85e
-
-; Songs iii
-
-INCLUDE "audio/music/postcredits.asm"
-
-
-
-; Pic animations I
-
-SECTION "bank34",ROMX,BANK[$34]
-
-; Pic animations asm
-Functiond0000: ; d0000
- ld hl, $c4ac
- ld a, [IsInBattle]
- cp $1
- jr z, .asm_d0012
- ld e, $0
- ld d, $0
- call Functiond008e
- ret
-
-.asm_d0012
- ld e, $1
- ld d, $0
- call Functiond008e
- ret
-; d001a
-
-INCBIN "baserom.gbc",$d001a,$d008e - $d001a
-
-Functiond008e: ; d008e
- call Functiond01c6
- ret c
- call Functiond00a3
-.asm_d0095
- call Functiond00b4
- push af
- callba Function10402d
- pop af
- jr nc, .asm_d0095
- ret
-; d00a3
-
-Functiond00a3: ; d00a3
- push hl
- ld c, e
- ld b, $0
- ld hl, $4042
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld b, [hl]
- ld c, a
- pop hl
- call Functiond01d6
- ret
-; d00b4
-
-Functiond00b4: ; d00b4
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- ld a, [$d168]
- ld c, a
- ld b, $0
- ld hl, $d169
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- ld a, [hl]
- ld hl, $40da
- rst JumpTable
- ld a, [$d168]
- ld c, a
- pop af
- ld [rSVBK], a
- ld a, c
- and $80
- ret z
- scf
- ret
-; d00da
-
-Tabled00da: ; d00da
- dw Functiond0171
- dw Functiond0166
- dw Functiond00f2
- dw Functiond00fe
- dw Functiond010b
- dw Functiond011d
- dw Functiond012f
- dw Functiond0141
- dw Functiond0155
- dw Functiond017a
- dw Functiond0188
- dw Functiond0196
-; d00f2
-
-Functiond00f2: ; d00f2
- ld a, $12
- ld [$d181], a
- ld a, [$d168]
- inc a
- ld [$d168], a
-
-Functiond00fe: ; d00fe
- ld hl, $d181
- dec [hl]
- ret nz
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d010b
-
-Functiond010b: ; d010b
- ld c, $0
- ld b, $0
- call Functiond0228
- call Functiond0504
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d011d
-
-Functiond011d: ; d011d
- ld c, $0
- ld b, $4
- call Functiond0228
- call Functiond0504
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d012f
-
-Functiond012f: ; d012f
- ld c, $1
- ld b, $0
- call Functiond0228
- call Functiond0504
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0141
-
-Functiond0141: ; d0141
- call Functiond0250
- ld a, [$d17e]
- bit 7, a
- ret z
- call Functiond04bd
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0155
-
-Functiond0155: ; d0155
- call Functiond0250
- ld a, [$d17e]
- bit 7, a
- ret z
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0166
-
-Functiond0166: ; d0166
- call Functiond01a9
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0171
-
-Functiond0171: ; d0171
- call Functiond01a9
- ld hl, $d168
- set 7, [hl]
- ret
-; d017a
-
-Functiond017a: ; d017a
- ld a, [$d16b]
- call Function37e2
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0188
-
-Functiond0188: ; d0188
- ld a, [$d16b]
- call Function37d5
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0196
-
-Functiond0196: ; d0196
- ld a, $f
- ld [CryTracks], a
- ld a, [$d16b]
- call Function37c4
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d01a9
-
-Functiond01a9: ; d01a9
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- call Functiond04bd
- callba Function10402d
- call Functiond0536
- callba Function104047
- pop af
- ld [rSVBK], a
- ret
-; d01c6
-
-Functiond01c6: ; d01c6
- ld a, [CurPartySpecies]
- cp $fd
- jr z, .asm_d01d4
- call IsAPokemon
- jr c, .asm_d01d4
- and a
- ret
-
-.asm_d01d4
- scf
- ret
-; d01d6
-
-Functiond01d6: ; d01d6
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- push bc
- push de
- push hl
- ld hl, $d168
- ld bc, $0029
- xor a
- call ByteFill
- pop hl
- pop de
- pop bc
- ld a, c
- ld [$d169], a
- ld a, b
- ld [$d16a], a
- ld a, l
- ld [$d16f], a
- ld a, h
- ld [$d170], a
- ld a, d
- ld [$d16e], a
- ld a, $1
- ld hl, CurPartySpecies
- call GetFarWRAMByte
- ld [$d16b], a
- ld a, $1
- ld hl, UnownLetter
- call GetFarWRAMByte
- ld [$d16c], a
- call Functiond065c
- ld [$d16d], a
- call Functiond05b4
- ld a, c
- ld [$d171], a
- pop af
- ld [rSVBK], a
- ret
-; d0228
-
-Functiond0228: ; d0228
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- push bc
- ld hl, $d172
- ld bc, $001f
- xor a
- call ByteFill
- pop bc
- ld a, b
- ld [$d173], a
- ld a, c
- ld [$d172], a
- call Functiond055c
- call Functiond05ce
- call Functiond061b
- pop af
- ld [rSVBK], a
- ret
-; d0250
-
-Functiond0250: ; d0250
- xor a
- ld [hBGMapMode], a
-
-Functiond0253: ; d0253
- ld a, [$d17e]
- and $7f
- ld hl, Tabled025d
- rst JumpTable
- ret
-; d025d
-
-Tabled025d: ; d025d
- dw Functiond0261
- dw Functiond0282
-; d0261
-
-Functiond0261: ; d0261
- call Functiond02f8
- ld a, [$d182]
- cp $ff
- jr z, Functiond02a8
- cp $fe
- jr z, Functiond028e
- cp $fd
- jr z, Functiond0296
- call Functiond02c8
- ld a, [$d183]
- call Functiond02ae
- ld [$d181], a
- call Functiond02dc
-
-Functiond0282: ; d0282
- ld a, [$d181]
- dec a
- ld [$d181], a
- ret nz
- call Functiond02e4
- ret
-; d028e
-
-Functiond028e: ; d028e
- ld a, [$d183]
- ld [$d17f], a
- jr Functiond0253
-; d0296
-
-Functiond0296: ; d0296
- ld a, [$d17f]
- and a
- ret z
- dec a
- ld [$d17f], a
- ret z
- ld a, [$d183]
- ld [$d17d], a
- jr Functiond0253
-; d02a8
-
-Functiond02a8: ; d02a8
- ld hl, $d17e
- set 7, [hl]
- ret
-; d02ae
-
-Functiond02ae: ; d02ae
- ld c, a
- ld b, $0
- ld hl, $0000
- ld a, [$d173]
- call AddNTimes
- ld a, h
- swap a
- and $f0
- ld h, a
- ld a, l
- swap a
- and $f
- or h
- add c
- ret
-; d02c8
-
-Functiond02c8: ; d02c8
- call Functiond04bd
- ld a, [$d182]
- and a
- ret z
- call Functiond031b
- push hl
- call Functiond033b
- pop hl
- call Functiond036b
- ret
-; d02dc
-
-Functiond02dc: ; d02dc
- ld a, [$d17e]
- inc a
- ld [$d17e], a
- ret
-; d02e4
-
-Functiond02e4: ; d02e4
- ld a, [$d17e]
- dec a
- ld [$d17e], a
- ret
-; d02ec
-
-Functiond02ec: ; d02ec
- ld a, [$d16b]
- cp $c9
- ret
-; d02f2
-
-Functiond02f2: ; d02f2
- ld a, [$d16b]
- cp $fd
- ret
-; d02f8
-
-Functiond02f8: ; d02f8
- push hl
- ld a, [$d17d]
- ld e, a
- ld d, $0
- ld hl, $d175
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- add hl, de
- ld a, [$d174]
- call GetFarHalfword
- ld a, l
- ld [$d182], a
- ld a, h
- ld [$d183], a
- ld hl, $d17d
- inc [hl]
- pop hl
- ret
-; d031b
-
-Functiond031b: ; d031b
- ld a, [$d182]
- dec a
- ld c, a
- ld b, $0
- ld hl, $d178
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- add hl, bc
- ld a, [$d177]
- call GetFarHalfword
- ld a, [$d177]
- call GetFarByte
- ld [$d180], a
- inc hl
- ret
-; d033b
-
-Functiond033b: ; d033b
- call Functiond0356
- push bc
- ld hl, $d17b
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$d180]
- call AddNTimes
- pop bc
- ld de, $d188
- ld a, [$d17a]
- call FarCopyBytes
- ret
-; d0356
-
-Functiond0356: ; d0356
- push hl
- ld a, [$d171]
- sub $5
- ld c, a
- ld b, $0
- ld hl, $4368
- add hl, bc
- ld c, [hl]
- ld b, $0
- pop hl
- ret
-; d0368
-
-INCBIN "baserom.gbc",$d0368,$d036b - $d0368
-
-Functiond036b: ; d036b
- xor a
- ld [$d187], a
- ld [$d186], a
- ld [$d185], a
-.asm_d0375
- push hl
- call Functiond0392
- pop hl
- ld a, b
- and a
- jr z, .asm_d038a
- ld a, [$d177]
- call GetFarByte
- inc hl
- push hl
- call Functiond03bd
- pop hl
-
-.asm_d038a
- push hl
- call Functiond0499
- pop hl
- jr nc, .asm_d0375
- ret
-; d0392
-
-Functiond0392: ; d0392
- ld a, [$d187]
- and $f8
- rrca
- rrca
- rrca
- ld e, a
- ld d, $0
- ld hl, $d188
- add hl, de
- ld b, [hl]
- ld a, [$d187]
- and $7
- jr z, .asm_d03b0
- ld c, a
- ld a, b
-.asm_d03ab
- rrca
- dec c
- jr nz, .asm_d03ab
- ld b, a
-
-.asm_d03b0
- xor a
- bit 0, b
- jr z, .asm_d03b7
- ld a, $1
-
-.asm_d03b7
- ld b, a
- ld hl, $d187
- inc [hl]
- ret
-; d03bd
-
-Functiond03bd: ; d03bd
- push af
- call Functiond03cd
- pop af
- push hl
- call Functiond03f7
- ld hl, $d16e
- add [hl]
- pop hl
- ld [hl], a
- ret
-; d03cd
-
-Functiond03cd: ; d03cd
- call Functiond046c
- ld a, [$d186]
- ld bc, $0014
- call AddNTimes
- ld a, [$c2c6]
- and a
- jr nz, .asm_d03e8
- ld a, [$d185]
- ld e, a
- ld d, $0
- add hl, de
- jr .asm_d03f3
-
-.asm_d03e8
- ld a, [$d185]
- ld e, a
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc $0
- ld h, a
-
-.asm_d03f3
- ret
-; d03f4
-
-INCBIN "baserom.gbc",$d03f4,$d03f7 - $d03f4
-
-Functiond03f7: ; d03f7
- push af
- ld a, [$d171]
- cp $5
- jr z, .asm_d0405
- cp $6
- jr z, .asm_d041a
- pop af
- ret
-
-.asm_d0405
- pop af
- cp $19
- jr nc, .asm_d0417
- push hl
- push de
- ld hl, $442f
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- pop de
- pop hl
- ret
-
-.asm_d0417
- add $18
- ret
-
-.asm_d041a
- pop af
- cp $24
- jr nc, .asm_d042c
- push hl
- push de
- ld hl, $4448
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- pop de
- pop hl
- ret
-
-.asm_d042c
- add $d
- ret
-; d042f
-
-INCBIN "baserom.gbc",$d042f,$d046c - $d042f
-
-Functiond046c: ; d046c
- ld hl, $d16f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$d171]
- ld de, $0000
- ld bc, $0006
- cp $7
- jr z, .asm_d048f
- ld de, $0015
- ld bc, $0019
- cp $6
- jr z, .asm_d048f
- ld de, $0029
- ld bc, $002d
-
-.asm_d048f
- ld a, [$c2c6]
- and a
- jr nz, .asm_d0497
- add hl, de
- ret
-
-.asm_d0497
- add hl, bc
- ret
-; d0499
-
-Functiond0499: ; d0499
- ld a, [$d186]
- inc a
- ld [$d186], a
- ld c, a
- ld a, [$d171]
- cp c
- jr nz, .asm_d04bb
- xor a
- ld [$d186], a
- ld a, [$d185]
- inc a
- ld [$d185], a
- ld c, a
- ld a, [$d171]
- cp c
- jr nz, .asm_d04bb
- scf
- ret
-
-.asm_d04bb
- xor a
- ret
-; d04bd
-
-Functiond04bd: ; d04bd
- call Functiond04f6
- ld a, [$c2c6]
- and a
- jr nz, .asm_d04ce
- ld de, $0001
- ld bc, $0000
- jr .asm_d04d4
-
-.asm_d04ce
- ld de, rIE
- ld bc, $0006
-
-.asm_d04d4
- ld hl, $d16f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- ld c, $7
- ld b, $7
- ld a, [$d16e]
-.asm_d04e2
- push bc
- push hl
- push de
- ld de, $0014
-.asm_d04e8
- ld [hl], a
- inc a
- add hl, de
- dec b
- jr nz, .asm_d04e8
- pop de
- pop hl
- add hl, de
- pop bc
- dec c
- jr nz, .asm_d04e2
- ret
-; d04f6
-
-Functiond04f6: ; d04f6
- ld hl, $d16f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld b, $7
- ld c, $7
- call ClearBox
- ret
-; d0504
-
-Functiond0504: ; d0504
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- xor a
- ld [hBGMapMode], a
- call Functiond051b
- callba Function104047
- pop af
- ld [rSVBK], a
- ret
-; d051b
-
-Functiond051b: ; d051b
- call Functiond0551
- ld b, $7
- ld c, $7
- ld de, $0014
-.asm_d0525
- push bc
- push hl
-.asm_d0527
- ld a, [hl]
- or $8
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_d0527
- pop hl
- inc hl
- pop bc
- dec b
- jr nz, .asm_d0525
- ret
-; d0536
-
-Functiond0536: ; d0536
- call Functiond0551
- ld b, $7
- ld c, $7
- ld de, $0014
-.asm_d0540
- push bc
- push hl
-.asm_d0542
- ld a, [hl]
- and $f7
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_d0542
- pop hl
- inc hl
- pop bc
- dec b
- jr nz, .asm_d0540
- ret
-; d0551
-
-Functiond0551: ; d0551
- ld hl, $d16f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, $0939
- add hl, de
- ret
-; d055c
-
-Functiond055c: ; d055c
- call Functiond02f2
- jr z, .asm_d0597
- ld c, $34
- ld hl, UnownAnimationPointers
- ld de, UnownAnimationExtraPointers
- call Functiond02ec
- jr z, .asm_d0576
- ld c, $34
- ld hl, AnimationPointers
- ld de, AnimationExtraPointers
-
-.asm_d0576
- ld a, [$d172]
- and a
- jr z, .asm_d057e
- ld h, d
- ld l, e
-
-.asm_d057e
- ld a, [$d16d]
- dec a
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, c
- ld [$d174], a
- call GetFarHalfword
- ld a, l
- ld [$d175], a
- ld a, h
- ld [$d176], a
- ret
-
-.asm_d0597
- ld hl, EggAnimation
- ld c, $34
- ld a, [$d172]
- and a
- jr z, .asm_d05a7
- ld hl, EggAnimationExtra
- ld c, $34
-
-.asm_d05a7
- ld a, c
- ld [$d174], a
- ld a, l
- ld [$d175], a
- ld a, h
- ld [$d176], a
- ret
-; d05b4
-
-Functiond05b4: ; d05b4
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BasePicSize]
- and $f
- ld c, a
- pop af
- ld [rSVBK], a
- ret
-; d05ce
-
-Functiond05ce: ; d05ce
- call Functiond02f2
- jr z, .asm_d0609
- call Functiond02ec
- ld b, $36
- ld c, $36
- ld hl, PikachuAnimationExtra
- jr z, .asm_d05ef
- ld a, [$d16b]
- cp $98
- ld b, $35
- ld c, $35
- ld hl, $4000
- jr c, .asm_d05ef
- ld c, $36
-
-.asm_d05ef
- ld a, c
- ld [$d177], a
- ld a, [$d16d]
- dec a
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, b
- call GetFarHalfword
- ld a, l
- ld [$d178], a
- ld a, h
- ld [$d179], a
- ret
-
-.asm_d0609
- ld hl, $598b
- ld c, $36
- ld a, c
- ld [$d177], a
- ld a, l
- ld [$d178], a
- ld a, h
- ld [$d179], a
- ret
-; d061b
-
-Functiond061b: ; d061b
- call Functiond02f2
- jr z, .asm_d064a
- call Functiond02ec
- ld a, $34
- ld hl, UnownBitmasksPointers
- jr z, .asm_d062f
- ld a, $34
- ld hl, BitmasksPointers
-
-.asm_d062f
- ld [$d17a], a
- ld a, [$d16d]
- dec a
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [$d17a]
- call GetFarHalfword
- ld a, l
- ld [$d17b], a
- ld a, h
- ld [$d17c], a
- ret
-
-.asm_d064a
- ld c, $34
- ld hl, EggBitmasks
- ld a, c
- ld [$d17a], a
- ld a, l
- ld [$d17b], a
- ld a, h
- ld [$d17c], a
- ret
-; d065c
-
-Functiond065c: ; d065c
- call Functiond02ec
- jr z, .asm_d0665
- ld a, [$d16b]
- ret
-
-.asm_d0665
- ld a, [$d16c]
- ret
-; d0669
-
-Functiond0669: ; d0669
- ld a, $1
- ld [$c2c6], a
-
-Functiond066e: ; d066e
- call Functiond01c6
- jr c, .asm_d068c
- ld h, d
- ld l, e
- push bc
- push hl
- ld de, VTiles2
- ld a, $3e
- call Predef
- pop hl
- pop bc
- ld d, $0
- ld e, c
- call Functiond008e
- xor a
- ld [$c2c6], a
- ret
-
-.asm_d068c
- xor a
- ld [$c2c6], a
- inc a
- ld [CurPartySpecies], a
- ret
-; d0695
+INCLUDE "gfx/pics/animation.asm"
; Pic animations are assembled in 3 parts:
@@ -98552,57 +74065,51 @@ Functiond066e: ; d066e
; following bytes are tile ids mapped to each bit in the mask
; Main animations (played everywhere)
-AnimationPointers: INCLUDE "gfx/pics/anim_pointers.asm"
+INCLUDE "gfx/pics/anim_pointers.asm"
INCLUDE "gfx/pics/anims.asm"
; Extra animations, appended to the main animation
; Used in the status screen (blinking, tail wags etc.)
-AnimationExtraPointers: INCLUDE "gfx/pics/extra_pointers.asm"
+INCLUDE "gfx/pics/extra_pointers.asm"
INCLUDE "gfx/pics/extras.asm"
; Unown has its own animation data despite having an entry in the main tables
-UnownAnimationPointers: INCLUDE "gfx/pics/unown_anim_pointers.asm"
+INCLUDE "gfx/pics/unown_anim_pointers.asm"
INCLUDE "gfx/pics/unown_anims.asm"
-UnownAnimationExtraPointers: INCLUDE "gfx/pics/unown_extra_pointers.asm"
+INCLUDE "gfx/pics/unown_extra_pointers.asm"
INCLUDE "gfx/pics/unown_extras.asm"
; Bitmasks
-BitmasksPointers: INCLUDE "gfx/pics/bitmask_pointers.asm"
+INCLUDE "gfx/pics/bitmask_pointers.asm"
INCLUDE "gfx/pics/bitmasks.asm"
-UnownBitmasksPointers: INCLUDE "gfx/pics/unown_bitmask_pointers.asm"
+INCLUDE "gfx/pics/unown_bitmask_pointers.asm"
INCLUDE "gfx/pics/unown_bitmasks.asm"
-; Pic animations II
-
-SECTION "bank35",ROMX,BANK[$35]
+SECTION "Pic Animations 2", ROMX, BANK[$35]
-; Frame definitions
-FramesPointers: INCLUDE "gfx/pics/frame_pointers.asm"
-; Inexplicably, Kanto frames are split off from Johto
+INCLUDE "gfx/pics/frame_pointers.asm"
INCLUDE "gfx/pics/kanto_frames.asm"
-; Pic animations III
-
-SECTION "bank36",ROMX,BANK[$36]
+SECTION "bank36", ROMX, BANK[$36]
FontInversed: INCBIN "gfx/misc/font_inversed.1bpp"
-; Johto frame definitions
-INCLUDE "gfx/pics/johto_frames.asm"
-; Unown frame definitions
-UnownFramesPointers: INCLUDE "gfx/pics/unown_frame_pointers.asm"
+SECTION "Pic Animations 3", ROMX, BANK[$36]
+
+INCLUDE "gfx/pics/johto_frames.asm"
+INCLUDE "gfx/pics/unown_frame_pointers.asm"
INCLUDE "gfx/pics/unown_frames.asm"
-SECTION "bank37",ROMX,BANK[$37]
+SECTION "Tileset Data 6", ROMX, BANK[TILESETS_6]
INCLUDE "tilesets/data_6.asm"
-SECTION "bank38",ROMX,BANK[$38]
+SECTION "bank38", ROMX, BANK[$38]
Functione0000: ; e0000
push de
@@ -98786,7 +74293,422 @@ Functione0191: ; e0191 (38:4191)
jp [hl]
; e01a0 (38:41a0)
-INCBIN "baserom.gbc",$e01a0,$e04c1 - $e01a0
+Tablee01a0: ; e01a0
+ dw Functione01b5
+ dw Functione01d2
+ dw Functione0217
+ dw Functione02b7
+ dw Functione02da
+ dw Functione0314
+ dw Functione031e
+ dw Functione0360
+; e01b0
+
+Functione01b0: ; e01b0
+ ld hl, $cf63
+ inc [hl]
+ ret
+; e01b5
+
+Functione01b5: ; e01b5
+ ld hl, UnknownText_0xe01cd
+ call Functione0489
+ call YesNoBox
+ jr c, .asm_e01c7
+ call Functione0366
+ call Functione01b0
+ ret
+
+.asm_e01c7
+ ld a, $7
+ ld [$cf63], a
+ ret
+; e01cd
+
+UnknownText_0xe01cd: ; 0xe01cd
+ ; Play with three coins?
+ text_jump UnknownText_0x1c5793
+ db "@"
+; 0xe01d2
+
+Functione01d2: ; e01d2
+ ld a, [Coins]
+ ld h, a
+ ld a, [Coins + 1]
+ ld l, a
+ ld a, h
+ and a
+ jr nz, .asm_e01ef
+ ld a, l
+ cp 3
+ jr nc, .asm_e01ef
+ ld hl, UnknownText_0xe0212
+ call Functione0489
+ ld a, $7
+ ld [$cf63], a
+ ret
+
+.asm_e01ef
+ ld de, -3
+ add hl, de
+ ld a, h
+ ld [Coins], a
+ ld a, l
+ ld [$d856], a
+ ld de, SFX_TRANSACTION
+ call PlaySFX
+ xor a
+ ld [hBGMapMode], a
+ call Functione049c
+ ld a, $1
+ ld [hBGMapMode], a
+ call WaitSFX
+ call Functione01b0
+ ret
+; e0212
+
+UnknownText_0xe0212: ; 0xe0212
+ ; Not enough coins…
+ text_jump UnknownText_0x1c57ab
+ db "@"
+; 0xe0217
+
+Functione0217: ; e0217
+ xor a
+ ld [hBGMapMode], a
+ ld hl, TileMap
+ ld bc, $0c09
+ call Functione04e5
+ ld hl, $c4a9
+ ld bc, $0014
+ ld a, [$c6e8]
+ call AddNTimes
+ ld [hl], $f5
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $14
+ call DelayFrames
+ ld hl, $c4a2
+ call Functione03c1
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $14
+ call DelayFrames
+ ld hl, $c51a
+ call Functione03c1
+ call WaitBGMap
+ ld hl, UnknownText_0xe02b2
+ call Functione0489
+ xor a
+ ld [$cf66], a
+.asm_e025c
+ call Functiona57
+ ld a, [$ffa9]
+ and $1
+ jr nz, .asm_e027c
+ ld de, $002f
+ call PlaySFX
+ call Functione0849
+ ld c, $4
+ call DelayFrames
+ ld hl, $cf66
+ ld a, [hl]
+ xor $1
+ ld [hl], a
+ jr .asm_e025c
+
+.asm_e027c
+ ld de, $002c
+ call PlaySFX
+ ld a, $3
+.asm_e0284
+ push af
+ call Functione0849
+ ld c, $4
+ call DelayFrames
+ call ClearSprites
+ ld c, $4
+ call DelayFrames
+ pop af
+ dec a
+ jr nz, .asm_e0284
+ ld hl, $cf66
+ ld a, [hl]
+ push af
+ xor $1
+ ld [hl], a
+ call Functione03ac
+ ld bc, $0605
+ call Functione04e5
+ pop af
+ ld [$cf66], a
+ call Functione01b0
+ ret
+; e02b2
+
+UnknownText_0xe02b2: ; 0xe02b2
+ ; Choose a card.
+ text_jump UnknownText_0x1c57be
+ db "@"
+; 0xe02b7
+
+Functione02b7: ; e02b7
+ ld hl, UnknownText_0xe02d5
+ call Functione0489
+.asm_e02bd
+ call Functiona57
+ ld a, [$ffa9]
+ and $1
+ jr nz, .asm_e02d1
+ call Functione089c
+ call Functione0960
+ call DelayFrame
+ jr .asm_e02bd
+
+.asm_e02d1
+ call Functione01b0
+ ret
+; e02d5
+
+UnknownText_0xe02d5: ; 0xe02d5
+ ; Place your bet.
+ text_jump UnknownText_0x1c57ce
+ db "@"
+; 0xe02da
+
+Functione02da: ; e02da
+ xor a
+ ld [$ff9b], a
+ call Functione0960
+ call WaitSFX
+ ld de, $009a
+ call PlaySFX
+ call WaitSFX
+ ld a, [$c6e8]
+ ld e, a
+ ld d, $0
+ ld hl, PlayerSDefLevel
+ add hl, de
+ add hl, de
+ ld a, [$cf66]
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [CurEnemyMoveNum], a
+ ld e, a
+ ld hl, $c6ea
+ add hl, de
+ ld [hl], $1
+ call Functione03ac
+ call Functione03ec
+ call Function3200
+ call Functione01b0
+ ret
+; e0314
+
+Functione0314: ; e0314
+ call Functione0637
+ call Functiona80
+ call Functione01b0
+ ret
+; e031e
+
+Functione031e: ; e031e
+ call ClearSprites
+ ld hl, UnknownText_0xe0356
+ call Functione0489
+ call YesNoBox
+ jr nc, .asm_e0330
+ call Functione01b0
+ ret
+
+.asm_e0330
+ ld a, [$c6e8]
+ inc a
+ ld [$c6e8], a
+ cp $c
+ jr c, .asm_e034d
+ call Functione04c1
+ ld a, $1
+ ld [hBGMapMode], a
+ call Functione0366
+ ld hl, $435b
+ call PrintText
+ jr .asm_e0350
+
+.asm_e034d
+ call Functione0534
+
+.asm_e0350
+ ld a, $1
+ ld [$cf63], a
+ ret
+; e0356
+
+UnknownText_0xe0356: ; 0xe0356
+ ; Want to play again?
+ text_jump UnknownText_0x1c57df
+ db "@"
+; 0xe035b
+
+INCBIN "baserom.gbc", $e035b, $e0360 - $e035b
+
+Functione0360: ; e0360
+ ld hl, $cf63
+ set 7, [hl]
+ ret
+; e0366
+
+Functione0366: ; e0366
+ ld hl, PlayerSDefLevel
+ ld bc, $0018
+ xor a
+ call ByteFill
+ ld de, PlayerSDefLevel
+ ld c, $17
+.asm_e0375
+ call Random
+ and $1f
+ cp $18
+ jr nc, .asm_e0375
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e0375
+ ld [hl], c
+ dec c
+ jr nz, .asm_e0375
+ xor a
+ ld [$c6e8], a
+ ld hl, $c6ea
+ ld bc, $0018
+ call ByteFill
+ ret
+; e0398
+
+Functione0398: ; e0398
+ ld hl, $0000
+ ld bc, $0006
+ ld a, [$cf64]
+ call AddNTimes
+ ld b, $0
+ ld a, [$cf65]
+ ld c, a
+ add hl, bc
+ ret
+; e03ac
+
+Functione03ac: ; e03ac
+ ld a, [$cf66]
+ and a
+ jr nz, .asm_e03ba
+ ld hl, $c4a2
+ ld bc, $1018
+ jr .asm_e03c0
+
+.asm_e03ba
+ ld hl, $c51a
+ ld bc, $4018
+
+.asm_e03c0
+ ret
+; e03c1
+
+Functione03c1: ; e03c1
+ xor a
+ ld [hBGMapMode], a
+ ld de, $43ce
+ ld bc, $0605
+ call Functione04f7
+ ret
+; e03ce
+
+INCBIN "baserom.gbc", $e03ce, $e03ec - $e03ce
+
+Functione03ec: ; e03ec
+ xor a
+ ld [hBGMapMode], a
+ push hl
+ push hl
+ ld de, $443b
+ ld bc, $0605
+ call Functione04f7
+ ld a, [CurEnemyMoveNum]
+ ld e, a
+ ld d, $0
+ ld hl, $4459
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ pop hl
+ ld bc, $0017
+ add hl, bc
+ ld [hl], e
+ ld bc, $0012
+ add hl, bc
+ ld a, d
+ ld de, $0014
+ ld b, $3
+.asm_e0418
+ push hl
+ ld c, $3
+.asm_e041b
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_e041b
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_e0418
+ pop hl
+ ld a, [hCGB]
+ and a
+ ret z
+ ld de, $0939
+ add hl, de
+ ld a, [CurEnemyMoveNum]
+ and $3
+ inc a
+ ld bc, $0605
+ call Functione04e7
+ ret
+; e043b
+
+INCBIN "baserom.gbc", $e043b, $e0489 - $e043b
+
+Functione0489: ; e0489
+ push hl
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call TextBox
+ pop hl
+ call PrintTextBoxText
+ call Functione049c
+ ret
+; e049c
+
+Functione049c: ; e049c
+ ld hl, $c5d5
+ ld b, $1
+ ld c, $9
+ call TextBox
+ ld hl, $c5ea
+ ld de, $44bc
+ call PlaceString
+ ld hl, $c5ef
+ ld de, Coins
+ ld bc, $8204
+ call PrintNum
+ ret
+; e04bc
+
+INCBIN "baserom.gbc", $e04bc, $e04c1 - $e04bc
; known jump sources: e0144 (38:4144)
Functione04c1: ; e04c1 (38:44c1)
@@ -98806,7 +74728,8 @@ Functione04c1: ; e04c1 (38:44c1)
ret
; e04e5 (38:44e5)
-INCBIN "baserom.gbc",$e04e5,$e04e7 - $e04e5
+Functione04e5: ; e04e5
+ ld a, $29
; known jump sources: e04f4 (38:44f4), e0c4d (38:4c4d), e0c58 (38:4c58), e0c63 (38:4c63), e0c6e (38:4c6e), e0c79 (38:4c79)
Functione04e7: ; e04e7 (38:44e7)
@@ -98843,7 +74766,30 @@ Functione04f7: ; e04f7 (38:44f7)
ret
; e0509 (38:4509)
-INCBIN "baserom.gbc",$e0509,$e0521 - $e0509
+Functione0509: ; e0509
+ ld de, Sprites
+ ld a, [hli]
+.asm_e050d
+ push af
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_e050d
+ ret
+; e0521
; known jump sources: e0141 (38:4141)
Functione0521: ; e0521 (38:4521)
@@ -98858,7 +74804,220 @@ Functione0521: ; e0521 (38:4521)
ret
; e0534 (38:4534)
-INCBIN "baserom.gbc",$e0534,$e0c37 - $e0534
+Functione0534: ; e0534
+ xor a
+ ld [hBGMapMode], a
+ ld a, [CurEnemyMoveNum]
+ ld e, a
+ ld d, $0
+ and $3
+ ld c, a
+ ld b, $0
+ ld a, e
+ and $1c
+ srl a
+ add $53
+ ld l, a
+ ld a, $0
+ adc $45
+ ld h, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e0553
+
+INCBIN "baserom.gbc", $e0553, $e0637 - $e0553
+
+Functione0637: ; e0637
+ call Functione0398
+ add hl, hl
+ ld de, $4643
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e0643
+
+INCBIN "baserom.gbc", $e0643, $e0849 - $e0643
+
+Functione0849: ; e0849
+ call Functione03ac
+ ld hl, $4853
+ call Functione0509
+ ret
+; e0853
+
+INCBIN "baserom.gbc", $e0853, $e089c - $e0853
+
+Functione089c: ; e089c
+ ld hl, $ffa9
+ ld a, [hl]
+ and $20
+ jp nz, Functione08b8
+ ld a, [hl]
+ and $10
+ jp nz, Functione08ef
+ ld a, [hl]
+ and $40
+ jp nz, Functione090a
+ ld a, [hl]
+ and $80
+ jp nz, Functione093d
+ ret
+; e08b8
+
+Functione08b8: ; e08b8
+ ld hl, $cf65
+ ld a, [$cf64]
+ and a
+ jr z, .asm_e08d5
+ cp $1
+ jr z, .asm_e08cc
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ jp Functione0959
+
+.asm_e08cc
+ ld a, [hl]
+ cp $3
+ jr c, .asm_e08e2
+ dec [hl]
+ jp Functione0959
+
+.asm_e08d5
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $3
+ jr c, .asm_e08e2
+ dec [hl]
+ dec [hl]
+ jp Functione0959
+
+.asm_e08e2
+ ld a, $2
+ ld [$cf64], a
+ ld a, $1
+ ld [$cf65], a
+ jp Functione0959
+; e08ef
+
+Functione08ef: ; e08ef
+ ld hl, $cf65
+ ld a, [$cf64]
+ and a
+ jr z, .asm_e08ff
+ ld a, [hl]
+ cp $5
+ ret nc
+ inc [hl]
+ jr Functione0959
+
+.asm_e08ff
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $4
+ ret nc
+ inc [hl]
+ inc [hl]
+ jr Functione0959
+
+Functione090a: ; e090a
+ ld hl, $cf64
+ ld a, [$cf65]
+ and a
+ jr z, .asm_e0925
+ cp $1
+ jr z, .asm_e091d
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ jr Functione0959
+
+.asm_e091d
+ ld a, [hl]
+ cp $3
+ jr c, .asm_e0931
+ dec [hl]
+ jr Functione0959
+
+.asm_e0925
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $3
+ jr c, .asm_e0931
+ dec [hl]
+ dec [hl]
+ jr Functione0959
+
+.asm_e0931
+ ld a, $1
+ ld [$cf64], a
+ ld a, $2
+ ld [$cf65], a
+ jr Functione0959
+
+Functione093d: ; e093d
+ ld hl, $cf64
+ ld a, [$cf65]
+ and a
+ jr z, .asm_e0950
+ ld hl, $cf64
+ ld a, [hl]
+ cp $7
+ ret nc
+ inc [hl]
+ jr Functione0959
+
+.asm_e0950
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $6
+ ret nc
+ inc [hl]
+ inc [hl]
+
+Functione0959: ; e0959
+ ld de, $0003
+ call PlaySFX
+ ret
+; e0960
+
+Functione0960: ; e0960
+ call ClearSprites
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_e096d
+ ld a, [$ff9b]
+ and $4
+ ret nz
+
+.asm_e096d
+ call Functione0398
+ add hl, hl
+ add hl, hl
+ ld de, $4981
+ add hl, de
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Functione0509
+ ret
+; e0981
+
+INCBIN "baserom.gbc", $e0981, $e0c37 - $e0981
; known jump sources: e0147 (38:4147)
Functione0c37: ; e0c37 (38:4c37)
@@ -99810,8 +75969,8 @@ Functione24e0: ; e24e0 (38:64e0)
ld de, $74f4
call Functione2a6e
call Function1d6e
- ld bc, $e0b
- call Function1dd2
+ lb bc, 14, 11
+ call PlaceYesNoBox
ld a, [$cfa9]
dec a
call Function1c07
@@ -100048,8 +76207,8 @@ Functione26d8: ; e26d8 (38:66d8)
ld de, $74f4
call Functione2a6e
call Function1d6e
- ld bc, $e0b
- call Function1dd2
+ lb bc, 14, 11
+ call PlaceYesNoBox
ld a, [$cfa9]
dec a
call Function1c07
@@ -101405,7 +77564,7 @@ Functione37e3: ; e37e3 (38:77e3)
ret
-SECTION "bank39",ROMX,BANK[$39]
+SECTION "bank39", ROMX, BANK[$39]
CopyrightGFX: ; e4000
INCBIN "gfx/misc/copyright.2bpp"
@@ -102017,7 +78176,7 @@ Functione4579: ; e4579
ld c, $64
call DelayFrames
call ClearTileMap
- callba Function4ea82
+ callba GBCOnlyScreen
call Functione45e8
.asm_e45c0
call Functiona57
@@ -104035,148 +80194,8 @@ INCBIN "gfx/intro/unown_back.lz"
INCBIN "baserom.gbc", $e799d, $e7a70 - $e799d
-; ================================================================
-; Sound engine and music/sound effect pointers
-SECTION "bank3A",ROMX,BANK[$3A]
-
-; The sound engine. Interfaces are in bank 0
-INCLUDE "audio/engine.asm"
-
-; What music plays when a trainer notices you
-INCLUDE "audio/trainer_encounters.asm"
-
-; Pointer table for all 103 songs
-Music: INCLUDE "audio/music_pointers.asm"
-
-; Empty song
-INCLUDE "audio/music/nothing.asm"
-
-; Pointer table for all 68 base cries
-Cries: INCLUDE "audio/cry_pointers.asm"
-
-; Pointer table for all 207 sfx
-SFX: INCLUDE "audio/sfx_pointers.asm"
-
-
-; Songs I
-
-INCLUDE "audio/music/route36.asm"
-INCLUDE "audio/music/rivalbattle.asm"
-INCLUDE "audio/music/rocketbattle.asm"
-INCLUDE "audio/music/elmslab.asm"
-INCLUDE "audio/music/darkcave.asm"
-INCLUDE "audio/music/johtogymbattle.asm"
-INCLUDE "audio/music/championbattle.asm"
-INCLUDE "audio/music/ssaqua.asm"
-INCLUDE "audio/music/newbarktown.asm"
-INCLUDE "audio/music/goldenrodcity.asm"
-INCLUDE "audio/music/vermilioncity.asm"
-INCLUDE "audio/music/titlescreen.asm"
-INCLUDE "audio/music/ruinsofalphinterior.asm"
-INCLUDE "audio/music/lookpokemaniac.asm"
-INCLUDE "audio/music/trainervictory.asm"
-
-
-SECTION "bank3B",ROMX,BANK[$3B]
-
-; Songs II
-
-INCLUDE "audio/music/route1.asm"
-INCLUDE "audio/music/route3.asm"
-INCLUDE "audio/music/route12.asm"
-INCLUDE "audio/music/kantogymbattle.asm"
-INCLUDE "audio/music/kantotrainerbattle.asm"
-INCLUDE "audio/music/kantowildbattle.asm"
-INCLUDE "audio/music/pokemoncenter.asm"
-INCLUDE "audio/music/looklass.asm"
-INCLUDE "audio/music/lookofficer.asm"
-INCLUDE "audio/music/route2.asm"
-INCLUDE "audio/music/mtmoon.asm"
-INCLUDE "audio/music/showmearound.asm"
-INCLUDE "audio/music/gamecorner.asm"
-INCLUDE "audio/music/bicycle.asm"
-INCLUDE "audio/music/looksage.asm"
-INCLUDE "audio/music/pokemonchannel.asm"
-INCLUDE "audio/music/lighthouse.asm"
-INCLUDE "audio/music/lakeofrage.asm"
-INCLUDE "audio/music/indigoplateau.asm"
-INCLUDE "audio/music/route37.asm"
-INCLUDE "audio/music/rockethideout.asm"
-INCLUDE "audio/music/dragonsden.asm"
-INCLUDE "audio/music/ruinsofalphradio.asm"
-INCLUDE "audio/music/lookbeauty.asm"
-INCLUDE "audio/music/route26.asm"
-INCLUDE "audio/music/ecruteakcity.asm"
-INCLUDE "audio/music/lakeofragerocketradio.asm"
-INCLUDE "audio/music/magnettrain.asm"
-INCLUDE "audio/music/lavendertown.asm"
-INCLUDE "audio/music/dancinghall.asm"
-INCLUDE "audio/music/contestresults.asm"
-INCLUDE "audio/music/route30.asm"
-
-SECTION "bank3C",ROMX,BANK[$3C]
-
-; Songs III
-
-INCLUDE "audio/music/violetcity.asm"
-INCLUDE "audio/music/route29.asm"
-INCLUDE "audio/music/halloffame.asm"
-INCLUDE "audio/music/healpokemon.asm"
-INCLUDE "audio/music/evolution.asm"
-INCLUDE "audio/music/printer.asm"
-
-INCBIN "baserom.gbc",$f0941,$f2787 - $f0941
-
-CryHeaders:
-INCLUDE "audio/cry_headers.asm"
-
-INCBIN "baserom.gbc",$f2d69,$f3fb6 - $f2d69
-
-
-SECTION "bank3D",ROMX,BANK[$3D]
-
-; Songs IV
-
-INCLUDE "audio/music/viridiancity.asm"
-INCLUDE "audio/music/celadoncity.asm"
-INCLUDE "audio/music/wildpokemonvictory.asm"
-INCLUDE "audio/music/successfulcapture.asm"
-INCLUDE "audio/music/gymleadervictory.asm"
-INCLUDE "audio/music/mtmoonsquare.asm"
-INCLUDE "audio/music/gym.asm"
-INCLUDE "audio/music/pallettown.asm"
-INCLUDE "audio/music/profoakspokemontalk.asm"
-INCLUDE "audio/music/profoak.asm"
-INCLUDE "audio/music/lookrival.asm"
-INCLUDE "audio/music/aftertherivalfight.asm"
-INCLUDE "audio/music/surf.asm"
-INCLUDE "audio/music/nationalpark.asm"
-INCLUDE "audio/music/azaleatown.asm"
-INCLUDE "audio/music/cherrygrovecity.asm"
-INCLUDE "audio/music/unioncave.asm"
-INCLUDE "audio/music/johtowildbattle.asm"
-INCLUDE "audio/music/johtowildbattlenight.asm"
-INCLUDE "audio/music/johtotrainerbattle.asm"
-INCLUDE "audio/music/lookyoungster.asm"
-INCLUDE "audio/music/tintower.asm"
-INCLUDE "audio/music/sprouttower.asm"
-INCLUDE "audio/music/burnedtower.asm"
-INCLUDE "audio/music/mom.asm"
-INCLUDE "audio/music/victoryroad.asm"
-INCLUDE "audio/music/pokemonlullaby.asm"
-INCLUDE "audio/music/pokemonmarch.asm"
-INCLUDE "audio/music/goldsilveropening.asm"
-INCLUDE "audio/music/goldsilveropening2.asm"
-INCLUDE "audio/music/lookhiker.asm"
-INCLUDE "audio/music/lookrocket.asm"
-INCLUDE "audio/music/rockettheme.asm"
-INCLUDE "audio/music/mainmenu.asm"
-INCLUDE "audio/music/lookkimonogirl.asm"
-INCLUDE "audio/music/pokeflutechannel.asm"
-INCLUDE "audio/music/bugcatchingcontest.asm"
-
-SECTION "bank3E",ROMX,BANK[$3E]
+SECTION "bank3E", ROMX, BANK[$3E]
FontExtra:
INCBIN "gfx/misc/font_extra.2bpp"
@@ -104199,13 +80218,18 @@ INCBIN "gfx/frames/8.1bpp"
INCBIN "gfx/frames/9.1bpp"
; f89b0
-INCBIN "baserom.gbc",$f89b0,$f8ba0 - $f89b0
+INCBIN "baserom.gbc", $f89b0, $f8a90 - $f89b0
+
+ShinyIcon: ; f8a90
+INCBIN "gfx/stats/shiny.2bpp"
+
+INCBIN "baserom.gbc", $f8aa0, $f8ba0 - $f8aa0
TownMapGFX: ; f8ba0
INCBIN "gfx/misc/town_map.lz"
; f8ea3
-INCBIN "baserom.gbc",$f8ea3,$fb449 - $f8ea3
+INCBIN "baserom.gbc", $f8ea3, $fb449 - $f8ea3
Functionfb449: ; fb449
@@ -105043,7 +81067,7 @@ DoBadgeTypeBoosts: ; fbe24
; fbe91
-SECTION "bank3F",ROMX,BANK[$3F]
+SECTION "bank3F", ROMX, BANK[$3F]
_AnimateTileset: ; fc000
; Iterate over a given pointer array of
@@ -106083,7 +82107,7 @@ Functionfcba8: ; fcba8
jr nz, .asm_fcc03
ld a, $0
call Functionfcf38
- call Function1dcf
+ call YesNoBox
ld a, $1
jr c, .asm_fcc03
ld b, $6
@@ -106218,7 +82242,7 @@ Functionfcc63: ; fcc63
call Functionfcdd7
ld b, h
ld c, l
- callba Function4f301
+ callba GetCaughtGender
ld a, c
ld [$c701], a
ld e, $0
@@ -106673,7 +82697,7 @@ Functionfd1d0: ; fd1d0
INCBIN "baserom.gbc",$fd1d1,$fd1d2 - $fd1d1
-SECTION "bank40",ROMX,BANK[$40]
+SECTION "bank40", ROMX, BANK[$40]
Function100000: ; 100000
ld a, [rSVBK]
@@ -108025,7 +84049,7 @@ Function100a87: ; 100a87
ld [$cd27], a
.asm_100a92
call DelayFrame
- call GetJoypadPublic
+ call GetJoypad
callba Function100382
ld c, $1
ld b, $3
@@ -108904,7 +84928,7 @@ Function102142: ; 102142
call Function10219f
ld hl, $61d6
call Function1d4f
- call Function1dcf
+ call YesNoBox
call Function1c07
jr c, .asm_10217c
call Function1021b8
@@ -109007,7 +85031,7 @@ Function10366e: ; 10366e
jr z, .asm_10369b
ld hl, $775d
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_103696
callba Function8b1e1
jr nc, .asm_103690
@@ -109031,7 +85055,7 @@ Function10366e: ; 10366e
jr nz, .asm_1036b5
ld hl, $7762
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_1036b5
call Function1036f9
call Functiona36
@@ -109178,7 +85202,7 @@ Function1037c2: ; 1037c2
jr z, .asm_1037de
ld hl, $77e6
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_1037de
ld a, $1
ld [ScriptVar], a
@@ -109286,7 +85310,7 @@ Function10387b: ; 10387b
INCBIN "baserom.gbc",$103898,$10389d - $103898
-SECTION "bank41",ROMX,BANK[$41]
+SECTION "bank41", ROMX, BANK[$41]
Function104000: ; 104000
ld hl, $4006
@@ -109893,7 +85917,7 @@ Function1046df: ; 1046df (41:46df)
ld b, a
ld a, [$d148]
ld c, a
- call Function2c99
+ call GetAnyMapPermission
call CheckIndoorMap
ret nz
ld a, [$d14a]
@@ -109922,14 +85946,14 @@ Function104718: ; 104718 (41:4718)
ld b, a
ld a, [$d148]
ld c, a
- call Function2c99
+ call GetAnyMapPermission
call CheckIndoorMap
ret nz
ld a, [$d147]
ld b, a
ld a, [$d148]
ld c, a
- call Function2ca7
+ call GetAnyMapTileset
ld a, c
cp $7
jr z, .asm_104743
@@ -110010,7 +86034,7 @@ Function1047b4: ; 1047b4 (41:47b4)
ld a, $0
ld [rVBK], a ; $ff00+$4f
ret
- call Function2d27
+ call LoadTilesetHeader
call Function2821
xor a
ld [$FF00+$de], a
@@ -111864,7 +87888,7 @@ UsedMoveText: ; 105db9
; this is a stream of text and asm from 105db9 to 105ef6
; print actor name
- text_jump _ActorNameText, BANK(_ActorNameText)
+ text_jump _ActorNameText
start_asm
; ????
@@ -111926,13 +87950,13 @@ UsedMoveText: ; 105db9
; 105e04
UsedMove1Text: ; 105e04
- text_jump _UsedMove1Text, BANK(_UsedMove1Text)
+ text_jump _UsedMove1Text
start_asm
jr Function105e10
; 105e0b
UsedMove2Text: ; 105e0b
- text_jump _UsedMove2Text, BANK(_UsedMove2Text)
+ text_jump _UsedMove2Text
start_asm
; 105e10
@@ -111947,7 +87971,7 @@ Function105e10: ; 105e10
; 105e1a
UsedInsteadText: ; 105e1a
- text_jump _UsedInsteadText, BANK(_UsedInsteadText)
+ text_jump _UsedInsteadText
start_asm
; 105e1f
@@ -111957,7 +87981,7 @@ GetMoveNameText: ; 105e1f
; 105e23
MoveNameText: ; 105e23
- text_jump _MoveNameText, BANK(_MoveNameText)
+ text_jump _MoveNameText
start_asm
; 105e28
@@ -111994,23 +88018,23 @@ GetUsedMoveTextEnder: ; 105e28
; 105e43
EndUsedMove1Text: ; 105e43
- text_jump _EndUsedMove1Text, BANK(_EndUsedMove1Text)
+ text_jump _EndUsedMove1Text
db "@"
; 105e48
EndUsedMove2Text: ; 105e48
- text_jump _EndUsedMove2Text, BANK(_EndUsedMove2Text)
+ text_jump _EndUsedMove2Text
db "@"
; 105e4d
EndUsedMove3Text: ; 105e4d
- text_jump _EndUsedMove3Text, BANK(_EndUsedMove3Text)
+ text_jump _EndUsedMove3Text
db "@"
; 105e52
EndUsedMove4Text: ; 105e52
- text_jump _EndUsedMove4Text, BANK(_EndUsedMove4Text)
+ text_jump _EndUsedMove4Text
db "@"
; 105e57
EndUsedMove5Text: ; 105e57
- text_jump _EndUsedMove5Text, BANK(_EndUsedMove5Text)
+ text_jump _EndUsedMove5Text
db "@"
; 105e5c
@@ -112635,7 +88659,13 @@ Function1060e5: ; 1060e5
ret
; 1060e6 (41:60e6)
-INCBIN "baserom.gbc",$1060e6,$1060fb - $1060e6
+INCBIN "baserom.gbc", $1060e6, $1060ef - $1060e6
+
+Function1060ef: ; 1060ef
+ ret
+; 1060f0
+
+INCBIN "baserom.gbc", $1060f0, $1060fb - $1060f0
Function1060fb: ; 1060fb
@@ -113066,7 +89096,7 @@ Function106594: ; 106594
INCBIN "baserom.gbc",$1065ad,$106dbc - $1065ad
-SECTION "bank42",ROMX,BANK[$42]
+SECTION "bank42", ROMX, BANK[$42]
INCBIN "baserom.gbc",$108000,$108016 - $108000
@@ -113337,242 +89367,19 @@ INCBIN "gfx/intro/logo.lz"
; 109847
-Function109847: ; 109847
- bit 6, b
- ld a, $0
- jr z, .asm_10984f
- ld a, $40
-
-.asm_10984f
- ld [$cf63], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- ld hl, $ca00
- ld c, $80
- ld de, rJOYP
-.asm_10986a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- dec c
- jr nz, .asm_10986a
- ld de, $5c24
- ld hl, $9200
- ld bc, $4209
- call Request2bpp
- ld de, $4000
- ld hl, $9600
- ld bc, $391d
- call Request2bpp
- ld de, $7d2e
- ld hl, $9400
- ld bc, $3210
- call Request2bpp
- ld a, $ff
- ld [$cf64], a
- xor a
- ld [$cf65], a
- call Function109bca
- ld e, l
- ld d, h
- ld hl, VTiles2
- ld bc, $4210
- call Request2bpp
- call Function109a95
- xor a
- ld [$cf66], a
- ld hl, LYOverrides
- ld bc, Start
- xor a
- call ByteFill
- ld a, $43
- ld [hLCDStatCustom], a
- call GetCreditsPalette
- call Function32f9
- ld a, [$ff9e]
- push af
- ld a, $5
- ld [$ff9e], a
- ld a, $1
- ld [$ffaa], a
- xor a
- ld [hBGMapMode], a
- ld [CreditsPos], a
- ld [$cd21], a
- ld [CreditsTimer], a
-.asm_1098de
- call Function109908
- call Function1098fd
- jr nz, .asm_1098ee
- call Function109926
- call DelayFrame
- jr .asm_1098de
-
-.asm_1098ee
- call WhiteBGMap
- xor a
- ld [hLCDStatCustom], a
- ld [hBGMapAddress], a
- pop af
- ld [$ff9e], a
- pop af
- ld [rSVBK], a
- ret
-; 1098fd
-
-Function1098fd: ; 1098fd
- ld a, [hJoypadDown]
- and $1
- ret z
- ld a, [$cf63]
- bit 7, a
- ret
-; 109908
-
-Function109908: ; 109908
- ld a, [hJoypadDown]
- and $2
- ret z
- ld a, [$cf63]
- bit 6, a
- ret z
- ld hl, CreditsPos
- ld a, [hli]
- cp $d
- jr nc, .asm_10991e
- ld a, [hli]
- and a
- ret z
-
-.asm_10991e
- ld hl, CreditsTimer
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-; 109926
-
-Function109926: ; 109926
- ld a, [$cf63]
- and $f
- ld e, a
- ld d, $0
- ld hl, $5937
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 109937
-
-
-; no known jump sources
-Jumptable_109937: ; 109937 (42:5937)
- dw ParseCredits
- dw Function109951
- dw Function109951
- dw Function10995e
- dw Function109964
- dw Function10997b
- dw Function109986
- dw Function109951
- dw Function109951
- dw Function109951
- dw Function109964
- dw Function10997b
- dw Function109956
-
-
-; known jump sources: 109961 (42:5961), 109983 (42:5983), 1099a0 (42:59a0), 109a62 (42:5a62)
-Function109951: ; 109951 (42:5951)
- ld hl, $cf63
- inc [hl]
- ret
-
-; no known jump sources
-Function109956: ; 109956 (42:5956)
- ld hl, $cf63
- ld a, [hl]
- and $f0
- ld [hl], a
- ret
-
-; no known jump sources
-Function10995e: ; 10995e (42:595e)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- jp Function109951
-
-; no known jump sources
-Function109964: ; 109964 (42:5964)
- call Function109bca
- ld a, l
- ld [$cf68], a
- ld a, h
- ld [$cf69], a
- ld a, $0
- ld [$cf6a], a
- ld a, $90
- ld [$cf6b], a
- jr Function10997b
-
-; known jump sources: 109979 (42:5979)
-Function10997b: ; 10997b (42:597b)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld a, $8
- ld [$cf67], a
- jp Function109951
-
-; known jump sources: 10998a (42:598a)
-Function109986: ; 109986 (42:5986)
- ld a, [rLY] ; $ff00+$44
- cp $30
- jr c, Function109986
- ld a, [$cf66]
- dec a
- dec a
- ld [$cf66], a
- ld hl, $d11f
- call Function1099a3
- ld hl, $d187
- call Function1099a3
- jp Function109951
-
-; known jump sources: 109997 (42:5997), 10999d (42:599d)
-Function1099a3: ; 1099a3 (42:59a3)
- ld c, $8
-.asm_1099a5
- ld [hli], a
- dec c
- jr nz, .asm_1099a5
- ret
-
-; Credits
-INCLUDE "engine/credits.asm"
-
-
-SECTION "bank43",ROMX,BANK[$43]
+SECTION "bank43", ROMX, BANK[$43]
INCBIN "baserom.gbc",$10c000,$10ed67 - $10c000
INCLUDE "engine/title.asm"
-SECTION "bank44",ROMX,BANK[$44]
+SECTION "bank44", ROMX, BANK[$44]
INCLUDE "lib/mobile/main.asm"
-SECTION "bank45",ROMX,BANK[$45]
+SECTION "bank45", ROMX, BANK[$45]
INCBIN "baserom.gbc",$114000,$114243 - $114000
@@ -114575,7 +90382,7 @@ Function117cdd: ; 0x117cdd
ret
-SECTION "bank46",ROMX,BANK[$46]
+SECTION "bank46", ROMX, BANK[$46]
Function118000: ; 118000
ld a, $1
@@ -116554,7 +92361,7 @@ Function11b7e5: ; 11b7e5
ld a, [hl]
ld [$c730], a
ld bc, EnemyMovePP
- callba Function4f301
+ callba GetCaughtGender
ld a, c
ld [$c733], a
call SpeechTextBox
@@ -116841,7 +92648,7 @@ Function11ba38: ; 11ba38
INCBIN "baserom.gbc",$11ba44,$11bc9e - $11ba44
-SECTION "bank47",ROMX,BANK[$47]
+SECTION "bank47", ROMX, BANK[$47]
Function11c000: ; 11c000
ld a, [rSVBK]
@@ -117630,33 +93437,44 @@ Function11c52c: ; 11c52c (47:452c)
Function11c53d: ; 11c53d (47:453d)
ld hl, $cd21
ld de, hJoypadPressed ; $ffa3
+
ld a, [de]
- and $8
- jr nz, .asm_11c57f
+ and START
+ jr nz, .start
+
ld a, [de]
- and $4
- jr nz, .asm_11c58d
+ and SELECT
+ jr nz, .select
+
ld a, [de]
- and $2
- jr nz, .asm_11c589
+ and B_BUTTON
+ jr nz, .b
+
ld a, [de]
- and $1
- jr nz, .asm_11c56f
+ and A_BUTTON
+ jr nz, .a
+
ld de, $ffa9
+
ld a, [de]
- and $40
- jr nz, .asm_11c5b5
+ and D_UP
+ jr nz, .up
+
ld a, [de]
- and $80
- jr nz, .asm_11c5bd
+ and D_DOWN
+ jr nz, .down
+
ld a, [de]
- and $20
- jr nz, .asm_11c5c5
+ and D_LEFT
+ jr nz, .left
+
ld a, [de]
- and $10
- jr nz, .asm_11c5da
+ and D_RIGHT
+ jr nz, .right
+
ret
-.asm_11c56f
+
+.a
ld a, [$cd21]
cp $f
jr c, .asm_11c59d
@@ -117664,50 +93482,60 @@ Function11c53d: ; 11c53d (47:453d)
jr z, .asm_11c5ab
dec a
jr z, .asm_11c599
- jr .asm_11c589
-.asm_11c57f
+ jr .b
+
+.start
ld hl, $cd24
set 0, [hl]
ld a, $8
ld [BGMapBuffer], a ; $cd20 (aliases: CreditsPos)
-.asm_11c589
+
+.b
ld a, $4
jr .asm_11c59f
-.asm_11c58d
+
+.select
ld a, [$cd2b]
xor $1
ld [$cd2b], a
ld a, $15
jr .asm_11c59f
+
.asm_11c599
ld a, $13
jr .asm_11c59f
+
.asm_11c59d
ld a, $8
+
.asm_11c59f
ld hl, $cd24
set 1, [hl]
ld [$cf63], a
call PlayClickSFX
ret
+
.asm_11c5ab
ld a, [BGMapBuffer] ; $cd20 (aliases: CreditsPos)
call Function11ca6a
call PlayClickSFX
ret
-.asm_11c5b5
+
+.up
ld a, [hl]
cp $3
ret c
sub $3
jr .asm_11c5ee
-.asm_11c5bd
+
+.down
ld a, [hl]
cp $f
ret nc
add $3
jr .asm_11c5ee
-.asm_11c5c5
+
+.left
ld a, [hl]
and a
ret z
@@ -117723,7 +93551,8 @@ Function11c53d: ; 11c53d (47:453d)
ret z
dec a
jr .asm_11c5ee
-.asm_11c5da
+
+.right
ld a, [hl]
cp $2
ret z
@@ -117738,6 +93567,7 @@ Function11c53d: ; 11c53d (47:453d)
cp $11
ret z
inc a
+
.asm_11c5ee
ld [hl], a
ret
@@ -119584,829 +95414,8 @@ Function11d4aa: ; 11d4aa
INCBIN "baserom.gbc",$11d4fe,$11f686 - $11d4fe
-SECTION "bank48",ROMX,BANK[$48]
-
-PicPointers:
-INCLUDE "gfx/pics/pic_pointers.asm"
-
-; Pics I
-
-HoOhFrontpic: INCBIN "gfx/pics/250/front.lz"
-MachampFrontpic: INCBIN "gfx/pics/068/front.lz"
-NinetalesFrontpic: INCBIN "gfx/pics/038/front.lz"
-FeraligatrFrontpic: INCBIN "gfx/pics/160/front.lz"
-NidokingFrontpic: INCBIN "gfx/pics/034/front.lz"
-RaikouFrontpic: INCBIN "gfx/pics/243/front.lz"
-LugiaFrontpic: INCBIN "gfx/pics/249/front.lz"
-ArticunoFrontpic: INCBIN "gfx/pics/144/front.lz"
-TaurosFrontpic: INCBIN "gfx/pics/128/front.lz"
-VenusaurFrontpic: INCBIN "gfx/pics/003/front.lz"
-EnteiFrontpic: INCBIN "gfx/pics/244/front.lz"
-SuicuneFrontpic: INCBIN "gfx/pics/245/front.lz"
-TyphlosionFrontpic: INCBIN "gfx/pics/157/front.lz"
-; 123ffa
-
-
-SECTION "bank49",ROMX,BANK[$49]
-
-UnownPicPointers:
-INCLUDE "gfx/pics/unown_pic_pointers.asm"
-
-; Pics II
-
-BlastoiseFrontpic: INCBIN "gfx/pics/009/front.lz"
-RapidashFrontpic: INCBIN "gfx/pics/078/front.lz"
-MeganiumFrontpic: INCBIN "gfx/pics/154/front.lz"
-NidoqueenFrontpic: INCBIN "gfx/pics/031/front.lz"
-HitmonleeFrontpic: INCBIN "gfx/pics/106/front.lz"
-ScizorFrontpic: INCBIN "gfx/pics/212/front.lz"
-BeedrillFrontpic: INCBIN "gfx/pics/015/front.lz"
-ArcanineFrontpic: INCBIN "gfx/pics/059/front.lz"
-TyranitarFrontpic: INCBIN "gfx/pics/248/front.lz"
-MoltresFrontpic: INCBIN "gfx/pics/146/front.lz"
-ZapdosFrontpic: INCBIN "gfx/pics/145/front.lz"
-ArbokFrontpic: INCBIN "gfx/pics/024/front.lz"
-MewtwoFrontpic: INCBIN "gfx/pics/150/front.lz"
-FearowFrontpic: INCBIN "gfx/pics/022/front.lz"
-CharizardFrontpic: INCBIN "gfx/pics/006/front.lz"
-QuilavaFrontpic: INCBIN "gfx/pics/156/front.lz"
-; 127ffe
-
-
-SECTION "bank4a",ROMX,BANK[$4a]
-
-TrainerPicPointers:
-INCLUDE "gfx/pics/trainer_pic_pointers.asm"
-
-; Pics III
-
-SteelixFrontpic: INCBIN "gfx/pics/208/front.lz"
-AlakazamFrontpic: INCBIN "gfx/pics/065/front.lz"
-GyaradosFrontpic: INCBIN "gfx/pics/130/front.lz"
-KangaskhanFrontpic: INCBIN "gfx/pics/115/front.lz"
-RhydonFrontpic: INCBIN "gfx/pics/112/front.lz"
-GolduckFrontpic: INCBIN "gfx/pics/055/front.lz"
-RhyhornFrontpic: INCBIN "gfx/pics/111/front.lz"
-PidgeotFrontpic: INCBIN "gfx/pics/018/front.lz"
-SlowbroFrontpic: INCBIN "gfx/pics/080/front.lz"
-ButterfreeFrontpic: INCBIN "gfx/pics/012/front.lz"
-WeezingFrontpic: INCBIN "gfx/pics/110/front.lz"
-CloysterFrontpic: INCBIN "gfx/pics/091/front.lz"
-SkarmoryFrontpic: INCBIN "gfx/pics/227/front.lz"
-DewgongFrontpic: INCBIN "gfx/pics/087/front.lz"
-VictreebelFrontpic: INCBIN "gfx/pics/071/front.lz"
-RaichuFrontpic: INCBIN "gfx/pics/026/front.lz"
-PrimeapeFrontpic: INCBIN "gfx/pics/057/front.lz"
-OmastarBackpic: INCBIN "gfx/pics/139/back.lz"
-; 12bffe
-
-
-SECTION "bank4b",ROMX,BANK[$4b]
-
-; Pics IV
-
-DodrioFrontpic: INCBIN "gfx/pics/085/front.lz"
-SlowkingFrontpic: INCBIN "gfx/pics/199/front.lz"
-HitmontopFrontpic: INCBIN "gfx/pics/237/front.lz"
-OnixFrontpic: INCBIN "gfx/pics/095/front.lz"
-BlisseyFrontpic: INCBIN "gfx/pics/242/front.lz"
-MachokeFrontpic: INCBIN "gfx/pics/067/front.lz"
-DragoniteFrontpic: INCBIN "gfx/pics/149/front.lz"
-PoliwrathFrontpic: INCBIN "gfx/pics/062/front.lz"
-ScytherFrontpic: INCBIN "gfx/pics/123/front.lz"
-AerodactylFrontpic: INCBIN "gfx/pics/142/front.lz"
-SeakingFrontpic: INCBIN "gfx/pics/119/front.lz"
-MukFrontpic: INCBIN "gfx/pics/089/front.lz"
-CroconawFrontpic: INCBIN "gfx/pics/159/front.lz"
-HypnoFrontpic: INCBIN "gfx/pics/097/front.lz"
-NidorinoFrontpic: INCBIN "gfx/pics/033/front.lz"
-SandslashFrontpic: INCBIN "gfx/pics/028/front.lz"
-JolteonFrontpic: INCBIN "gfx/pics/135/front.lz"
-DonphanFrontpic: INCBIN "gfx/pics/232/front.lz"
-PinsirFrontpic: INCBIN "gfx/pics/127/front.lz"
-UnownEFrontpic: INCBIN "gfx/pics/201e/front.lz"
-; 130000
-
-
-SECTION "bank4C",ROMX,BANK[$4C]
-
-; Pics V
-
-GolbatFrontpic: INCBIN "gfx/pics/042/front.lz"
-KinglerFrontpic: INCBIN "gfx/pics/099/front.lz"
-ExeggcuteFrontpic: INCBIN "gfx/pics/102/front.lz"
-MagcargoFrontpic: INCBIN "gfx/pics/219/front.lz"
-PersianFrontpic: INCBIN "gfx/pics/053/front.lz"
-StantlerFrontpic: INCBIN "gfx/pics/234/front.lz"
-RaticateFrontpic: INCBIN "gfx/pics/020/front.lz"
-VenomothFrontpic: INCBIN "gfx/pics/049/front.lz"
-PolitoedFrontpic: INCBIN "gfx/pics/186/front.lz"
-ElectabuzzFrontpic: INCBIN "gfx/pics/125/front.lz"
-MantineFrontpic: INCBIN "gfx/pics/226/front.lz"
-LickitungFrontpic: INCBIN "gfx/pics/108/front.lz"
-KingdraFrontpic: INCBIN "gfx/pics/230/front.lz"
-CharmeleonFrontpic: INCBIN "gfx/pics/005/front.lz"
-KadabraFrontpic: INCBIN "gfx/pics/064/front.lz"
-ExeggutorFrontpic: INCBIN "gfx/pics/103/front.lz"
-GastlyFrontpic: INCBIN "gfx/pics/092/front.lz"
-AzumarillFrontpic: INCBIN "gfx/pics/184/front.lz"
-ParasectFrontpic: INCBIN "gfx/pics/047/front.lz"
-MrMimeFrontpic: INCBIN "gfx/pics/122/front.lz"
-HeracrossFrontpic: INCBIN "gfx/pics/214/front.lz"
-; 133fff
-
-
-SECTION "bank4d",ROMX,BANK[$4d]
-
-; Pics VI
-
-AriadosFrontpic: INCBIN "gfx/pics/168/front.lz"
-NoctowlFrontpic: INCBIN "gfx/pics/164/front.lz"
-WartortleFrontpic: INCBIN "gfx/pics/008/front.lz"
-LaprasFrontpic: INCBIN "gfx/pics/131/front.lz"
-GolemFrontpic: INCBIN "gfx/pics/076/front.lz"
-PoliwhirlFrontpic: INCBIN "gfx/pics/061/front.lz"
-UrsaringFrontpic: INCBIN "gfx/pics/217/front.lz"
-HoundoomFrontpic: INCBIN "gfx/pics/229/front.lz"
-KabutopsFrontpic: INCBIN "gfx/pics/141/front.lz"
-AmpharosFrontpic: INCBIN "gfx/pics/181/front.lz"
-NidorinaFrontpic: INCBIN "gfx/pics/030/front.lz"
-FlareonFrontpic: INCBIN "gfx/pics/136/front.lz"
-FarfetchDFrontpic: INCBIN "gfx/pics/083/front.lz"
-VileplumeFrontpic: INCBIN "gfx/pics/045/front.lz"
-BayleefFrontpic: INCBIN "gfx/pics/153/front.lz"
-MagmarFrontpic: INCBIN "gfx/pics/126/front.lz"
-TentacruelFrontpic: INCBIN "gfx/pics/073/front.lz"
-ElekidFrontpic: INCBIN "gfx/pics/239/front.lz"
-JumpluffFrontpic: INCBIN "gfx/pics/189/front.lz"
-MarowakFrontpic: INCBIN "gfx/pics/105/front.lz"
-VulpixFrontpic: INCBIN "gfx/pics/037/front.lz"
-GligarFrontpic: INCBIN "gfx/pics/207/front.lz"
-DunsparceFrontpic: INCBIN "gfx/pics/206/front.lz"
-; 137fff
-
-
-SECTION "bank4E",ROMX,BANK[$4E]
-
-; Pics VII
-
-VaporeonFrontpic: INCBIN "gfx/pics/134/front.lz"
-GirafarigFrontpic: INCBIN "gfx/pics/203/front.lz"
-DrowzeeFrontpic: INCBIN "gfx/pics/096/front.lz"
-SneaselFrontpic: INCBIN "gfx/pics/215/front.lz"
-BellossomFrontpic: INCBIN "gfx/pics/182/front.lz"
-SnorlaxFrontpic: INCBIN "gfx/pics/143/front.lz"
-WigglytuffFrontpic: INCBIN "gfx/pics/040/front.lz"
-YanmaFrontpic: INCBIN "gfx/pics/193/front.lz"
-SmeargleFrontpic: INCBIN "gfx/pics/235/front.lz"
-ClefableFrontpic: INCBIN "gfx/pics/036/front.lz"
-PonytaFrontpic: INCBIN "gfx/pics/077/front.lz"
-MurkrowFrontpic: INCBIN "gfx/pics/198/front.lz"
-GravelerFrontpic: INCBIN "gfx/pics/075/front.lz"
-StarmieFrontpic: INCBIN "gfx/pics/121/front.lz"
-PidgeottoFrontpic: INCBIN "gfx/pics/017/front.lz"
-LedybaFrontpic: INCBIN "gfx/pics/165/front.lz"
-GengarFrontpic: INCBIN "gfx/pics/094/front.lz"
-OmastarFrontpic: INCBIN "gfx/pics/139/front.lz"
-PiloswineFrontpic: INCBIN "gfx/pics/221/front.lz"
-DugtrioFrontpic: INCBIN "gfx/pics/051/front.lz"
-MagnetonFrontpic: INCBIN "gfx/pics/082/front.lz"
-DragonairFrontpic: INCBIN "gfx/pics/148/front.lz"
-ForretressFrontpic: INCBIN "gfx/pics/205/front.lz"
-TogeticFrontpic: INCBIN "gfx/pics/176/front.lz"
-KangaskhanBackpic: INCBIN "gfx/pics/115/back.lz"
-; 13c000
-
-
-SECTION "bank4f",ROMX,BANK[$4f]
-
-; Pics VIII
-
-SeelFrontpic: INCBIN "gfx/pics/086/front.lz"
-CrobatFrontpic: INCBIN "gfx/pics/169/front.lz"
-ChanseyFrontpic: INCBIN "gfx/pics/113/front.lz"
-TangelaFrontpic: INCBIN "gfx/pics/114/front.lz"
-SnubbullFrontpic: INCBIN "gfx/pics/209/front.lz"
-GranbullFrontpic: INCBIN "gfx/pics/210/front.lz"
-MiltankFrontpic: INCBIN "gfx/pics/241/front.lz"
-HaunterFrontpic: INCBIN "gfx/pics/093/front.lz"
-SunfloraFrontpic: INCBIN "gfx/pics/192/front.lz"
-UmbreonFrontpic: INCBIN "gfx/pics/197/front.lz"
-ChikoritaFrontpic: INCBIN "gfx/pics/152/front.lz"
-GoldeenFrontpic: INCBIN "gfx/pics/118/front.lz"
-EspeonFrontpic: INCBIN "gfx/pics/196/front.lz"
-XatuFrontpic: INCBIN "gfx/pics/178/front.lz"
-MewFrontpic: INCBIN "gfx/pics/151/front.lz"
-OctilleryFrontpic: INCBIN "gfx/pics/224/front.lz"
-JynxFrontpic: INCBIN "gfx/pics/124/front.lz"
-WobbuffetFrontpic: INCBIN "gfx/pics/202/front.lz"
-DelibirdFrontpic: INCBIN "gfx/pics/225/front.lz"
-LedianFrontpic: INCBIN "gfx/pics/166/front.lz"
-GloomFrontpic: INCBIN "gfx/pics/044/front.lz"
-FlaaffyFrontpic: INCBIN "gfx/pics/180/front.lz"
-IvysaurFrontpic: INCBIN "gfx/pics/002/front.lz"
-FurretFrontpic: INCBIN "gfx/pics/162/front.lz"
-CyndaquilFrontpic: INCBIN "gfx/pics/155/front.lz"
-HitmonchanFrontpic: INCBIN "gfx/pics/107/front.lz"
-QuagsireFrontpic: INCBIN "gfx/pics/195/front.lz"
-; 13fff7
-
-
-SECTION "bank50",ROMX,BANK[$50]
-
-; Pics IX
-
-EkansFrontpic: INCBIN "gfx/pics/023/front.lz"
-SudowoodoFrontpic: INCBIN "gfx/pics/185/front.lz"
-PikachuFrontpic: INCBIN "gfx/pics/025/front.lz"
-SeadraFrontpic: INCBIN "gfx/pics/117/front.lz"
-MagbyFrontpic: INCBIN "gfx/pics/240/front.lz"
-WeepinbellFrontpic: INCBIN "gfx/pics/070/front.lz"
-TotodileFrontpic: INCBIN "gfx/pics/158/front.lz"
-CorsolaFrontpic: INCBIN "gfx/pics/222/front.lz"
-FirebreatherPic: INCBIN "gfx/trainers/047.lz"
-MachopFrontpic: INCBIN "gfx/pics/066/front.lz"
-ChinchouFrontpic: INCBIN "gfx/pics/170/front.lz"
-RattataFrontpic: INCBIN "gfx/pics/019/front.lz"
-ChampionPic: INCBIN "gfx/trainers/015.lz"
-SpearowFrontpic: INCBIN "gfx/pics/021/front.lz"
-MagikarpFrontpic: INCBIN "gfx/pics/129/front.lz"
-CharmanderFrontpic: INCBIN "gfx/pics/004/front.lz"
-CuboneFrontpic: INCBIN "gfx/pics/104/front.lz"
-BlackbeltTPic: INCBIN "gfx/trainers/049.lz"
-BikerPic: INCBIN "gfx/trainers/044.lz"
-NidoranMFrontpic: INCBIN "gfx/pics/032/front.lz"
-PorygonFrontpic: INCBIN "gfx/pics/137/front.lz"
-BrunoPic: INCBIN "gfx/trainers/012.lz"
-GrimerFrontpic: INCBIN "gfx/pics/088/front.lz"
-StaryuFrontpic: INCBIN "gfx/pics/120/front.lz"
-HikerPic: INCBIN "gfx/trainers/043.lz"
-MeowthFrontpic: INCBIN "gfx/pics/052/front.lz"
-Porygon2Frontpic: INCBIN "gfx/pics/233/front.lz"
-SandshrewFrontpic: INCBIN "gfx/pics/027/front.lz"
-NidoranFFrontpic: INCBIN "gfx/pics/029/front.lz"
-PidgeyFrontpic: INCBIN "gfx/pics/016/front.lz"
-ParasectBackpic: INCBIN "gfx/pics/047/back.lz"
-; 144000
-
-
-SECTION "bank51",ROMX,BANK[$51]
-
-; Pics X
-
-MisdreavusFrontpic: INCBIN "gfx/pics/200/front.lz"
-HoundourFrontpic: INCBIN "gfx/pics/228/front.lz"
-MankeyFrontpic: INCBIN "gfx/pics/056/front.lz"
-CelebiFrontpic: INCBIN "gfx/pics/251/front.lz"
-MediumPic: INCBIN "gfx/trainers/056.lz"
-PinecoFrontpic: INCBIN "gfx/pics/204/front.lz"
-KrabbyFrontpic: INCBIN "gfx/pics/098/front.lz"
-FisherPic: INCBIN "gfx/trainers/036.lz"
-JigglypuffFrontpic: INCBIN "gfx/pics/039/front.lz"
-ParasFrontpic: INCBIN "gfx/pics/046/front.lz"
-NidokingBackpic: INCBIN "gfx/pics/034/back.lz"
-PokefanmPic: INCBIN "gfx/trainers/058.lz"
-BoarderPic: INCBIN "gfx/trainers/057.lz"
-PsyduckFrontpic: INCBIN "gfx/pics/054/front.lz"
-SquirtleFrontpic: INCBIN "gfx/pics/007/front.lz"
-MachampBackpic: INCBIN "gfx/pics/068/back.lz"
-KoffingFrontpic: INCBIN "gfx/pics/109/front.lz"
-VenonatFrontpic: INCBIN "gfx/pics/048/front.lz"
-ExeggutorBackpic: INCBIN "gfx/pics/103/back.lz"
-LanturnFrontpic: INCBIN "gfx/pics/171/front.lz"
-TyrogueFrontpic: INCBIN "gfx/pics/236/front.lz"
-SkiploomFrontpic: INCBIN "gfx/pics/188/front.lz"
-MareepFrontpic: INCBIN "gfx/pics/179/front.lz"
-ChuckPic: INCBIN "gfx/trainers/006.lz"
-EeveeFrontpic: INCBIN "gfx/pics/133/front.lz"
-ButterfreeBackpic: INCBIN "gfx/pics/012/back.lz"
-ZubatFrontpic: INCBIN "gfx/pics/041/front.lz"
-KimonoGirlPic: INCBIN "gfx/trainers/059.lz"
-AlakazamBackpic: INCBIN "gfx/pics/065/back.lz"
-AipomFrontpic: INCBIN "gfx/pics/190/front.lz"
-AbraFrontpic: INCBIN "gfx/pics/063/front.lz"
-HitmontopBackpic: INCBIN "gfx/pics/237/back.lz"
-CloysterBackpic: INCBIN "gfx/pics/091/back.lz"
-HoothootFrontpic: INCBIN "gfx/pics/163/front.lz"
-UnownFBackpic: INCBIN "gfx/pics/201f/back.lz"
-; 148000
-
-
-SECTION "bank52",ROMX,BANK[$52]
-
-; Pics XI
-
-DodrioBackpic: INCBIN "gfx/pics/085/back.lz"
-ClefairyFrontpic: INCBIN "gfx/pics/035/front.lz"
-SlugmaFrontpic: INCBIN "gfx/pics/218/front.lz"
-GrowlitheFrontpic: INCBIN "gfx/pics/058/front.lz"
-SlowpokeFrontpic: INCBIN "gfx/pics/079/front.lz"
-SmoochumFrontpic: INCBIN "gfx/pics/238/front.lz"
-JugglerPic: INCBIN "gfx/trainers/048.lz"
-MarillFrontpic: INCBIN "gfx/pics/183/front.lz"
-GuitaristPic: INCBIN "gfx/trainers/042.lz"
-PokefanfPic: INCBIN "gfx/trainers/061.lz"
-VenomothBackpic: INCBIN "gfx/pics/049/back.lz"
-ClairPic: INCBIN "gfx/trainers/007.lz"
-PokemaniacPic: INCBIN "gfx/trainers/029.lz"
-OmanyteFrontpic: INCBIN "gfx/pics/138/front.lz"
-SkierPic: INCBIN "gfx/trainers/032.lz"
-PupitarFrontpic: INCBIN "gfx/pics/247/front.lz"
-BellsproutFrontpic: INCBIN "gfx/pics/069/front.lz"
-ShellderFrontpic: INCBIN "gfx/pics/090/front.lz"
-TentacoolFrontpic: INCBIN "gfx/pics/072/front.lz"
-CleffaFrontpic: INCBIN "gfx/pics/173/front.lz"
-GyaradosBackpic: INCBIN "gfx/pics/130/back.lz"
-NinetalesBackpic: INCBIN "gfx/pics/038/back.lz"
-YanmaBackpic: INCBIN "gfx/pics/193/back.lz"
-PinsirBackpic: INCBIN "gfx/pics/127/back.lz"
-LassPic: INCBIN "gfx/trainers/024.lz"
-ClefableBackpic: INCBIN "gfx/pics/036/back.lz"
-DoduoFrontpic: INCBIN "gfx/pics/084/front.lz"
-FeraligatrBackpic: INCBIN "gfx/pics/160/back.lz"
-DratiniFrontpic: INCBIN "gfx/pics/147/front.lz"
-MagnetonBackpic: INCBIN "gfx/pics/082/back.lz"
-QwilfishFrontpic: INCBIN "gfx/pics/211/front.lz"
-SuicuneBackpic: INCBIN "gfx/pics/245/back.lz"
-SlowkingBackpic: INCBIN "gfx/pics/199/back.lz"
-ElekidBackpic: INCBIN "gfx/pics/239/back.lz"
-CelebiBackpic: INCBIN "gfx/pics/251/back.lz"
-KrabbyBackpic: INCBIN "gfx/pics/098/back.lz"
-BugCatcherPic: INCBIN "gfx/trainers/035.lz"
-SnorlaxBackpic: INCBIN "gfx/pics/143/back.lz"
-; 14bffb
-
-
-SECTION "bank53",ROMX,BANK[$53]
-
-; Pics XII
-
-VenusaurBackpic: INCBIN "gfx/pics/003/back.lz"
-MoltresBackpic: INCBIN "gfx/pics/146/back.lz"
-SunfloraBackpic: INCBIN "gfx/pics/192/back.lz"
-PhanpyFrontpic: INCBIN "gfx/pics/231/front.lz"
-RhydonBackpic: INCBIN "gfx/pics/112/back.lz"
-LarvitarFrontpic: INCBIN "gfx/pics/246/front.lz"
-TyranitarBackpic: INCBIN "gfx/pics/248/back.lz"
-SandslashBackpic: INCBIN "gfx/pics/028/back.lz"
-SeadraBackpic: INCBIN "gfx/pics/117/back.lz"
-TwinsPic: INCBIN "gfx/trainers/060.lz"
-FarfetchDBackpic: INCBIN "gfx/pics/083/back.lz"
-NidoranMBackpic: INCBIN "gfx/pics/032/back.lz"
-LedybaBackpic: INCBIN "gfx/pics/165/back.lz"
-CyndaquilBackpic: INCBIN "gfx/pics/155/back.lz"
-BayleefBackpic: INCBIN "gfx/pics/153/back.lz"
-OddishFrontpic: INCBIN "gfx/pics/043/front.lz"
-RapidashBackpic: INCBIN "gfx/pics/078/back.lz"
-DoduoBackpic: INCBIN "gfx/pics/084/back.lz"
-HoppipFrontpic: INCBIN "gfx/pics/187/front.lz"
-MankeyBackpic: INCBIN "gfx/pics/056/back.lz"
-MagmarBackpic: INCBIN "gfx/pics/126/back.lz"
-HypnoBackpic: INCBIN "gfx/pics/097/back.lz"
-QuilavaBackpic: INCBIN "gfx/pics/156/back.lz"
-CroconawBackpic: INCBIN "gfx/pics/159/back.lz"
-SandshrewBackpic: INCBIN "gfx/pics/027/back.lz"
-SailorPic: INCBIN "gfx/trainers/039.lz"
-BeautyPic: INCBIN "gfx/trainers/028.lz"
-ShellderBackpic: INCBIN "gfx/pics/090/back.lz"
-ZubatBackpic: INCBIN "gfx/pics/041/back.lz"
-TeddiursaFrontpic: INCBIN "gfx/pics/216/front.lz"
-CuboneBackpic: INCBIN "gfx/pics/104/back.lz"
-GruntmPic: INCBIN "gfx/trainers/030.lz"
-GloomBackpic: INCBIN "gfx/pics/044/back.lz"
-MagcargoBackpic: INCBIN "gfx/pics/219/back.lz"
-KabutopsBackpic: INCBIN "gfx/pics/141/back.lz"
-BeedrillBackpic: INCBIN "gfx/pics/015/back.lz"
-ArcanineBackpic: INCBIN "gfx/pics/059/back.lz"
-FlareonBackpic: INCBIN "gfx/pics/136/back.lz"
-GoldeenBackpic: INCBIN "gfx/pics/118/back.lz"
-BulbasaurFrontpic: INCBIN "gfx/pics/001/front.lz"
-StarmieBackpic: INCBIN "gfx/pics/121/back.lz"
-; 150000
-
-
-SECTION "bank54",ROMX,BANK[$54]
-
-; Pics XIII
-
-OmanyteBackpic: INCBIN "gfx/pics/138/back.lz"
-PidgeyBackpic: INCBIN "gfx/pics/016/back.lz"
-ScientistPic: INCBIN "gfx/trainers/019.lz"
-QwilfishBackpic: INCBIN "gfx/pics/211/back.lz"
-GligarBackpic: INCBIN "gfx/pics/207/back.lz"
-TyphlosionBackpic: INCBIN "gfx/pics/157/back.lz"
-CharmeleonBackpic: INCBIN "gfx/pics/005/back.lz"
-NidoqueenBackpic: INCBIN "gfx/pics/031/back.lz"
-PichuFrontpic: INCBIN "gfx/pics/172/front.lz"
-ElectabuzzBackpic: INCBIN "gfx/pics/125/back.lz"
-LedianBackpic: INCBIN "gfx/pics/166/back.lz"
-PupitarBackpic: INCBIN "gfx/pics/247/back.lz"
-HeracrossBackpic: INCBIN "gfx/pics/214/back.lz"
-UnownDFrontpic: INCBIN "gfx/pics/201d/front.lz"
-MiltankBackpic: INCBIN "gfx/pics/241/back.lz"
-SteelixBackpic: INCBIN "gfx/pics/208/back.lz"
-PersianBackpic: INCBIN "gfx/pics/053/back.lz"
-LtSurgePic: INCBIN "gfx/trainers/018.lz"
-TeacherPic: INCBIN "gfx/trainers/033.lz"
-EggPic: INCBIN "gfx/pics/egg/front.lz"
-EeveeBackpic: INCBIN "gfx/pics/133/back.lz"
-ShuckleFrontpic: INCBIN "gfx/pics/213/front.lz"
-PonytaBackpic: INCBIN "gfx/pics/077/back.lz"
-RemoraidFrontpic: INCBIN "gfx/pics/223/front.lz"
-PoliwagFrontpic: INCBIN "gfx/pics/060/front.lz"
-OnixBackpic: INCBIN "gfx/pics/095/back.lz"
-KoffingBackpic: INCBIN "gfx/pics/109/back.lz"
-BirdKeeperPic: INCBIN "gfx/trainers/023.lz"
-FalknerPic: INCBIN "gfx/trainers/000.lz"
-KarenPic: INCBIN "gfx/trainers/013.lz"
-NidorinaBackpic: INCBIN "gfx/pics/030/back.lz"
-TentacruelBackpic: INCBIN "gfx/pics/073/back.lz"
-GrowlitheBackpic: INCBIN "gfx/pics/058/back.lz"
-KogaPic: INCBIN "gfx/trainers/014.lz"
-MachokeBackpic: INCBIN "gfx/pics/067/back.lz"
-RaichuBackpic: INCBIN "gfx/pics/026/back.lz"
-PoliwrathBackpic: INCBIN "gfx/pics/062/back.lz"
-SwimmermPic: INCBIN "gfx/trainers/037.lz"
-SunkernFrontpic: INCBIN "gfx/pics/191/front.lz"
-NidorinoBackpic: INCBIN "gfx/pics/033/back.lz"
-MysticalmanPic: INCBIN "gfx/trainers/066.lz"
-CooltrainerfPic: INCBIN "gfx/trainers/027.lz"
-ElectrodeFrontpic: INCBIN "gfx/pics/101/front.lz"
-; 153fe3
-
-
-SECTION "bank55",ROMX,BANK[$55]
-
-; Pics XIV
-
-SudowoodoBackpic: INCBIN "gfx/pics/185/back.lz"
-FlaaffyBackpic: INCBIN "gfx/pics/180/back.lz"
-SentretFrontpic: INCBIN "gfx/pics/161/front.lz"
-TogeticBackpic: INCBIN "gfx/pics/176/back.lz"
-BugsyPic: INCBIN "gfx/trainers/002.lz"
-MarowakBackpic: INCBIN "gfx/pics/105/back.lz"
-GeodudeBackpic: INCBIN "gfx/pics/074/back.lz"
-ScytherBackpic: INCBIN "gfx/pics/123/back.lz"
-VileplumeBackpic: INCBIN "gfx/pics/045/back.lz"
-HitmonchanBackpic: INCBIN "gfx/pics/107/back.lz"
-JumpluffBackpic: INCBIN "gfx/pics/189/back.lz"
-CooltrainermPic: INCBIN "gfx/trainers/026.lz"
-BlastoiseBackpic: INCBIN "gfx/pics/009/back.lz"
-MisdreavusBackpic: INCBIN "gfx/pics/200/back.lz"
-TyrogueBackpic: INCBIN "gfx/pics/236/back.lz"
-GeodudeFrontpic: INCBIN "gfx/pics/074/front.lz"
-ScizorBackpic: INCBIN "gfx/pics/212/back.lz"
-GirafarigBackpic: INCBIN "gfx/pics/203/back.lz"
-StantlerBackpic: INCBIN "gfx/pics/234/back.lz"
-SmeargleBackpic: INCBIN "gfx/pics/235/back.lz"
-CharizardBackpic: INCBIN "gfx/pics/006/back.lz"
-KadabraBackpic: INCBIN "gfx/pics/064/back.lz"
-PrimeapeBackpic: INCBIN "gfx/pics/057/back.lz"
-FurretBackpic: INCBIN "gfx/pics/162/back.lz"
-WartortleBackpic: INCBIN "gfx/pics/008/back.lz"
-ExeggcuteBackpic: INCBIN "gfx/pics/102/back.lz"
-IgglybuffFrontpic: INCBIN "gfx/pics/174/front.lz"
-RaticateBackpic: INCBIN "gfx/pics/020/back.lz"
-VulpixBackpic: INCBIN "gfx/pics/037/back.lz"
-EkansBackpic: INCBIN "gfx/pics/023/back.lz"
-SeakingBackpic: INCBIN "gfx/pics/119/back.lz"
-BurglarPic: INCBIN "gfx/trainers/046.lz"
-PsyduckBackpic: INCBIN "gfx/pics/054/back.lz"
-PikachuBackpic: INCBIN "gfx/pics/025/back.lz"
-KabutoFrontpic: INCBIN "gfx/pics/140/front.lz"
-MareepBackpic: INCBIN "gfx/pics/179/back.lz"
-RemoraidBackpic: INCBIN "gfx/pics/223/back.lz"
-DittoFrontpic: INCBIN "gfx/pics/132/front.lz"
-KingdraBackpic: INCBIN "gfx/pics/230/back.lz"
-CamperPic: INCBIN "gfx/trainers/053.lz"
-WooperFrontpic: INCBIN "gfx/pics/194/front.lz"
-ClefairyBackpic: INCBIN "gfx/pics/035/back.lz"
-VenonatBackpic: INCBIN "gfx/pics/048/back.lz"
-BellossomBackpic: INCBIN "gfx/pics/182/back.lz"
-Rival1Pic: INCBIN "gfx/trainers/008.lz"
-SwinubBackpic: INCBIN "gfx/pics/220/back.lz"
-; 158000
-
-
-SECTION "bank56",ROMX,BANK[$56]
-
-; Pics XV
-
-MewtwoBackpic: INCBIN "gfx/pics/150/back.lz"
-PokemonProfPic: INCBIN "gfx/trainers/009.lz"
-CalPic: INCBIN "gfx/trainers/011.lz"
-SwimmerfPic: INCBIN "gfx/trainers/038.lz"
-DiglettFrontpic: INCBIN "gfx/pics/050/front.lz"
-OfficerPic: INCBIN "gfx/trainers/064.lz"
-MukBackpic: INCBIN "gfx/pics/089/back.lz"
-DelibirdBackpic: INCBIN "gfx/pics/225/back.lz"
-SabrinaPic: INCBIN "gfx/trainers/034.lz"
-MagikarpBackpic: INCBIN "gfx/pics/129/back.lz"
-AriadosBackpic: INCBIN "gfx/pics/168/back.lz"
-SneaselBackpic: INCBIN "gfx/pics/215/back.lz"
-UmbreonBackpic: INCBIN "gfx/pics/197/back.lz"
-MurkrowBackpic: INCBIN "gfx/pics/198/back.lz"
-IvysaurBackpic: INCBIN "gfx/pics/002/back.lz"
-SlowbroBackpic: INCBIN "gfx/pics/080/back.lz"
-PsychicTPic: INCBIN "gfx/trainers/051.lz"
-GolduckBackpic: INCBIN "gfx/pics/055/back.lz"
-WeezingBackpic: INCBIN "gfx/pics/110/back.lz"
-EnteiBackpic: INCBIN "gfx/pics/244/back.lz"
-GruntfPic: INCBIN "gfx/trainers/065.lz"
-HorseaFrontpic: INCBIN "gfx/pics/116/front.lz"
-PidgeotBackpic: INCBIN "gfx/pics/018/back.lz"
-HoOhBackpic: INCBIN "gfx/pics/250/back.lz"
-PoliwhirlBackpic: INCBIN "gfx/pics/061/back.lz"
-MewBackpic: INCBIN "gfx/pics/151/back.lz"
-MachopBackpic: INCBIN "gfx/pics/066/back.lz"
-AbraBackpic: INCBIN "gfx/pics/063/back.lz"
-AerodactylBackpic: INCBIN "gfx/pics/142/back.lz"
-KakunaFrontpic: INCBIN "gfx/pics/014/front.lz"
-DugtrioBackpic: INCBIN "gfx/pics/051/back.lz"
-WeepinbellBackpic: INCBIN "gfx/pics/070/back.lz"
-NidoranFBackpic: INCBIN "gfx/pics/029/back.lz"
-GravelerBackpic: INCBIN "gfx/pics/075/back.lz"
-AipomBackpic: INCBIN "gfx/pics/190/back.lz"
-EspeonBackpic: INCBIN "gfx/pics/196/back.lz"
-WeedleFrontpic: INCBIN "gfx/pics/013/front.lz"
-TotodileBackpic: INCBIN "gfx/pics/158/back.lz"
-SnubbullBackpic: INCBIN "gfx/pics/209/back.lz"
-KinglerBackpic: INCBIN "gfx/pics/099/back.lz"
-GengarBackpic: INCBIN "gfx/pics/094/back.lz"
-RattataBackpic: INCBIN "gfx/pics/019/back.lz"
-YoungsterPic: INCBIN "gfx/trainers/021.lz"
-WillPic: INCBIN "gfx/trainers/010.lz"
-SchoolboyPic: INCBIN "gfx/trainers/022.lz"
-MagnemiteFrontpic: INCBIN "gfx/pics/081/front.lz"
-ErikaPic: INCBIN "gfx/trainers/020.lz"
-JaninePic: INCBIN "gfx/trainers/025.lz"
-MagnemiteBackpic: INCBIN "gfx/pics/081/back.lz"
-; 15bffa
-
-
-SECTION "bank57",ROMX,BANK[$57]
-
-; Pics XVI
-
-HoothootBackpic: INCBIN "gfx/pics/163/back.lz"
-NoctowlBackpic: INCBIN "gfx/pics/164/back.lz"
-MortyPic: INCBIN "gfx/trainers/003.lz"
-SlugmaBackpic: INCBIN "gfx/pics/218/back.lz"
-KabutoBackpic: INCBIN "gfx/pics/140/back.lz"
-VictreebelBackpic: INCBIN "gfx/pics/071/back.lz"
-MeowthBackpic: INCBIN "gfx/pics/052/back.lz"
-MeganiumBackpic: INCBIN "gfx/pics/154/back.lz"
-PicnickerPic: INCBIN "gfx/trainers/052.lz"
-LickitungBackpic: INCBIN "gfx/pics/108/back.lz"
-TogepiFrontpic: INCBIN "gfx/pics/175/front.lz"
-SuperNerdPic: INCBIN "gfx/trainers/040.lz"
-HaunterBackpic: INCBIN "gfx/pics/093/back.lz"
-XatuBackpic: INCBIN "gfx/pics/178/back.lz"
-RedPic: INCBIN "gfx/trainers/062.lz"
-Porygon2Backpic: INCBIN "gfx/pics/233/back.lz"
-JasminePic: INCBIN "gfx/trainers/005.lz"
-PinecoBackpic: INCBIN "gfx/pics/204/back.lz"
-MetapodFrontpic: INCBIN "gfx/pics/011/front.lz"
-SeelBackpic: INCBIN "gfx/pics/086/back.lz"
-QuagsireBackpic: INCBIN "gfx/pics/195/back.lz"
-WhitneyPic: INCBIN "gfx/trainers/001.lz"
-JolteonBackpic: INCBIN "gfx/pics/135/back.lz"
-CaterpieFrontpic: INCBIN "gfx/pics/010/front.lz"
-HoppipBackpic: INCBIN "gfx/pics/187/back.lz"
-BluePic: INCBIN "gfx/trainers/063.lz"
-GranbullBackpic: INCBIN "gfx/pics/210/back.lz"
-GentlemanPic: INCBIN "gfx/trainers/031.lz"
-ExecutivemPic: INCBIN "gfx/trainers/050.lz"
-SpearowBackpic: INCBIN "gfx/pics/021/back.lz"
-SunkernBackpic: INCBIN "gfx/pics/191/back.lz"
-LaprasBackpic: INCBIN "gfx/pics/131/back.lz"
-MagbyBackpic: INCBIN "gfx/pics/240/back.lz"
-DragonairBackpic: INCBIN "gfx/pics/148/back.lz"
-ZapdosBackpic: INCBIN "gfx/pics/145/back.lz"
-ChikoritaBackpic: INCBIN "gfx/pics/152/back.lz"
-CorsolaBackpic: INCBIN "gfx/pics/222/back.lz"
-ChinchouBackpic: INCBIN "gfx/pics/170/back.lz"
-ChanseyBackpic: INCBIN "gfx/pics/113/back.lz"
-SkiploomBackpic: INCBIN "gfx/pics/188/back.lz"
-SpinarakFrontpic: INCBIN "gfx/pics/167/front.lz"
-Rival2Pic: INCBIN "gfx/trainers/041.lz"
-UnownWFrontpic: INCBIN "gfx/pics/201w/front.lz"
-CharmanderBackpic: INCBIN "gfx/pics/004/back.lz"
-RhyhornBackpic: INCBIN "gfx/pics/111/back.lz"
-UnownCFrontpic: INCBIN "gfx/pics/201c/front.lz"
-MistyPic: INCBIN "gfx/trainers/017.lz"
-BlainePic: INCBIN "gfx/trainers/045.lz"
-UnownZFrontpic: INCBIN "gfx/pics/201z/front.lz"
-SwinubFrontpic: INCBIN "gfx/pics/220/front.lz"
-LarvitarBackpic: INCBIN "gfx/pics/246/back.lz"
-PorygonBackpic: INCBIN "gfx/pics/137/back.lz"
-UnownHBackpic: INCBIN "gfx/pics/201h/back.lz"
-; 15ffff
-
-
-SECTION "bank58",ROMX,BANK[$58]
-
-; Pics XVII
-
-ParasBackpic: INCBIN "gfx/pics/046/back.lz"
-VaporeonBackpic: INCBIN "gfx/pics/134/back.lz"
-TentacoolBackpic: INCBIN "gfx/pics/072/back.lz"
-ExecutivefPic: INCBIN "gfx/trainers/054.lz"
-BulbasaurBackpic: INCBIN "gfx/pics/001/back.lz"
-SmoochumBackpic: INCBIN "gfx/pics/238/back.lz"
-PichuBackpic: INCBIN "gfx/pics/172/back.lz"
-HoundoomBackpic: INCBIN "gfx/pics/229/back.lz"
-BellsproutBackpic: INCBIN "gfx/pics/069/back.lz"
-GrimerBackpic: INCBIN "gfx/pics/088/back.lz"
-LanturnBackpic: INCBIN "gfx/pics/171/back.lz"
-PidgeottoBackpic: INCBIN "gfx/pics/017/back.lz"
-StaryuBackpic: INCBIN "gfx/pics/120/back.lz"
-MrMimeBackpic: INCBIN "gfx/pics/122/back.lz"
-CaterpieBackpic: INCBIN "gfx/pics/010/back.lz"
-VoltorbFrontpic: INCBIN "gfx/pics/100/front.lz"
-LugiaBackpic: INCBIN "gfx/pics/249/back.lz"
-PrycePic: INCBIN "gfx/trainers/004.lz"
-BrockPic: INCBIN "gfx/trainers/016.lz"
-UnownGFrontpic: INCBIN "gfx/pics/201g/front.lz"
-ArbokBackpic: INCBIN "gfx/pics/024/back.lz"
-PolitoedBackpic: INCBIN "gfx/pics/186/back.lz"
-DragoniteBackpic: INCBIN "gfx/pics/149/back.lz"
-HitmonleeBackpic: INCBIN "gfx/pics/106/back.lz"
-NatuFrontpic: INCBIN "gfx/pics/177/front.lz"
-UrsaringBackpic: INCBIN "gfx/pics/217/back.lz"
-SagePic: INCBIN "gfx/trainers/055.lz"
-TeddiursaBackpic: INCBIN "gfx/pics/216/back.lz"
-PhanpyBackpic: INCBIN "gfx/pics/231/back.lz"
-UnownVFrontpic: INCBIN "gfx/pics/201v/front.lz"
-KakunaBackpic: INCBIN "gfx/pics/014/back.lz"
-WobbuffetBackpic: INCBIN "gfx/pics/202/back.lz"
-TogepiBackpic: INCBIN "gfx/pics/175/back.lz"
-CrobatBackpic: INCBIN "gfx/pics/169/back.lz"
-BlisseyBackpic: INCBIN "gfx/pics/242/back.lz"
-AmpharosBackpic: INCBIN "gfx/pics/181/back.lz"
-IgglybuffBackpic: INCBIN "gfx/pics/174/back.lz"
-AzumarillBackpic: INCBIN "gfx/pics/184/back.lz"
-OctilleryBackpic: INCBIN "gfx/pics/224/back.lz"
-UnownSFrontpic: INCBIN "gfx/pics/201s/front.lz"
-HorseaBackpic: INCBIN "gfx/pics/116/back.lz"
-SentretBackpic: INCBIN "gfx/pics/161/back.lz"
-UnownOFrontpic: INCBIN "gfx/pics/201o/front.lz"
-UnownTFrontpic: INCBIN "gfx/pics/201t/front.lz"
-WigglytuffBackpic: INCBIN "gfx/pics/040/back.lz"
-ArticunoBackpic: INCBIN "gfx/pics/144/back.lz"
-DittoBackpic: INCBIN "gfx/pics/132/back.lz"
-WeedleBackpic: INCBIN "gfx/pics/013/back.lz"
-UnownHFrontpic: INCBIN "gfx/pics/201h/front.lz"
-CleffaBackpic: INCBIN "gfx/pics/173/back.lz"
-DrowzeeBackpic: INCBIN "gfx/pics/096/back.lz"
-GastlyBackpic: INCBIN "gfx/pics/092/back.lz"
-FearowBackpic: INCBIN "gfx/pics/022/back.lz"
-MarillBackpic: INCBIN "gfx/pics/183/back.lz"
-DratiniBackpic: INCBIN "gfx/pics/147/back.lz"
-ElectrodeBackpic: INCBIN "gfx/pics/101/back.lz"
-SkarmoryBackpic: INCBIN "gfx/pics/227/back.lz"
-MetapodBackpic: INCBIN "gfx/pics/011/back.lz"
-JigglypuffBackpic: INCBIN "gfx/pics/039/back.lz"
-OddishBackpic: INCBIN "gfx/pics/043/back.lz"
-UnownDBackpic: INCBIN "gfx/pics/201d/back.lz"
-; 163ffc
-
-
-SECTION "bank59",ROMX,BANK[$59]
-
-; Pics XVIII
-
-SpinarakBackpic: INCBIN "gfx/pics/167/back.lz"
-RaikouBackpic: INCBIN "gfx/pics/243/back.lz"
-UnownKFrontpic: INCBIN "gfx/pics/201k/front.lz"
-HoundourBackpic: INCBIN "gfx/pics/228/back.lz"
-PoliwagBackpic: INCBIN "gfx/pics/060/back.lz"
-SquirtleBackpic: INCBIN "gfx/pics/007/back.lz"
-ShuckleBackpic: INCBIN "gfx/pics/213/back.lz"
-DewgongBackpic: INCBIN "gfx/pics/087/back.lz"
-UnownBFrontpic: INCBIN "gfx/pics/201b/front.lz"
-SlowpokeBackpic: INCBIN "gfx/pics/079/back.lz"
-DunsparceBackpic: INCBIN "gfx/pics/206/back.lz"
-DonphanBackpic: INCBIN "gfx/pics/232/back.lz"
-WooperBackpic: INCBIN "gfx/pics/194/back.lz"
-TaurosBackpic: INCBIN "gfx/pics/128/back.lz"
-UnownXFrontpic: INCBIN "gfx/pics/201x/front.lz"
-UnownNFrontpic: INCBIN "gfx/pics/201n/front.lz"
-TangelaBackpic: INCBIN "gfx/pics/114/back.lz"
-VoltorbBackpic: INCBIN "gfx/pics/100/back.lz"
-UnownJFrontpic: INCBIN "gfx/pics/201j/front.lz"
-MantineBackpic: INCBIN "gfx/pics/226/back.lz"
-UnownLFrontpic: INCBIN "gfx/pics/201l/front.lz"
-PiloswineBackpic: INCBIN "gfx/pics/221/back.lz"
-UnownMFrontpic: INCBIN "gfx/pics/201m/front.lz"
-UnownFFrontpic: INCBIN "gfx/pics/201f/front.lz"
-NatuBackpic: INCBIN "gfx/pics/177/back.lz"
-UnownAFrontpic: INCBIN "gfx/pics/201a/front.lz"
-GolemBackpic: INCBIN "gfx/pics/076/back.lz"
-UnownUFrontpic: INCBIN "gfx/pics/201u/front.lz"
-DiglettBackpic: INCBIN "gfx/pics/050/back.lz"
-UnownQFrontpic: INCBIN "gfx/pics/201q/front.lz"
-UnownPFrontpic: INCBIN "gfx/pics/201p/front.lz"
-UnownCBackpic: INCBIN "gfx/pics/201c/back.lz"
-JynxBackpic: INCBIN "gfx/pics/124/back.lz"
-GolbatBackpic: INCBIN "gfx/pics/042/back.lz"
-UnownYFrontpic: INCBIN "gfx/pics/201y/front.lz"
-UnownGBackpic: INCBIN "gfx/pics/201g/back.lz"
-UnownIFrontpic: INCBIN "gfx/pics/201i/front.lz"
-UnownVBackpic: INCBIN "gfx/pics/201v/back.lz"
-ForretressBackpic: INCBIN "gfx/pics/205/back.lz"
-UnownSBackpic: INCBIN "gfx/pics/201s/back.lz"
-UnownRFrontpic: INCBIN "gfx/pics/201r/front.lz"
-UnownEBackpic: INCBIN "gfx/pics/201e/back.lz"
-UnownJBackpic: INCBIN "gfx/pics/201j/back.lz"
-UnownBBackpic: INCBIN "gfx/pics/201b/back.lz"
-UnownOBackpic: INCBIN "gfx/pics/201o/back.lz"
-UnownZBackpic: INCBIN "gfx/pics/201z/back.lz"
-UnownWBackpic: INCBIN "gfx/pics/201w/back.lz"
-UnownNBackpic: INCBIN "gfx/pics/201n/back.lz"
-UnownABackpic: INCBIN "gfx/pics/201a/back.lz"
-UnownMBackpic: INCBIN "gfx/pics/201m/back.lz"
-UnownKBackpic: INCBIN "gfx/pics/201k/back.lz"
-UnownTBackpic: INCBIN "gfx/pics/201t/back.lz"
-UnownXBackpic: INCBIN "gfx/pics/201x/back.lz"
-UnownLBackpic: INCBIN "gfx/pics/201l/back.lz"
-UnownUBackpic: INCBIN "gfx/pics/201u/back.lz"
-UnownQBackpic: INCBIN "gfx/pics/201q/back.lz"
-UnownYBackpic: INCBIN "gfx/pics/201y/back.lz"
-UnownPBackpic: INCBIN "gfx/pics/201p/back.lz"
-UnownIBackpic: INCBIN "gfx/pics/201i/back.lz"
-UnownRBackpic: INCBIN "gfx/pics/201r/back.lz"
-; 1669d3
-
-
-SECTION "bank5A",ROMX,BANK[$5A]
-
-; This bank is identical to bank 59!
-; It's also unreferenced, so it's a free bank
-
-INCBIN "gfx/pics/167/back.lz"
-INCBIN "gfx/pics/243/back.lz"
-INCBIN "gfx/pics/201k/front.lz"
-INCBIN "gfx/pics/228/back.lz"
-INCBIN "gfx/pics/060/back.lz"
-INCBIN "gfx/pics/007/back.lz"
-INCBIN "gfx/pics/213/back.lz"
-INCBIN "gfx/pics/087/back.lz"
-INCBIN "gfx/pics/201b/front.lz"
-INCBIN "gfx/pics/079/back.lz"
-INCBIN "gfx/pics/206/back.lz"
-INCBIN "gfx/pics/232/back.lz"
-INCBIN "gfx/pics/194/back.lz"
-INCBIN "gfx/pics/128/back.lz"
-INCBIN "gfx/pics/201x/front.lz"
-INCBIN "gfx/pics/201n/front.lz"
-INCBIN "gfx/pics/114/back.lz"
-INCBIN "gfx/pics/100/back.lz"
-INCBIN "gfx/pics/201j/front.lz"
-INCBIN "gfx/pics/226/back.lz"
-INCBIN "gfx/pics/201l/front.lz"
-INCBIN "gfx/pics/221/back.lz"
-INCBIN "gfx/pics/201m/front.lz"
-INCBIN "gfx/pics/201f/front.lz"
-INCBIN "gfx/pics/177/back.lz"
-INCBIN "gfx/pics/201a/front.lz"
-INCBIN "gfx/pics/076/back.lz"
-INCBIN "gfx/pics/201u/front.lz"
-INCBIN "gfx/pics/050/back.lz"
-INCBIN "gfx/pics/201q/front.lz"
-INCBIN "gfx/pics/201p/front.lz"
-INCBIN "gfx/pics/201c/back.lz"
-INCBIN "gfx/pics/124/back.lz"
-INCBIN "gfx/pics/042/back.lz"
-INCBIN "gfx/pics/201y/front.lz"
-INCBIN "gfx/pics/201g/back.lz"
-INCBIN "gfx/pics/201i/front.lz"
-INCBIN "gfx/pics/201v/back.lz"
-INCBIN "gfx/pics/205/back.lz"
-INCBIN "gfx/pics/201s/back.lz"
-INCBIN "gfx/pics/201r/front.lz"
-INCBIN "gfx/pics/201e/back.lz"
-INCBIN "gfx/pics/201j/back.lz"
-INCBIN "gfx/pics/201b/back.lz"
-INCBIN "gfx/pics/201o/back.lz"
-INCBIN "gfx/pics/201z/back.lz"
-INCBIN "gfx/pics/201w/back.lz"
-INCBIN "gfx/pics/201n/back.lz"
-INCBIN "gfx/pics/201a/back.lz"
-INCBIN "gfx/pics/201m/back.lz"
-INCBIN "gfx/pics/201k/back.lz"
-INCBIN "gfx/pics/201t/back.lz"
-INCBIN "gfx/pics/201x/back.lz"
-INCBIN "gfx/pics/201l/back.lz"
-INCBIN "gfx/pics/201u/back.lz"
-INCBIN "gfx/pics/201q/back.lz"
-INCBIN "gfx/pics/201y/back.lz"
-INCBIN "gfx/pics/201p/back.lz"
-INCBIN "gfx/pics/201i/back.lz"
-INCBIN "gfx/pics/201r/back.lz"
-
-
-SECTION "bank5B",ROMX,BANK[$5B]
+
+SECTION "bank5B", ROMX, BANK[$5B]
INCBIN "baserom.gbc",$16c000,$16d421 - $16c000
@@ -120749,7 +95758,7 @@ Function16d7e7: ; 16d7e7
; 16d7fe
-SECTION "bank5C",ROMX,BANK[$5C]
+SECTION "bank5C", ROMX, BANK[$5C]
INCBIN "baserom.gbc",$170000,$1700b0 - $170000
@@ -122097,12 +97106,12 @@ Function172eb9:
INCBIN "baserom.gbc",$172edf,$17367f - $172edf
-SECTION "bank5D",ROMX,BANK[$5D]
+SECTION "bank5D", ROMX, BANK[$5D]
INCLUDE "text/phone/extra3.asm"
-SECTION "bank5E",ROMX,BANK[$5E]
+SECTION "bank5E", ROMX, BANK[$5E]
Function178000:
callba DrawPlayerHUD
@@ -122115,857 +97124,32 @@ Function178000:
ret
; 17801f (5e:401f)
-; Songs V
-
-INCLUDE "audio/music/mobileadaptermenu.asm"
-INCLUDE "audio/music/buenaspassword.asm"
-INCLUDE "audio/music/lookmysticalman.asm"
-INCLUDE "audio/music/crystalopening.asm"
-INCLUDE "audio/music/battletowertheme.asm"
-INCLUDE "audio/music/suicunebattle.asm"
-INCLUDE "audio/music/battletowerlobby.asm"
-INCLUDE "audio/music/mobilecenter.asm"
-
-INCBIN "baserom.gbc",$17982d,$1799ef - $17982d
-
-MobileAdapterGFX:
-INCBIN "gfx/misc/mobile_adapter.2bpp"
-
-
-; no known jump sources
-Function17a68f: ; 17a68f (5e:668f)
- call Function17a6a8
- call Function17a751
- ld hl, $d088
- bit 5, [hl]
- jr z, .asm_17a6a6
- ld de, StringBuffer1 ; $d073
- push de
- call Function17a721
- pop de
- xor a
- ret
-.asm_17a6a6
- scf
- ret
-
-; known jump sources: 17a68f (5e:668f)
-Function17a6a8: ; 17a6a8 (5e:66a8)
- push de
- push bc
- ld hl, StringBuffer2 ; $d086
- ld bc, $a
- xor a
- call ByteFill
- ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
- ld bc, $10
- ld a, $ff
- call ByteFill
- pop bc
- ld a, c
- and a
- jr z, .asm_17a6c9
- ld hl, $d088
- set 4, [hl]
-.asm_17a6c9
- pop de
- call Function17a6f5
- call Function17aba0
- callba Function106464
- call Function17ac0c
- callba Function104000
- call Function17abcf
- callba Function49409
- callba Function49420
- call Function32f9
- call DelayFrame
- ret
-
-; known jump sources: 17a6ca (5e:66ca)
-Function17a6f5: ; 17a6f5 (5e:66f5)
- ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
- ld c, $0
- ld b, $8
-.asm_17a6fc
- ld a, [de]
- call Function17a713
- jr c, .asm_17a70e
- ld a, [de]
- swap a
- call Function17a713
- jr c, .asm_17a70e
- inc de
- dec b
- jr nz, .asm_17a6fc
-.asm_17a70e
- ld a, c
- ld [$d08c], a
- ret
-
-; known jump sources: 17a6fd (5e:66fd), 17a705 (5e:6705)
-Function17a713: ; 17a713 (5e:6713)
- and $f
- cp $a
- jr nc, .asm_17a71d
- ld [hli], a
- inc c
- and a
- ret
-.asm_17a71d
- ld [hl], $ff
- scf
- ret
-
-; known jump sources: 17a6a0 (5e:66a0)
-Function17a721: ; 17a721 (5e:6721)
- push de
- ld h, d
- ld l, e
- ld bc, $8
- ld a, $ff
- call ByteFill
- pop de
- ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
- ld b, $8
-.asm_17a732
- ld c, $0
- ld a, [hli]
- cp $a
- jr nc, .asm_17a748
- ld c, a
- ld a, [hli]
- cp $a
- jr nc, .asm_17a74c
- swap a
- or c
- ld [de], a
- inc de
- dec b
- jr nz, .asm_17a732
- ret
-.asm_17a748
- ld a, $ff
- ld [de], a
- ret
-.asm_17a74c
- ld a, $f0
- or c
- ld [de], a
- ret
-
-; known jump sources: 17a692 (5e:6692)
-Function17a751: ; 17a751 (5e:6751)
- xor a
- ld [$d087], a
-.asm_17a755
- call Function17a781
- call Function17a7ae
- call Function17a97b
- call Function17a770
- call Function17a78f
- ld hl, $d08f
- inc [hl]
- ld a, [$d087]
- bit 7, a
- jr z, .asm_17a755
- ret
-
-; known jump sources: 17a75e (5e:675e)
-Function17a770: ; 17a770 (5e:6770)
- ld a, [hOAMUpdate] ; $ff00+$d8
- push af
- ld a, $1
- ld [hOAMUpdate], a ; $ff00+$d8
- call HideSprites
- call Function17a9cb
- pop af
- ld [hOAMUpdate], a ; $ff00+$d8
- ret
-
-; known jump sources: 17a755 (5e:6755)
-Function17a781: ; 17a781 (5e:6781)
- ld a, [$FF00+$aa]
- push af
- ld a, $1
- ld [$FF00+$aa], a
- call Functiona57
- pop af
- ld [$FF00+$aa], a
- ret
-
-; known jump sources: 17a761 (5e:6761)
-Function17a78f: ; 17a78f (5e:678f)
- ld hl, $d088
- bit 7, [hl]
- res 7, [hl]
- jr nz, .asm_17a79f
- callba Function10402d
- ret
-.asm_17a79f
- callba Function104061
- ret
-; 17a7a6 (5e:67a6)
-
-INCBIN "baserom.gbc",$17a7a6,$17a7ae - $17a7a6
-
-; known jump sources: 17a758 (5e:6758)
-Function17a7ae: ; 17a7ae (5e:67ae)
- ld a, [$d087]
- ld hl, $67b6
- rst $28
- ret
-
-; no known jump sources
-Jumptable_17a7b6: ; 17a7b6 (5e:67b6)
- dw Function17a7c2
- dw Function17a7cd
- dw Function17a7d8
- dw Function17a7ff
- dw Function17a81a
- dw Function17a7f4
-
-
-; no known jump sources
-Function17a7c2: ; 17a7c2 (5e:67c2)
- ld a, $4
- call Function17aad3
- ld a, $1
- ld [$d087], a
- ret
-
-; no known jump sources
-Function17a7cd: ; 17a7cd (5e:67cd)
- call Function17a83c
- call Function17a8ae
- ret c
- call Function17a848
- ret
-
-; no known jump sources
-Function17a7d8: ; 17a7d8 (5e:67d8)
- call Function17a83c
- call Function17a848
- ld hl, $d08b
- dec [hl]
- ret nz
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld a, $1
- ld [$d087], a
- ret
-
-; no known jump sources
-Function17a7f4: ; 17a7f4 (5e:67f4)
- ld hl, $d08b
- dec [hl]
- ret nz
- ld hl, $d087
- set 7, [hl]
- ret
-
-; no known jump sources
-Function17a7ff: ; 17a7ff (5e:67ff)
- ld hl, $d08b
- dec [hl]
- ret nz
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- set 5, [hl]
- ld hl, $d087
- set 7, [hl]
- ret
-
-; no known jump sources
-Function17a81a: ; 17a81a (5e:681a)
- call Function3c74
- ret nc
- ld a, [hJoyPressed] ; $ff00+$a7
- and $3
- ret z
- call Function1c07
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- res 6, [hl]
- ld a, $1
- ld [$d087], a
- ret
-
-; known jump sources: 17a7cd (5e:67cd), 17a7d8 (5e:67d8)
-Function17a83c: ; 17a83c (5e:683c)
- ld a, [$FF00+$a9]
- and $f0
- ld c, a
- ld a, [hJoyPressed] ; $ff00+$a7
- and $b
- or c
- ld c, a
- ret
-
-; known jump sources: 17a7d4 (5e:67d4), 17a7db (5e:67db)
-Function17a848: ; 17a848 (5e:6848)
- ld a, c
- and $60
- cp $60
- jr z, .asm_17a876
- ld a, c
- and $50
- cp $50
- jr z, .asm_17a87d
- ld a, c
- and $a0
- cp $a0
- jr z, .asm_17a884
- ld a, c
- and $90
- cp $90
- jr z, .asm_17a88b
- bit 6, c
- jr nz, .asm_17a892
- bit 7, c
- jr nz, .asm_17a899
- bit 5, c
- jr nz, .asm_17a8a0
- bit 4, c
- jr nz, .asm_17a8a7
- xor a
- ret
-.asm_17a876
- ld a, $9
- call Function17aad0
- scf
- ret
-.asm_17a87d
- ld a, $a
- call Function17aad0
- scf
- ret
-.asm_17a884
- ld a, $b
- call Function17aad0
- scf
- ret
-.asm_17a88b
- ld a, $c
- call Function17aad0
- scf
- ret
-.asm_17a892
- ld a, $5
- call Function17aad0
- scf
- ret
-.asm_17a899
- ld a, $6
- call Function17aad0
- scf
- ret
-.asm_17a8a0
- ld a, $7
- call Function17aad0
- scf
- ret
-.asm_17a8a7
- ld a, $8
- call Function17aad0
- scf
- ret
-
-; known jump sources: 17a7d0 (5e:67d0)
-Function17a8ae: ; 17a8ae (5e:68ae)
- bit 1, c
- jr nz, .asm_17a8bc
- bit 0, c
- jr nz, .asm_17a8cc
- bit 3, c
- jr nz, .asm_17a8d7
- xor a
- ret
-.asm_17a8bc
- ld a, $b
- ld [$d08a], a
- call Function17aa98
- call Function17a943
- call Function17aa88
- scf
- ret
-.asm_17a8cc
- call Function17aad7
- call Function17aa98
- call Function17a8de
- scf
- ret
-.asm_17a8d7
- ld a, $c
- call Function17aad3
- scf
- ret
-
-; known jump sources: 17a8d2 (5e:68d2)
-Function17a8de: ; 17a8de (5e:68de)
- ld a, $2
- call Function17aae0
- ld a, [hl]
- cp $f1
- jr z, .asm_17a8fd
- cp $f0
- jr z, .asm_17a904
- cp $f2
- jr z, .asm_17a911
- ld e, a
- call Function17a964
- ld a, $2
- ld [$d087], a
- call Function17aa88
- ret
-.asm_17a8fd
- call Function17a943
- call Function17aa88
- ret
-.asm_17a904
- call Function17aad7
- call Function17aa98
- call Function17a91e
- call Function17aa88
- ret
-.asm_17a911
- call Function17aa98
- ld a, $5
- ld [$d087], a
- xor a
- call Function17aa88
- ret
-
-; known jump sources: 17a90a (5e:690a)
-Function17a91e: ; 17a91e (5e:691e)
- ld a, [$d08c]
- cp $7
- jr c, .asm_17a92c
- ld a, $3
- ld [$d087], a
- xor a
- ret
-.asm_17a92c
- call Function1d6e
- call Function17a99e
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- set 6, [hl]
- ld a, $4
- ld [$d087], a
- scf
- ret
-
-; known jump sources: 17a8c4 (5e:68c4), 17a8fd (5e:68fd)
-Function17a943: ; 17a943 (5e:6943)
- ld a, [$d08c]
- and a
- jr z, .asm_17a95d
- dec a
- ld [$d08c], a
- ld c, a
- ld b, $0
- ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
- add hl, bc
- ld [hl], $ff
- ld a, $2
- ld [$d087], a
- and a
- ret
-.asm_17a95d
- ld a, $5
- ld [$d087], a
- xor a
- ret
-
-; known jump sources: 17a8f1 (5e:68f1)
-Function17a964: ; 17a964 (5e:6964)
- ld a, [$d08c]
- cp $10
- jr nc, .asm_17a979
- ld c, a
- ld b, $0
- inc a
- ld [$d08c], a
- ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
- add hl, bc
- ld [hl], e
- and a
- ret
-.asm_17a979
- scf
- ret
-
-; known jump sources: 17a75b (5e:675b)
-Function17a97b: ; 17a97b (5e:697b)
- ld hl, $c4b5
- ld bc, $212
- call ClearBox
- ld hl, $c4cb
- ld de, Buffer1 ; $d1ea (aliases: MagikarpLength)
- ld a, [$d08c]
- and a
- ret z
- ld c, a
-.asm_17a990
- ld a, [de]
- inc de
- cp $a
- jr nc, .asm_17a99d
- add $f6
- ld [hli], a
- dec c
- jr nz, .asm_17a990
- ret
-.asm_17a99d
- ret
-
-; known jump sources: 17a92f (5e:692f)
-Function17a99e: ; 17a99e (5e:699e)
- ld hl, $c590
- ld b, $4
- ld c, $12
- call Function17ac46
- ld hl, $c5ba
- ld de, $69b2
- call PlaceString
- ret
-; 17a9b2 (5e:69b2)
-
-INCBIN "baserom.gbc",$17a9b2,$17a9cb - $17a9b2
-
-; known jump sources: 17a77a (5e:677a)
-Function17a9cb: ; 17a9cb (5e:69cb)
- ld de, Sprites ; $c400
- ld hl, $d088
- bit 6, [hl]
- jr nz, .asm_17a9df
- call Function17a9e3
- call Function17aa22
- call Function17a9f5
- ret
-.asm_17a9df
- call Function17a9e3
- ret
-
-; known jump sources: 17a9d5 (5e:69d5), 17a9df (5e:69df)
-Function17a9e3: ; 17a9e3 (5e:69e3)
- ld a, $3
- ld [$d08e], a
- ld hl, $6a77
- ld b, $8
- ld c, $8
- ld a, $5
- call Function17aa4a
- ret
-
-; known jump sources: 17a9db (5e:69db)
-Function17a9f5: ; 17a9f5 (5e:69f5)
- ld a, [$d08c]
- cp $10
- ret nc
- ld a, [$d08f]
- swap a
- and $1
- add $1
- ld [$d08e], a
- ld a, [$d08c]
- cp $10
- jr c, .asm_17aa0f
- dec a
-.asm_17aa0f
- ld c, $8
- call SimpleMultiply
- add $18
- ld b, a
- ld c, $11
- ld hl, $6a72
- ld a, $4
- call Function17aa4a
- ret
-
-; known jump sources: 17a9d8 (5e:69d8)
-Function17aa22: ; 17aa22 (5e:6a22)
- ld a, $0
- ld [$d08e], a
- push de
- ld a, $3
- call Function17aae0
- add a
- add a
- add a
- add $0
- push af
- ld a, $4
- call Function17aae0
- add a
- add a
- add a
- add $8
- ld c, a
- pop af
- ld b, a
- pop de
- ld a, $0
- ld hl, $6a77
- call Function17aa4a
- ret
-
-; known jump sources: 17a9f1 (5e:69f1), 17aa1e (5e:6a1e), 17aa46 (5e:6a46)
-Function17aa4a: ; 17aa4a (5e:6a4a)
- ld [$d08d], a
- ld a, b
- add $8
- ld b, a
- ld a, c
- add $10
- ld c, a
- ld a, [hli]
-.asm_17aa56
- push af
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [$d08d]
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [$d08e]
- or [hl]
- inc hl
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .asm_17aa56
- ret
-; 17aa72 (5e:6a72)
-
-INCBIN "baserom.gbc",$17aa72,$17aa88 - $17aa72
-
-; known jump sources: 17a8c7 (5e:68c7), 17a8f9 (5e:68f9), 17a900 (5e:6900), 17a90d (5e:690d), 17a91a (5e:691a)
-Function17aa88: ; 17aa88 (5e:6a88)
- jr c, asm_17aa91
- ld de, $20
- call PlaySFX
- ret
-
-; known jump sources: 17aa88 (5e:6a88)
-asm_17aa91: ; 17aa91 (5e:6a91)
- ld de, $19
- call PlaySFX
- ret
-
-; known jump sources: 17a8c1 (5e:68c1), 17a8cf (5e:68cf), 17a907 (5e:6907), 17a911 (5e:6911)
-Function17aa98: ; 17aa98 (5e:6a98)
- ld a, $5
- ld [$d08b], a
- call Function17aaa9
- call Function17aac3
- ld hl, $d088
- set 7, [hl]
- ret
-
-; known jump sources: 17aa9d (5e:6a9d)
-Function17aaa9: ; 17aaa9 (5e:6aa9)
- ld a, $3
- call Function17aae3
- ld c, a
- ld b, $0
- ld hl, AttrMap ; $cdd9
- add hl, bc
- push hl
- ld a, $4
- call Function17aae3
- ld bc, $14
- pop hl
- call AddNTimes
- ret
-
-; known jump sources: 17aaa0 (5e:6aa0)
-Function17aac3: ; 17aac3 (5e:6ac3)
- ld a, $b
- push hl
- ld [hli], a
- ld [hli], a
- pop hl
- ld de, $14
- add hl, de
- ld [hli], a
- ld [hli], a
- ret
-
-; known jump sources: 17a878 (5e:6878), 17a87f (5e:687f), 17a886 (5e:6886), 17a88d (5e:688d), 17a894 (5e:6894), 17a89b (5e:689b), 17a8a2 (5e:68a2), 17a8a9 (5e:68a9)
-Function17aad0: ; 17aad0 (5e:6ad0)
- call Function17aae0
-
-; known jump sources: 17a7c4 (5e:67c4), 17a8d9 (5e:68d9)
-Function17aad3: ; 17aad3 (5e:6ad3)
- ld [$d089], a
- ret
-
-; known jump sources: 17a8cc (5e:68cc), 17a904 (5e:6904), 17aae0 (5e:6ae0)
-Function17aad7: ; 17aad7 (5e:6ad7)
- push af
- ld a, [$d089]
- ld [$d08a], a
- pop af
- ret
-
-; known jump sources: 17a8e0 (5e:68e0), 17aa2a (5e:6a2a), 17aa35 (5e:6a35), 17aad0 (5e:6ad0)
-Function17aae0: ; 17aae0 (5e:6ae0)
- call Function17aad7
-
-; known jump sources: 17aaab (5e:6aab), 17aab8 (5e:6ab8)
-Function17aae3: ; 17aae3 (5e:6ae3)
- push af
- ld a, [$d08a]
- ld bc, $d
- ld hl, $6af7
- call AddNTimes
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ret
-; 17aaf7 (5e:6af7)
-
-INCBIN "baserom.gbc",$17aaf7,$17aba0 - $17aaf7
-
-; known jump sources: 17a6cd (5e:66cd)
-Function17aba0: ; 17aba0 (5e:6ba0)
- ld a, [rVBK] ; $ff00+$4f
- push af
- ld a, $1
- ld [rVBK], a ; $ff00+$4f
- ld hl, $9000
- ld de, $6fa5
- ld bc, $5e80
- call Get2bpp
- pop af
- ld [rVBK], a ; $ff00+$4f
- ld hl, $8000
- ld de, $7465
- ld bc, $5e05
- call Get2bpp
- ld hl, $8050
- ld de, $601a
- ld bc, $4504
- call Get2bpp
- ret
-
-; known jump sources: 17a6df (5e:66df)
-Function17abcf: ; 17abcf (5e:6bcf)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld hl, $6c55
- ld de, Unkn1Pals ; $d000
- ld bc, $30
- call CopyBytes
- ld hl, $6c95
- ld de, MartPointer ; $d040 (aliases: Unkn2Pals)
- ld bc, $40
- call CopyBytes
- ld hl, $74b5
- ld de, $d048
- ld bc, $10
- call CopyBytes
- ld hl, $7471
- ld de, $d058
- ld bc, $8
- ld a, $2
- call FarCopyBytes
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; known jump sources: 17a6d6 (5e:66d6)
-Function17ac0c: ; 17ac0c (5e:6c0c)
- call Function17ac1d
- call Function17ac2a
- ld hl, TileMap ; $c4a0 (aliases: SpritesEnd)
- ld b, $2
- ld c, $12
- call Function17ac46
- ret
-
-; known jump sources: 17a7e3 (5e:67e3), 17a804 (5e:6804), 17a826 (5e:6826), 17ac0c (5e:6c0c)
-Function17ac1d: ; 17ac1d (5e:6c1d)
- ld hl, $6cd5
- ld de, $c4f0
- ld bc, $118
- call CopyBytes
- ret
-
-; known jump sources: 17a7e6 (5e:67e6), 17a807 (5e:6807), 17a829 (5e:6829), 17ac0f (5e:6c0f)
-Function17ac2a: ; 17ac2a (5e:6c2a)
- ld hl, $6e3d
- ld de, $ce29
- ld bc, $118
- call CopyBytes
- ld hl, $ce29
- ld bc, $118
-.asm_17ac3c
- ld a, [hl]
- or $8
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .asm_17ac3c
- ret
-
-; known jump sources: 17a9a5 (5e:69a5), 17ac19 (5e:6c19)
-Function17ac46: ; 17ac46 (5e:6c46)
- ld a, [$d088]
- bit 4, a
- jr nz, .asm_17ac51
- call TextBox
- ret
-.asm_17ac51
- call Function3eea
- ret
-; 17ac55 (5e:6c55)
-
-INCBIN "baserom.gbc",$17ac55,$17b629 - $17ac55
-
-SECTION "bank5F",ROMX,BANK[$5F]
+SECTION "bank5F", ROMX, BANK[$5F]
Function17c000: ; 17c000
+
call DisableLCD
+
ld hl, VTiles2
- ld bc, $0310
+ ld bc, $310
xor a
call ByteFill
+
call Functione51
call Functione5f
- ld hl, $4b83
+
+ ld hl, HaveWantMap
ld de, TileMap
ld bc, AttrMap
- ld a, $12
-.asm_17c01e
+
+ ld a, SCREEN_HEIGHT
+.y
push af
- ld a, $14
+ ld a, SCREEN_WIDTH
+
push hl
-.asm_17c022
+.x
push af
ld a, [hli]
ld [de], a
@@ -122975,47 +97159,118 @@ Function17c000: ; 17c000
inc bc
pop af
dec a
- jr nz, .asm_17c022
+ jr nz, .x
pop hl
+
push bc
- ld bc, $0040
+ ld bc, BG_MAP_WIDTH * 2
add hl, bc
pop bc
+
pop af
dec a
- jr nz, .asm_17c01e
+ jr nz, .y
+
ld a, [rSVBK]
push af
- ld a, $5
+
+ ld a, 5 ; BANK(Unkn1Pals)
ld [rSVBK], a
- ld hl, $4ff3
- ld de, $d000
- ld bc, $0080
+
+ ld hl, HaveWantPals
+ ld de, Unkn1Pals
+ ld bc, $80
call CopyBytes
+
pop af
ld [rSVBK], a
- ld hl, $4983
+
+ ld hl, MobileSelectGFX
ld de, $8300
- ld bc, $0200
+ ld bc, $200
call CopyBytes
- ld a, $1
+
+ ld a, 1
ld [rVBK], a
- ld hl, $4083
+
+ ld hl, HaveWantGFX
ld de, VTiles2
- ld bc, $0800
+ ld bc, $800
call CopyBytes
- ld hl, $4883
+
+ ld hl, HaveWantGFX + $800
ld de, VTiles1
- ld bc, Start
+ ld bc, $100
call CopyBytes
+
xor a
ld [rVBK], a
+
call EnableLCD
callba Function104061
ret
; 17c083
-INCBIN "baserom.gbc",$17c083,$17d0b3 - $17c083
+HaveWantGFX: ; 17c083
+INCBIN "gfx/mobile/havewant.2bpp"
+
+MobileSelectGFX: ; 17c983
+INCBIN "gfx/mobile/select.2bpp"
+
+HaveWantMap: ; 17cb83
+; Interleaved tile/palette map.
+INCBIN "baserom.gbc", $17cb83, $17cff3 - $17cb83
+
+HaveWantPals: ; 17cff3
+; BG and OBJ palettes.
+INCBIN "baserom.gbc", $17cff3, $17d073 - $17cff3
+
+
+Function17d073: ; 17d073
+.asm_17d073
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_17d0ae
+ cp $60
+ jr nc, .asm_17d0ae
+ cp $4e
+ jr z, .asm_17d0ae
+ cp $50
+ jr z, .asm_17d0b1
+ cp $5
+ jr c, .asm_17d0ac
+ cp $14
+ jr c, .asm_17d0ae
+ cp $19
+ jr c, .asm_17d0ac
+ cp $1d
+ jr c, .asm_17d0ae
+ cp $26
+ jr c, .asm_17d0ac
+ cp $35
+ jr c, .asm_17d0ae
+ cp $3a
+ jr c, .asm_17d0ac
+ cp $3f
+ jr c, .asm_17d0ae
+ cp $40
+ jr c, .asm_17d0ac
+ cp $49
+ jr c, .asm_17d0ae
+
+.asm_17d0ac
+ scf
+ ret
+
+.asm_17d0ae
+ dec c
+ jr nz, .asm_17d073
+
+.asm_17d0b1
+ and a
+ ret
+; 17d0b3
Function17d0b3: ; 17d0b3
.asm_17d0b3
@@ -123087,13 +97342,15 @@ Function17d1f1: ; 17d1f1
ld a, [CurPartySpecies]
dec a
call SetSeenAndCaughtMon
+
ld a, [CurPartySpecies]
- cp $c9
+ cp UNOWN
jr nz, .asm_17d223
+
ld hl, PartyMon1DVs
ld a, [PartyCount]
dec a
- ld bc, $0030
+ ld bc, PartyMon2 - PartyMon1
call AddNTimes
ld a, $2d
call Predef
@@ -123101,6 +97358,7 @@ Function17d1f1: ; 17d1f1
ld a, [$def4]
and a
jr nz, .asm_17d223
+
ld a, [UnownLetter]
ld [$def4], a
@@ -123196,7 +97454,7 @@ Function17d2ce: ; 17d2ce
call Function17d45a
pop af
ld [rSVBK], a
- ld de, $0066
+ ld de, MUSIC_MOBILE_CENTER
ld a, e
ld [CurMusic], a
ld [MusicFadeIDLo], a
@@ -123279,7 +97537,7 @@ Function17d370: ; 17d370
call CopyBytes
ld a, $1
ld [rVBK], a
- ld hl, $66fe
+ ld hl, PokemonNewsGFX
ld de, VTiles1
ld bc, $0480
call CopyBytes
@@ -123435,7 +97693,15 @@ Function17d60b: ; 17d60b
ret
; 17d6a1
-INCBIN "baserom.gbc",$17d6a1,$17f036 - $17d6a1
+
+INCBIN "baserom.gbc", $17d6a1, $17e6fe - $17d6a1
+
+
+PokemonNewsGFX: ; 17e6fe
+INCBIN "gfx/mobile/pokemon_news.2bpp"
+
+
+INCBIN "baserom.gbc", $17eb7e, $17f036 - $17eb7e
Function17f036: ; 17f036
@@ -124636,290 +98902,14 @@ Function17ff3c: ; 17ff3c
INCBIN "baserom.gbc",$17ff68,$17ff6c - $17ff68
-SECTION "bank60",ROMX,BANK[$60]
-
-; Map Scripts XIII
-
-INCLUDE "maps/IndigoPlateauPokeCenter1F.asm"
-INCLUDE "maps/WillsRoom.asm"
-INCLUDE "maps/KogasRoom.asm"
-INCLUDE "maps/BrunosRoom.asm"
-INCLUDE "maps/KarensRoom.asm"
-INCLUDE "maps/LancesRoom.asm"
-INCLUDE "maps/HallOfFame.asm"
-
-
-; Pokedex entries I
-; 001-064
-PokedexEntries1:
-INCLUDE "stats/pokedex/entries_1.asm"
-
-
-SECTION "bank61",ROMX,BANK[$61]
-
-; Map Scripts XIV
-
-INCLUDE "maps/CeruleanCity.asm"
-INCLUDE "maps/SproutTower1F.asm"
-INCLUDE "maps/SproutTower2F.asm"
-INCLUDE "maps/SproutTower3F.asm"
-INCLUDE "maps/TinTower1F.asm"
-INCLUDE "maps/TinTower2F.asm"
-INCLUDE "maps/TinTower3F.asm"
-INCLUDE "maps/TinTower4F.asm"
-INCLUDE "maps/TinTower5F.asm"
-INCLUDE "maps/TinTower6F.asm"
-INCLUDE "maps/TinTower7F.asm"
-INCLUDE "maps/TinTower8F.asm"
-INCLUDE "maps/TinTower9F.asm"
-INCLUDE "maps/BurnedTower1F.asm"
-INCLUDE "maps/BurnedTowerB1F.asm"
-
-
-SECTION "bank62",ROMX,BANK[$62]
-
-; Map Scripts XV
-
-INCLUDE "maps/CeruleanGymBadgeSpeechHouse.asm"
-INCLUDE "maps/CeruleanPoliceStation.asm"
-INCLUDE "maps/CeruleanTradeSpeechHouse.asm"
-INCLUDE "maps/CeruleanPokeCenter1F.asm"
-INCLUDE "maps/CeruleanPokeCenter2FBeta.asm"
-INCLUDE "maps/CeruleanGym.asm"
-INCLUDE "maps/CeruleanMart.asm"
-INCLUDE "maps/Route10PokeCenter1F.asm"
-INCLUDE "maps/Route10PokeCenter2FBeta.asm"
-INCLUDE "maps/PowerPlant.asm"
-INCLUDE "maps/BillsHouse.asm"
-INCLUDE "maps/FightingDojo.asm"
-INCLUDE "maps/SaffronGym.asm"
-INCLUDE "maps/SaffronMart.asm"
-INCLUDE "maps/SaffronPokeCenter1F.asm"
-INCLUDE "maps/SaffronPokeCenter2FBeta.asm"
-INCLUDE "maps/MrPsychicsHouse.asm"
-INCLUDE "maps/SaffronTrainStation.asm"
-INCLUDE "maps/SilphCo1F.asm"
-INCLUDE "maps/CopycatsHouse1F.asm"
-INCLUDE "maps/CopycatsHouse2F.asm"
-INCLUDE "maps/Route5UndergroundEntrance.asm"
-INCLUDE "maps/Route5SaffronCityGate.asm"
-INCLUDE "maps/Route5CleanseTagSpeechHouse.asm"
-
-
-SECTION "bank63",ROMX,BANK[$63]
-
-; Map Scripts XVI
-
-INCLUDE "maps/PewterCity.asm"
-INCLUDE "maps/WhirlIslandNW.asm"
-INCLUDE "maps/WhirlIslandNE.asm"
-INCLUDE "maps/WhirlIslandSW.asm"
-INCLUDE "maps/WhirlIslandCave.asm"
-INCLUDE "maps/WhirlIslandSE.asm"
-INCLUDE "maps/WhirlIslandB1F.asm"
-INCLUDE "maps/WhirlIslandB2F.asm"
-INCLUDE "maps/WhirlIslandLugiaChamber.asm"
-INCLUDE "maps/SilverCaveRoom1.asm"
-INCLUDE "maps/SilverCaveRoom2.asm"
-INCLUDE "maps/SilverCaveRoom3.asm"
-INCLUDE "maps/SilverCaveItemRooms.asm"
-INCLUDE "maps/DarkCaveVioletEntrance.asm"
-INCLUDE "maps/DarkCaveBlackthornEntrance.asm"
-INCLUDE "maps/DragonsDen1F.asm"
-INCLUDE "maps/DragonsDenB1F.asm"
-INCLUDE "maps/DragonShrine.asm"
-INCLUDE "maps/TohjoFalls.asm"
-INCLUDE "maps/AzaleaPokeCenter1F.asm"
-INCLUDE "maps/CharcoalKiln.asm"
-INCLUDE "maps/AzaleaMart.asm"
-INCLUDE "maps/KurtsHouse.asm"
-INCLUDE "maps/AzaleaGym.asm"
-
-
-SECTION "bank64",ROMX,BANK[$64]
-
-; Map Scripts XVII
-
-INCLUDE "maps/MahoganyTown.asm"
-INCLUDE "maps/Route32.asm"
-INCLUDE "maps/VermilionHouseFishingSpeechHouse.asm"
-INCLUDE "maps/VermilionPokeCenter1F.asm"
-INCLUDE "maps/VermilionPokeCenter2FBeta.asm"
-INCLUDE "maps/PokemonFanClub.asm"
-INCLUDE "maps/VermilionMagnetTrainSpeechHouse.asm"
-INCLUDE "maps/VermilionMart.asm"
-INCLUDE "maps/VermilionHouseDiglettsCaveSpeechHouse.asm"
-INCLUDE "maps/VermilionGym.asm"
-INCLUDE "maps/Route6SaffronGate.asm"
-INCLUDE "maps/Route6UndergroundEntrance.asm"
-INCLUDE "maps/PokeCenter2F.asm"
-INCLUDE "maps/TradeCenter.asm"
-INCLUDE "maps/Colosseum.asm"
-INCLUDE "maps/TimeCapsule.asm"
-INCLUDE "maps/MobileTradeRoomMobile.asm"
-INCLUDE "maps/MobileBattleRoom.asm"
-
-
-SECTION "bank65",ROMX,BANK[$65]
-
-; Map Scripts XVIII
-
-INCLUDE "maps/Route36.asm"
-INCLUDE "maps/FuchsiaCity.asm"
-INCLUDE "maps/BlackthornGym1F.asm"
-INCLUDE "maps/BlackthornGym2F.asm"
-INCLUDE "maps/BlackthornDragonSpeechHouse.asm"
-INCLUDE "maps/BlackthornDodrioTradeHouse.asm"
-INCLUDE "maps/BlackthornMart.asm"
-INCLUDE "maps/BlackthornPokeCenter1F.asm"
-INCLUDE "maps/MoveDeletersHouse.asm"
-INCLUDE "maps/FuchsiaMart.asm"
-INCLUDE "maps/SafariZoneMainOffice.asm"
-INCLUDE "maps/FuchsiaGym.asm"
-INCLUDE "maps/FuchsiaBillSpeechHouse.asm"
-INCLUDE "maps/FuchsiaPokeCenter1F.asm"
-INCLUDE "maps/FuchsiaPokeCenter2FBeta.asm"
-INCLUDE "maps/SafariZoneWardensHome.asm"
-INCLUDE "maps/Route15FuchsiaGate.asm"
-INCLUDE "maps/CherrygroveMart.asm"
-INCLUDE "maps/CherrygrovePokeCenter1F.asm"
-INCLUDE "maps/CherrygroveGymSpeechHouse.asm"
-INCLUDE "maps/GuideGentsHouse.asm"
-INCLUDE "maps/CherrygroveEvolutionSpeechHouse.asm"
-INCLUDE "maps/Route30BerrySpeechHouse.asm"
-INCLUDE "maps/MrPokemonsHouse.asm"
-INCLUDE "maps/Route31VioletGate.asm"
-
-
-SECTION "bank66",ROMX,BANK[$66]
-
-; Map Scripts XIX
-
-INCLUDE "maps/AzaleaTown.asm"
-INCLUDE "maps/GoldenrodCity.asm"
-INCLUDE "maps/SaffronCity.asm"
-INCLUDE "maps/MahoganyRedGyaradosSpeechHouse.asm"
-INCLUDE "maps/MahoganyGym.asm"
-INCLUDE "maps/MahoganyPokeCenter1F.asm"
-INCLUDE "maps/Route42EcruteakGate.asm"
-INCLUDE "maps/LakeofRageHiddenPowerHouse.asm"
-INCLUDE "maps/LakeofRageMagikarpHouse.asm"
-INCLUDE "maps/Route43MahoganyGate.asm"
-INCLUDE "maps/Route43Gate.asm"
-INCLUDE "maps/RedsHouse1F.asm"
-INCLUDE "maps/RedsHouse2F.asm"
-INCLUDE "maps/BluesHouse.asm"
-INCLUDE "maps/OaksLab.asm"
-
-
-SECTION "bank67",ROMX,BANK[$67]
-
-; Map Scripts XX
-
-INCLUDE "maps/CherrygroveCity.asm"
-INCLUDE "maps/Route35.asm"
-INCLUDE "maps/Route43.asm"
-INCLUDE "maps/Route44.asm"
-INCLUDE "maps/Route45.asm"
-INCLUDE "maps/Route19.asm"
-INCLUDE "maps/Route25.asm"
-
-
-SECTION "bank68",ROMX,BANK[$68]
-
-; Map Scripts XXI
-
-INCLUDE "maps/CianwoodCity.asm"
-INCLUDE "maps/Route27.asm"
-INCLUDE "maps/Route29.asm"
-INCLUDE "maps/Route30.asm"
-INCLUDE "maps/Route38.asm"
-INCLUDE "maps/Route13.asm"
-INCLUDE "maps/PewterNidoranSpeechHouse.asm"
-INCLUDE "maps/PewterGym.asm"
-INCLUDE "maps/PewterMart.asm"
-INCLUDE "maps/PewterPokeCenter1F.asm"
-INCLUDE "maps/PewterPokeCEnter2FBeta.asm"
-INCLUDE "maps/PewterSnoozeSpeechHouse.asm"
-
-
-SECTION "bank69",ROMX,BANK[$69]
-
-; Map Scripts XXII
-
-INCLUDE "maps/EcruteakCity.asm"
-INCLUDE "maps/BlackthornCity.asm"
-INCLUDE "maps/Route26.asm"
-INCLUDE "maps/Route28.asm"
-INCLUDE "maps/Route31.asm"
-INCLUDE "maps/Route39.asm"
-INCLUDE "maps/Route40.asm"
-INCLUDE "maps/Route41.asm"
-INCLUDE "maps/Route12.asm"
-
-
-SECTION "bank6A",ROMX,BANK[$6A]
-
-; Map Scripts XXIII
-
-INCLUDE "maps/NewBarkTown.asm"
-INCLUDE "maps/VioletCity.asm"
-INCLUDE "maps/OlivineCity.asm"
-INCLUDE "maps/Route37.asm"
-INCLUDE "maps/Route42.asm"
-INCLUDE "maps/Route46.asm"
-INCLUDE "maps/ViridianCity.asm"
-INCLUDE "maps/CeladonCity.asm"
-INCLUDE "maps/Route15.asm"
-INCLUDE "maps/VermilionCity.asm"
-INCLUDE "maps/Route9.asm"
-INCLUDE "maps/CinnabarPokeCenter1F.asm"
-INCLUDE "maps/CinnabarPokeCenter2FBeta.asm"
-INCLUDE "maps/Route19FuchsiaGate.asm"
-INCLUDE "maps/SeafoamGym.asm"
-
-
-SECTION "bank6B",ROMX,BANK[$6B]
-
-; Map Scripts XXIV
-
-INCLUDE "maps/Route33.asm"
-INCLUDE "maps/Route2.asm"
-INCLUDE "maps/Route1.asm"
-INCLUDE "maps/PalletTown.asm"
-INCLUDE "maps/Route21.asm"
-INCLUDE "maps/CinnabarIsland.asm"
-INCLUDE "maps/Route20.asm"
-INCLUDE "maps/Route18.asm"
-INCLUDE "maps/Route17.asm"
-INCLUDE "maps/Route16.asm"
-INCLUDE "maps/Route7.asm"
-INCLUDE "maps/Route14.asm"
-INCLUDE "maps/LavenderTown.asm"
-INCLUDE "maps/Route6.asm"
-INCLUDE "maps/Route5.asm"
-INCLUDE "maps/Route24.asm"
-INCLUDE "maps/Route3.asm"
-INCLUDE "maps/Route4.asm"
-INCLUDE "maps/Route10South.asm"
-INCLUDE "maps/Route23.asm"
-INCLUDE "maps/SilverCavePokeCenter1F.asm"
-INCLUDE "maps/Route28FamousSpeechHouse.asm"
-
-
-SECTION "bank6C",ROMX,BANK[$6C]
-
-; Common text I
-INCLUDE "text/common.asm"
+SECTION "Common Text 1", ROMX, BANK[$6C]
-; Map Scripts XXV
+INCLUDE "text/common.asm"
-INCLUDE "maps/SilverCaveOutside.asm"
-INCLUDE "maps/Route10North.asm"
-SECTION "bank6D",ROMX,BANK[$6D]
+SECTION "bank6D", ROMX, BANK[$6D]
INCLUDE "text/phone/mom.asm"
INCLUDE "text/phone/bill.asm"
@@ -124927,36 +98917,23 @@ INCLUDE "text/phone/elm.asm"
INCLUDE "text/phone/trainers1.asm"
-SECTION "bank6E",ROMX,BANK[$6E]
-
-; Pokedex entries II
-; 065-128
-PokedexEntries2:
-INCLUDE "stats/pokedex/entries_2.asm"
-
-SECTION "bank6F",ROMX,BANK[$6F]
-
-; Common text II
+SECTION "Common Text 2", ROMX, BANK[$6F]
INCLUDE "text/common_2.asm"
-SECTION "bank70",ROMX,BANK[$70]
-
-; Common text III
+SECTION "Common Text 3", ROMX, BANK[$70]
INCLUDE "text/common_3.asm"
-SECTION "bank71",ROMX,BANK[$71]
-
-; Common text IV
+SECTION "Common Text 4", ROMX, BANK[$71]
INCLUDE "text/common_4.asm"
-SECTION "bank72",ROMX,BANK[$72]
+SECTION "bank72", ROMX, BANK[$72]
; Item names & descriptions
@@ -125006,29 +98983,14 @@ RegionCheck: ; 0x1caea1
ret
-SECTION "bank73",ROMX,BANK[$73]
-
-; Pokedex entries III
- ; 129-192
-PokedexEntries3:
-INCLUDE "stats/pokedex/entries_3.asm"
-
-
-SECTION "bank74",ROMX,BANK[$74]
-; Pokedex entries IV
- ; 193-251
-PokedexEntries4:
-INCLUDE "stats/pokedex/entries_4.asm"
+SECTION "bank75", ROMX, BANK[$75]
-SECTION "bank75",ROMX,BANK[$75]
+SECTION "bank76", ROMX, BANK[$76]
-SECTION "bank76",ROMX,BANK[$76]
-
-
-SECTION "bank77",ROMX,BANK[$77]
+SECTION "bank77", ROMX, BANK[$77]
UnownFont: ; 1dc000
INCBIN "gfx/misc/unown_font.2bpp"
@@ -125043,18 +99005,22 @@ Function1dc381: ; 1dc381
xor a
ld [hBGMapMode], a
call Functione58
- ld de, $4591
+
+ ld de, MobileHPIcon
ld hl, $9710
- ld bc, $7701
+ lb bc, BANK(MobileHPIcon), 1
call Request1bpp
- ld de, $4599
+
+ ld de, MobileLvIcon
ld hl, $96e0
- ld bc, $7701
+ lb bc, BANK(MobileLvIcon), 1
call Request1bpp
- ld de, $4a90
+
+ ld de, ShinyIcon
ld hl, $93f0
- ld bc, $3e01
+ lb bc, BANK(ShinyIcon), 1
call Get2bpp
+
xor a
ld [MonType], a
callba Function5084a
@@ -125092,21 +99058,21 @@ Function1dc381: ; 1dc381
ld bc, $8103
call PrintNum
ld hl, $c555
- ld de, $4550
+ ld de, String1dc550
call PlaceString
ld hl, PartyMon1OT
call Function1dc50e
ld hl, $c558
call PlaceString
ld hl, $c57d
- ld de, $4559
+ ld de, String1dc559
call PlaceString
ld hl, $c580
ld de, TempMonID
ld bc, $8205
call PrintNum
ld hl, $c5b9
- ld de, $4554
+ ld de, String1dc554
call PlaceString
ld hl, $c5bf
ld a, [TempMonMove1]
@@ -125144,10 +99110,10 @@ Function1dc47b: ; 1dc47b
ld [MonType], a
callba Function5084a
ld hl, TileMap
- ld b, $f
- ld c, $12
+ ld b, 15
+ ld c, 18
call TextBox
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
ld de, TileMap
ld hl, $c4b4
call CopyBytes
@@ -125161,7 +99127,7 @@ Function1dc47b: ; 1dc47b
ld a, [TempMonMove4]
call Function1dc51a
ld hl, $c533
- ld de, $455d
+ ld de, String1dc55d
call PlaceString
ld hl, $c53c
ld de, TempMonAtk
@@ -125203,12 +99169,13 @@ Function1dc50e: ; 1dc50e
Function1dc51a: ; 1dc51a
and a
jr z, .asm_1dc525
+
ld [$d265], a
call GetMoveName
jr .asm_1dc528
.asm_1dc525
- ld de, $4584
+ ld de, String1dc584
.asm_1dc528
call PlaceString
@@ -125234,10 +99201,36 @@ Function1dc52c: ; 1dc52c
ret
; 1dc550
-INCBIN "baserom.gbc",$1dc550,$1dc5a1 - $1dc550
+String1dc550: ; 1dc550
+ db "OT/@"
+
+String1dc554: ; 1dc554
+ db "MOVE@"
+
+String1dc559: ; 1dc559
+ db $73, "№.@"
+
+String1dc55d: ; 1dc55d
+ db "ATTACK", $4e
+ db "DEFENSE", $4e
+ db "SPCL.ATK", $4e
+ db "SPCL.DEF", $4e
+ db "SPEED@"
+
+String1dc584: ; 1dc584
+ db "------------@"
+; 1dc591
+
+MobileHPIcon: ; 1dc591
+INCBIN "gfx/mobile/hp.1bpp"
+
+MobileLvIcon: ; 1dc599
+INCBIN "gfx/mobile/lv.1bpp"
+
INCLUDE "tilesets/data_7.asm"
+
INCBIN "baserom.gbc",$1dd6a9,$1dd6bb - $1dd6a9
; no known jump sources
@@ -125542,12 +99535,14 @@ Function1de294: ; 1de294
; 1de299
Function1de299: ; 1de299
- ld a, $77
+ ld a, BANK(DudeAutoInputs)
call StartAutoInput
ret
; 1de29f
+DudeAutoInputs:
+
DudeAutoInput_A: ; 1de29f
db NO_INPUT, $50
db A_BUTTON, $00
@@ -125711,28 +99706,28 @@ Function1df220: ; 1df220
; 1df238
-SECTION "bank78",ROMX,BANK[$78]
+SECTION "Tileset Data 8", ROMX, BANK[TILESETS_8]
INCLUDE "tilesets/data_8.asm"
-SECTION "bank79",ROMX,BANK[$79]
+SECTION "bank79", ROMX, BANK[$79]
-SECTION "bank7A",ROMX,BANK[$7A]
+SECTION "bank7A", ROMX, BANK[$7A]
-SECTION "bank7B",ROMX,BANK[$7B]
+SECTION "bank7B", ROMX, BANK[$7B]
INCLUDE "text/battle_tower.asm"
-SECTION "bank7C",ROMX,BANK[$7C]
+SECTION "bank7C", ROMX, BANK[$7C]
INCBIN "baserom.gbc",$1f0000,$1f09d8 - $1f0000
-SECTION "bank7D",ROMX,BANK[$7D]
+SECTION "bank7D", ROMX, BANK[$7D]
INCBIN "baserom.gbc",$1f4000,$1f4003 - $1f4000
@@ -125750,13 +99745,13 @@ Function1f4003: ; 1f4003
INCBIN "baserom.gbc",$1f4018,$1f636a - $1f4018
-SECTION "bank7E",ROMX,BANK[$7E]
+SECTION "bank7E", ROMX, BANK[$7E]
INCLUDE "stats/battle_tower.asm"
INCLUDE "stats/odd_eggs.asm"
-SECTION "bank7F",ROMX,BANK[$7F]
+SECTION "bank7F", ROMX, BANK[$7F]
SECTION "stadium2",ROMX[$8000-$220],BANK[$7F]
INCBIN "baserom.gbc",$1ffde0,$200000 - $1ffde0
diff --git a/maps.asm b/maps.asm
new file mode 100644
index 000000000..9db2c7361
--- /dev/null
+++ b/maps.asm
@@ -0,0 +1,511 @@
+
+SECTION "Map Headers", ROMX, BANK[MAP_HEADERS]
+
+INCLUDE "maps/map_headers.asm"
+INCLUDE "maps/second_map_headers.asm"
+
+
+
+SECTION "Map Blockdata 1", ROMX, BANK[MAPS_1]
+
+INCLUDE "maps/blockdata_1.asm"
+
+
+SECTION "Map Blockdata 2", ROMX, BANK[MAPS_2]
+
+INCLUDE "maps/blockdata_2.asm"
+
+
+SECTION "Map Blockdata 3", ROMX, BANK[MAPS_3]
+
+INCLUDE "maps/blockdata_3.asm"
+
+
+
+SECTION "Map Scripts 1", ROMX, BANK[MAP_SCRIPTS_1]
+
+INCLUDE "maps/GoldenrodGym.asm"
+INCLUDE "maps/GoldenrodBikeShop.asm"
+INCLUDE "maps/GoldenrodHappinessRater.asm"
+INCLUDE "maps/GoldenrodBillsHouse.asm"
+INCLUDE "maps/GoldenrodMagnetTrainStation.asm"
+INCLUDE "maps/GoldenrodFlowerShop.asm"
+INCLUDE "maps/GoldenrodPPSpeechHouse.asm"
+INCLUDE "maps/GoldenrodNameRatersHouse.asm"
+INCLUDE "maps/GoldenrodDeptStore1F.asm"
+INCLUDE "maps/GoldenrodDeptStore2F.asm"
+INCLUDE "maps/GoldenrodDeptStore3F.asm"
+INCLUDE "maps/GoldenrodDeptStore4F.asm"
+INCLUDE "maps/GoldenrodDeptStore5F.asm"
+INCLUDE "maps/GoldenrodDeptStore6F.asm"
+INCLUDE "maps/GoldenrodDeptStoreElevator.asm"
+INCLUDE "maps/GoldenrodDeptStoreRoof.asm"
+INCLUDE "maps/GoldenrodGameCorner.asm"
+
+
+SECTION "Map Scripts 2", ROMX, BANK[MAP_SCRIPTS_2]
+
+INCLUDE "maps/RuinsofAlphOutside.asm"
+INCLUDE "maps/RuinsofAlphHoOhChamber.asm"
+INCLUDE "maps/RuinsofAlphKabutoChamber.asm"
+INCLUDE "maps/RuinsofAlphOmanyteChamber.asm"
+INCLUDE "maps/RuinsofAlphAerodactylChamber.asm"
+INCLUDE "maps/RuinsofAlphInnerChamber.asm"
+INCLUDE "maps/RuinsofAlphResearchCenter.asm"
+INCLUDE "maps/RuinsofAlphHoOhItemRoom.asm"
+INCLUDE "maps/RuinsofAlphKabutoItemRoom.asm"
+INCLUDE "maps/RuinsofAlphOmanyteItemRoom.asm"
+INCLUDE "maps/RuinsofAlphAerodactylItemRoom.asm"
+INCLUDE "maps/RuinsofAlphHoOhWordRoom.asm"
+INCLUDE "maps/RuinsofAlphKabutoWordRoom.asm"
+INCLUDE "maps/RuinsofAlphOmanyteWordRoom.asm"
+INCLUDE "maps/RuinsofAlphAerodactylWordRoom.asm"
+INCLUDE "maps/UnionCave1F.asm"
+INCLUDE "maps/UnionCaveB1F.asm"
+INCLUDE "maps/UnionCaveB2F.asm"
+INCLUDE "maps/SlowpokeWellB1F.asm"
+INCLUDE "maps/SlowpokeWellB2F.asm"
+INCLUDE "maps/OlivineLighthouse1F.asm"
+INCLUDE "maps/OlivineLighthouse2F.asm"
+INCLUDE "maps/OlivineLighthouse3F.asm"
+INCLUDE "maps/OlivineLighthouse4F.asm"
+
+
+SECTION "Map Scripts 3", ROMX, BANK[MAP_SCRIPTS_3]
+
+INCLUDE "maps/NationalPark.asm"
+INCLUDE "maps/NationalParkBugContest.asm"
+INCLUDE "maps/RadioTower1F.asm"
+INCLUDE "maps/RadioTower2F.asm"
+INCLUDE "maps/RadioTower3F.asm"
+INCLUDE "maps/RadioTower4F.asm"
+
+
+SECTION "Map Scripts 4", ROMX, BANK[MAP_SCRIPTS_4]
+
+INCLUDE "maps/RadioTower5F.asm"
+INCLUDE "maps/OlivineLighthouse5F.asm"
+INCLUDE "maps/OlivineLighthouse6F.asm"
+INCLUDE "maps/GoldenrodPokeCenter1F.asm"
+INCLUDE "maps/GoldenrodPokeComCenter2FMobile.asm"
+INCLUDE "maps/IlexForestAzaleaGate.asm"
+INCLUDE "maps/Route34IlexForestGate.asm"
+INCLUDE "maps/DayCare.asm"
+
+
+SECTION "Map Scripts 5", ROMX, BANK[MAP_SCRIPTS_5]
+
+INCLUDE "maps/Route11.asm"
+INCLUDE "maps/VioletMart.asm"
+INCLUDE "maps/VioletGym.asm"
+INCLUDE "maps/EarlsPokemonAcademy.asm"
+INCLUDE "maps/VioletNicknameSpeechHouse.asm"
+INCLUDE "maps/VioletPokeCenter1F.asm"
+INCLUDE "maps/VioletOnixTradeHouse.asm"
+INCLUDE "maps/Route32RuinsofAlphGate.asm"
+INCLUDE "maps/Route32PokeCenter1F.asm"
+INCLUDE "maps/Route35Goldenrodgate.asm"
+INCLUDE "maps/Route35NationalParkgate.asm"
+INCLUDE "maps/Route36RuinsofAlphgate.asm"
+INCLUDE "maps/Route36NationalParkgate.asm"
+
+
+SECTION "Map Scripts 6", ROMX, BANK[MAP_SCRIPTS_6]
+
+INCLUDE "maps/Route8.asm"
+INCLUDE "maps/MahoganyMart1F.asm"
+INCLUDE "maps/TeamRocketBaseB1F.asm"
+INCLUDE "maps/TeamRocketBaseB2F.asm"
+INCLUDE "maps/TeamRocketBaseB3F.asm"
+INCLUDE "maps/IlexForest.asm"
+
+
+SECTION "Map Scripts 7", ROMX, BANK[MAP_SCRIPTS_7]
+
+INCLUDE "maps/LakeofRage.asm"
+INCLUDE "maps/CeladonDeptStore1F.asm"
+INCLUDE "maps/CeladonDeptStore2F.asm"
+INCLUDE "maps/CeladonDeptStore3F.asm"
+INCLUDE "maps/CeladonDeptStore4F.asm"
+INCLUDE "maps/CeladonDeptStore5F.asm"
+INCLUDE "maps/CeladonDeptStore6F.asm"
+INCLUDE "maps/CeladonDeptStoreElevator.asm"
+INCLUDE "maps/CeladonMansion1F.asm"
+INCLUDE "maps/CeladonMansion2F.asm"
+INCLUDE "maps/CeladonMansion3F.asm"
+INCLUDE "maps/CeladonMansionRoof.asm"
+INCLUDE "maps/CeladonMansionRoofHouse.asm"
+INCLUDE "maps/CeladonPokeCenter1F.asm"
+INCLUDE "maps/CeladonPokeCenter2FBeta.asm"
+INCLUDE "maps/CeladonGameCorner.asm"
+INCLUDE "maps/CeladonGameCornerPrizeRoom.asm"
+INCLUDE "maps/CeladonGym.asm"
+INCLUDE "maps/CeladonCafe.asm"
+INCLUDE "maps/Route16FuchsiaSpeechHouse.asm"
+INCLUDE "maps/Route16Gate.asm"
+INCLUDE "maps/Route7SaffronGate.asm"
+INCLUDE "maps/Route1718Gate.asm"
+
+
+SECTION "Map Scripts 8", ROMX, BANK[MAP_SCRIPTS_8]
+
+INCLUDE "maps/DiglettsCave.asm"
+INCLUDE "maps/MountMoon.asm"
+INCLUDE "maps/Underground.asm"
+INCLUDE "maps/RockTunnel1F.asm"
+INCLUDE "maps/RockTunnelB1F.asm"
+INCLUDE "maps/SafariZoneFuchsiaGateBeta.asm"
+INCLUDE "maps/SafariZoneBeta.asm"
+INCLUDE "maps/VictoryRoad.asm"
+INCLUDE "maps/OlivinePort.asm"
+INCLUDE "maps/VermilionPort.asm"
+INCLUDE "maps/FastShip1F.asm"
+INCLUDE "maps/FastShipCabins_NNW_NNE_NE.asm"
+INCLUDE "maps/FastShipCabins_SW_SSW_NW.asm"
+INCLUDE "maps/FastShipCabins_SE_SSE_CaptainsCabin.asm"
+INCLUDE "maps/FastShipB1F.asm"
+INCLUDE "maps/OlivinePortPassage.asm"
+INCLUDE "maps/VermilionPortPassage.asm"
+INCLUDE "maps/MountMoonSquare.asm"
+INCLUDE "maps/MountMoonGiftShop.asm"
+INCLUDE "maps/TinTowerRoof.asm"
+
+
+SECTION "Map Scripts 9", ROMX, BANK[MAP_SCRIPTS_9]
+
+INCLUDE "maps/Route34.asm"
+INCLUDE "maps/ElmsLab.asm"
+INCLUDE "maps/KrissHouse1F.asm"
+INCLUDE "maps/KrissHouse2F.asm"
+INCLUDE "maps/KrissNeighborsHouse.asm"
+INCLUDE "maps/ElmsHouse.asm"
+INCLUDE "maps/Route26HealSpeechHouse.asm"
+INCLUDE "maps/Route26DayofWeekSiblingsHouse.asm"
+INCLUDE "maps/Route27SandstormHouse.asm"
+INCLUDE "maps/Route2946Gate.asm"
+
+
+SECTION "Map Scripts 10", ROMX, BANK[MAP_SCRIPTS_10]
+
+INCLUDE "maps/Route22.asm"
+INCLUDE "maps/WarehouseEntrance.asm"
+INCLUDE "maps/UndergroundPathSwitchRoomEntrances.asm"
+INCLUDE "maps/GoldenrodDeptStoreB1F.asm"
+INCLUDE "maps/UndergroundWarehouse.asm"
+INCLUDE "maps/MountMortar1FOutside.asm"
+INCLUDE "maps/MountMortar1FInside.asm"
+INCLUDE "maps/MountMortar2FInside.asm"
+INCLUDE "maps/MountMortarB1F.asm"
+INCLUDE "maps/IcePath1F.asm"
+INCLUDE "maps/IcePathB1F.asm"
+INCLUDE "maps/IcePathB2FMahoganySide.asm"
+INCLUDE "maps/IcePathB2FBlackthornSide.asm"
+INCLUDE "maps/IcePathB3F.asm"
+INCLUDE "maps/LavenderPokeCenter1F.asm"
+INCLUDE "maps/LavenderPokeCenter2FBeta.asm"
+INCLUDE "maps/MrFujisHouse.asm"
+INCLUDE "maps/LavenderTownSpeechHouse.asm"
+INCLUDE "maps/LavenderNameRater.asm"
+INCLUDE "maps/LavenderMart.asm"
+INCLUDE "maps/SoulHouse.asm"
+INCLUDE "maps/LavRadioTower1F.asm"
+INCLUDE "maps/Route8SaffronGate.asm"
+INCLUDE "maps/Route12SuperRodHouse.asm"
+
+
+SECTION "Map Scripts 11", ROMX, BANK[MAP_SCRIPTS_11]
+
+INCLUDE "maps/EcruteakHouse.asm"
+INCLUDE "maps/WiseTriosRoom.asm"
+INCLUDE "maps/EcruteakPokeCenter1F.asm"
+INCLUDE "maps/EcruteakLugiaSpeechHouse.asm"
+INCLUDE "maps/DanceTheatre.asm"
+INCLUDE "maps/EcruteakMart.asm"
+INCLUDE "maps/EcruteakGym.asm"
+INCLUDE "maps/EcruteakItemfinderHouse.asm"
+INCLUDE "maps/ViridianGym.asm"
+INCLUDE "maps/ViridianNicknameSpeechHouse.asm"
+INCLUDE "maps/TrainerHouse1F.asm"
+INCLUDE "maps/TrainerHouseB1F.asm"
+INCLUDE "maps/ViridianMart.asm"
+INCLUDE "maps/ViridianPokeCenter1F.asm"
+INCLUDE "maps/ViridianPokeCenter2FBeta.asm"
+INCLUDE "maps/Route2NuggetSpeechHouse.asm"
+INCLUDE "maps/Route2Gate.asm"
+INCLUDE "maps/VictoryRoadGate.asm"
+
+
+SECTION "Map Scripts 12", ROMX, BANK[MAP_SCRIPTS_12]
+
+INCLUDE "maps/OlivinePokeCenter1F.asm"
+INCLUDE "maps/OlivineGym.asm"
+INCLUDE "maps/OlivineVoltorbHouse.asm"
+INCLUDE "maps/OlivineHouseBeta.asm"
+INCLUDE "maps/OlivinePunishmentSpeechHouse.asm"
+INCLUDE "maps/OlivineGoodRodHouse.asm"
+INCLUDE "maps/OlivineCafe.asm"
+INCLUDE "maps/OlivineMart.asm"
+INCLUDE "maps/Route38EcruteakGate.asm"
+INCLUDE "maps/Route39Barn.asm"
+INCLUDE "maps/Route39Farmhouse.asm"
+INCLUDE "maps/ManiasHouse.asm"
+INCLUDE "maps/CianwoodGym.asm"
+INCLUDE "maps/CianwoodPokeCenter1F.asm"
+INCLUDE "maps/CianwoodPharmacy.asm"
+INCLUDE "maps/CianwoodCityPhotoStudio.asm"
+INCLUDE "maps/CianwoodLugiaSpeechHouse.asm"
+INCLUDE "maps/PokeSeersHouse.asm"
+INCLUDE "maps/BattleTower1F.asm"
+INCLUDE "maps/BattleTowerBattleRoom.asm"
+INCLUDE "maps/BattleTowerElevator.asm"
+INCLUDE "maps/BattleTowerHallway.asm"
+INCLUDE "maps/Route40BattleTowerGate.asm"
+INCLUDE "maps/BattleTowerOutside.asm"
+
+
+SECTION "Map Scripts 13", ROMX, BANK[MAP_SCRIPTS_13]
+
+INCLUDE "maps/IndigoPlateauPokeCenter1F.asm"
+INCLUDE "maps/WillsRoom.asm"
+INCLUDE "maps/KogasRoom.asm"
+INCLUDE "maps/BrunosRoom.asm"
+INCLUDE "maps/KarensRoom.asm"
+INCLUDE "maps/LancesRoom.asm"
+INCLUDE "maps/HallOfFame.asm"
+
+
+SECTION "Map Scripts 14", ROMX, BANK[MAP_SCRIPTS_14]
+
+INCLUDE "maps/CeruleanCity.asm"
+INCLUDE "maps/SproutTower1F.asm"
+INCLUDE "maps/SproutTower2F.asm"
+INCLUDE "maps/SproutTower3F.asm"
+INCLUDE "maps/TinTower1F.asm"
+INCLUDE "maps/TinTower2F.asm"
+INCLUDE "maps/TinTower3F.asm"
+INCLUDE "maps/TinTower4F.asm"
+INCLUDE "maps/TinTower5F.asm"
+INCLUDE "maps/TinTower6F.asm"
+INCLUDE "maps/TinTower7F.asm"
+INCLUDE "maps/TinTower8F.asm"
+INCLUDE "maps/TinTower9F.asm"
+INCLUDE "maps/BurnedTower1F.asm"
+INCLUDE "maps/BurnedTowerB1F.asm"
+
+
+SECTION "Map Scripts 15", ROMX, BANK[MAP_SCRIPTS_15]
+
+INCLUDE "maps/CeruleanGymBadgeSpeechHouse.asm"
+INCLUDE "maps/CeruleanPoliceStation.asm"
+INCLUDE "maps/CeruleanTradeSpeechHouse.asm"
+INCLUDE "maps/CeruleanPokeCenter1F.asm"
+INCLUDE "maps/CeruleanPokeCenter2FBeta.asm"
+INCLUDE "maps/CeruleanGym.asm"
+INCLUDE "maps/CeruleanMart.asm"
+INCLUDE "maps/Route10PokeCenter1F.asm"
+INCLUDE "maps/Route10PokeCenter2FBeta.asm"
+INCLUDE "maps/PowerPlant.asm"
+INCLUDE "maps/BillsHouse.asm"
+INCLUDE "maps/FightingDojo.asm"
+INCLUDE "maps/SaffronGym.asm"
+INCLUDE "maps/SaffronMart.asm"
+INCLUDE "maps/SaffronPokeCenter1F.asm"
+INCLUDE "maps/SaffronPokeCenter2FBeta.asm"
+INCLUDE "maps/MrPsychicsHouse.asm"
+INCLUDE "maps/SaffronTrainStation.asm"
+INCLUDE "maps/SilphCo1F.asm"
+INCLUDE "maps/CopycatsHouse1F.asm"
+INCLUDE "maps/CopycatsHouse2F.asm"
+INCLUDE "maps/Route5UndergroundEntrance.asm"
+INCLUDE "maps/Route5SaffronCityGate.asm"
+INCLUDE "maps/Route5CleanseTagSpeechHouse.asm"
+
+
+SECTION "Map Scripts 16", ROMX, BANK[MAP_SCRIPTS_16]
+
+INCLUDE "maps/PewterCity.asm"
+INCLUDE "maps/WhirlIslandNW.asm"
+INCLUDE "maps/WhirlIslandNE.asm"
+INCLUDE "maps/WhirlIslandSW.asm"
+INCLUDE "maps/WhirlIslandCave.asm"
+INCLUDE "maps/WhirlIslandSE.asm"
+INCLUDE "maps/WhirlIslandB1F.asm"
+INCLUDE "maps/WhirlIslandB2F.asm"
+INCLUDE "maps/WhirlIslandLugiaChamber.asm"
+INCLUDE "maps/SilverCaveRoom1.asm"
+INCLUDE "maps/SilverCaveRoom2.asm"
+INCLUDE "maps/SilverCaveRoom3.asm"
+INCLUDE "maps/SilverCaveItemRooms.asm"
+INCLUDE "maps/DarkCaveVioletEntrance.asm"
+INCLUDE "maps/DarkCaveBlackthornEntrance.asm"
+INCLUDE "maps/DragonsDen1F.asm"
+INCLUDE "maps/DragonsDenB1F.asm"
+INCLUDE "maps/DragonShrine.asm"
+INCLUDE "maps/TohjoFalls.asm"
+INCLUDE "maps/AzaleaPokeCenter1F.asm"
+INCLUDE "maps/CharcoalKiln.asm"
+INCLUDE "maps/AzaleaMart.asm"
+INCLUDE "maps/KurtsHouse.asm"
+INCLUDE "maps/AzaleaGym.asm"
+
+
+SECTION "Map Scripts 17", ROMX, BANK[MAP_SCRIPTS_17]
+
+INCLUDE "maps/MahoganyTown.asm"
+INCLUDE "maps/Route32.asm"
+INCLUDE "maps/VermilionHouseFishingSpeechHouse.asm"
+INCLUDE "maps/VermilionPokeCenter1F.asm"
+INCLUDE "maps/VermilionPokeCenter2FBeta.asm"
+INCLUDE "maps/PokemonFanClub.asm"
+INCLUDE "maps/VermilionMagnetTrainSpeechHouse.asm"
+INCLUDE "maps/VermilionMart.asm"
+INCLUDE "maps/VermilionHouseDiglettsCaveSpeechHouse.asm"
+INCLUDE "maps/VermilionGym.asm"
+INCLUDE "maps/Route6SaffronGate.asm"
+INCLUDE "maps/Route6UndergroundEntrance.asm"
+INCLUDE "maps/PokeCenter2F.asm"
+INCLUDE "maps/TradeCenter.asm"
+INCLUDE "maps/Colosseum.asm"
+INCLUDE "maps/TimeCapsule.asm"
+INCLUDE "maps/MobileTradeRoomMobile.asm"
+INCLUDE "maps/MobileBattleRoom.asm"
+
+
+SECTION "Map Scripts 18", ROMX, BANK[MAP_SCRIPTS_18]
+
+INCLUDE "maps/Route36.asm"
+INCLUDE "maps/FuchsiaCity.asm"
+INCLUDE "maps/BlackthornGym1F.asm"
+INCLUDE "maps/BlackthornGym2F.asm"
+INCLUDE "maps/BlackthornDragonSpeechHouse.asm"
+INCLUDE "maps/BlackthornDodrioTradeHouse.asm"
+INCLUDE "maps/BlackthornMart.asm"
+INCLUDE "maps/BlackthornPokeCenter1F.asm"
+INCLUDE "maps/MoveDeletersHouse.asm"
+INCLUDE "maps/FuchsiaMart.asm"
+INCLUDE "maps/SafariZoneMainOffice.asm"
+INCLUDE "maps/FuchsiaGym.asm"
+INCLUDE "maps/FuchsiaBillSpeechHouse.asm"
+INCLUDE "maps/FuchsiaPokeCenter1F.asm"
+INCLUDE "maps/FuchsiaPokeCenter2FBeta.asm"
+INCLUDE "maps/SafariZoneWardensHome.asm"
+INCLUDE "maps/Route15FuchsiaGate.asm"
+INCLUDE "maps/CherrygroveMart.asm"
+INCLUDE "maps/CherrygrovePokeCenter1F.asm"
+INCLUDE "maps/CherrygroveGymSpeechHouse.asm"
+INCLUDE "maps/GuideGentsHouse.asm"
+INCLUDE "maps/CherrygroveEvolutionSpeechHouse.asm"
+INCLUDE "maps/Route30BerrySpeechHouse.asm"
+INCLUDE "maps/MrPokemonsHouse.asm"
+INCLUDE "maps/Route31VioletGate.asm"
+
+
+SECTION "Map Scripts 19", ROMX, BANK[MAP_SCRIPTS_19]
+
+INCLUDE "maps/AzaleaTown.asm"
+INCLUDE "maps/GoldenrodCity.asm"
+INCLUDE "maps/SaffronCity.asm"
+INCLUDE "maps/MahoganyRedGyaradosSpeechHouse.asm"
+INCLUDE "maps/MahoganyGym.asm"
+INCLUDE "maps/MahoganyPokeCenter1F.asm"
+INCLUDE "maps/Route42EcruteakGate.asm"
+INCLUDE "maps/LakeofRageHiddenPowerHouse.asm"
+INCLUDE "maps/LakeofRageMagikarpHouse.asm"
+INCLUDE "maps/Route43MahoganyGate.asm"
+INCLUDE "maps/Route43Gate.asm"
+INCLUDE "maps/RedsHouse1F.asm"
+INCLUDE "maps/RedsHouse2F.asm"
+INCLUDE "maps/BluesHouse.asm"
+INCLUDE "maps/OaksLab.asm"
+
+
+SECTION "Map Scripts 20", ROMX, BANK[MAP_SCRIPTS_20]
+
+INCLUDE "maps/CherrygroveCity.asm"
+INCLUDE "maps/Route35.asm"
+INCLUDE "maps/Route43.asm"
+INCLUDE "maps/Route44.asm"
+INCLUDE "maps/Route45.asm"
+INCLUDE "maps/Route19.asm"
+INCLUDE "maps/Route25.asm"
+
+
+SECTION "Map Scripts 21", ROMX, BANK[MAP_SCRIPTS_21]
+
+INCLUDE "maps/CianwoodCity.asm"
+INCLUDE "maps/Route27.asm"
+INCLUDE "maps/Route29.asm"
+INCLUDE "maps/Route30.asm"
+INCLUDE "maps/Route38.asm"
+INCLUDE "maps/Route13.asm"
+INCLUDE "maps/PewterNidoranSpeechHouse.asm"
+INCLUDE "maps/PewterGym.asm"
+INCLUDE "maps/PewterMart.asm"
+INCLUDE "maps/PewterPokeCenter1F.asm"
+INCLUDE "maps/PewterPokeCEnter2FBeta.asm"
+INCLUDE "maps/PewterSnoozeSpeechHouse.asm"
+
+
+SECTION "Map Scripts 22", ROMX, BANK[MAP_SCRIPTS_22]
+
+INCLUDE "maps/EcruteakCity.asm"
+INCLUDE "maps/BlackthornCity.asm"
+INCLUDE "maps/Route26.asm"
+INCLUDE "maps/Route28.asm"
+INCLUDE "maps/Route31.asm"
+INCLUDE "maps/Route39.asm"
+INCLUDE "maps/Route40.asm"
+INCLUDE "maps/Route41.asm"
+INCLUDE "maps/Route12.asm"
+
+
+SECTION "Map Scripts 23", ROMX, BANK[MAP_SCRIPTS_23]
+
+INCLUDE "maps/NewBarkTown.asm"
+INCLUDE "maps/VioletCity.asm"
+INCLUDE "maps/OlivineCity.asm"
+INCLUDE "maps/Route37.asm"
+INCLUDE "maps/Route42.asm"
+INCLUDE "maps/Route46.asm"
+INCLUDE "maps/ViridianCity.asm"
+INCLUDE "maps/CeladonCity.asm"
+INCLUDE "maps/Route15.asm"
+INCLUDE "maps/VermilionCity.asm"
+INCLUDE "maps/Route9.asm"
+INCLUDE "maps/CinnabarPokeCenter1F.asm"
+INCLUDE "maps/CinnabarPokeCenter2FBeta.asm"
+INCLUDE "maps/Route19FuchsiaGate.asm"
+INCLUDE "maps/SeafoamGym.asm"
+
+
+SECTION "Map Scripts 24", ROMX, BANK[MAP_SCRIPTS_24]
+
+INCLUDE "maps/Route33.asm"
+INCLUDE "maps/Route2.asm"
+INCLUDE "maps/Route1.asm"
+INCLUDE "maps/PalletTown.asm"
+INCLUDE "maps/Route21.asm"
+INCLUDE "maps/CinnabarIsland.asm"
+INCLUDE "maps/Route20.asm"
+INCLUDE "maps/Route18.asm"
+INCLUDE "maps/Route17.asm"
+INCLUDE "maps/Route16.asm"
+INCLUDE "maps/Route7.asm"
+INCLUDE "maps/Route14.asm"
+INCLUDE "maps/LavenderTown.asm"
+INCLUDE "maps/Route6.asm"
+INCLUDE "maps/Route5.asm"
+INCLUDE "maps/Route24.asm"
+INCLUDE "maps/Route3.asm"
+INCLUDE "maps/Route4.asm"
+INCLUDE "maps/Route10South.asm"
+INCLUDE "maps/Route23.asm"
+INCLUDE "maps/SilverCavePokeCenter1F.asm"
+INCLUDE "maps/Route28FamousSpeechHouse.asm"
+
+
+SECTION "Map Scripts 25", ROMX, BANK[MAP_SCRIPTS_25]
+
+INCLUDE "maps/SilverCaveOutside.asm"
+INCLUDE "maps/Route10North.asm"
+
diff --git a/maps/BattleTowerBattleRoom.asm b/maps/BattleTowerBattleRoom.asm
index 1fb6dd4e9..5b4e62c02 100644
--- a/maps/BattleTowerBattleRoom.asm
+++ b/maps/BattleTowerBattleRoom.asm
@@ -30,9 +30,12 @@ UnknownScript_0x9f425: ; 0x9f425
waitbutton
applymovement $2, MovementData_0x9e592
loadfont
- storetext 1, UnknownText_0x9f930 + 37 - $3000, $f
- follownotexact $0, $f
- giveegg 0, 123
+ storetext 1
+ keeptextopen
+ loadmovesprites
+ special $0077
+ special $002e
+ reloadmap
if_not_equal $0, UnknownScript_0x9f4c2
copybytetovar $cf64
if_equal $7, UnknownScript_0x9f4d9
diff --git a/maps/BattleTowerHallway.asm b/maps/BattleTowerHallway.asm
index 88493fc5c..43f1d4fe7 100644
--- a/maps/BattleTowerHallway.asm
+++ b/maps/BattleTowerHallway.asm
@@ -21,7 +21,7 @@ UnknownScript_0x9f5c0: ; 0x9f5c0
UnknownScript_0x9f5c1: ; 0x9f5c1
follow $2, $0
- 3callasm BANK(Function_0x9f5cb), Function_0x9f5cb
+ 3callasm Function_0x9f5cb
2jump UnknownScript_0x9f5dc
; 0x9f5cb
diff --git a/maps/PokeSeersHouse.asm b/maps/PokeSeersHouse.asm
index 9751610fa..ebb3d2759 100644
--- a/maps/PokeSeersHouse.asm
+++ b/maps/PokeSeersHouse.asm
@@ -6,10 +6,10 @@ PokeSeersHouse_MapScriptHeader: ; 0x9e36c
db 0
; 0x9e36e
-GrannyScript_0x9e36e: ; 0x9e36e
+SeerScript: ; 0x9e36e
faceplayer
loadfont
- special $0091
+ special SPECIAL_POKESEER
closetext
loadmovesprites
end
@@ -32,6 +32,6 @@ PokeSeersHouse_MapEventHeader: ; 0x9e376
; people-events
db 1
- person_event SPRITE_GRANNY, 7, 6, $6, $0, 255, 255, $80, 0, GrannyScript_0x9e36e, $ffff
+ person_event SPRITE_GRANNY, 7, 6, $6, $0, 255, 255, $80, 0, SeerScript, $ffff
; 0x9e393
diff --git a/maps/map_headers.asm b/maps/map_headers.asm
index 45e8f12ab..3fe5565bf 100644
--- a/maps/map_headers.asm
+++ b/maps/map_headers.asm
@@ -38,7 +38,7 @@ OlivinePokeCenter1F_MapHeader: ; 0x94034
dw OlivinePokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_POKEMON_CENTER, 1, 1
+ db OLIVINE_CITY, MUSIC_POKEMON_CENTER, 1, 1
; had to increase the final size by 1
; had to convert 0x->$ (duh..)
; 0x9403d
@@ -51,7 +51,7 @@ OlivineGym_MapHeader: ; 0x9403d
dw OlivineGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_GYM, 17, 1
+ db OLIVINE_CITY, MUSIC_GYM, 17, 1
; 0x94046
OlivineVoltorbHouse_MapHeader: ; 0x94046
@@ -62,7 +62,7 @@ OlivineVoltorbHouse_MapHeader: ; 0x94046
dw OlivineVoltorbHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_VIOLET_CITY, 1, 1
+ db OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x9404f
OlivineHouseBeta_MapHeader: ; 0x9404f
@@ -73,7 +73,7 @@ OlivineHouseBeta_MapHeader: ; 0x9404f
dw OlivineHouseBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_VIOLET_CITY, 1, 1
+ db OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x94058
OlivinePunishmentSpeechHouse_MapHeader: ; 0x94058
@@ -84,7 +84,7 @@ OlivinePunishmentSpeechHouse_MapHeader: ; 0x94058
dw OlivinePunishmentSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_VIOLET_CITY, 1, 1
+ db OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x94061
OlivineGoodRodHouse_MapHeader: ; 0x94061
@@ -95,7 +95,7 @@ OlivineGoodRodHouse_MapHeader: ; 0x94061
dw OlivineGoodRodHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_VIOLET_CITY, 1, 1
+ db OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x9406a
OlivineCafe_MapHeader: ; 0x9406a
@@ -106,7 +106,7 @@ OlivineCafe_MapHeader: ; 0x9406a
dw OlivineCafe_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_VIOLET_CITY, 1, 1
+ db OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x94073
OlivineMart_MapHeader: ; 0x94073
@@ -117,7 +117,7 @@ OlivineMart_MapHeader: ; 0x94073
dw OlivineMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_VIOLET_CITY, 1, 1
+ db OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x9407c
Route38EcruteakGate_MapHeader: ; 0x9407c
@@ -128,7 +128,7 @@ Route38EcruteakGate_MapHeader: ; 0x9407c
dw Route38EcruteakGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $19, MUSIC_ROUTE_37, 1, 1
+ db ROUTE_38, MUSIC_ROUTE_37, 1, 1
; 0x94085
Route39Barn_MapHeader: ; 0x94085
@@ -139,7 +139,7 @@ Route39Barn_MapHeader: ; 0x94085
dw Route39Barn_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1a, MUSIC_ECRUTEAK_CITY, 1, 1
+ db ROUTE_39, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x9408e
Route39Farmhouse_MapHeader: ; 0x9408e
@@ -150,7 +150,7 @@ Route39Farmhouse_MapHeader: ; 0x9408e
dw Route39Farmhouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1a, MUSIC_ECRUTEAK_CITY, 1, 1
+ db ROUTE_39, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x94097
Route38_MapHeader: ; 0x94097
@@ -161,7 +161,7 @@ Route38_MapHeader: ; 0x94097
dw Route38_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $19, MUSIC_ROUTE_37, 0, 1
+ db ROUTE_38, MUSIC_ROUTE_37, 0, 1
; 0x940a0
Route39_MapHeader: ; 0x940a0
@@ -172,7 +172,7 @@ Route39_MapHeader: ; 0x940a0
dw Route39_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1a, MUSIC_ROUTE_37, 0, 1
+ db ROUTE_39, MUSIC_ROUTE_37, 0, 1
; 0x940a9
OlivineCity_MapHeader: ; 0x940a9
@@ -183,7 +183,7 @@ OlivineCity_MapHeader: ; 0x940a9
dw OlivineCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_VIOLET_CITY, 0, 1
+ db OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 1
; 0x940b2
@@ -197,7 +197,7 @@ MahoganyRedGyaradosSpeechHouse_MapHeader: ; 0x940b2
dw MahoganyRedGyaradosSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $24, MUSIC_CHERRYGROVE_CITY, 1, 1
+ db MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 1, 1
; 0x940bb
MahoganyGym_MapHeader: ; 0x940bb
@@ -208,7 +208,7 @@ MahoganyGym_MapHeader: ; 0x940bb
dw MahoganyGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $24, MUSIC_GYM, 17, 1
+ db MAHOGANY_TOWN, MUSIC_GYM, 17, 1
; 0x940c4
MahoganyPokeCenter1F_MapHeader: ; 0x940c4
@@ -219,7 +219,7 @@ MahoganyPokeCenter1F_MapHeader: ; 0x940c4
dw MahoganyPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $24, MUSIC_POKEMON_CENTER, 1, 1
+ db MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 1, 1
; 0x940cd
Route42EcruteakGate_MapHeader: ; 0x940cd
@@ -230,7 +230,7 @@ Route42EcruteakGate_MapHeader: ; 0x940cd
dw Route42EcruteakGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $22, MUSIC_LAKE_OF_RAGE, 1, 1
+ db ROUTE_42, MUSIC_LAKE_OF_RAGE, 1, 1
; 0x940d6
Route42_MapHeader: ; 0x940d6
@@ -241,7 +241,7 @@ Route42_MapHeader: ; 0x940d6
dw Route42_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $22, MUSIC_LAKE_OF_RAGE, 0, 3
+ db ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, 3
; 0x940df
Route44_MapHeader: ; 0x940df
@@ -252,7 +252,7 @@ Route44_MapHeader: ; 0x940df
dw Route44_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $27, MUSIC_LAKE_OF_RAGE, 0, 4
+ db ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, 4
; 0x940e8
MahoganyTown_MapHeader: ; 0x940e8
@@ -263,7 +263,7 @@ MahoganyTown_MapHeader: ; 0x940e8
dw MahoganyTown_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $24, MUSIC_CHERRYGROVE_CITY, 0, 1
+ db MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, 1
; 0x940f1
@@ -277,7 +277,7 @@ SproutTower1F_MapHeader: ; 0x940f1
dw SproutTower1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $7, MUSIC_SPROUT_TOWER, 1, 1
+ db SPROUT_TOWER, MUSIC_SPROUT_TOWER, 1, 1
; 0x940fa
SproutTower2F_MapHeader: ; 0x940fa
@@ -288,7 +288,7 @@ SproutTower2F_MapHeader: ; 0x940fa
dw SproutTower2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $7, MUSIC_SPROUT_TOWER, 1, 1
+ db SPROUT_TOWER, MUSIC_SPROUT_TOWER, 1, 1
; 0x94103
SproutTower3F_MapHeader: ; 0x94103
@@ -299,7 +299,7 @@ SproutTower3F_MapHeader: ; 0x94103
dw SproutTower3F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $7, MUSIC_SPROUT_TOWER, 1, 1
+ db SPROUT_TOWER, MUSIC_SPROUT_TOWER, 1, 1
; 0x9410c
TinTower1F_MapHeader: ; 0x9410c
@@ -310,7 +310,7 @@ TinTower1F_MapHeader: ; 0x9410c
dw TinTower1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $17, MUSIC_TIN_TOWER, 1, 1
+ db TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
; 0x94115
TinTower2F_MapHeader: ; 0x94115
@@ -321,7 +321,7 @@ TinTower2F_MapHeader: ; 0x94115
dw TinTower2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $17, MUSIC_TIN_TOWER, 1, 1
+ db TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
; 0x9411e
TinTower3F_MapHeader: ; 0x9411e
@@ -332,7 +332,7 @@ TinTower3F_MapHeader: ; 0x9411e
dw TinTower3F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $17, MUSIC_TIN_TOWER, 1, 1
+ db TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
; 0x94127
TinTower4F_MapHeader: ; 0x94127
@@ -343,7 +343,7 @@ TinTower4F_MapHeader: ; 0x94127
dw TinTower4F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $17, MUSIC_TIN_TOWER, 1, 1
+ db TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
; 0x94130
TinTower5F_MapHeader: ; 0x94130
@@ -354,7 +354,7 @@ TinTower5F_MapHeader: ; 0x94130
dw TinTower5F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $17, MUSIC_TIN_TOWER, 1, 1
+ db TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
; 0x94139
TinTower6F_MapHeader: ; 0x94139
@@ -365,7 +365,7 @@ TinTower6F_MapHeader: ; 0x94139
dw TinTower6F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $17, MUSIC_TIN_TOWER, 1, 1
+ db TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
; 0x94142
TinTower7F_MapHeader: ; 0x94142
@@ -376,7 +376,7 @@ TinTower7F_MapHeader: ; 0x94142
dw TinTower7F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $17, MUSIC_TIN_TOWER, 1, 1
+ db TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
; 0x9414b
TinTower8F_MapHeader: ; 0x9414b
@@ -387,7 +387,7 @@ TinTower8F_MapHeader: ; 0x9414b
dw TinTower8F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $17, MUSIC_TIN_TOWER, 1, 1
+ db TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
; 0x94154
TinTower9F_MapHeader: ; 0x94154
@@ -398,7 +398,7 @@ TinTower9F_MapHeader: ; 0x94154
dw TinTower9F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $17, MUSIC_TIN_TOWER, 1, 1
+ db TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
; 0x9415d
BurnedTower1F_MapHeader: ; 0x9415d
@@ -409,7 +409,7 @@ BurnedTower1F_MapHeader: ; 0x9415d
dw BurnedTower1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $18, MUSIC_BURNED_TOWER, 18, 1
+ db BURNED_TOWER, MUSIC_BURNED_TOWER, 18, 1
; 0x94166
BurnedTowerB1F_MapHeader: ; 0x94166
@@ -420,7 +420,7 @@ BurnedTowerB1F_MapHeader: ; 0x94166
dw BurnedTowerB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $18, MUSIC_BURNED_TOWER, 18, 1
+ db BURNED_TOWER, MUSIC_BURNED_TOWER, 18, 1
; 0x9416f
NationalPark_MapHeader: ; 0x9416f
@@ -431,7 +431,7 @@ NationalPark_MapHeader: ; 0x9416f
dw NationalPark_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $13, MUSIC_NATIONAL_PARK, 0, 1
+ db NATIONAL_PARK, MUSIC_NATIONAL_PARK, 0, 1
; 0x94178
NationalParkBugContest_MapHeader: ; 0x94178
@@ -442,7 +442,7 @@ NationalParkBugContest_MapHeader: ; 0x94178
dw NationalParkBugContest_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $13, MUSIC_BUG_CATCHING_CONTEST, 0, 1
+ db NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, 0, 1
; 0x94181
RadioTower1F_MapHeader: ; 0x94181
@@ -453,7 +453,7 @@ RadioTower1F_MapHeader: ; 0x94181
dw RadioTower1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $11, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
+ db RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
; 0x9418a
RadioTower2F_MapHeader: ; 0x9418a
@@ -464,7 +464,7 @@ RadioTower2F_MapHeader: ; 0x9418a
dw RadioTower2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $11, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
+ db RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
; 0x94193
RadioTower3F_MapHeader: ; 0x94193
@@ -475,7 +475,7 @@ RadioTower3F_MapHeader: ; 0x94193
dw RadioTower3F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $11, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
+ db RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
; 0x9419c
RadioTower4F_MapHeader: ; 0x9419c
@@ -486,7 +486,7 @@ RadioTower4F_MapHeader: ; 0x9419c
dw RadioTower4F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $11, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
+ db RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
; 0x941a5
RadioTower5F_MapHeader: ; 0x941a5
@@ -497,7 +497,7 @@ RadioTower5F_MapHeader: ; 0x941a5
dw RadioTower5F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $11, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
+ db RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
; 0x941ae
RuinsofAlphOutside_MapHeader: ; 0x941ae
@@ -508,7 +508,7 @@ RuinsofAlphOutside_MapHeader: ; 0x941ae
dw RuinsofAlphOutside_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 0, 4
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, 4
; 0x941b7
RuinsofAlphHoOhChamber_MapHeader: ; 0x941b7
@@ -519,7 +519,7 @@ RuinsofAlphHoOhChamber_MapHeader: ; 0x941b7
dw RuinsofAlphHoOhChamber_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x941c0
RuinsofAlphKabutoChamber_MapHeader: ; 0x941c0
@@ -530,7 +530,7 @@ RuinsofAlphKabutoChamber_MapHeader: ; 0x941c0
dw RuinsofAlphKabutoChamber_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x941c9
RuinsofAlphOmanyteChamber_MapHeader: ; 0x941c9
@@ -541,7 +541,7 @@ RuinsofAlphOmanyteChamber_MapHeader: ; 0x941c9
dw RuinsofAlphOmanyteChamber_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x941d2
RuinsofAlphAerodactylChamber_MapHeader: ; 0x941d2
@@ -552,7 +552,7 @@ RuinsofAlphAerodactylChamber_MapHeader: ; 0x941d2
dw RuinsofAlphAerodactylChamber_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x941db
RuinsofAlphInnerChamber_MapHeader: ; 0x941db
@@ -563,7 +563,7 @@ RuinsofAlphInnerChamber_MapHeader: ; 0x941db
dw RuinsofAlphInnerChamber_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_RUINS_OF_ALPH_INTERIOR, 17, 1
+ db RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, 17, 1
; 0x941e4
RuinsofAlphResearchCenter_MapHeader: ; 0x941e4
@@ -574,7 +574,7 @@ RuinsofAlphResearchCenter_MapHeader: ; 0x941e4
dw RuinsofAlphResearchCenter_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 1, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1
; 0x941ed
RuinsofAlphHoOhItemRoom_MapHeader: ; 0x941ed
@@ -585,7 +585,7 @@ RuinsofAlphHoOhItemRoom_MapHeader: ; 0x941ed
dw RuinsofAlphHoOhItemRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x941f6
RuinsofAlphKabutoItemRoom_MapHeader: ; 0x941f6
@@ -596,7 +596,7 @@ RuinsofAlphKabutoItemRoom_MapHeader: ; 0x941f6
dw RuinsofAlphKabutoItemRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x941ff
RuinsofAlphOmanyteItemRoom_MapHeader: ; 0x941ff
@@ -607,7 +607,7 @@ RuinsofAlphOmanyteItemRoom_MapHeader: ; 0x941ff
dw RuinsofAlphOmanyteItemRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x94208
RuinsofAlphAerodactylItemRoom_MapHeader: ; 0x94208
@@ -618,7 +618,7 @@ RuinsofAlphAerodactylItemRoom_MapHeader: ; 0x94208
dw RuinsofAlphAerodactylItemRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x94211
RuinsofAlphHoOhWordRoom_MapHeader: ; 0x94211
@@ -629,7 +629,7 @@ RuinsofAlphHoOhWordRoom_MapHeader: ; 0x94211
dw RuinsofAlphHoOhWordRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x9421a
RuinsofAlphKabutoWordRoom_MapHeader: ; 0x9421a
@@ -640,7 +640,7 @@ RuinsofAlphKabutoWordRoom_MapHeader: ; 0x9421a
dw RuinsofAlphKabutoWordRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x94223
RuinsofAlphOmanyteWordRoom_MapHeader: ; 0x94223
@@ -651,7 +651,7 @@ RuinsofAlphOmanyteWordRoom_MapHeader: ; 0x94223
dw RuinsofAlphOmanyteWordRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x9422c
RuinsofAlphAerodactylWordRoom_MapHeader: ; 0x9422c
@@ -662,7 +662,7 @@ RuinsofAlphAerodactylWordRoom_MapHeader: ; 0x9422c
dw RuinsofAlphAerodactylWordRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $9, MUSIC_UNION_CAVE, 17, 1
+ db RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
; 0x94235
UnionCave1F_MapHeader: ; 0x94235
@@ -673,7 +673,7 @@ UnionCave1F_MapHeader: ; 0x94235
dw UnionCave1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $a, MUSIC_UNION_CAVE, 18, 3
+ db UNION_CAVE, MUSIC_UNION_CAVE, 18, 3
; 0x9423e
UnionCaveB1F_MapHeader: ; 0x9423e
@@ -684,7 +684,7 @@ UnionCaveB1F_MapHeader: ; 0x9423e
dw UnionCaveB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $a, MUSIC_UNION_CAVE, 18, 3
+ db UNION_CAVE, MUSIC_UNION_CAVE, 18, 3
; 0x94247
UnionCaveB2F_MapHeader: ; 0x94247
@@ -695,7 +695,7 @@ UnionCaveB2F_MapHeader: ; 0x94247
dw UnionCaveB2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $a, MUSIC_UNION_CAVE, 18, 1
+ db UNION_CAVE, MUSIC_UNION_CAVE, 18, 1
; 0x94250
SlowpokeWellB1F_MapHeader: ; 0x94250
@@ -706,7 +706,7 @@ SlowpokeWellB1F_MapHeader: ; 0x94250
dw SlowpokeWellB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $d, MUSIC_DARK_CAVE, 18, 3
+ db SLOWPOKE_WELL, MUSIC_DARK_CAVE, 18, 3
; 0x94259
SlowpokeWellB2F_MapHeader: ; 0x94259
@@ -717,7 +717,7 @@ SlowpokeWellB2F_MapHeader: ; 0x94259
dw SlowpokeWellB2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $d, MUSIC_DARK_CAVE, 18, 3
+ db SLOWPOKE_WELL, MUSIC_DARK_CAVE, 18, 3
; 0x94262
OlivineLighthouse1F_MapHeader: ; 0x94262
@@ -728,7 +728,7 @@ OlivineLighthouse1F_MapHeader: ; 0x94262
dw OlivineLighthouse1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1c, MUSIC_LIGHTHOUSE, 1, 1
+ db LIGHTHOUSE, MUSIC_LIGHTHOUSE, 1, 1
; 0x9426b
OlivineLighthouse2F_MapHeader: ; 0x9426b
@@ -739,7 +739,7 @@ OlivineLighthouse2F_MapHeader: ; 0x9426b
dw OlivineLighthouse2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1c, MUSIC_LIGHTHOUSE, 1, 1
+ db LIGHTHOUSE, MUSIC_LIGHTHOUSE, 1, 1
; 0x94274
OlivineLighthouse3F_MapHeader: ; 0x94274
@@ -750,7 +750,7 @@ OlivineLighthouse3F_MapHeader: ; 0x94274
dw OlivineLighthouse3F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1c, MUSIC_LIGHTHOUSE, 1, 1
+ db LIGHTHOUSE, MUSIC_LIGHTHOUSE, 1, 1
; 0x9427d
OlivineLighthouse4F_MapHeader: ; 0x9427d
@@ -761,7 +761,7 @@ OlivineLighthouse4F_MapHeader: ; 0x9427d
dw OlivineLighthouse4F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1c, MUSIC_LIGHTHOUSE, 1, 1
+ db LIGHTHOUSE, MUSIC_LIGHTHOUSE, 1, 1
; 0x94286
OlivineLighthouse5F_MapHeader: ; 0x94286
@@ -772,7 +772,7 @@ OlivineLighthouse5F_MapHeader: ; 0x94286
dw OlivineLighthouse5F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1c, MUSIC_LIGHTHOUSE, 1, 1
+ db LIGHTHOUSE, MUSIC_LIGHTHOUSE, 1, 1
; 0x9428f
OlivineLighthouse6F_MapHeader: ; 0x9428f
@@ -783,7 +783,7 @@ OlivineLighthouse6F_MapHeader: ; 0x9428f
dw OlivineLighthouse6F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1c, MUSIC_VIOLET_CITY, 1, 1
+ db LIGHTHOUSE, MUSIC_VIOLET_CITY, 1, 1
; 0x94298
MahoganyMart1F_MapHeader: ; 0x94298
@@ -794,7 +794,7 @@ MahoganyMart1F_MapHeader: ; 0x94298
dw MahoganyMart1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $24, MUSIC_MAHOGANY_MART, 17, 1
+ db MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, 17, 1
; 0x942a1
TeamRocketBaseB1F_MapHeader: ; 0x942a1
@@ -805,7 +805,7 @@ TeamRocketBaseB1F_MapHeader: ; 0x942a1
dw TeamRocketBaseB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $24, MUSIC_ROCKET_HIDEOUT, 17, 1
+ db MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 17, 1
; 0x942aa
TeamRocketBaseB2F_MapHeader: ; 0x942aa
@@ -816,7 +816,7 @@ TeamRocketBaseB2F_MapHeader: ; 0x942aa
dw TeamRocketBaseB2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $24, MUSIC_ROCKET_HIDEOUT, 17, 1
+ db MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 17, 1
; 0x942b3
TeamRocketBaseB3F_MapHeader: ; 0x942b3
@@ -827,7 +827,7 @@ TeamRocketBaseB3F_MapHeader: ; 0x942b3
dw TeamRocketBaseB3F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $24, MUSIC_ROCKET_HIDEOUT, 17, 1
+ db MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 17, 1
; 0x942bc
IlexForest_MapHeader: ; 0x942bc
@@ -838,7 +838,7 @@ IlexForest_MapHeader: ; 0x942bc
dw IlexForest_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $e, MUSIC_UNION_CAVE, 2, 4
+ db ILEX_FOREST, MUSIC_UNION_CAVE, 2, 4
; 0x942c5
WarehouseEntrance_MapHeader: ; 0x942c5
@@ -849,7 +849,7 @@ WarehouseEntrance_MapHeader: ; 0x942c5
dw WarehouseEntrance_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_UNION_CAVE, 17, 1
+ db GOLDENROD_CITY, MUSIC_UNION_CAVE, 17, 1
; 0x942ce
UndergroundPathSwitchRoomEntrances_MapHeader: ; 0x942ce
@@ -860,7 +860,7 @@ UndergroundPathSwitchRoomEntrances_MapHeader: ; 0x942ce
dw UndergroundPathSwitchRoomEntrances_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_UNION_CAVE, 17, 1
+ db GOLDENROD_CITY, MUSIC_UNION_CAVE, 17, 1
; 0x942d7
GoldenrodDeptStoreB1F_MapHeader: ; 0x942d7
@@ -871,7 +871,7 @@ GoldenrodDeptStoreB1F_MapHeader: ; 0x942d7
dw GoldenrodDeptStoreB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 17, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 17, 1
; 0x942e0
UndergroundWarehouse_MapHeader: ; 0x942e0
@@ -882,7 +882,7 @@ UndergroundWarehouse_MapHeader: ; 0x942e0
dw UndergroundWarehouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_UNION_CAVE, 17, 1
+ db GOLDENROD_CITY, MUSIC_UNION_CAVE, 17, 1
; 0x942e9
MountMortar1FOutside_MapHeader: ; 0x942e9
@@ -893,7 +893,7 @@ MountMortar1FOutside_MapHeader: ; 0x942e9
dw MountMortar1FOutside_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $23, MUSIC_UNION_CAVE, 18, 3
+ db MT_MORTAR, MUSIC_UNION_CAVE, 18, 3
; 0x942f2
MountMortar1FInside_MapHeader: ; 0x942f2
@@ -904,7 +904,7 @@ MountMortar1FInside_MapHeader: ; 0x942f2
dw MountMortar1FInside_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $23, MUSIC_UNION_CAVE, 18, 3
+ db MT_MORTAR, MUSIC_UNION_CAVE, 18, 3
; 0x942fb
MountMortar2FInside_MapHeader: ; 0x942fb
@@ -915,7 +915,7 @@ MountMortar2FInside_MapHeader: ; 0x942fb
dw MountMortar2FInside_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $23, MUSIC_UNION_CAVE, 18, 3
+ db MT_MORTAR, MUSIC_UNION_CAVE, 18, 3
; 0x94304
MountMortarB1F_MapHeader: ; 0x94304
@@ -926,7 +926,7 @@ MountMortarB1F_MapHeader: ; 0x94304
dw MountMortarB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $23, MUSIC_UNION_CAVE, 18, 3
+ db MT_MORTAR, MUSIC_UNION_CAVE, 18, 3
; 0x9430d
IcePath1F_MapHeader: ; 0x9430d
@@ -937,7 +937,7 @@ IcePath1F_MapHeader: ; 0x9430d
dw IcePath1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $28, MUSIC_DARK_CAVE, 18, 5
+ db ICE_PATH, MUSIC_DARK_CAVE, 18, 5
; 0x94316
IcePathB1F_MapHeader: ; 0x94316
@@ -948,7 +948,7 @@ IcePathB1F_MapHeader: ; 0x94316
dw IcePathB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $28, MUSIC_DARK_CAVE, 18, 5
+ db ICE_PATH, MUSIC_DARK_CAVE, 18, 5
; 0x9431f
IcePathB2FMahoganySide_MapHeader: ; 0x9431f
@@ -959,7 +959,7 @@ IcePathB2FMahoganySide_MapHeader: ; 0x9431f
dw IcePathB2FMahoganySide_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $28, MUSIC_DARK_CAVE, 18, 5
+ db ICE_PATH, MUSIC_DARK_CAVE, 18, 5
; 0x94328
IcePathB2FBlackthornSide_MapHeader: ; 0x94328
@@ -970,7 +970,7 @@ IcePathB2FBlackthornSide_MapHeader: ; 0x94328
dw IcePathB2FBlackthornSide_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $28, MUSIC_DARK_CAVE, 18, 5
+ db ICE_PATH, MUSIC_DARK_CAVE, 18, 5
; 0x94331
IcePathB3F_MapHeader: ; 0x94331
@@ -981,7 +981,7 @@ IcePathB3F_MapHeader: ; 0x94331
dw IcePathB3F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $28, MUSIC_DARK_CAVE, 18, 5
+ db ICE_PATH, MUSIC_DARK_CAVE, 18, 5
; 0x9433a
WhirlIslandNW_MapHeader: ; 0x9433a
@@ -992,7 +992,7 @@ WhirlIslandNW_MapHeader: ; 0x9433a
dw WhirlIslandNW_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1f, MUSIC_UNION_CAVE, 20, 10
+ db WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
; 0x94343
WhirlIslandNE_MapHeader: ; 0x94343
@@ -1003,7 +1003,7 @@ WhirlIslandNE_MapHeader: ; 0x94343
dw WhirlIslandNE_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1f, MUSIC_UNION_CAVE, 20, 10
+ db WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
; 0x9434c
WhirlIslandSW_MapHeader: ; 0x9434c
@@ -1014,7 +1014,7 @@ WhirlIslandSW_MapHeader: ; 0x9434c
dw WhirlIslandSW_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1f, MUSIC_UNION_CAVE, 20, 10
+ db WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
; 0x94355
WhirlIslandCave_MapHeader: ; 0x94355
@@ -1025,7 +1025,7 @@ WhirlIslandCave_MapHeader: ; 0x94355
dw WhirlIslandCave_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1f, MUSIC_UNION_CAVE, 20, 10
+ db WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
; 0x9435e
WhirlIslandSE_MapHeader: ; 0x9435e
@@ -1036,7 +1036,7 @@ WhirlIslandSE_MapHeader: ; 0x9435e
dw WhirlIslandSE_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1f, MUSIC_UNION_CAVE, 20, 10
+ db WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
; 0x94367
WhirlIslandB1F_MapHeader: ; 0x94367
@@ -1047,7 +1047,7 @@ WhirlIslandB1F_MapHeader: ; 0x94367
dw WhirlIslandB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1f, MUSIC_UNION_CAVE, 20, 10
+ db WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
; 0x94370
WhirlIslandB2F_MapHeader: ; 0x94370
@@ -1058,7 +1058,7 @@ WhirlIslandB2F_MapHeader: ; 0x94370
dw WhirlIslandB2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1f, MUSIC_UNION_CAVE, 20, 10
+ db WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
; 0x94379
WhirlIslandLugiaChamber_MapHeader: ; 0x94379
@@ -1069,7 +1069,7 @@ WhirlIslandLugiaChamber_MapHeader: ; 0x94379
dw WhirlIslandLugiaChamber_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1f, MUSIC_UNION_CAVE, 20, 10
+ db WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
; 0x94382
SilverCaveRoom1_MapHeader: ; 0x94382
@@ -1080,7 +1080,7 @@ SilverCaveRoom1_MapHeader: ; 0x94382
dw SilverCaveRoom1_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2e, MUSIC_LIGHTHOUSE, 20, 3
+ db SILVER_CAVE, MUSIC_LIGHTHOUSE, 20, 3
; 0x9438b
SilverCaveRoom2_MapHeader: ; 0x9438b
@@ -1091,7 +1091,7 @@ SilverCaveRoom2_MapHeader: ; 0x9438b
dw SilverCaveRoom2_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2e, MUSIC_LIGHTHOUSE, 18, 3
+ db SILVER_CAVE, MUSIC_LIGHTHOUSE, 18, 3
; 0x94394
SilverCaveRoom3_MapHeader: ; 0x94394
@@ -1102,7 +1102,7 @@ SilverCaveRoom3_MapHeader: ; 0x94394
dw SilverCaveRoom3_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2e, MUSIC_LIGHTHOUSE, 17, 3
+ db SILVER_CAVE, MUSIC_LIGHTHOUSE, 17, 3
; 0x9439d
SilverCaveItemRooms_MapHeader: ; 0x9439d
@@ -1113,7 +1113,7 @@ SilverCaveItemRooms_MapHeader: ; 0x9439d
dw SilverCaveItemRooms_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2e, MUSIC_LIGHTHOUSE, 18, 3
+ db SILVER_CAVE, MUSIC_LIGHTHOUSE, 18, 3
; 0x943a6
DarkCaveVioletEntrance_MapHeader: ; 0x943a6
@@ -1124,7 +1124,7 @@ DarkCaveVioletEntrance_MapHeader: ; 0x943a6
dw DarkCaveVioletEntrance_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2c, MUSIC_DARK_CAVE, 20, 3
+ db DARK_CAVE, MUSIC_DARK_CAVE, 20, 3
; 0x943af
DarkCaveBlackthornEntrance_MapHeader: ; 0x943af
@@ -1135,7 +1135,7 @@ DarkCaveBlackthornEntrance_MapHeader: ; 0x943af
dw DarkCaveBlackthornEntrance_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2c, MUSIC_DARK_CAVE, 20, 3
+ db DARK_CAVE, MUSIC_DARK_CAVE, 20, 3
; 0x943b8
DragonsDen1F_MapHeader: ; 0x943b8
@@ -1146,7 +1146,7 @@ DragonsDen1F_MapHeader: ; 0x943b8
dw DragonsDen1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2a, MUSIC_DRAGONS_DEN, 18, 5
+ db DRAGONS_DEN, MUSIC_DRAGONS_DEN, 18, 5
; 0x943c1
DragonsDenB1F_MapHeader: ; 0x943c1
@@ -1157,7 +1157,7 @@ DragonsDenB1F_MapHeader: ; 0x943c1
dw DragonsDenB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2a, MUSIC_DRAGONS_DEN, 18, 5
+ db DRAGONS_DEN, MUSIC_DRAGONS_DEN, 18, 5
; 0x943ca
DragonShrine_MapHeader: ; 0x943ca
@@ -1168,7 +1168,7 @@ DragonShrine_MapHeader: ; 0x943ca
dw DragonShrine_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2a, MUSIC_DRAGONS_DEN, 18, 1
+ db DRAGONS_DEN, MUSIC_DRAGONS_DEN, 18, 1
; 0x943d3
TohjoFalls_MapHeader: ; 0x943d3
@@ -1179,7 +1179,7 @@ TohjoFalls_MapHeader: ; 0x943d3
dw TohjoFalls_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5d, MUSIC_UNION_CAVE, 18, 3
+ db TOHJO_FALLS, MUSIC_UNION_CAVE, 18, 3
; 0x943dc
DiglettsCave_MapHeader: ; 0x943dc
@@ -1190,7 +1190,7 @@ DiglettsCave_MapHeader: ; 0x943dc
dw DiglettsCave_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3e, MUSIC_MT_MOON, 18, 1
+ db DIGLETTS_CAVE, MUSIC_MT_MOON, 18, 1
; 0x943e5
MountMoon_MapHeader: ; 0x943e5
@@ -1201,7 +1201,7 @@ MountMoon_MapHeader: ; 0x943e5
dw MountMoon_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $35, MUSIC_MT_MOON, 18, 1
+ db MT_MOON, MUSIC_MT_MOON, 18, 1
; 0x943ee
Underground_MapHeader: ; 0x943ee
@@ -1212,7 +1212,7 @@ Underground_MapHeader: ; 0x943ee
dw Underground_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3b, MUSIC_MT_MOON, 2, 1
+ db UNDERGROUND, MUSIC_MT_MOON, 2, 1
; 0x943f7
RockTunnel1F_MapHeader: ; 0x943f7
@@ -1223,7 +1223,7 @@ RockTunnel1F_MapHeader: ; 0x943f7
dw RockTunnel1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $42, MUSIC_MT_MOON, 20, 1
+ db ROCK_TUNNEL, MUSIC_MT_MOON, 20, 1
; 0x94400
RockTunnelB1F_MapHeader: ; 0x94400
@@ -1234,7 +1234,7 @@ RockTunnelB1F_MapHeader: ; 0x94400
dw RockTunnelB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $42, MUSIC_MT_MOON, 20, 1
+ db ROCK_TUNNEL, MUSIC_MT_MOON, 20, 1
; 0x94409
SafariZoneFuchsiaGateBeta_MapHeader: ; 0x94409
@@ -1245,7 +1245,7 @@ SafariZoneFuchsiaGateBeta_MapHeader: ; 0x94409
dw SafariZoneFuchsiaGateBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $51, MUSIC_VIRIDIAN_CITY, 1, 1
+ db FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94412
SafariZoneBeta_MapHeader: ; 0x94412
@@ -1256,7 +1256,7 @@ SafariZoneBeta_MapHeader: ; 0x94412
dw SafariZoneBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $51, MUSIC_EVOLUTION, 0, 1
+ db FUCHSIA_CITY, MUSIC_EVOLUTION, 0, 1
; 0x9441b
VictoryRoad_MapHeader: ; 0x9441b
@@ -1267,7 +1267,7 @@ VictoryRoad_MapHeader: ; 0x9441b
dw VictoryRoad_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $58, MUSIC_VICTORY_ROAD, 18, 1
+ db VICTORY_ROAD, MUSIC_VICTORY_ROAD, 18, 1
; 0x94424
@@ -1281,7 +1281,7 @@ EcruteakHouse_MapHeader: ; 0x94424
dw EcruteakHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $16, MUSIC_ECRUTEAK_CITY, 1, 1
+ db ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x9442d
WiseTriosRoom_MapHeader: ; 0x9442d
@@ -1292,7 +1292,7 @@ WiseTriosRoom_MapHeader: ; 0x9442d
dw WiseTriosRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $16, MUSIC_ECRUTEAK_CITY, 17, 1
+ db ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 17, 1
; 0x94436
EcruteakPokeCenter1F_MapHeader: ; 0x94436
@@ -1303,7 +1303,7 @@ EcruteakPokeCenter1F_MapHeader: ; 0x94436
dw EcruteakPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $16, MUSIC_POKEMON_CENTER, 1, 1
+ db ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x9443f
EcruteakLugiaSpeechHouse_MapHeader: ; 0x9443f
@@ -1314,7 +1314,7 @@ EcruteakLugiaSpeechHouse_MapHeader: ; 0x9443f
dw EcruteakLugiaSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $16, MUSIC_ECRUTEAK_CITY, 1, 1
+ db ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x94448
DanceTheatre_MapHeader: ; 0x94448
@@ -1325,7 +1325,7 @@ DanceTheatre_MapHeader: ; 0x94448
dw DanceTheatre_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $16, MUSIC_DANCING_HALL, 1, 1
+ db ECRUTEAK_CITY, MUSIC_DANCING_HALL, 1, 1
; 0x94451
EcruteakMart_MapHeader: ; 0x94451
@@ -1336,7 +1336,7 @@ EcruteakMart_MapHeader: ; 0x94451
dw EcruteakMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $16, MUSIC_ECRUTEAK_CITY, 1, 1
+ db ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x9445a
EcruteakGym_MapHeader: ; 0x9445a
@@ -1347,7 +1347,7 @@ EcruteakGym_MapHeader: ; 0x9445a
dw EcruteakGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $16, MUSIC_GYM, 17, 1
+ db ECRUTEAK_CITY, MUSIC_GYM, 17, 1
; 0x94463
EcruteakItemfinderHouse_MapHeader: ; 0x94463
@@ -1358,7 +1358,7 @@ EcruteakItemfinderHouse_MapHeader: ; 0x94463
dw EcruteakItemfinderHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $16, MUSIC_ECRUTEAK_CITY, 1, 1
+ db ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x9446c
EcruteakCity_MapHeader: ; 0x9446c
@@ -1369,7 +1369,7 @@ EcruteakCity_MapHeader: ; 0x9446c
dw EcruteakCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $16, MUSIC_ECRUTEAK_CITY, 0, 4
+ db ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, 4
; 0x94475
@@ -1383,7 +1383,7 @@ BlackthornGym1F_MapHeader: ; 0x94475
dw BlackthornGym1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $29, MUSIC_GYM, 17, 1
+ db BLACKTHORN_CITY, MUSIC_GYM, 17, 1
; 0x9447e
BlackthornGym2F_MapHeader: ; 0x9447e
@@ -1394,7 +1394,7 @@ BlackthornGym2F_MapHeader: ; 0x9447e
dw BlackthornGym2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $29, MUSIC_GYM, 17, 1
+ db BLACKTHORN_CITY, MUSIC_GYM, 17, 1
; 0x94487
BlackthornDragonSpeechHouse_MapHeader: ; 0x94487
@@ -1405,7 +1405,7 @@ BlackthornDragonSpeechHouse_MapHeader: ; 0x94487
dw BlackthornDragonSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $29, MUSIC_AZALEA_TOWN, 1, 1
+ db BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 1, 1
; 0x94490
BlackthornDodrioTradeHouse_MapHeader: ; 0x94490
@@ -1416,7 +1416,7 @@ BlackthornDodrioTradeHouse_MapHeader: ; 0x94490
dw BlackthornDodrioTradeHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $29, MUSIC_AZALEA_TOWN, 1, 1
+ db BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 1, 1
; 0x94499
BlackthornMart_MapHeader: ; 0x94499
@@ -1427,7 +1427,7 @@ BlackthornMart_MapHeader: ; 0x94499
dw BlackthornMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $29, MUSIC_AZALEA_TOWN, 1, 1
+ db BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 1, 1
; 0x944a2
BlackthornPokeCenter1F_MapHeader: ; 0x944a2
@@ -1438,7 +1438,7 @@ BlackthornPokeCenter1F_MapHeader: ; 0x944a2
dw BlackthornPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $29, MUSIC_POKEMON_CENTER, 1, 1
+ db BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x944ab
MoveDeletersHouse_MapHeader: ; 0x944ab
@@ -1449,7 +1449,7 @@ MoveDeletersHouse_MapHeader: ; 0x944ab
dw MoveDeletersHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $29, MUSIC_AZALEA_TOWN, 1, 1
+ db BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 1, 1
; 0x944b4
Route45_MapHeader: ; 0x944b4
@@ -1460,7 +1460,7 @@ Route45_MapHeader: ; 0x944b4
dw Route45_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2b, MUSIC_ROUTE_36, 0, 9
+ db ROUTE_45, MUSIC_ROUTE_36, 0, 9
; 0x944bd
Route46_MapHeader: ; 0x944bd
@@ -1471,7 +1471,7 @@ Route46_MapHeader: ; 0x944bd
dw Route46_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2d, MUSIC_ROUTE_36, 0, 1
+ db ROUTE_46, MUSIC_ROUTE_36, 0, 1
; 0x944c6
BlackthornCity_MapHeader: ; 0x944c6
@@ -1482,7 +1482,7 @@ BlackthornCity_MapHeader: ; 0x944c6
dw BlackthornCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $29, MUSIC_AZALEA_TOWN, 0, 4
+ db BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, 4
; 0x944cf
@@ -1496,7 +1496,7 @@ CinnabarPokeCenter1F_MapHeader: ; 0x944cf
dw CinnabarPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $55, MUSIC_POKEMON_CENTER, 1, 1
+ db CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 1, 1
; 0x944d8
CinnabarPokeCenter2FBeta_MapHeader: ; 0x944d8
@@ -1507,7 +1507,7 @@ CinnabarPokeCenter2FBeta_MapHeader: ; 0x944d8
dw CinnabarPokeCenter2FBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $55, MUSIC_POKEMON_CENTER, 1, 1
+ db CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 1, 1
; 0x944e1
Route19FuchsiaGate_MapHeader: ; 0x944e1
@@ -1518,7 +1518,7 @@ Route19FuchsiaGate_MapHeader: ; 0x944e1
dw Route19FuchsiaGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $52, MUSIC_ROUTE_3, 1, 1
+ db ROUTE_19, MUSIC_ROUTE_3, 1, 1
; 0x944ea
SeafoamGym_MapHeader: ; 0x944ea
@@ -1529,7 +1529,7 @@ SeafoamGym_MapHeader: ; 0x944ea
dw SeafoamGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $54, MUSIC_GYM, 17, 1
+ db SEAFOAM_ISLANDS, MUSIC_GYM, 17, 1
; 0x944f3
Route19_MapHeader: ; 0x944f3
@@ -1540,7 +1540,7 @@ Route19_MapHeader: ; 0x944f3
dw Route19_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $52, MUSIC_ROUTE_3, 0, 1
+ db ROUTE_19, MUSIC_ROUTE_3, 0, 1
; 0x944fc
Route20_MapHeader: ; 0x944fc
@@ -1551,7 +1551,7 @@ Route20_MapHeader: ; 0x944fc
dw Route20_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $53, MUSIC_ROUTE_3, 0, 2
+ db ROUTE_20, MUSIC_ROUTE_3, 0, 2
; 0x94505
Route21_MapHeader: ; 0x94505
@@ -1562,7 +1562,7 @@ Route21_MapHeader: ; 0x94505
dw Route21_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $56, MUSIC_ROUTE_3, 0, 2
+ db ROUTE_21, MUSIC_ROUTE_3, 0, 2
; 0x9450e
CinnabarIsland_MapHeader: ; 0x9450e
@@ -1573,7 +1573,7 @@ CinnabarIsland_MapHeader: ; 0x9450e
dw CinnabarIsland_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $55, MUSIC_VIRIDIAN_CITY, 0, 2
+ db CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, 2
; 0x94517
@@ -1587,7 +1587,7 @@ CeruleanGymBadgeSpeechHouse_MapHeader: ; 0x94517
dw CeruleanGymBadgeSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $37, MUSIC_VIRIDIAN_CITY, 1, 1
+ db CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94520
CeruleanPoliceStation_MapHeader: ; 0x94520
@@ -1598,7 +1598,7 @@ CeruleanPoliceStation_MapHeader: ; 0x94520
dw CeruleanPoliceStation_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $37, MUSIC_VIRIDIAN_CITY, 1, 1
+ db CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94529
CeruleanTradeSpeechHouse_MapHeader: ; 0x94529
@@ -1609,7 +1609,7 @@ CeruleanTradeSpeechHouse_MapHeader: ; 0x94529
dw CeruleanTradeSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $37, MUSIC_VIRIDIAN_CITY, 1, 1
+ db CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94532
CeruleanPokeCenter1F_MapHeader: ; 0x94532
@@ -1620,7 +1620,7 @@ CeruleanPokeCenter1F_MapHeader: ; 0x94532
dw CeruleanPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $37, MUSIC_POKEMON_CENTER, 1, 1
+ db CERULEAN_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x9453b
CeruleanPokeCenter2FBeta_MapHeader: ; 0x9453b
@@ -1631,7 +1631,7 @@ CeruleanPokeCenter2FBeta_MapHeader: ; 0x9453b
dw CeruleanPokeCenter2FBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $37, MUSIC_POKEMON_CENTER, 1, 1
+ db CERULEAN_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x94544
CeruleanGym_MapHeader: ; 0x94544
@@ -1642,7 +1642,7 @@ CeruleanGym_MapHeader: ; 0x94544
dw CeruleanGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $37, MUSIC_GYM, 17, 0
+ db CERULEAN_CITY, MUSIC_GYM, 17, 0
; 0x9454d
CeruleanMart_MapHeader: ; 0x9454d
@@ -1653,7 +1653,7 @@ CeruleanMart_MapHeader: ; 0x9454d
dw CeruleanMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $37, MUSIC_VIRIDIAN_CITY, 1, 1
+ db CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94556
Route10PokeCenter1F_MapHeader: ; 0x94556
@@ -1664,7 +1664,7 @@ Route10PokeCenter1F_MapHeader: ; 0x94556
dw Route10PokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $43, MUSIC_POKEMON_CENTER, 1, 1
+ db ROUTE_10, MUSIC_POKEMON_CENTER, 1, 1
; 0x9455f
Route10PokeCenter2FBeta_MapHeader: ; 0x9455f
@@ -1675,7 +1675,7 @@ Route10PokeCenter2FBeta_MapHeader: ; 0x9455f
dw Route10PokeCenter2FBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $43, MUSIC_POKEMON_CENTER, 1, 1
+ db ROUTE_10, MUSIC_POKEMON_CENTER, 1, 1
; 0x94568
PowerPlant_MapHeader: ; 0x94568
@@ -1686,7 +1686,7 @@ PowerPlant_MapHeader: ; 0x94568
dw PowerPlant_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $44, MUSIC_VIRIDIAN_CITY, 1, 1
+ db POWER_PLANT, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94571
BillsHouse_MapHeader: ; 0x94571
@@ -1697,7 +1697,7 @@ BillsHouse_MapHeader: ; 0x94571
dw BillsHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $39, MUSIC_VIRIDIAN_CITY, 1, 1
+ db ROUTE_25, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x9457a
Route4_MapHeader: ; 0x9457a
@@ -1708,7 +1708,7 @@ Route4_MapHeader: ; 0x9457a
dw Route4_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $36, MUSIC_ROUTE_3, 0, 0
+ db ROUTE_4, MUSIC_ROUTE_3, 0, 0
; 0x94583
Route9_MapHeader: ; 0x94583
@@ -1719,7 +1719,7 @@ Route9_MapHeader: ; 0x94583
dw Route9_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $41, MUSIC_ROUTE_3, 0, 3
+ db ROUTE_9, MUSIC_ROUTE_3, 0, 3
; 0x9458c
Route10North_MapHeader: ; 0x9458c
@@ -1730,7 +1730,7 @@ Route10North_MapHeader: ; 0x9458c
dw Route10North_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $43, MUSIC_ROUTE_3, 0, 3
+ db ROUTE_10, MUSIC_ROUTE_3, 0, 3
; 0x94595
Route24_MapHeader: ; 0x94595
@@ -1741,7 +1741,7 @@ Route24_MapHeader: ; 0x94595
dw Route24_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $38, MUSIC_ROUTE_3, 0, 3
+ db ROUTE_24, MUSIC_ROUTE_3, 0, 3
; 0x9459e
Route25_MapHeader: ; 0x9459e
@@ -1752,7 +1752,7 @@ Route25_MapHeader: ; 0x9459e
dw Route25_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $39, MUSIC_ROUTE_3, 0, 3
+ db ROUTE_25, MUSIC_ROUTE_3, 0, 3
; 0x945a7
CeruleanCity_MapHeader: ; 0x945a7
@@ -1763,7 +1763,7 @@ CeruleanCity_MapHeader: ; 0x945a7
dw CeruleanCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $37, MUSIC_VIRIDIAN_CITY, 0, 0
+ db CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 0
; 0x945b0
@@ -1777,7 +1777,7 @@ AzaleaPokeCenter1F_MapHeader: ; 0x945b0
dw AzaleaPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $c, MUSIC_POKEMON_CENTER, 1, 1
+ db AZALEA_TOWN, MUSIC_POKEMON_CENTER, 1, 1
; 0x945b9
CharcoalKiln_MapHeader: ; 0x945b9
@@ -1788,7 +1788,7 @@ CharcoalKiln_MapHeader: ; 0x945b9
dw CharcoalKiln_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $c, MUSIC_AZALEA_TOWN, 1, 1
+ db AZALEA_TOWN, MUSIC_AZALEA_TOWN, 1, 1
; 0x945c2
AzaleaMart_MapHeader: ; 0x945c2
@@ -1799,7 +1799,7 @@ AzaleaMart_MapHeader: ; 0x945c2
dw AzaleaMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $c, MUSIC_AZALEA_TOWN, 1, 1
+ db AZALEA_TOWN, MUSIC_AZALEA_TOWN, 1, 1
; 0x945cb
KurtsHouse_MapHeader: ; 0x945cb
@@ -1810,7 +1810,7 @@ KurtsHouse_MapHeader: ; 0x945cb
dw KurtsHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $c, MUSIC_AZALEA_TOWN, 1, 1
+ db AZALEA_TOWN, MUSIC_AZALEA_TOWN, 1, 1
; 0x945d4
AzaleaGym_MapHeader: ; 0x945d4
@@ -1821,7 +1821,7 @@ AzaleaGym_MapHeader: ; 0x945d4
dw AzaleaGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $c, MUSIC_GYM, 17, 1
+ db AZALEA_TOWN, MUSIC_GYM, 17, 1
; 0x945dd
Route33_MapHeader: ; 0x945dd
@@ -1832,7 +1832,7 @@ Route33_MapHeader: ; 0x945dd
dw Route33_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $b, MUSIC_ROUTE_30, 0, 1
+ db ROUTE_33, MUSIC_ROUTE_30, 0, 1
; 0x945e6
AzaleaTown_MapHeader: ; 0x945e6
@@ -1843,7 +1843,7 @@ AzaleaTown_MapHeader: ; 0x945e6
dw AzaleaTown_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $c, MUSIC_AZALEA_TOWN, 0, 1
+ db AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, 1
; 0x945ef
@@ -1857,7 +1857,7 @@ LakeofRageHiddenPowerHouse_MapHeader: ; 0x945ef
dw LakeofRageHiddenPowerHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $26, MUSIC_LAKE_OF_RAGE, 1, 1
+ db LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 1, 1
; 0x945f8
LakeofRageMagikarpHouse_MapHeader: ; 0x945f8
@@ -1868,7 +1868,7 @@ LakeofRageMagikarpHouse_MapHeader: ; 0x945f8
dw LakeofRageMagikarpHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $26, MUSIC_LAKE_OF_RAGE, 1, 1
+ db LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 1, 1
; 0x94601
Route43MahoganyGate_MapHeader: ; 0x94601
@@ -1879,7 +1879,7 @@ Route43MahoganyGate_MapHeader: ; 0x94601
dw Route43MahoganyGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $25, MUSIC_LAKE_OF_RAGE, 1, 1
+ db ROUTE_43, MUSIC_LAKE_OF_RAGE, 1, 1
; 0x9460a
Route43Gate_MapHeader: ; 0x9460a
@@ -1890,7 +1890,7 @@ Route43Gate_MapHeader: ; 0x9460a
dw Route43Gate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $25, MUSIC_LAKE_OF_RAGE, 1, 1
+ db ROUTE_43, MUSIC_LAKE_OF_RAGE, 1, 1
; 0x94613
Route43_MapHeader: ; 0x94613
@@ -1901,7 +1901,7 @@ Route43_MapHeader: ; 0x94613
dw Route43_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $25, MUSIC_LAKE_OF_RAGE, 0, 4
+ db ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, 4
; 0x9461c
LakeofRage_MapHeader: ; 0x9461c
@@ -1912,7 +1912,7 @@ LakeofRage_MapHeader: ; 0x9461c
dw LakeofRage_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $26, MUSIC_LAKE_OF_RAGE, 0, 8
+ db LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, 8
; 0x94625
@@ -1926,7 +1926,7 @@ Route32_MapHeader: ; 0x94625
dw Route32_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $8, MUSIC_ROUTE_30, 0, 11
+ db ROUTE_32, MUSIC_ROUTE_30, 0, 11
; 0x9462e
Route35_MapHeader: ; 0x9462e
@@ -1937,7 +1937,7 @@ Route35_MapHeader: ; 0x9462e
dw Route35_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $12, MUSIC_ROUTE_36, 0, 4
+ db ROUTE_35, MUSIC_ROUTE_36, 0, 4
; 0x94637
Route36_MapHeader: ; 0x94637
@@ -1948,7 +1948,7 @@ Route36_MapHeader: ; 0x94637
dw Route36_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $14, MUSIC_ROUTE_36, 0, 1
+ db ROUTE_36, MUSIC_ROUTE_36, 0, 1
; 0x94640
Route37_MapHeader: ; 0x94640
@@ -1959,7 +1959,7 @@ Route37_MapHeader: ; 0x94640
dw Route37_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $15, MUSIC_ROUTE_36, 0, 1
+ db ROUTE_37, MUSIC_ROUTE_36, 0, 1
; 0x94649
VioletCity_MapHeader: ; 0x94649
@@ -1970,7 +1970,7 @@ VioletCity_MapHeader: ; 0x94649
dw VioletCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $6, MUSIC_VIOLET_CITY, 0, 4
+ db VIOLET_CITY, MUSIC_VIOLET_CITY, 0, 4
; 0x94652
VioletMart_MapHeader: ; 0x94652
@@ -1981,7 +1981,7 @@ VioletMart_MapHeader: ; 0x94652
dw VioletMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $6, MUSIC_VIOLET_CITY, 1, 1
+ db VIOLET_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x9465b
VioletGym_MapHeader: ; 0x9465b
@@ -1992,7 +1992,7 @@ VioletGym_MapHeader: ; 0x9465b
dw VioletGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $6, MUSIC_GYM, 17, 1
+ db VIOLET_CITY, MUSIC_GYM, 17, 1
; 0x94664
EarlsPokemonAcademy_MapHeader: ; 0x94664
@@ -2003,7 +2003,7 @@ EarlsPokemonAcademy_MapHeader: ; 0x94664
dw EarlsPokemonAcademy_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $6, MUSIC_VIOLET_CITY, 1, 1
+ db VIOLET_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x9466d
VioletNicknameSpeechHouse_MapHeader: ; 0x9466d
@@ -2014,7 +2014,7 @@ VioletNicknameSpeechHouse_MapHeader: ; 0x9466d
dw VioletNicknameSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $6, MUSIC_VIOLET_CITY, 1, 1
+ db VIOLET_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x94676
VioletPokeCenter1F_MapHeader: ; 0x94676
@@ -2025,7 +2025,7 @@ VioletPokeCenter1F_MapHeader: ; 0x94676
dw VioletPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $6, MUSIC_POKEMON_CENTER, 1, 1
+ db VIOLET_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x9467f
VioletOnixTradeHouse_MapHeader: ; 0x9467f
@@ -2036,7 +2036,7 @@ VioletOnixTradeHouse_MapHeader: ; 0x9467f
dw VioletOnixTradeHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $6, MUSIC_VIOLET_CITY, 1, 1
+ db VIOLET_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x94688
Route32RuinsofAlphGate_MapHeader: ; 0x94688
@@ -2047,7 +2047,7 @@ Route32RuinsofAlphGate_MapHeader: ; 0x94688
dw Route32RuinsofAlphGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $8, MUSIC_ROUTE_30, 1, 1
+ db ROUTE_32, MUSIC_ROUTE_30, 1, 1
; 0x94691
Route32PokeCenter1F_MapHeader: ; 0x94691
@@ -2058,7 +2058,7 @@ Route32PokeCenter1F_MapHeader: ; 0x94691
dw Route32PokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $8, MUSIC_POKEMON_CENTER, 1, 1
+ db ROUTE_32, MUSIC_POKEMON_CENTER, 1, 1
; 0x9469a
Route35Goldenrodgate_MapHeader: ; 0x9469a
@@ -2069,7 +2069,7 @@ Route35Goldenrodgate_MapHeader: ; 0x9469a
dw Route35Goldenrodgate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $12, MUSIC_ROUTE_36, 1, 1
+ db ROUTE_35, MUSIC_ROUTE_36, 1, 1
; 0x946a3
Route35NationalParkgate_MapHeader: ; 0x946a3
@@ -2080,7 +2080,7 @@ Route35NationalParkgate_MapHeader: ; 0x946a3
dw Route35NationalParkgate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $12, MUSIC_GOLDENROD_CITY, 1, 1
+ db ROUTE_35, MUSIC_GOLDENROD_CITY, 1, 1
; 0x946ac
Route36RuinsofAlphgate_MapHeader: ; 0x946ac
@@ -2091,7 +2091,7 @@ Route36RuinsofAlphgate_MapHeader: ; 0x946ac
dw Route36RuinsofAlphgate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $14, MUSIC_ROUTE_36, 1, 1
+ db ROUTE_36, MUSIC_ROUTE_36, 1, 1
; 0x946b5
Route36NationalParkgate_MapHeader: ; 0x946b5
@@ -2102,7 +2102,7 @@ Route36NationalParkgate_MapHeader: ; 0x946b5
dw Route36NationalParkgate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $14, MUSIC_GOLDENROD_CITY, 1, 1
+ db ROUTE_36, MUSIC_GOLDENROD_CITY, 1, 1
; 0x946be
@@ -2116,7 +2116,7 @@ Route34_MapHeader: ; 0x946be
dw Route34_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $f, MUSIC_ROUTE_36, 0, 1
+ db ROUTE_34, MUSIC_ROUTE_36, 0, 1
; 0x946c7
GoldenrodCity_MapHeader: ; 0x946c7
@@ -2127,7 +2127,7 @@ GoldenrodCity_MapHeader: ; 0x946c7
dw GoldenrodCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 0, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1
; 0x946d0
GoldenrodGym_MapHeader: ; 0x946d0
@@ -2138,7 +2138,7 @@ GoldenrodGym_MapHeader: ; 0x946d0
dw GoldenrodGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GYM, 17, 1
+ db GOLDENROD_CITY, MUSIC_GYM, 17, 1
; 0x946d9
GoldenrodBikeShop_MapHeader: ; 0x946d9
@@ -2149,7 +2149,7 @@ GoldenrodBikeShop_MapHeader: ; 0x946d9
dw GoldenrodBikeShop_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x946e2
GoldenrodHappinessRater_MapHeader: ; 0x946e2
@@ -2160,7 +2160,7 @@ GoldenrodHappinessRater_MapHeader: ; 0x946e2
dw GoldenrodHappinessRater_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x946eb
GoldenrodBillsHouse_MapHeader: ; 0x946eb
@@ -2171,7 +2171,7 @@ GoldenrodBillsHouse_MapHeader: ; 0x946eb
dw GoldenrodBillsHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x946f4
GoldenrodMagnetTrainStation_MapHeader: ; 0x946f4
@@ -2182,7 +2182,7 @@ GoldenrodMagnetTrainStation_MapHeader: ; 0x946f4
dw GoldenrodMagnetTrainStation_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x946fd
GoldenrodFlowerShop_MapHeader: ; 0x946fd
@@ -2193,7 +2193,7 @@ GoldenrodFlowerShop_MapHeader: ; 0x946fd
dw GoldenrodFlowerShop_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x94706
GoldenrodPPSpeechHouse_MapHeader: ; 0x94706
@@ -2204,7 +2204,7 @@ GoldenrodPPSpeechHouse_MapHeader: ; 0x94706
dw GoldenrodPPSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x9470f
GoldenrodNameRatersHouse_MapHeader: ; 0x9470f
@@ -2215,7 +2215,7 @@ GoldenrodNameRatersHouse_MapHeader: ; 0x9470f
dw GoldenrodNameRatersHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x94718
GoldenrodDeptStore1F_MapHeader: ; 0x94718
@@ -2226,7 +2226,7 @@ GoldenrodDeptStore1F_MapHeader: ; 0x94718
dw GoldenrodDeptStore1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x94721
GoldenrodDeptStore2F_MapHeader: ; 0x94721
@@ -2237,7 +2237,7 @@ GoldenrodDeptStore2F_MapHeader: ; 0x94721
dw GoldenrodDeptStore2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x9472a
GoldenrodDeptStore3F_MapHeader: ; 0x9472a
@@ -2248,7 +2248,7 @@ GoldenrodDeptStore3F_MapHeader: ; 0x9472a
dw GoldenrodDeptStore3F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x94733
GoldenrodDeptStore4F_MapHeader: ; 0x94733
@@ -2259,7 +2259,7 @@ GoldenrodDeptStore4F_MapHeader: ; 0x94733
dw GoldenrodDeptStore4F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x9473c
GoldenrodDeptStore5F_MapHeader: ; 0x9473c
@@ -2270,7 +2270,7 @@ GoldenrodDeptStore5F_MapHeader: ; 0x9473c
dw GoldenrodDeptStore5F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x94745
GoldenrodDeptStore6F_MapHeader: ; 0x94745
@@ -2281,7 +2281,7 @@ GoldenrodDeptStore6F_MapHeader: ; 0x94745
dw GoldenrodDeptStore6F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x9474e
GoldenrodDeptStoreElevator_MapHeader: ; 0x9474e
@@ -2292,7 +2292,7 @@ GoldenrodDeptStoreElevator_MapHeader: ; 0x9474e
dw GoldenrodDeptStoreElevator_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x94757
GoldenrodDeptStoreRoof_MapHeader: ; 0x94757
@@ -2303,7 +2303,7 @@ GoldenrodDeptStoreRoof_MapHeader: ; 0x94757
dw GoldenrodDeptStoreRoof_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GOLDENROD_CITY, 1, 1
+ db GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
; 0x94760
GoldenrodGameCorner_MapHeader: ; 0x94760
@@ -2314,7 +2314,7 @@ GoldenrodGameCorner_MapHeader: ; 0x94760
dw GoldenrodGameCorner_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_GAME_CORNER, 1, 1
+ db GOLDENROD_CITY, MUSIC_GAME_CORNER, 1, 1
; 0x94769
GoldenrodPokeCenter1F_MapHeader: ; 0x94769
@@ -2325,7 +2325,7 @@ GoldenrodPokeCenter1F_MapHeader: ; 0x94769
dw GoldenrodPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_POKEMON_CENTER, 1, 1
+ db GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x94772
GoldenrodPokeComCenter2FMobile_MapHeader: ; 0x94772
@@ -2336,7 +2336,7 @@ GoldenrodPokeComCenter2FMobile_MapHeader: ; 0x94772
dw GoldenrodPokeComCenter2FMobile_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $10, MUSIC_POKEMON_CENTER, 1, 1
+ db GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x9477b
IlexForestAzaleaGate_MapHeader: ; 0x9477b
@@ -2347,7 +2347,7 @@ IlexForestAzaleaGate_MapHeader: ; 0x9477b
dw IlexForestAzaleaGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $f, MUSIC_ROUTE_36, 1, 1
+ db ROUTE_34, MUSIC_ROUTE_36, 1, 1
; 0x94784
Route34IlexForestGate_MapHeader: ; 0x94784
@@ -2358,7 +2358,7 @@ Route34IlexForestGate_MapHeader: ; 0x94784
dw Route34IlexForestGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $f, MUSIC_ROUTE_36, 1, 1
+ db ROUTE_34, MUSIC_ROUTE_36, 1, 1
; 0x9478d
DayCare_MapHeader: ; 0x9478d
@@ -2369,7 +2369,7 @@ DayCare_MapHeader: ; 0x9478d
dw DayCare_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $f, MUSIC_AZALEA_TOWN, 1, 1
+ db ROUTE_34, MUSIC_AZALEA_TOWN, 1, 1
; 0x94796
@@ -2383,7 +2383,7 @@ Route6_MapHeader: ; 0x94796
dw Route6_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3c, MUSIC_ROUTE_3, 0, 4
+ db ROUTE_6, MUSIC_ROUTE_3, 0, 4
; 0x9479f
Route11_MapHeader: ; 0x9479f
@@ -2394,7 +2394,7 @@ Route11_MapHeader: ; 0x9479f
dw Route11_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $49, MUSIC_ROUTE_12, 0, 1
+ db ROUTE_11, MUSIC_ROUTE_12, 0, 1
; 0x947a8
VermilionCity_MapHeader: ; 0x947a8
@@ -2405,7 +2405,7 @@ VermilionCity_MapHeader: ; 0x947a8
dw VermilionCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_VERMILION_CITY, 0, 2
+ db VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 2
; 0x947b1
VermilionHouseFishingSpeechHouse_MapHeader: ; 0x947b1
@@ -2416,7 +2416,7 @@ VermilionHouseFishingSpeechHouse_MapHeader: ; 0x947b1
dw VermilionHouseFishingSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_VERMILION_CITY, 1, 1
+ db VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
; 0x947ba
VermilionPokeCenter1F_MapHeader: ; 0x947ba
@@ -2427,7 +2427,7 @@ VermilionPokeCenter1F_MapHeader: ; 0x947ba
dw VermilionPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_POKEMON_CENTER, 1, 1
+ db VERMILION_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x947c3
VermilionPokeCenter2FBeta_MapHeader: ; 0x947c3
@@ -2438,7 +2438,7 @@ VermilionPokeCenter2FBeta_MapHeader: ; 0x947c3
dw VermilionPokeCenter2FBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_VERMILION_CITY, 1, 1
+ db VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
; 0x947cc
PokemonFanClub_MapHeader: ; 0x947cc
@@ -2449,7 +2449,7 @@ PokemonFanClub_MapHeader: ; 0x947cc
dw PokemonFanClub_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_VERMILION_CITY, 1, 1
+ db VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
; 0x947d5
VermilionMagnetTrainSpeechHouse_MapHeader: ; 0x947d5
@@ -2460,7 +2460,7 @@ VermilionMagnetTrainSpeechHouse_MapHeader: ; 0x947d5
dw VermilionMagnetTrainSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_VERMILION_CITY, 1, 1
+ db VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
; 0x947de
VermilionMart_MapHeader: ; 0x947de
@@ -2471,7 +2471,7 @@ VermilionMart_MapHeader: ; 0x947de
dw VermilionMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_VERMILION_CITY, 1, 1
+ db VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
; 0x947e7
VermilionHouseDiglettsCaveSpeechHouse_MapHeader: ; 0x947e7
@@ -2482,7 +2482,7 @@ VermilionHouseDiglettsCaveSpeechHouse_MapHeader: ; 0x947e7
dw VermilionHouseDiglettsCaveSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_VERMILION_CITY, 1, 1
+ db VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
; 0x947f0
VermilionGym_MapHeader: ; 0x947f0
@@ -2493,7 +2493,7 @@ VermilionGym_MapHeader: ; 0x947f0
dw VermilionGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_GYM, 17, 1
+ db VERMILION_CITY, MUSIC_GYM, 17, 1
; 0x947f9
Route6SaffronGate_MapHeader: ; 0x947f9
@@ -2504,7 +2504,7 @@ Route6SaffronGate_MapHeader: ; 0x947f9
dw Route6SaffronGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3c, MUSIC_ROUTE_3, 1, 1
+ db ROUTE_6, MUSIC_ROUTE_3, 1, 1
; 0x94802
Route6UndergroundEntrance_MapHeader: ; 0x94802
@@ -2515,7 +2515,7 @@ Route6UndergroundEntrance_MapHeader: ; 0x94802
dw Route6UndergroundEntrance_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3c, MUSIC_ROUTE_3, 1, 1
+ db ROUTE_6, MUSIC_ROUTE_3, 1, 1
; 0x9480b
@@ -2529,7 +2529,7 @@ Route1_MapHeader: ; 0x9480b
dw Route1_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $30, MUSIC_ROUTE_1, 0, 1
+ db ROUTE_1, MUSIC_ROUTE_1, 0, 1
; 0x94814
PalletTown_MapHeader: ; 0x94814
@@ -2540,7 +2540,7 @@ PalletTown_MapHeader: ; 0x94814
dw PalletTown_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2f, MUSIC_PALLET_TOWN, 0, 2
+ db PALLET_TOWN, MUSIC_PALLET_TOWN, 0, 2
; 0x9481d
RedsHouse1F_MapHeader: ; 0x9481d
@@ -2551,7 +2551,7 @@ RedsHouse1F_MapHeader: ; 0x9481d
dw RedsHouse1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2f, MUSIC_PALLET_TOWN, 1, 1
+ db PALLET_TOWN, MUSIC_PALLET_TOWN, 1, 1
; 0x94826
RedsHouse2F_MapHeader: ; 0x94826
@@ -2562,7 +2562,7 @@ RedsHouse2F_MapHeader: ; 0x94826
dw RedsHouse2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2f, MUSIC_PALLET_TOWN, 1, 1
+ db PALLET_TOWN, MUSIC_PALLET_TOWN, 1, 1
; 0x9482f
BluesHouse_MapHeader: ; 0x9482f
@@ -2573,7 +2573,7 @@ BluesHouse_MapHeader: ; 0x9482f
dw BluesHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2f, MUSIC_PALLET_TOWN, 1, 1
+ db PALLET_TOWN, MUSIC_PALLET_TOWN, 1, 1
; 0x94838
OaksLab_MapHeader: ; 0x94838
@@ -2584,7 +2584,7 @@ OaksLab_MapHeader: ; 0x94838
dw OaksLab_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2f, MUSIC_POKEMON_TALK, 1, 1
+ db PALLET_TOWN, MUSIC_POKEMON_TALK, 1, 1
; 0x94841
@@ -2598,7 +2598,7 @@ Route3_MapHeader: ; 0x94841
dw Route3_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $34, MUSIC_ROUTE_3, 0, 1
+ db ROUTE_3, MUSIC_ROUTE_3, 0, 1
; 0x9484a
PewterCity_MapHeader: ; 0x9484a
@@ -2609,7 +2609,7 @@ PewterCity_MapHeader: ; 0x9484a
dw PewterCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $33, MUSIC_VIRIDIAN_CITY, 0, 1
+ db PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, 1
; 0x94853
PewterNidoranSpeechHouse_MapHeader: ; 0x94853
@@ -2620,7 +2620,7 @@ PewterNidoranSpeechHouse_MapHeader: ; 0x94853
dw PewterNidoranSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $33, MUSIC_VIRIDIAN_CITY, 1, 1
+ db PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x9485c
PewterGym_MapHeader: ; 0x9485c
@@ -2631,7 +2631,7 @@ PewterGym_MapHeader: ; 0x9485c
dw PewterGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $33, MUSIC_GYM, 17, 1
+ db PEWTER_CITY, MUSIC_GYM, 17, 1
; 0x94865
PewterMart_MapHeader: ; 0x94865
@@ -2642,7 +2642,7 @@ PewterMart_MapHeader: ; 0x94865
dw PewterMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $33, MUSIC_VIRIDIAN_CITY, 1, 1
+ db PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x9486e
PewterPokeCenter1F_MapHeader: ; 0x9486e
@@ -2653,7 +2653,7 @@ PewterPokeCenter1F_MapHeader: ; 0x9486e
dw PewterPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $33, MUSIC_POKEMON_CENTER, 1, 1
+ db PEWTER_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x94877
PewterPokeCEnter2FBeta_MapHeader: ; 0x94877
@@ -2664,7 +2664,7 @@ PewterPokeCEnter2FBeta_MapHeader: ; 0x94877
dw PewterPokeCEnter2FBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $33, MUSIC_VIRIDIAN_CITY, 1, 1
+ db PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94880
PewterSnoozeSpeechHouse_MapHeader: ; 0x94880
@@ -2675,7 +2675,7 @@ PewterSnoozeSpeechHouse_MapHeader: ; 0x94880
dw PewterSnoozeSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $33, MUSIC_VIRIDIAN_CITY, 1, 1
+ db PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94889
@@ -2689,7 +2689,7 @@ OlivinePort_MapHeader: ; 0x94889
dw OlivinePort_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_VIOLET_CITY, 0, 2
+ db OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 2
; 0x94892
VermilionPort_MapHeader: ; 0x94892
@@ -2700,7 +2700,7 @@ VermilionPort_MapHeader: ; 0x94892
dw VermilionPort_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_VERMILION_CITY, 0, 2
+ db VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 2
; 0x9489b
FastShip1F_MapHeader: ; 0x9489b
@@ -2711,7 +2711,7 @@ FastShip1F_MapHeader: ; 0x9489b
dw FastShip1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5f, MUSIC_SS_AQUA, 1, 1
+ db FAST_SHIP, MUSIC_SS_AQUA, 1, 1
; 0x948a4
FastShipCabins_NNW_NNE_NE_MapHeader: ; 0x948a4
@@ -2722,7 +2722,7 @@ FastShipCabins_NNW_NNE_NE_MapHeader: ; 0x948a4
dw FastShipCabins_NNW_NNE_NE_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5f, MUSIC_SS_AQUA, 1, 1
+ db FAST_SHIP, MUSIC_SS_AQUA, 1, 1
; 0x948ad
FastShipCabins_SW_SSW_NW_MapHeader: ; 0x948ad
@@ -2733,7 +2733,7 @@ FastShipCabins_SW_SSW_NW_MapHeader: ; 0x948ad
dw FastShipCabins_SW_SSW_NW_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5f, MUSIC_SS_AQUA, 1, 1
+ db FAST_SHIP, MUSIC_SS_AQUA, 1, 1
; 0x948b6
FastShipCabins_SE_SSE_CaptainsCabin_MapHeader: ; 0x948b6
@@ -2744,7 +2744,7 @@ FastShipCabins_SE_SSE_CaptainsCabin_MapHeader: ; 0x948b6
dw FastShipCabins_SE_SSE_CaptainsCabin_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5f, MUSIC_SS_AQUA, 1, 1
+ db FAST_SHIP, MUSIC_SS_AQUA, 1, 1
; 0x948bf
FastShipB1F_MapHeader: ; 0x948bf
@@ -2755,7 +2755,7 @@ FastShipB1F_MapHeader: ; 0x948bf
dw FastShipB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5f, MUSIC_SS_AQUA, 1, 1
+ db FAST_SHIP, MUSIC_SS_AQUA, 1, 1
; 0x948c8
OlivinePortPassage_MapHeader: ; 0x948c8
@@ -2766,7 +2766,7 @@ OlivinePortPassage_MapHeader: ; 0x948c8
dw OlivinePortPassage_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1b, MUSIC_VIOLET_CITY, 1, 1
+ db OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
; 0x948d1
VermilionPortPassage_MapHeader: ; 0x948d1
@@ -2777,7 +2777,7 @@ VermilionPortPassage_MapHeader: ; 0x948d1
dw VermilionPortPassage_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3d, MUSIC_VERMILION_CITY, 1, 1
+ db VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
; 0x948da
MountMoonSquare_MapHeader: ; 0x948da
@@ -2788,7 +2788,7 @@ MountMoonSquare_MapHeader: ; 0x948da
dw MountMoonSquare_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $35, MUSIC_MT_MOON_SQUARE, 0, 1
+ db MT_MOON, MUSIC_MT_MOON_SQUARE, 0, 1
; 0x948e3
MountMoonGiftShop_MapHeader: ; 0x948e3
@@ -2799,7 +2799,7 @@ MountMoonGiftShop_MapHeader: ; 0x948e3
dw MountMoonGiftShop_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $35, MUSIC_VIRIDIAN_CITY, 1, 1
+ db MT_MOON, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x948ec
TinTowerRoof_MapHeader: ; 0x948ec
@@ -2810,7 +2810,7 @@ TinTowerRoof_MapHeader: ; 0x948ec
dw TinTowerRoof_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $17, MUSIC_TIN_TOWER, 0, 1
+ db TIN_TOWER, MUSIC_TIN_TOWER, 0, 1
; 0x948f5
@@ -2824,7 +2824,7 @@ Route23_MapHeader: ; 0x948f5
dw Route23_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $59, MUSIC_INDIGO_PLATEAU, 0, 1
+ db ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, 1
; 0x948fe
IndigoPlateauPokeCenter1F_MapHeader: ; 0x948fe
@@ -2835,7 +2835,7 @@ IndigoPlateauPokeCenter1F_MapHeader: ; 0x948fe
dw IndigoPlateauPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5a, MUSIC_INDIGO_PLATEAU, 1, 1
+ db INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, 1
; 0x94907
WillsRoom_MapHeader: ; 0x94907
@@ -2846,7 +2846,7 @@ WillsRoom_MapHeader: ; 0x94907
dw WillsRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5a, MUSIC_INDIGO_PLATEAU, 17, 1
+ db INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 17, 1
; 0x94910
KogasRoom_MapHeader: ; 0x94910
@@ -2857,7 +2857,7 @@ KogasRoom_MapHeader: ; 0x94910
dw KogasRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5a, MUSIC_INDIGO_PLATEAU, 17, 1
+ db INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 17, 1
; 0x94919
BrunosRoom_MapHeader: ; 0x94919
@@ -2868,7 +2868,7 @@ BrunosRoom_MapHeader: ; 0x94919
dw BrunosRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5a, MUSIC_INDIGO_PLATEAU, 17, 1
+ db INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 17, 1
; 0x94922
KarensRoom_MapHeader: ; 0x94922
@@ -2879,7 +2879,7 @@ KarensRoom_MapHeader: ; 0x94922
dw KarensRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5a, MUSIC_INDIGO_PLATEAU, 17, 1
+ db INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 17, 1
; 0x9492b
LancesRoom_MapHeader: ; 0x9492b
@@ -2890,7 +2890,7 @@ LancesRoom_MapHeader: ; 0x9492b
dw LancesRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5a, MUSIC_INDIGO_PLATEAU, 17, 1
+ db INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 17, 1
; 0x94934
HallOfFame_MapHeader: ; 0x94934
@@ -2901,7 +2901,7 @@ HallOfFame_MapHeader: ; 0x94934
dw HallOfFame_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5a, MUSIC_NEW_BARK_TOWN, 17, 1
+ db INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, 17, 1
; 0x9493d
@@ -2915,7 +2915,7 @@ Route13_MapHeader: ; 0x9493d
dw Route13_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4b, MUSIC_ROUTE_12, 0, 13
+ db ROUTE_13, MUSIC_ROUTE_12, 0, 13
; 0x94946
Route14_MapHeader: ; 0x94946
@@ -2926,7 +2926,7 @@ Route14_MapHeader: ; 0x94946
dw Route14_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4c, MUSIC_ROUTE_12, 0, 1
+ db ROUTE_14, MUSIC_ROUTE_12, 0, 1
; 0x9494f
Route15_MapHeader: ; 0x9494f
@@ -2937,7 +2937,7 @@ Route15_MapHeader: ; 0x9494f
dw Route15_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4d, MUSIC_ROUTE_12, 0, 1
+ db ROUTE_15, MUSIC_ROUTE_12, 0, 1
; 0x94958
Route18_MapHeader: ; 0x94958
@@ -2948,7 +2948,7 @@ Route18_MapHeader: ; 0x94958
dw Route18_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $50, MUSIC_ROUTE_3, 0, 1
+ db ROUTE_18, MUSIC_ROUTE_3, 0, 1
; 0x94961
FuchsiaCity_MapHeader: ; 0x94961
@@ -2959,7 +2959,7 @@ FuchsiaCity_MapHeader: ; 0x94961
dw FuchsiaCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $51, MUSIC_CELADON_CITY, 0, 8
+ db FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, 8
; 0x9496a
FuchsiaMart_MapHeader: ; 0x9496a
@@ -2970,7 +2970,7 @@ FuchsiaMart_MapHeader: ; 0x9496a
dw FuchsiaMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $51, MUSIC_CELADON_CITY, 1, 1
+ db FUCHSIA_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94973
SafariZoneMainOffice_MapHeader: ; 0x94973
@@ -2981,7 +2981,7 @@ SafariZoneMainOffice_MapHeader: ; 0x94973
dw SafariZoneMainOffice_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $51, MUSIC_CELADON_CITY, 1, 1
+ db FUCHSIA_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x9497c
FuchsiaGym_MapHeader: ; 0x9497c
@@ -2992,7 +2992,7 @@ FuchsiaGym_MapHeader: ; 0x9497c
dw FuchsiaGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $51, MUSIC_GYM, 17, 1
+ db FUCHSIA_CITY, MUSIC_GYM, 17, 1
; 0x94985
FuchsiaBillSpeechHouse_MapHeader: ; 0x94985
@@ -3003,7 +3003,7 @@ FuchsiaBillSpeechHouse_MapHeader: ; 0x94985
dw FuchsiaBillSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $51, MUSIC_CELADON_CITY, 1, 1
+ db FUCHSIA_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x9498e
FuchsiaPokeCenter1F_MapHeader: ; 0x9498e
@@ -3014,7 +3014,7 @@ FuchsiaPokeCenter1F_MapHeader: ; 0x9498e
dw FuchsiaPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $51, MUSIC_POKEMON_CENTER, 1, 1
+ db FUCHSIA_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x94997
FuchsiaPokeCenter2FBeta_MapHeader: ; 0x94997
@@ -3025,7 +3025,7 @@ FuchsiaPokeCenter2FBeta_MapHeader: ; 0x94997
dw FuchsiaPokeCenter2FBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $51, MUSIC_CELADON_CITY, 1, 1
+ db FUCHSIA_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x949a0
SafariZoneWardensHome_MapHeader: ; 0x949a0
@@ -3036,7 +3036,7 @@ SafariZoneWardensHome_MapHeader: ; 0x949a0
dw SafariZoneWardensHome_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $51, MUSIC_CELADON_CITY, 1, 1
+ db FUCHSIA_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x949a9
Route15FuchsiaGate_MapHeader: ; 0x949a9
@@ -3047,7 +3047,7 @@ Route15FuchsiaGate_MapHeader: ; 0x949a9
dw Route15FuchsiaGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4d, MUSIC_ROUTE_12, 1, 1
+ db ROUTE_15, MUSIC_ROUTE_12, 1, 1
; 0x949b2
@@ -3061,7 +3061,7 @@ Route8_MapHeader: ; 0x949b2
dw Route8_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $40, MUSIC_ROUTE_3, 0, 1
+ db ROUTE_8, MUSIC_ROUTE_3, 0, 1
; 0x949bb
Route12_MapHeader: ; 0x949bb
@@ -3072,7 +3072,7 @@ Route12_MapHeader: ; 0x949bb
dw Route12_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4a, MUSIC_ROUTE_12, 0, 13
+ db ROUTE_12, MUSIC_ROUTE_12, 0, 13
; 0x949c4
Route10South_MapHeader: ; 0x949c4
@@ -3083,7 +3083,7 @@ Route10South_MapHeader: ; 0x949c4
dw Route10South_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $43, MUSIC_ROUTE_3, 0, 3
+ db ROUTE_10, MUSIC_ROUTE_3, 0, 3
; 0x949cd
LavenderTown_MapHeader: ; 0x949cd
@@ -3094,7 +3094,7 @@ LavenderTown_MapHeader: ; 0x949cd
dw LavenderTown_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $45, MUSIC_LAVENDER_TOWN, 0, 1
+ db LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, 1
; 0x949d6
LavenderPokeCenter1F_MapHeader: ; 0x949d6
@@ -3105,7 +3105,7 @@ LavenderPokeCenter1F_MapHeader: ; 0x949d6
dw LavenderPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $45, MUSIC_POKEMON_CENTER, 1, 1
+ db LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 1, 1
; 0x949df
LavenderPokeCenter2FBeta_MapHeader: ; 0x949df
@@ -3116,7 +3116,7 @@ LavenderPokeCenter2FBeta_MapHeader: ; 0x949df
dw LavenderPokeCenter2FBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $45, MUSIC_POKEMON_CENTER, 1, 1
+ db LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 1, 1
; 0x949e8
MrFujisHouse_MapHeader: ; 0x949e8
@@ -3127,7 +3127,7 @@ MrFujisHouse_MapHeader: ; 0x949e8
dw MrFujisHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $45, MUSIC_LAVENDER_TOWN, 1, 1
+ db LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 1, 1
; 0x949f1
LavenderTownSpeechHouse_MapHeader: ; 0x949f1
@@ -3138,7 +3138,7 @@ LavenderTownSpeechHouse_MapHeader: ; 0x949f1
dw LavenderTownSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $45, MUSIC_LAVENDER_TOWN, 1, 1
+ db LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 1, 1
; 0x949fa
LavenderNameRater_MapHeader: ; 0x949fa
@@ -3149,7 +3149,7 @@ LavenderNameRater_MapHeader: ; 0x949fa
dw LavenderNameRater_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $45, MUSIC_LAVENDER_TOWN, 1, 1
+ db LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 1, 1
; 0x94a03
LavenderMart_MapHeader: ; 0x94a03
@@ -3160,7 +3160,7 @@ LavenderMart_MapHeader: ; 0x94a03
dw LavenderMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $45, MUSIC_LAVENDER_TOWN, 1, 1
+ db LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 1, 1
; 0x94a0c
SoulHouse_MapHeader: ; 0x94a0c
@@ -3171,7 +3171,7 @@ SoulHouse_MapHeader: ; 0x94a0c
dw SoulHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $45, MUSIC_LAVENDER_TOWN, 1, 1
+ db LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 1, 1
; 0x94a15
LavRadioTower1F_MapHeader: ; 0x94a15
@@ -3182,7 +3182,7 @@ LavRadioTower1F_MapHeader: ; 0x94a15
dw LavRadioTower1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $46, MUSIC_LAVENDER_TOWN, 1, 1
+ db LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, 1, 1
; 0x94a1e
Route8SaffronGate_MapHeader: ; 0x94a1e
@@ -3193,7 +3193,7 @@ Route8SaffronGate_MapHeader: ; 0x94a1e
dw Route8SaffronGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $40, MUSIC_ROUTE_3, 1, 1
+ db ROUTE_8, MUSIC_ROUTE_3, 1, 1
; 0x94a27
Route12SuperRodHouse_MapHeader: ; 0x94a27
@@ -3204,7 +3204,7 @@ Route12SuperRodHouse_MapHeader: ; 0x94a27
dw Route12SuperRodHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4a, MUSIC_VIRIDIAN_CITY, 1, 1
+ db ROUTE_12, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94a30
@@ -3218,7 +3218,7 @@ Route28_MapHeader: ; 0x94a30
dw Route28_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5e, MUSIC_INDIGO_PLATEAU, 0, 4
+ db ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, 4
; 0x94a39
SilverCaveOutside_MapHeader: ; 0x94a39
@@ -3229,7 +3229,7 @@ SilverCaveOutside_MapHeader: ; 0x94a39
dw SilverCaveOutside_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2e, MUSIC_INDIGO_PLATEAU, 0, 4
+ db SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, 4
; 0x94a42
SilverCavePokeCenter1F_MapHeader: ; 0x94a42
@@ -3240,7 +3240,7 @@ SilverCavePokeCenter1F_MapHeader: ; 0x94a42
dw SilverCavePokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2e, MUSIC_POKEMON_CENTER, 1, 1
+ db SILVER_CAVE, MUSIC_POKEMON_CENTER, 1, 1
; 0x94a4b
Route28FamousSpeechHouse_MapHeader: ; 0x94a4b
@@ -3251,7 +3251,7 @@ Route28FamousSpeechHouse_MapHeader: ; 0x94a4b
dw Route28FamousSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5e, MUSIC_AZALEA_TOWN, 1, 1
+ db ROUTE_28, MUSIC_AZALEA_TOWN, 1, 1
; 0x94a54
@@ -3265,7 +3265,7 @@ PokeCenter2F_MapHeader: ; 0x94a54
dw PokeCenter2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $0, MUSIC_POKEMON_CENTER, 17, 1
+ db SPECIAL_MAP, MUSIC_POKEMON_CENTER, 17, 1
; 0x94a5d
TradeCenter_MapHeader: ; 0x94a5d
@@ -3276,7 +3276,7 @@ TradeCenter_MapHeader: ; 0x94a5d
dw TradeCenter_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $0, MUSIC_CHERRYGROVE_CITY, 17, 1
+ db SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 17, 1
; 0x94a66
Colosseum_MapHeader: ; 0x94a66
@@ -3287,7 +3287,7 @@ Colosseum_MapHeader: ; 0x94a66
dw Colosseum_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $0, MUSIC_CHERRYGROVE_CITY, 17, 1
+ db SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 17, 1
; 0x94a6f
TimeCapsule_MapHeader: ; 0x94a6f
@@ -3298,7 +3298,7 @@ TimeCapsule_MapHeader: ; 0x94a6f
dw TimeCapsule_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $0, MUSIC_CHERRYGROVE_CITY, 17, 1
+ db SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 17, 1
; 0x94a78
MobileTradeRoomMobile_MapHeader: ; 0x94a78
@@ -3309,7 +3309,7 @@ MobileTradeRoomMobile_MapHeader: ; 0x94a78
dw MobileTradeRoomMobile_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $0, MUSIC_CHERRYGROVE_CITY, 17, 1
+ db SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 17, 1
; 0x94a81
MobileBattleRoom_MapHeader: ; 0x94a81
@@ -3320,7 +3320,7 @@ MobileBattleRoom_MapHeader: ; 0x94a81
dw MobileBattleRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $0, MUSIC_CHERRYGROVE_CITY, 17, 1
+ db SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 17, 1
; 0x94a8a
@@ -3334,7 +3334,7 @@ Route7_MapHeader: ; 0x94a8a
dw Route7_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3f, MUSIC_ROUTE_3, 0, 1
+ db ROUTE_7, MUSIC_ROUTE_3, 0, 1
; 0x94a93
Route16_MapHeader: ; 0x94a93
@@ -3345,7 +3345,7 @@ Route16_MapHeader: ; 0x94a93
dw Route16_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4e, MUSIC_ROUTE_3, 0, 1
+ db ROUTE_16, MUSIC_ROUTE_3, 0, 1
; 0x94a9c
Route17_MapHeader: ; 0x94a9c
@@ -3356,7 +3356,7 @@ Route17_MapHeader: ; 0x94a9c
dw Route17_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4f, MUSIC_ROUTE_3, 0, 0
+ db ROUTE_17, MUSIC_ROUTE_3, 0, 0
; 0x94aa5
CeladonCity_MapHeader: ; 0x94aa5
@@ -3367,7 +3367,7 @@ CeladonCity_MapHeader: ; 0x94aa5
dw CeladonCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 0, 0
+ db CELADON_CITY, MUSIC_CELADON_CITY, 0, 0
; 0x94aae
CeladonDeptStore1F_MapHeader: ; 0x94aae
@@ -3378,7 +3378,7 @@ CeladonDeptStore1F_MapHeader: ; 0x94aae
dw CeladonDeptStore1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94ab7
CeladonDeptStore2F_MapHeader: ; 0x94ab7
@@ -3389,7 +3389,7 @@ CeladonDeptStore2F_MapHeader: ; 0x94ab7
dw CeladonDeptStore2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94ac0
CeladonDeptStore3F_MapHeader: ; 0x94ac0
@@ -3400,7 +3400,7 @@ CeladonDeptStore3F_MapHeader: ; 0x94ac0
dw CeladonDeptStore3F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94ac9
CeladonDeptStore4F_MapHeader: ; 0x94ac9
@@ -3411,7 +3411,7 @@ CeladonDeptStore4F_MapHeader: ; 0x94ac9
dw CeladonDeptStore4F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94ad2
CeladonDeptStore5F_MapHeader: ; 0x94ad2
@@ -3422,7 +3422,7 @@ CeladonDeptStore5F_MapHeader: ; 0x94ad2
dw CeladonDeptStore5F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94adb
CeladonDeptStore6F_MapHeader: ; 0x94adb
@@ -3433,7 +3433,7 @@ CeladonDeptStore6F_MapHeader: ; 0x94adb
dw CeladonDeptStore6F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94ae4
CeladonDeptStoreElevator_MapHeader: ; 0x94ae4
@@ -3444,7 +3444,7 @@ CeladonDeptStoreElevator_MapHeader: ; 0x94ae4
dw CeladonDeptStoreElevator_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94aed
CeladonMansion1F_MapHeader: ; 0x94aed
@@ -3455,7 +3455,7 @@ CeladonMansion1F_MapHeader: ; 0x94aed
dw CeladonMansion1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94af6
CeladonMansion2F_MapHeader: ; 0x94af6
@@ -3466,7 +3466,7 @@ CeladonMansion2F_MapHeader: ; 0x94af6
dw CeladonMansion2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94aff
CeladonMansion3F_MapHeader: ; 0x94aff
@@ -3477,7 +3477,7 @@ CeladonMansion3F_MapHeader: ; 0x94aff
dw CeladonMansion3F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94b08
CeladonMansionRoof_MapHeader: ; 0x94b08
@@ -3488,7 +3488,7 @@ CeladonMansionRoof_MapHeader: ; 0x94b08
dw CeladonMansionRoof_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94b11
CeladonMansionRoofHouse_MapHeader: ; 0x94b11
@@ -3499,7 +3499,7 @@ CeladonMansionRoofHouse_MapHeader: ; 0x94b11
dw CeladonMansionRoofHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94b1a
CeladonPokeCenter1F_MapHeader: ; 0x94b1a
@@ -3510,7 +3510,7 @@ CeladonPokeCenter1F_MapHeader: ; 0x94b1a
dw CeladonPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_POKEMON_CENTER, 1, 1
+ db CELADON_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x94b23
CeladonPokeCenter2FBeta_MapHeader: ; 0x94b23
@@ -3521,7 +3521,7 @@ CeladonPokeCenter2FBeta_MapHeader: ; 0x94b23
dw CeladonPokeCenter2FBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94b2c
CeladonGameCorner_MapHeader: ; 0x94b2c
@@ -3532,7 +3532,7 @@ CeladonGameCorner_MapHeader: ; 0x94b2c
dw CeladonGameCorner_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_GAME_CORNER, 1, 1
+ db CELADON_CITY, MUSIC_GAME_CORNER, 1, 1
; 0x94b35
CeladonGameCornerPrizeRoom_MapHeader: ; 0x94b35
@@ -3543,7 +3543,7 @@ CeladonGameCornerPrizeRoom_MapHeader: ; 0x94b35
dw CeladonGameCornerPrizeRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94b3e
CeladonGym_MapHeader: ; 0x94b3e
@@ -3554,7 +3554,7 @@ CeladonGym_MapHeader: ; 0x94b3e
dw CeladonGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_GYM, 17, 1
+ db CELADON_CITY, MUSIC_GYM, 17, 1
; 0x94b47
CeladonCafe_MapHeader: ; 0x94b47
@@ -3565,7 +3565,7 @@ CeladonCafe_MapHeader: ; 0x94b47
dw CeladonCafe_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $47, MUSIC_CELADON_CITY, 1, 1
+ db CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
; 0x94b50
Route16FuchsiaSpeechHouse_MapHeader: ; 0x94b50
@@ -3576,7 +3576,7 @@ Route16FuchsiaSpeechHouse_MapHeader: ; 0x94b50
dw Route16FuchsiaSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4e, MUSIC_CELADON_CITY, 1, 1
+ db ROUTE_16, MUSIC_CELADON_CITY, 1, 1
; 0x94b59
Route16Gate_MapHeader: ; 0x94b59
@@ -3587,7 +3587,7 @@ Route16Gate_MapHeader: ; 0x94b59
dw Route16Gate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4e, MUSIC_ROUTE_3, 1, 1
+ db ROUTE_16, MUSIC_ROUTE_3, 1, 1
; 0x94b62
Route7SaffronGate_MapHeader: ; 0x94b62
@@ -3598,7 +3598,7 @@ Route7SaffronGate_MapHeader: ; 0x94b62
dw Route7SaffronGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3f, MUSIC_ROUTE_3, 1, 1
+ db ROUTE_7, MUSIC_ROUTE_3, 1, 1
; 0x94b6b
Route1718Gate_MapHeader: ; 0x94b6b
@@ -3609,7 +3609,7 @@ Route1718Gate_MapHeader: ; 0x94b6b
dw Route1718Gate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4f, MUSIC_ROUTE_3, 1, 1
+ db ROUTE_17, MUSIC_ROUTE_3, 1, 1
; 0x94b74
@@ -3623,7 +3623,7 @@ Route40_MapHeader: ; 0x94b74
dw Route40_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1e, MUSIC_ROUTE_36, 0, 1
+ db ROUTE_40, MUSIC_ROUTE_36, 0, 1
; 0x94b7d
Route41_MapHeader: ; 0x94b7d
@@ -3634,7 +3634,7 @@ Route41_MapHeader: ; 0x94b7d
dw Route41_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $20, MUSIC_ROUTE_36, 0, 2
+ db ROUTE_41, MUSIC_ROUTE_36, 0, 2
; 0x94b86
CianwoodCity_MapHeader: ; 0x94b86
@@ -3645,7 +3645,7 @@ CianwoodCity_MapHeader: ; 0x94b86
dw CianwoodCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $21, MUSIC_ECRUTEAK_CITY, 0, 1
+ db CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, 1
; 0x94b8f
ManiasHouse_MapHeader: ; 0x94b8f
@@ -3656,7 +3656,7 @@ ManiasHouse_MapHeader: ; 0x94b8f
dw ManiasHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $21, MUSIC_ECRUTEAK_CITY, 1, 1
+ db CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x94b98
CianwoodGym_MapHeader: ; 0x94b98
@@ -3667,7 +3667,7 @@ CianwoodGym_MapHeader: ; 0x94b98
dw CianwoodGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $21, MUSIC_GYM, 17, 1
+ db CIANWOOD_CITY, MUSIC_GYM, 17, 1
; 0x94ba1
CianwoodPokeCenter1F_MapHeader: ; 0x94ba1
@@ -3678,7 +3678,7 @@ CianwoodPokeCenter1F_MapHeader: ; 0x94ba1
dw CianwoodPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $21, MUSIC_POKEMON_CENTER, 1, 1
+ db CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x94baa
CianwoodPharmacy_MapHeader: ; 0x94baa
@@ -3689,7 +3689,7 @@ CianwoodPharmacy_MapHeader: ; 0x94baa
dw CianwoodPharmacy_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $21, MUSIC_ECRUTEAK_CITY, 1, 1
+ db CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x94bb3
CianwoodCityPhotoStudio_MapHeader: ; 0x94bb3
@@ -3700,7 +3700,7 @@ CianwoodCityPhotoStudio_MapHeader: ; 0x94bb3
dw CianwoodCityPhotoStudio_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $21, MUSIC_ECRUTEAK_CITY, 1, 1
+ db CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x94bbc
CianwoodLugiaSpeechHouse_MapHeader: ; 0x94bbc
@@ -3711,7 +3711,7 @@ CianwoodLugiaSpeechHouse_MapHeader: ; 0x94bbc
dw CianwoodLugiaSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $21, MUSIC_ECRUTEAK_CITY, 1, 1
+ db CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x94bc5
PokeSeersHouse_MapHeader: ; 0x94bc5
@@ -3722,7 +3722,7 @@ PokeSeersHouse_MapHeader: ; 0x94bc5
dw PokeSeersHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $21, MUSIC_ECRUTEAK_CITY, 1, 1
+ db CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
; 0x94bce
BattleTower1F_MapHeader: ; 0x94bce
@@ -3733,7 +3733,7 @@ BattleTower1F_MapHeader: ; 0x94bce
dw BattleTower1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1d, MUSIC_BATTLE_TOWER_LOBBY, 17, 1
+ db BATTLE_TOWER, MUSIC_BATTLE_TOWER_LOBBY, 17, 1
; 0x94bd7
BattleTowerBattleRoom_MapHeader: ; 0x94bd7
@@ -3744,7 +3744,7 @@ BattleTowerBattleRoom_MapHeader: ; 0x94bd7
dw BattleTowerBattleRoom_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1d, MUSIC_BATTLE_TOWER_THEME, 17, 1
+ db BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 17, 1
; 0x94be0
BattleTowerElevator_MapHeader: ; 0x94be0
@@ -3755,7 +3755,7 @@ BattleTowerElevator_MapHeader: ; 0x94be0
dw BattleTowerElevator_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1d, MUSIC_NONE, 17, 1
+ db BATTLE_TOWER, MUSIC_NONE, 17, 1
; 0x94be9
BattleTowerHallway_MapHeader: ; 0x94be9
@@ -3766,7 +3766,7 @@ BattleTowerHallway_MapHeader: ; 0x94be9
dw BattleTowerHallway_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1d, MUSIC_BATTLE_TOWER_THEME, 17, 1
+ db BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 17, 1
; 0x94bf2
Route40BattleTowerGate_MapHeader: ; 0x94bf2
@@ -3777,7 +3777,7 @@ Route40BattleTowerGate_MapHeader: ; 0x94bf2
dw Route40BattleTowerGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1d, MUSIC_ROUTE_36, 1, 1
+ db BATTLE_TOWER, MUSIC_ROUTE_36, 1, 1
; 0x94bfb
BattleTowerOutside_MapHeader: ; 0x94bfb
@@ -3788,7 +3788,7 @@ BattleTowerOutside_MapHeader: ; 0x94bfb
dw BattleTowerOutside_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1d, MUSIC_BATTLE_TOWER_THEME, 0, 1
+ db BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 0, 1
; 0x94c04
@@ -3802,7 +3802,7 @@ Route2_MapHeader: ; 0x94c04
dw Route2_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $32, MUSIC_ROUTE_2, 0, 1
+ db ROUTE_2, MUSIC_ROUTE_2, 0, 1
; 0x94c0d
Route22_MapHeader: ; 0x94c0d
@@ -3813,7 +3813,7 @@ Route22_MapHeader: ; 0x94c0d
dw Route22_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $57, MUSIC_ROUTE_3, 0, 4
+ db ROUTE_22, MUSIC_ROUTE_3, 0, 4
; 0x94c16
ViridianCity_MapHeader: ; 0x94c16
@@ -3824,7 +3824,7 @@ ViridianCity_MapHeader: ; 0x94c16
dw ViridianCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $31, MUSIC_VIRIDIAN_CITY, 0, 4
+ db VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 4
; 0x94c1f
ViridianGym_MapHeader: ; 0x94c1f
@@ -3835,7 +3835,7 @@ ViridianGym_MapHeader: ; 0x94c1f
dw ViridianGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $31, MUSIC_GYM, 17, 1
+ db VIRIDIAN_CITY, MUSIC_GYM, 17, 1
; 0x94c28
ViridianNicknameSpeechHouse_MapHeader: ; 0x94c28
@@ -3846,7 +3846,7 @@ ViridianNicknameSpeechHouse_MapHeader: ; 0x94c28
dw ViridianNicknameSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $31, MUSIC_VIRIDIAN_CITY, 1, 1
+ db VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94c31
TrainerHouse1F_MapHeader: ; 0x94c31
@@ -3857,7 +3857,7 @@ TrainerHouse1F_MapHeader: ; 0x94c31
dw TrainerHouse1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $31, MUSIC_VIRIDIAN_CITY, 1, 1
+ db VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94c3a
TrainerHouseB1F_MapHeader: ; 0x94c3a
@@ -3868,7 +3868,7 @@ TrainerHouseB1F_MapHeader: ; 0x94c3a
dw TrainerHouseB1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $31, MUSIC_VIRIDIAN_CITY, 1, 1
+ db VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94c43
ViridianMart_MapHeader: ; 0x94c43
@@ -3879,7 +3879,7 @@ ViridianMart_MapHeader: ; 0x94c43
dw ViridianMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $31, MUSIC_VIRIDIAN_CITY, 1, 1
+ db VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94c4c
ViridianPokeCenter1F_MapHeader: ; 0x94c4c
@@ -3890,7 +3890,7 @@ ViridianPokeCenter1F_MapHeader: ; 0x94c4c
dw ViridianPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $31, MUSIC_POKEMON_CENTER, 1, 1
+ db VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x94c55
ViridianPokeCenter2FBeta_MapHeader: ; 0x94c55
@@ -3901,7 +3901,7 @@ ViridianPokeCenter2FBeta_MapHeader: ; 0x94c55
dw ViridianPokeCenter2FBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $31, MUSIC_VIRIDIAN_CITY, 1, 1
+ db VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94c5e
Route2NuggetSpeechHouse_MapHeader: ; 0x94c5e
@@ -3912,7 +3912,7 @@ Route2NuggetSpeechHouse_MapHeader: ; 0x94c5e
dw Route2NuggetSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $32, MUSIC_VIRIDIAN_CITY, 1, 1
+ db ROUTE_2, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94c67
Route2Gate_MapHeader: ; 0x94c67
@@ -3923,7 +3923,7 @@ Route2Gate_MapHeader: ; 0x94c67
dw Route2Gate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $32, MUSIC_ROUTE_2, 1, 1
+ db ROUTE_2, MUSIC_ROUTE_2, 1, 1
; 0x94c70
VictoryRoadGate_MapHeader: ; 0x94c70
@@ -3934,7 +3934,7 @@ VictoryRoadGate_MapHeader: ; 0x94c70
dw VictoryRoadGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5b, MUSIC_INDIGO_PLATEAU, 1, 1
+ db ROUTE_26, MUSIC_INDIGO_PLATEAU, 1, 1
; 0x94c79
@@ -3948,7 +3948,7 @@ Route26_MapHeader: ; 0x94c79
dw Route26_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5b, MUSIC_ROUTE_26, 0, 2
+ db ROUTE_26, MUSIC_ROUTE_26, 0, 2
; 0x94c82
Route27_MapHeader: ; 0x94c82
@@ -3959,7 +3959,7 @@ Route27_MapHeader: ; 0x94c82
dw Route27_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5c, MUSIC_ROUTE_26, 0, 2
+ db ROUTE_27, MUSIC_ROUTE_26, 0, 2
; 0x94c8b
Route29_MapHeader: ; 0x94c8b
@@ -3970,7 +3970,7 @@ Route29_MapHeader: ; 0x94c8b
dw Route29_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2, MUSIC_ROUTE_29, 0, 1
+ db ROUTE_29, MUSIC_ROUTE_29, 0, 1
; 0x94c94
NewBarkTown_MapHeader: ; 0x94c94
@@ -3981,7 +3981,7 @@ NewBarkTown_MapHeader: ; 0x94c94
dw NewBarkTown_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1, MUSIC_NEW_BARK_TOWN, 0, 2
+ db NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, 2
; 0x94c9d
ElmsLab_MapHeader: ; 0x94c9d
@@ -3992,7 +3992,7 @@ ElmsLab_MapHeader: ; 0x94c9d
dw ElmsLab_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1, MUSIC_PROF_ELM, 1, 1
+ db NEW_BARK_TOWN, MUSIC_PROF_ELM, 1, 1
; 0x94ca6
KrissHouse1F_MapHeader: ; 0x94ca6
@@ -4003,7 +4003,7 @@ KrissHouse1F_MapHeader: ; 0x94ca6
dw KrissHouse1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1, MUSIC_NEW_BARK_TOWN, 1, 1
+ db NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 1, 1
; 0x94caf
KrissHouse2F_MapHeader: ; 0x94caf
@@ -4014,7 +4014,7 @@ KrissHouse2F_MapHeader: ; 0x94caf
dw KrissHouse2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1, MUSIC_NEW_BARK_TOWN, 1, 1
+ db NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 1, 1
; 0x94cb8
KrissNeighborsHouse_MapHeader: ; 0x94cb8
@@ -4025,7 +4025,7 @@ KrissNeighborsHouse_MapHeader: ; 0x94cb8
dw KrissNeighborsHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1, MUSIC_NEW_BARK_TOWN, 1, 1
+ db NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 1, 1
; 0x94cc1
ElmsHouse_MapHeader: ; 0x94cc1
@@ -4036,7 +4036,7 @@ ElmsHouse_MapHeader: ; 0x94cc1
dw ElmsHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $1, MUSIC_NEW_BARK_TOWN, 1, 1
+ db NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 1, 1
; 0x94cca
Route26HealSpeechHouse_MapHeader: ; 0x94cca
@@ -4047,7 +4047,7 @@ Route26HealSpeechHouse_MapHeader: ; 0x94cca
dw Route26HealSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5b, MUSIC_AZALEA_TOWN, 1, 1
+ db ROUTE_26, MUSIC_AZALEA_TOWN, 1, 1
; 0x94cd3
Route26DayofWeekSiblingsHouse_MapHeader: ; 0x94cd3
@@ -4058,7 +4058,7 @@ Route26DayofWeekSiblingsHouse_MapHeader: ; 0x94cd3
dw Route26DayofWeekSiblingsHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5b, MUSIC_AZALEA_TOWN, 1, 1
+ db ROUTE_26, MUSIC_AZALEA_TOWN, 1, 1
; 0x94cdc
Route27SandstormHouse_MapHeader: ; 0x94cdc
@@ -4069,7 +4069,7 @@ Route27SandstormHouse_MapHeader: ; 0x94cdc
dw Route27SandstormHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5c, MUSIC_AZALEA_TOWN, 1, 1
+ db ROUTE_27, MUSIC_AZALEA_TOWN, 1, 1
; 0x94ce5
Route2946Gate_MapHeader: ; 0x94ce5
@@ -4080,7 +4080,7 @@ Route2946Gate_MapHeader: ; 0x94ce5
dw Route2946Gate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $2, MUSIC_ROUTE_29, 1, 1
+ db ROUTE_29, MUSIC_ROUTE_29, 1, 1
; 0x94cee
@@ -4094,7 +4094,7 @@ Route5_MapHeader: ; 0x94cee
dw Route5_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3a, MUSIC_ROUTE_3, 0, 1
+ db ROUTE_5, MUSIC_ROUTE_3, 0, 1
; 0x94cf7
SaffronCity_MapHeader: ; 0x94cf7
@@ -4105,7 +4105,7 @@ SaffronCity_MapHeader: ; 0x94cf7
dw SaffronCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_VIRIDIAN_CITY, 0, 1
+ db SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 1
; 0x94d00
FightingDojo_MapHeader: ; 0x94d00
@@ -4116,7 +4116,7 @@ FightingDojo_MapHeader: ; 0x94d00
dw FightingDojo_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_VIRIDIAN_CITY, 1, 1
+ db SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94d09
SaffronGym_MapHeader: ; 0x94d09
@@ -4127,7 +4127,7 @@ SaffronGym_MapHeader: ; 0x94d09
dw SaffronGym_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_GYM, 17, 1
+ db SAFFRON_CITY, MUSIC_GYM, 17, 1
; 0x94d12
SaffronMart_MapHeader: ; 0x94d12
@@ -4138,7 +4138,7 @@ SaffronMart_MapHeader: ; 0x94d12
dw SaffronMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_VIRIDIAN_CITY, 1, 1
+ db SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94d1b
SaffronPokeCenter1F_MapHeader: ; 0x94d1b
@@ -4149,7 +4149,7 @@ SaffronPokeCenter1F_MapHeader: ; 0x94d1b
dw SaffronPokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_POKEMON_CENTER, 1, 1
+ db SAFFRON_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x94d24
SaffronPokeCenter2FBeta_MapHeader: ; 0x94d24
@@ -4160,7 +4160,7 @@ SaffronPokeCenter2FBeta_MapHeader: ; 0x94d24
dw SaffronPokeCenter2FBeta_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_VIRIDIAN_CITY, 1, 1
+ db SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94d2d
MrPsychicsHouse_MapHeader: ; 0x94d2d
@@ -4171,7 +4171,7 @@ MrPsychicsHouse_MapHeader: ; 0x94d2d
dw MrPsychicsHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_VIRIDIAN_CITY, 1, 1
+ db SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94d36
SaffronTrainStation_MapHeader: ; 0x94d36
@@ -4182,7 +4182,7 @@ SaffronTrainStation_MapHeader: ; 0x94d36
dw SaffronTrainStation_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_VIRIDIAN_CITY, 1, 1
+ db SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94d3f
SilphCo1F_MapHeader: ; 0x94d3f
@@ -4193,7 +4193,7 @@ SilphCo1F_MapHeader: ; 0x94d3f
dw SilphCo1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_VIRIDIAN_CITY, 1, 1
+ db SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94d48
CopycatsHouse1F_MapHeader: ; 0x94d48
@@ -4204,7 +4204,7 @@ CopycatsHouse1F_MapHeader: ; 0x94d48
dw CopycatsHouse1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_VIRIDIAN_CITY, 1, 1
+ db SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94d51
CopycatsHouse2F_MapHeader: ; 0x94d51
@@ -4215,7 +4215,7 @@ CopycatsHouse2F_MapHeader: ; 0x94d51
dw CopycatsHouse2F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $48, MUSIC_VIRIDIAN_CITY, 1, 1
+ db SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94d5a
Route5UndergroundEntrance_MapHeader: ; 0x94d5a
@@ -4226,7 +4226,7 @@ Route5UndergroundEntrance_MapHeader: ; 0x94d5a
dw Route5UndergroundEntrance_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3a, MUSIC_ROUTE_3, 1, 1
+ db ROUTE_5, MUSIC_ROUTE_3, 1, 1
; 0x94d63
Route5SaffronCityGate_MapHeader: ; 0x94d63
@@ -4237,7 +4237,7 @@ Route5SaffronCityGate_MapHeader: ; 0x94d63
dw Route5SaffronCityGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3a, MUSIC_VIRIDIAN_CITY, 1, 1
+ db ROUTE_5, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94d6c
Route5CleanseTagSpeechHouse_MapHeader: ; 0x94d6c
@@ -4248,7 +4248,7 @@ Route5CleanseTagSpeechHouse_MapHeader: ; 0x94d6c
dw Route5CleanseTagSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3a, MUSIC_VIRIDIAN_CITY, 1, 1
+ db ROUTE_5, MUSIC_VIRIDIAN_CITY, 1, 1
; 0x94d75
@@ -4262,7 +4262,7 @@ Route30_MapHeader: ; 0x94d75
dw Route30_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4, MUSIC_ROUTE_30, 0, 4
+ db ROUTE_30, MUSIC_ROUTE_30, 0, 4
; 0x94d7e
Route31_MapHeader: ; 0x94d7e
@@ -4273,7 +4273,7 @@ Route31_MapHeader: ; 0x94d7e
dw Route31_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5, MUSIC_ROUTE_30, 0, 4
+ db ROUTE_31, MUSIC_ROUTE_30, 0, 4
; 0x94d87
CherrygroveCity_MapHeader: ; 0x94d87
@@ -4284,7 +4284,7 @@ CherrygroveCity_MapHeader: ; 0x94d87
dw CherrygroveCity_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3, MUSIC_CHERRYGROVE_CITY, 0, 1
+ db CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, 1
; 0x94d90
CherrygroveMart_MapHeader: ; 0x94d90
@@ -4295,7 +4295,7 @@ CherrygroveMart_MapHeader: ; 0x94d90
dw CherrygroveMart_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3, MUSIC_CHERRYGROVE_CITY, 1, 1
+ db CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 1, 1
; 0x94d99
CherrygrovePokeCenter1F_MapHeader: ; 0x94d99
@@ -4306,7 +4306,7 @@ CherrygrovePokeCenter1F_MapHeader: ; 0x94d99
dw CherrygrovePokeCenter1F_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3, MUSIC_POKEMON_CENTER, 1, 1
+ db CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 1, 1
; 0x94da2
CherrygroveGymSpeechHouse_MapHeader: ; 0x94da2
@@ -4317,7 +4317,7 @@ CherrygroveGymSpeechHouse_MapHeader: ; 0x94da2
dw CherrygroveGymSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3, MUSIC_CHERRYGROVE_CITY, 1, 1
+ db CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 1, 1
; 0x94dab
GuideGentsHouse_MapHeader: ; 0x94dab
@@ -4328,7 +4328,7 @@ GuideGentsHouse_MapHeader: ; 0x94dab
dw GuideGentsHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3, MUSIC_CHERRYGROVE_CITY, 1, 1
+ db CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 1, 1
; 0x94db4
CherrygroveEvolutionSpeechHouse_MapHeader: ; 0x94db4
@@ -4339,7 +4339,7 @@ CherrygroveEvolutionSpeechHouse_MapHeader: ; 0x94db4
dw CherrygroveEvolutionSpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $3, MUSIC_CHERRYGROVE_CITY, 1, 1
+ db CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 1, 1
; 0x94dbd
Route30BerrySpeechHouse_MapHeader: ; 0x94dbd
@@ -4350,7 +4350,7 @@ Route30BerrySpeechHouse_MapHeader: ; 0x94dbd
dw Route30BerrySpeechHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4, MUSIC_CHERRYGROVE_CITY, 1, 1
+ db ROUTE_30, MUSIC_CHERRYGROVE_CITY, 1, 1
; 0x94dc6
MrPokemonsHouse_MapHeader: ; 0x94dc6
@@ -4361,7 +4361,7 @@ MrPokemonsHouse_MapHeader: ; 0x94dc6
dw MrPokemonsHouse_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $4, MUSIC_CHERRYGROVE_CITY, 1, 1
+ db ROUTE_30, MUSIC_CHERRYGROVE_CITY, 1, 1
; 0x94dcf
Route31VioletGate_MapHeader: ; 0x94dcf
@@ -4372,7 +4372,7 @@ Route31VioletGate_MapHeader: ; 0x94dcf
dw Route31VioletGate_SecondMapHeader
; location on world map, music, time of day, fishing group
- db $5, MUSIC_ROUTE_30, 1, 1
+ db ROUTE_31, MUSIC_ROUTE_30, 1, 1
; 0x94dd8
diff --git a/maps_crystal.asm b/maps_crystal.asm
new file mode 100644
index 000000000..0379ca4b8
--- /dev/null
+++ b/maps_crystal.asm
@@ -0,0 +1,5 @@
+INCLUDE "pokecrystal.asm"
+INCLUDE "includes.asm"
+
+INCLUDE "maps.asm"
+
diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm
new file mode 100644
index 000000000..4512c893e
--- /dev/null
+++ b/misc/crystal_misc.asm
@@ -0,0 +1,824 @@
+INCLUDE "includes.asm"
+
+
+SECTION "Misc Crystal", ROMX, BANK[MISC_CRYSTAL]
+
+MobileAdapterGFX:
+INCBIN "gfx/misc/mobile_adapter.2bpp"
+
+
+; no known jump sources
+Function17a68f: ; 17a68f (5e:668f)
+ call Function17a6a8
+ call Function17a751
+ ld hl, $d088
+ bit 5, [hl]
+ jr z, .asm_17a6a6
+ ld de, StringBuffer1 ; $d073
+ push de
+ call Function17a721
+ pop de
+ xor a
+ ret
+.asm_17a6a6
+ scf
+ ret
+
+; known jump sources: 17a68f (5e:668f)
+Function17a6a8: ; 17a6a8 (5e:66a8)
+ push de
+ push bc
+ ld hl, StringBuffer2 ; $d086
+ ld bc, $a
+ xor a
+ call ByteFill
+ ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
+ ld bc, $10
+ ld a, $ff
+ call ByteFill
+ pop bc
+ ld a, c
+ and a
+ jr z, .asm_17a6c9
+ ld hl, $d088
+ set 4, [hl]
+.asm_17a6c9
+ pop de
+ call Function17a6f5
+ call Function17aba0
+ callba Function106464
+ call Function17ac0c
+ callba Function104000
+ call Function17abcf
+ callba Function49409
+ callba Function49420
+ call Function32f9
+ call DelayFrame
+ ret
+
+; known jump sources: 17a6ca (5e:66ca)
+Function17a6f5: ; 17a6f5 (5e:66f5)
+ ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
+ ld c, $0
+ ld b, $8
+.asm_17a6fc
+ ld a, [de]
+ call Function17a713
+ jr c, .asm_17a70e
+ ld a, [de]
+ swap a
+ call Function17a713
+ jr c, .asm_17a70e
+ inc de
+ dec b
+ jr nz, .asm_17a6fc
+.asm_17a70e
+ ld a, c
+ ld [$d08c], a
+ ret
+
+; known jump sources: 17a6fd (5e:66fd), 17a705 (5e:6705)
+Function17a713: ; 17a713 (5e:6713)
+ and $f
+ cp $a
+ jr nc, .asm_17a71d
+ ld [hli], a
+ inc c
+ and a
+ ret
+.asm_17a71d
+ ld [hl], $ff
+ scf
+ ret
+
+; known jump sources: 17a6a0 (5e:66a0)
+Function17a721: ; 17a721 (5e:6721)
+ push de
+ ld h, d
+ ld l, e
+ ld bc, $8
+ ld a, $ff
+ call ByteFill
+ pop de
+ ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
+ ld b, $8
+.asm_17a732
+ ld c, $0
+ ld a, [hli]
+ cp $a
+ jr nc, .asm_17a748
+ ld c, a
+ ld a, [hli]
+ cp $a
+ jr nc, .asm_17a74c
+ swap a
+ or c
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_17a732
+ ret
+.asm_17a748
+ ld a, $ff
+ ld [de], a
+ ret
+.asm_17a74c
+ ld a, $f0
+ or c
+ ld [de], a
+ ret
+
+; known jump sources: 17a692 (5e:6692)
+Function17a751: ; 17a751 (5e:6751)
+ xor a
+ ld [$d087], a
+.asm_17a755
+ call Function17a781
+ call Function17a7ae
+ call Function17a97b
+ call Function17a770
+ call Function17a78f
+ ld hl, $d08f
+ inc [hl]
+ ld a, [$d087]
+ bit 7, a
+ jr z, .asm_17a755
+ ret
+
+; known jump sources: 17a75e (5e:675e)
+Function17a770: ; 17a770 (5e:6770)
+ ld a, [hOAMUpdate] ; $ff00+$d8
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a ; $ff00+$d8
+ call HideSprites
+ call Function17a9cb
+ pop af
+ ld [hOAMUpdate], a ; $ff00+$d8
+ ret
+
+; known jump sources: 17a755 (5e:6755)
+Function17a781: ; 17a781 (5e:6781)
+ ld a, [$FF00+$aa]
+ push af
+ ld a, $1
+ ld [$FF00+$aa], a
+ call Functiona57
+ pop af
+ ld [$FF00+$aa], a
+ ret
+
+; known jump sources: 17a761 (5e:6761)
+Function17a78f: ; 17a78f (5e:678f)
+ ld hl, $d088
+ bit 7, [hl]
+ res 7, [hl]
+ jr nz, .asm_17a79f
+ callba Function10402d
+ ret
+.asm_17a79f
+ callba Function104061
+ ret
+; 17a7a6 (5e:67a6)
+
+INCBIN "baserom.gbc",$17a7a6,$17a7ae - $17a7a6
+
+; known jump sources: 17a758 (5e:6758)
+Function17a7ae: ; 17a7ae (5e:67ae)
+ ld a, [$d087]
+ ld hl, $67b6
+ rst $28
+ ret
+
+; no known jump sources
+Jumptable_17a7b6: ; 17a7b6 (5e:67b6)
+ dw Function17a7c2
+ dw Function17a7cd
+ dw Function17a7d8
+ dw Function17a7ff
+ dw Function17a81a
+ dw Function17a7f4
+
+
+; no known jump sources
+Function17a7c2: ; 17a7c2 (5e:67c2)
+ ld a, $4
+ call Function17aad3
+ ld a, $1
+ ld [$d087], a
+ ret
+
+; no known jump sources
+Function17a7cd: ; 17a7cd (5e:67cd)
+ call Function17a83c
+ call Function17a8ae
+ ret c
+ call Function17a848
+ ret
+
+; no known jump sources
+Function17a7d8: ; 17a7d8 (5e:67d8)
+ call Function17a83c
+ call Function17a848
+ ld hl, $d08b
+ dec [hl]
+ ret nz
+ call Function17ac1d
+ call Function17ac2a
+ ld hl, $d088
+ set 7, [hl]
+ ld a, $1
+ ld [$d087], a
+ ret
+
+; no known jump sources
+Function17a7f4: ; 17a7f4 (5e:67f4)
+ ld hl, $d08b
+ dec [hl]
+ ret nz
+ ld hl, $d087
+ set 7, [hl]
+ ret
+
+; no known jump sources
+Function17a7ff: ; 17a7ff (5e:67ff)
+ ld hl, $d08b
+ dec [hl]
+ ret nz
+ call Function17ac1d
+ call Function17ac2a
+ ld hl, $d088
+ set 7, [hl]
+ ld hl, $d088
+ set 5, [hl]
+ ld hl, $d087
+ set 7, [hl]
+ ret
+
+; no known jump sources
+Function17a81a: ; 17a81a (5e:681a)
+ call Function3c74
+ ret nc
+ ld a, [hJoyPressed] ; $ff00+$a7
+ and $3
+ ret z
+ call Function1c07
+ call Function17ac1d
+ call Function17ac2a
+ ld hl, $d088
+ set 7, [hl]
+ ld hl, $d088
+ res 6, [hl]
+ ld a, $1
+ ld [$d087], a
+ ret
+
+; known jump sources: 17a7cd (5e:67cd), 17a7d8 (5e:67d8)
+Function17a83c: ; 17a83c (5e:683c)
+ ld a, [$FF00+$a9]
+ and $f0
+ ld c, a
+ ld a, [hJoyPressed] ; $ff00+$a7
+ and $b
+ or c
+ ld c, a
+ ret
+
+; known jump sources: 17a7d4 (5e:67d4), 17a7db (5e:67db)
+Function17a848: ; 17a848 (5e:6848)
+ ld a, c
+ and $60
+ cp $60
+ jr z, .asm_17a876
+ ld a, c
+ and $50
+ cp $50
+ jr z, .asm_17a87d
+ ld a, c
+ and $a0
+ cp $a0
+ jr z, .asm_17a884
+ ld a, c
+ and $90
+ cp $90
+ jr z, .asm_17a88b
+ bit 6, c
+ jr nz, .asm_17a892
+ bit 7, c
+ jr nz, .asm_17a899
+ bit 5, c
+ jr nz, .asm_17a8a0
+ bit 4, c
+ jr nz, .asm_17a8a7
+ xor a
+ ret
+.asm_17a876
+ ld a, $9
+ call Function17aad0
+ scf
+ ret
+.asm_17a87d
+ ld a, $a
+ call Function17aad0
+ scf
+ ret
+.asm_17a884
+ ld a, $b
+ call Function17aad0
+ scf
+ ret
+.asm_17a88b
+ ld a, $c
+ call Function17aad0
+ scf
+ ret
+.asm_17a892
+ ld a, $5
+ call Function17aad0
+ scf
+ ret
+.asm_17a899
+ ld a, $6
+ call Function17aad0
+ scf
+ ret
+.asm_17a8a0
+ ld a, $7
+ call Function17aad0
+ scf
+ ret
+.asm_17a8a7
+ ld a, $8
+ call Function17aad0
+ scf
+ ret
+
+; known jump sources: 17a7d0 (5e:67d0)
+Function17a8ae: ; 17a8ae (5e:68ae)
+ bit 1, c
+ jr nz, .asm_17a8bc
+ bit 0, c
+ jr nz, .asm_17a8cc
+ bit 3, c
+ jr nz, .asm_17a8d7
+ xor a
+ ret
+.asm_17a8bc
+ ld a, $b
+ ld [$d08a], a
+ call Function17aa98
+ call Function17a943
+ call Function17aa88
+ scf
+ ret
+.asm_17a8cc
+ call Function17aad7
+ call Function17aa98
+ call Function17a8de
+ scf
+ ret
+.asm_17a8d7
+ ld a, $c
+ call Function17aad3
+ scf
+ ret
+
+; known jump sources: 17a8d2 (5e:68d2)
+Function17a8de: ; 17a8de (5e:68de)
+ ld a, $2
+ call Function17aae0
+ ld a, [hl]
+ cp $f1
+ jr z, .asm_17a8fd
+ cp $f0
+ jr z, .asm_17a904
+ cp $f2
+ jr z, .asm_17a911
+ ld e, a
+ call Function17a964
+ ld a, $2
+ ld [$d087], a
+ call Function17aa88
+ ret
+.asm_17a8fd
+ call Function17a943
+ call Function17aa88
+ ret
+.asm_17a904
+ call Function17aad7
+ call Function17aa98
+ call Function17a91e
+ call Function17aa88
+ ret
+.asm_17a911
+ call Function17aa98
+ ld a, $5
+ ld [$d087], a
+ xor a
+ call Function17aa88
+ ret
+
+; known jump sources: 17a90a (5e:690a)
+Function17a91e: ; 17a91e (5e:691e)
+ ld a, [$d08c]
+ cp $7
+ jr c, .asm_17a92c
+ ld a, $3
+ ld [$d087], a
+ xor a
+ ret
+.asm_17a92c
+ call Function1d6e
+ call Function17a99e
+ ld hl, $d088
+ set 7, [hl]
+ ld hl, $d088
+ set 6, [hl]
+ ld a, $4
+ ld [$d087], a
+ scf
+ ret
+
+; known jump sources: 17a8c4 (5e:68c4), 17a8fd (5e:68fd)
+Function17a943: ; 17a943 (5e:6943)
+ ld a, [$d08c]
+ and a
+ jr z, .asm_17a95d
+ dec a
+ ld [$d08c], a
+ ld c, a
+ ld b, $0
+ ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
+ add hl, bc
+ ld [hl], $ff
+ ld a, $2
+ ld [$d087], a
+ and a
+ ret
+.asm_17a95d
+ ld a, $5
+ ld [$d087], a
+ xor a
+ ret
+
+; known jump sources: 17a8f1 (5e:68f1)
+Function17a964: ; 17a964 (5e:6964)
+ ld a, [$d08c]
+ cp $10
+ jr nc, .asm_17a979
+ ld c, a
+ ld b, $0
+ inc a
+ ld [$d08c], a
+ ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
+ add hl, bc
+ ld [hl], e
+ and a
+ ret
+.asm_17a979
+ scf
+ ret
+
+; known jump sources: 17a75b (5e:675b)
+Function17a97b: ; 17a97b (5e:697b)
+ ld hl, $c4b5
+ ld bc, $212
+ call ClearBox
+ ld hl, $c4cb
+ ld de, Buffer1 ; $d1ea (aliases: MagikarpLength)
+ ld a, [$d08c]
+ and a
+ ret z
+ ld c, a
+.asm_17a990
+ ld a, [de]
+ inc de
+ cp $a
+ jr nc, .asm_17a99d
+ add $f6
+ ld [hli], a
+ dec c
+ jr nz, .asm_17a990
+ ret
+.asm_17a99d
+ ret
+
+; known jump sources: 17a92f (5e:692f)
+Function17a99e: ; 17a99e (5e:699e)
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function17ac46
+ ld hl, $c5ba
+ ld de, $69b2
+ call PlaceString
+ ret
+; 17a9b2 (5e:69b2)
+
+INCBIN "baserom.gbc",$17a9b2,$17a9cb - $17a9b2
+
+; known jump sources: 17a77a (5e:677a)
+Function17a9cb: ; 17a9cb (5e:69cb)
+ ld de, Sprites ; $c400
+ ld hl, $d088
+ bit 6, [hl]
+ jr nz, .asm_17a9df
+ call Function17a9e3
+ call Function17aa22
+ call Function17a9f5
+ ret
+.asm_17a9df
+ call Function17a9e3
+ ret
+
+; known jump sources: 17a9d5 (5e:69d5), 17a9df (5e:69df)
+Function17a9e3: ; 17a9e3 (5e:69e3)
+ ld a, $3
+ ld [$d08e], a
+ ld hl, $6a77
+ ld b, $8
+ ld c, $8
+ ld a, $5
+ call Function17aa4a
+ ret
+
+; known jump sources: 17a9db (5e:69db)
+Function17a9f5: ; 17a9f5 (5e:69f5)
+ ld a, [$d08c]
+ cp $10
+ ret nc
+ ld a, [$d08f]
+ swap a
+ and $1
+ add $1
+ ld [$d08e], a
+ ld a, [$d08c]
+ cp $10
+ jr c, .asm_17aa0f
+ dec a
+.asm_17aa0f
+ ld c, $8
+ call SimpleMultiply
+ add $18
+ ld b, a
+ ld c, $11
+ ld hl, $6a72
+ ld a, $4
+ call Function17aa4a
+ ret
+
+; known jump sources: 17a9d8 (5e:69d8)
+Function17aa22: ; 17aa22 (5e:6a22)
+ ld a, $0
+ ld [$d08e], a
+ push de
+ ld a, $3
+ call Function17aae0
+ add a
+ add a
+ add a
+ add $0
+ push af
+ ld a, $4
+ call Function17aae0
+ add a
+ add a
+ add a
+ add $8
+ ld c, a
+ pop af
+ ld b, a
+ pop de
+ ld a, $0
+ ld hl, $6a77
+ call Function17aa4a
+ ret
+
+; known jump sources: 17a9f1 (5e:69f1), 17aa1e (5e:6a1e), 17aa46 (5e:6a46)
+Function17aa4a: ; 17aa4a (5e:6a4a)
+ ld [$d08d], a
+ ld a, b
+ add $8
+ ld b, a
+ ld a, c
+ add $10
+ ld c, a
+ ld a, [hli]
+.asm_17aa56
+ push af
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [$d08d]
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [$d08e]
+ or [hl]
+ inc hl
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_17aa56
+ ret
+; 17aa72 (5e:6a72)
+
+INCBIN "baserom.gbc",$17aa72,$17aa88 - $17aa72
+
+; known jump sources: 17a8c7 (5e:68c7), 17a8f9 (5e:68f9), 17a900 (5e:6900), 17a90d (5e:690d), 17a91a (5e:691a)
+Function17aa88: ; 17aa88 (5e:6a88)
+ jr c, asm_17aa91
+ ld de, $20
+ call PlaySFX
+ ret
+
+; known jump sources: 17aa88 (5e:6a88)
+asm_17aa91: ; 17aa91 (5e:6a91)
+ ld de, $19
+ call PlaySFX
+ ret
+
+; known jump sources: 17a8c1 (5e:68c1), 17a8cf (5e:68cf), 17a907 (5e:6907), 17a911 (5e:6911)
+Function17aa98: ; 17aa98 (5e:6a98)
+ ld a, $5
+ ld [$d08b], a
+ call Function17aaa9
+ call Function17aac3
+ ld hl, $d088
+ set 7, [hl]
+ ret
+
+; known jump sources: 17aa9d (5e:6a9d)
+Function17aaa9: ; 17aaa9 (5e:6aa9)
+ ld a, $3
+ call Function17aae3
+ ld c, a
+ ld b, $0
+ ld hl, AttrMap ; $cdd9
+ add hl, bc
+ push hl
+ ld a, $4
+ call Function17aae3
+ ld bc, $14
+ pop hl
+ call AddNTimes
+ ret
+
+; known jump sources: 17aaa0 (5e:6aa0)
+Function17aac3: ; 17aac3 (5e:6ac3)
+ ld a, $b
+ push hl
+ ld [hli], a
+ ld [hli], a
+ pop hl
+ ld de, $14
+ add hl, de
+ ld [hli], a
+ ld [hli], a
+ ret
+
+; known jump sources: 17a878 (5e:6878), 17a87f (5e:687f), 17a886 (5e:6886), 17a88d (5e:688d), 17a894 (5e:6894), 17a89b (5e:689b), 17a8a2 (5e:68a2), 17a8a9 (5e:68a9)
+Function17aad0: ; 17aad0 (5e:6ad0)
+ call Function17aae0
+
+; known jump sources: 17a7c4 (5e:67c4), 17a8d9 (5e:68d9)
+Function17aad3: ; 17aad3 (5e:6ad3)
+ ld [$d089], a
+ ret
+
+; known jump sources: 17a8cc (5e:68cc), 17a904 (5e:6904), 17aae0 (5e:6ae0)
+Function17aad7: ; 17aad7 (5e:6ad7)
+ push af
+ ld a, [$d089]
+ ld [$d08a], a
+ pop af
+ ret
+
+; known jump sources: 17a8e0 (5e:68e0), 17aa2a (5e:6a2a), 17aa35 (5e:6a35), 17aad0 (5e:6ad0)
+Function17aae0: ; 17aae0 (5e:6ae0)
+ call Function17aad7
+
+; known jump sources: 17aaab (5e:6aab), 17aab8 (5e:6ab8)
+Function17aae3: ; 17aae3 (5e:6ae3)
+ push af
+ ld a, [$d08a]
+ ld bc, $d
+ ld hl, $6af7
+ call AddNTimes
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ret
+; 17aaf7 (5e:6af7)
+
+INCBIN "baserom.gbc",$17aaf7,$17aba0 - $17aaf7
+
+; known jump sources: 17a6cd (5e:66cd)
+Function17aba0: ; 17aba0 (5e:6ba0)
+ ld a, [rVBK] ; $ff00+$4f
+ push af
+ ld a, $1
+ ld [rVBK], a ; $ff00+$4f
+ ld hl, $9000
+ ld de, $6fa5
+ ld bc, $5e80
+ call Get2bpp
+ pop af
+ ld [rVBK], a ; $ff00+$4f
+ ld hl, $8000
+ ld de, $7465
+ ld bc, $5e05
+ call Get2bpp
+ ld hl, $8050
+ ld de, $601a
+ ld bc, $4504
+ call Get2bpp
+ ret
+
+; known jump sources: 17a6df (5e:66df)
+Function17abcf: ; 17abcf (5e:6bcf)
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $5
+ ld [rSVBK], a ; $ff00+$70
+ ld hl, $6c55
+ ld de, Unkn1Pals ; $d000
+ ld bc, $30
+ call CopyBytes
+ ld hl, $6c95
+ ld de, MartPointer ; $d040 (aliases: Unkn2Pals)
+ ld bc, $40
+ call CopyBytes
+ ld hl, $74b5
+ ld de, $d048
+ ld bc, $10
+ call CopyBytes
+ ld hl, $7471
+ ld de, $d058
+ ld bc, $8
+ ld a, $2
+ call FarCopyBytes
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+
+; known jump sources: 17a6d6 (5e:66d6)
+Function17ac0c: ; 17ac0c (5e:6c0c)
+ call Function17ac1d
+ call Function17ac2a
+ ld hl, TileMap ; $c4a0 (aliases: SpritesEnd)
+ ld b, $2
+ ld c, $12
+ call Function17ac46
+ ret
+
+; known jump sources: 17a7e3 (5e:67e3), 17a804 (5e:6804), 17a826 (5e:6826), 17ac0c (5e:6c0c)
+Function17ac1d: ; 17ac1d (5e:6c1d)
+ ld hl, $6cd5
+ ld de, $c4f0
+ ld bc, $118
+ call CopyBytes
+ ret
+
+; known jump sources: 17a7e6 (5e:67e6), 17a807 (5e:6807), 17a829 (5e:6829), 17ac0f (5e:6c0f)
+Function17ac2a: ; 17ac2a (5e:6c2a)
+ ld hl, $6e3d
+ ld de, $ce29
+ ld bc, $118
+ call CopyBytes
+ ld hl, $ce29
+ ld bc, $118
+.asm_17ac3c
+ ld a, [hl]
+ or $8
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_17ac3c
+ ret
+
+; known jump sources: 17a9a5 (5e:69a5), 17ac19 (5e:6c19)
+Function17ac46: ; 17ac46 (5e:6c46)
+ ld a, [$d088]
+ bit 4, a
+ jr nz, .asm_17ac51
+ call TextBox
+ ret
+.asm_17ac51
+ call Function3eea
+ ret
+; 17ac55 (5e:6c55)
+
+INCBIN "baserom.gbc",$17ac55,$17b629 - $17ac55
+
+
diff --git a/misc/gbc_only.asm b/misc/gbc_only.asm
new file mode 100644
index 000000000..dfe9e2fb6
--- /dev/null
+++ b/misc/gbc_only.asm
@@ -0,0 +1,150 @@
+GBCOnlyScreen: ; 4ea82
+
+ ld a, [hCGB]
+ and a
+ ret nz
+
+ ld de, MUSIC_NONE
+ call PlayMusic
+
+ call ClearTileMap
+
+ ld hl, GBCOnlyGFX
+ ld de, $d000
+ ld a, [rSVBK]
+ push af
+ ld a, 0
+ ld [rSVBK], a
+ call Decompress
+ pop af
+ ld [rSVBK], a
+
+ ld de, $d000
+ ld hl, VTiles2
+ lb bc, BANK(GBCOnlyGFX), $54
+ call Get2bpp
+
+ ld de, Font
+ ld hl, VTiles1
+ lb bc, BANK(Font), $80
+ call Get1bpp
+
+ call DrawGBCOnlyScreen
+
+ call WaitBGMap
+
+; better luck next time
+.loop
+ call DelayFrame
+ jr .loop
+; 4eac5
+
+
+DrawGBCOnlyScreen: ; 4eac5
+
+ call DrawGBCOnlyBorder
+
+ ; Pokemon
+ hlcoord 3, 2
+ ld b, 14
+ ld c, 4
+ ld a, $8
+ call DrawGBCOnlyGraphic
+
+ ; Crystal
+ hlcoord 5, 6
+ ld b, 10
+ ld c, 2
+ ld a, $40
+ call DrawGBCOnlyGraphic
+
+ ld de, GBCOnlyString
+ hlcoord 1, 10
+ call PlaceString
+
+ ret
+; 4eaea
+
+
+DrawGBCOnlyBorder: ; 4eaea
+
+ hlcoord 0, 0
+ ld [hl], 0 ; top-left
+
+ inc hl
+ ld a, 1 ; top
+ call .FillRow
+
+ ld [hl], 2 ; top-right
+
+ hlcoord 0, 1
+ ld a, 3 ; left
+ call .FillColumn
+
+ hlcoord 19, 1
+ ld a, 4 ; right
+ call .FillColumn
+
+ hlcoord 0, 17
+ ld [hl], 5 ; bottom-left
+
+ inc hl
+ ld a, 6 ; bottom
+ call .FillRow
+
+ ld [hl], 7 ; bottom-right
+ ret
+; 4eb15
+
+.FillRow ; 4eb15
+ ld c, SCREEN_WIDTH - 2
+.next_column
+ ld [hli], a
+ dec c
+ jr nz, .next_column
+ ret
+; 4eb1c
+
+.FillColumn ; 4eb1c
+ ld de, SCREEN_WIDTH
+ ld c, SCREEN_HEIGHT - 2
+.next_row
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .next_row
+ ret
+; 4eb27
+
+
+DrawGBCOnlyGraphic: ; 4eb27
+ ld de, SCREEN_WIDTH
+.y
+ push bc
+ push hl
+.x
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .x
+ pop hl
+ add hl, de
+ pop bc
+ dec c
+ jr nz, .y
+ ret
+; 4eb38
+
+
+GBCOnlyString: ; 4eb38
+ db "This Game Pak is", $4e
+ db "designed only for", $4e
+ db "use on the", $4e
+ db "Game Boy Color.@"
+; 4eb76
+
+
+GBCOnlyGFX: ; 4eb76
+INCBIN "gfx/misc/gbc_only.lz"
+; 4f0bc
+
diff --git a/preprocessor.py b/preprocessor.py
index b5f2e3a4a..93508c027 100644
--- a/preprocessor.py
+++ b/preprocessor.py
@@ -25,6 +25,11 @@ from extras.pokemontools.audio import (
Note,
)
+from extras.pokemontools.battle_animations import (
+ Wait,
+ battle_animation_classes,
+)
+
def load_pokecrystal_macros():
"""
Construct a list of macros that are needed for pokecrystal preprocessing.
@@ -40,6 +45,7 @@ def load_pokecrystal_macros():
ChannelCommand,
OctaveCommand,
Note,
+ Wait,
]
ourmacros += command_classes
@@ -48,20 +54,20 @@ def load_pokecrystal_macros():
ourmacros += movement_command_classes
ourmacros += music_classes
ourmacros += effect_classes
+ ourmacros += battle_animation_classes
return ourmacros
-def preprocess(config, macros, lines=None):
- """
- Entry point for the preprocessor.
- """
+def setup_processor():
+ config = configuration.Config()
+ macros = load_pokecrystal_macros()
processor = preprocessor.Preprocessor(config, macros)
- return processor.preprocess(lines=lines)
+ return processor
def main():
- config = configuration.Config()
- macros = load_pokecrystal_macros()
- return preprocess(config, macros)
+ processor = setup_processor()
+ processor.preprocess()
+ processor.update_globals
# only run against stdin when not included as a module
if __name__ == "__main__":
diff --git a/prequeue.py b/prequeue.py
index 2adb03bfb..a91f1b336 100644
--- a/prequeue.py
+++ b/prequeue.py
@@ -8,24 +8,33 @@ a single process.
import os
import sys
-import extras.pokemontools.configuration as configuration
-
import preprocessor
-def main():
- config = configuration.Config()
- macros = preprocessor.load_pokecrystal_macros()
+def preprocess_queue(filenames=sys.argv[1:]):
+ stdin = sys.stdin
stdout = sys.stdout
- for source in sys.argv[1:]:
+ processor = preprocessor.setup_processor()
+
+ for source in filenames:
dest = os.path.splitext(source)[0] + '.tx'
sys.stdin = open(source, 'r')
sys.stdout = open(dest, 'w')
- preprocessor.preprocess(config, macros)
+ processor.preprocess()
- # reset stdout
+ processor.update_globals()
+
+ sys.stdin = stdin
sys.stdout = stdout
+def main():
+ filenames = list(set(sys.argv[1:]))
+ if filenames:
+ num_files = len(filenames)
+ s = '' if num_files == 1 else 's'
+ sys.stdout.write('Preprocessing {0} file{1}...\n'.format(num_files, s))
+ preprocess_queue(filenames)
+
if __name__ == '__main__':
main()
diff --git a/scan_includes.py b/scan_includes.py
deleted file mode 100644
index 0abd3084a..000000000
--- a/scan_includes.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# coding: utf-8
-
-"""
-Recursively scan an asm file for rgbasm INCLUDEs and INCBINs.
-This is used to generate dependencies for each rgbasm object file.
-"""
-
-import os
-import sys
-
-def scan_for_includes(filename):
- filenames = []
- if os.path.exists(filename):
- for line in open(filename, 'r').readlines():
- if 'INCLUDE' in line or 'INCBIN' in line:
- line = line.split(';')[0]
- if 'INCLUDE' in line or 'INCBIN' in line:
- filenames += [line.split('"')[1]]
- return filenames
-
-def recursive_scan_for_includes(filename):
- filenames = []
- if '.asm' in filename or '.tx' in filename:
- for include in scan_for_includes(filename):
- filenames += [include] + recursive_scan_for_includes(include)
- return filenames
-
-if len(sys.argv) > 1:
- for arg in sys.argv[1:]:
- sys.stdout.write(' '.join(recursive_scan_for_includes(arg)))
-
diff --git a/stats/egg_moves_crystal.asm b/stats/egg_moves_crystal.asm
index ea9414231..c4e626e3b 100644
--- a/stats/egg_moves_crystal.asm
+++ b/stats/egg_moves_crystal.asm
@@ -1,6 +1,8 @@
INCLUDE "pokecrystal.asm"
INCLUDE "includes.asm"
-SECTION "eggmoves", ROMX, BANK[$8]
+
+SECTION "Egg Moves", ROMX, BANK[EGG_MOVES]
+
INCLUDE "stats/egg_move_pointers.asm"
INCLUDE "stats/egg_moves.asm"
diff --git a/stats/evos_attacks_crystal.asm b/stats/evos_attacks_crystal.asm
index 1c57e7912..093baadc5 100644
--- a/stats/evos_attacks_crystal.asm
+++ b/stats/evos_attacks_crystal.asm
@@ -1,6 +1,8 @@
INCLUDE "pokecrystal.asm"
INCLUDE "includes.asm"
-SECTION "evosattacks", ROMx, BANK[$10]
+
+SECTION "Evolutions and Attacks", ROMX, BANK[EVOS_ATTACKS]
+
INCLUDE "stats/evos_attacks_pointers.asm"
INCLUDE "stats/evos_attacks.asm"
diff --git a/stats/pokedex/entries.asm b/stats/pokedex/entries.asm
new file mode 100644
index 000000000..7cfaa254d
--- /dev/null
+++ b/stats/pokedex/entries.asm
@@ -0,0 +1,24 @@
+
+SECTION "Pokedex Entries 001-064", ROMX, BANK[POKEDEX_ENTRIES_1]
+
+PokedexEntries1:
+INCLUDE "stats/pokedex/entries_1.asm"
+
+
+SECTION "Pokedex Entries 065-128", ROMX, BANK[POKEDEX_ENTRIES_2]
+
+PokedexEntries2:
+INCLUDE "stats/pokedex/entries_2.asm"
+
+
+SECTION "Pokedex Entries 129-192", ROMX, BANK[POKEDEX_ENTRIES_3]
+
+PokedexEntries3:
+INCLUDE "stats/pokedex/entries_3.asm"
+
+
+SECTION "Pokedex Entries 193-251", ROMX, BANK[POKEDEX_ENTRIES_4]
+
+PokedexEntries4:
+INCLUDE "stats/pokedex/entries_4.asm"
+
diff --git a/stats/pokedex/entries_crystal.asm b/stats/pokedex/entries_crystal.asm
new file mode 100644
index 000000000..f66d52350
--- /dev/null
+++ b/stats/pokedex/entries_crystal.asm
@@ -0,0 +1,5 @@
+INCLUDE "pokecrystal.asm"
+INCLUDE "includes.asm"
+
+INCLUDE "stats/pokedex/entries.asm"
+
diff --git a/tilesets/dark.pal b/tilesets/dark.pal
index bdfd30645..4c4f7700d 100644
--- a/tilesets/dark.pal
+++ b/tilesets/dark.pal
Binary files differ
diff --git a/tilesets/data_2.asm b/tilesets/data_2.asm
index a04f0c56b..ab02b8b7f 100644
--- a/tilesets/data_2.asm
+++ b/tilesets/data_2.asm
@@ -52,11 +52,11 @@ INCBIN "gfx/tilesets/24.lz"
Tileset24Meta: ; 0x1ee1c
Tileset30Meta: ; 0x1ee1c
-INCBIN "tilesets/30_metatiles.bin"
+INCBIN "tilesets/24_metatiles.bin"
; 0x1f21c
Tileset24Coll: ; 0x1f21c
Tileset30Coll: ; 0x1f21c
-INCBIN "tilesets/30_collision.bin"
+INCBIN "tilesets/24_collision.bin"
; 0x1f31c
diff --git a/tilesets/data_4.asm b/tilesets/data_4.asm
index 9b05877cb..f6e490f77 100644
--- a/tilesets/data_4.asm
+++ b/tilesets/data_4.asm
@@ -50,3 +50,11 @@ Tileset30GFX: ; 0x326b0
INCBIN "gfx/tilesets/30.lz"
; 0x329f0
+UnusedTileset30Meta: ; 0x329f0
+INCBIN "tilesets/unused_30_metatiles.bin"
+; 0x331f0
+
+UnusedTileset30Coll: ; 0x331f0
+INCBIN "tilesets/unused_30_collision.bin"
+; 0x333f0
+
diff --git a/tilesets/data_7.asm b/tilesets/data_7.asm
index 206551811..418ecec98 100644
--- a/tilesets/data_7.asm
+++ b/tilesets/data_7.asm
@@ -4,7 +4,7 @@ Tileset33GFX: ; 0x1dc5a1
Tileset34GFX: ; 0x1dc5a1
Tileset35GFX: ; 0x1dc5a1
Tileset36GFX: ; 0x1dc5a1
-INCBIN "gfx/tilesets/36.lz"
+INCBIN "gfx/tilesets/26.lz"
; 0x1dd1a9
Tileset26Meta: ; 0x1dd1a9
diff --git a/tilesets/day.pal b/tilesets/day.pal
index 969fe230d..9535caedd 100644
--- a/tilesets/day.pal
+++ b/tilesets/day.pal
Binary files differ
diff --git a/tilesets/morn.pal b/tilesets/morn.pal
index 279a064e2..0ba286f36 100644
--- a/tilesets/morn.pal
+++ b/tilesets/morn.pal
Binary files differ
diff --git a/tilesets/nite.pal b/tilesets/nite.pal
index 8c1079f09..0e2fea242 100644
--- a/tilesets/nite.pal
+++ b/tilesets/nite.pal
Binary files differ
diff --git a/tilesets/palette_maps.asm b/tilesets/palette_maps.asm
index a7ef63c43..9f2f76676 100644
--- a/tilesets/palette_maps.asm
+++ b/tilesets/palette_maps.asm
@@ -105,7 +105,7 @@ Tileset20PalMap: ; 0x4caf5
INCBIN "tilesets/20_palette_map.bin"
; 0x4cb65
-INCBIN "baserom.gbc", $4cb65, $4cbd5-$4cb65
+INCBIN "baserom.gbc", $4cb65, $4cbd5 - $4cb65
Tileset29PalMap: ; 0x4cbd5
INCBIN "tilesets/29_palette_map.bin"
@@ -127,3 +127,5 @@ Tileset04PalMap: ; 0x4cd95
INCBIN "tilesets/04_palette_map.bin"
; 0x4ce05
+INCBIN "baserom.gbc", $4ce05, $4ce1f - $4ce05
+
diff --git a/tilesets/roofs.asm b/tilesets/roofs.asm
new file mode 100644
index 000000000..ebf92b6c1
--- /dev/null
+++ b/tilesets/roofs.asm
@@ -0,0 +1,56 @@
+
+LoadMapGroupRoof: ; 1c000
+ ld a, [MapGroup]
+ ld e, a
+ ld d, 0
+ ld hl, MapGroupRoofs
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld hl, Roofs
+ ld bc, $90
+ call AddNTimes
+ ld de, $90a0
+ ld bc, $90
+ call CopyBytes
+ ret
+; 1c021
+
+MapGroupRoofs: ; 1c021i
+ db -1 ; group 1
+ db 3 ; group 2
+ db 2 ; group 3
+ db -1 ; group 4
+ db 1 ; group 5
+ db 2 ; group 6
+ db -1 ; group 7
+ db -1 ; group 8
+ db 2 ; group 9
+ db 2 ; group 10
+ db 1 ; group 11
+ db 4 ; group 12
+ db -1 ; group 13
+ db -1 ; group 14
+ db -1 ; group 15
+ db -1 ; group 16
+ db -1 ; group 17
+ db -1 ; group 18
+ db -1 ; group 19
+ db 0 ; group 20
+ db -1 ; group 21
+ db -1 ; group 22
+ db 3 ; group 23
+ db -1 ; group 24
+ db 0 ; group 25
+ db -1 ; group 26
+ db 0 ; group 27
+; 1c03c
+
+Roofs: ; 1c03c
+INCBIN "gfx/tilesets/roofs/0.2bpp"
+INCBIN "gfx/tilesets/roofs/1.2bpp"
+INCBIN "gfx/tilesets/roofs/2.2bpp"
+INCBIN "gfx/tilesets/roofs/3.2bpp"
+INCBIN "gfx/tilesets/roofs/4.2bpp"
+; 1c30c
diff --git a/tilesets/unused_30_collision.bin b/tilesets/unused_30_collision.bin
new file mode 100644
index 000000000..559aad109
--- /dev/null
+++ b/tilesets/unused_30_collision.bin
Binary files differ
diff --git a/tilesets/unused_30_metatiles.bin b/tilesets/unused_30_metatiles.bin
new file mode 100644
index 000000000..b70f1a0e6
--- /dev/null
+++ b/tilesets/unused_30_metatiles.bin
Binary files differ
diff --git a/trainers/trainer_pointers.asm b/trainers/trainer_pointers.asm
index 1872a8194..c0b3d4538 100644
--- a/trainers/trainer_pointers.asm
+++ b/trainers/trainer_pointers.asm
@@ -1,5 +1,6 @@
; Each trainer class has its own group. See trainers.asm.
+TrainerGroups: ; 0x39999
dw FalknerGroup
dw WhitneyGroup
dw BugsyGroup
diff --git a/wram.asm b/wram.asm
index 2054d2ff0..c55c49c46 100644
--- a/wram.asm
+++ b/wram.asm
@@ -377,7 +377,7 @@ SpritesEnd:
TileMap: ; c4a0
; 20x18 grid of 8x8 tiles
ds 360
-
+TileMapEnd:
SECTION "BattleMons",WRAM0[$c608]
@@ -1636,18 +1636,17 @@ CurDay: ; d4cb
ds 10
- ds 2
+ObjectStructs:
+
+PlayerStruct: ; d4d6
+ ds 2
PlayerSprite: ; d4d8
ds 1
-
ds 3
-
PlayerPalette: ; d4dc
ds 1
-
ds 1
-
PlayerDirection: ; d4de
; uses bits 2 and 3 / $0c / %00001100
; %00 down
@@ -1655,23 +1654,20 @@ PlayerDirection: ; d4de
; %10 left
; $11 right
ds 1
-
ds 2
-
PlayerAction: ; d4e1
; 1 standing
; 2 walking
; 4 spinning
; 6 fishing
ds 1
-
- ds 2
-
+ ds 1
+PlayerFacing: ; d4e3
+ ds 1
StandingTile: ; d4e4
ds 1
StandingTile2: ; d4e5
ds 1
-
; relative to the map struct including borders
MapX: ; d4e6
ds 1
@@ -1681,15 +1677,39 @@ MapX2: ; d4e8
ds 1
MapY2: ; d4e9
ds 1
-
ds 3
-
; relative to the bg map, in px
PlayerSpriteX: ; d4ed
ds 1
PlayerSpriteY: ; d4ee
ds 1
+ ds 15
+ObjectStruct1: ; d4fe
+ ds 40
+ObjectStruct2: ; d526
+ ds 40
+ObjectStruct3: ; d54e
+ ds 40
+ObjectStruct4: ; d576
+ ds 40
+ObjectStruct5: ; d59e
+ ds 40
+ObjectStruct6: ; d5c6
+ ds 40
+ObjectStruct7: ; d5ee
+ ds 40
+ObjectStruct8: ; d616
+ ds 40
+ObjectStruct9: ; d63e
+ ds 40
+ObjectStruct10: ; d666
+ ds 40
+ObjectStruct11: ; d68e
+ ds 40
+ObjectStruct12: ; d6b6
+ ds 40
+; d6de
SECTION "Objects",WRAMX[$d71e],BANK[1]
MapObjects: ; d71e
@@ -1854,8 +1874,8 @@ StepCount: ; dc73
PoisonStepCount: ; dc74
ds 1
-SECTION "FlypointPermissions", WRAMX[$dca5],BANK[1]
-FlypointPerms: ; dca5
+SECTION "Visited Spawn Points", WRAMX[$dca5],BANK[1]
+VisitedSpawns: ; dca5
ds 4
SECTION "BackupMapInfo", WRAMX[$dcad],BANK[1]
@@ -2121,6 +2141,43 @@ LYOverrides: ; d100
ds 144
LYOverridesEnd:
+ ds 112
+
+LYOverridesBackup: ; d200
+ ds 144
+LYOverridesBackupEnd:
+
+
+SECTION "Battle Animations", WRAMX[$d30a], BANK[5]
+
+ActiveAnimObjects: ; d30a
+ ds 4 * 40
+
+ ds 80
+
+ActiveBGEffects: ; d3fa
+ ds 4 * 5
+
+ ds 1
+
+BattleAnimFlags: ; d40f
+ ds 1
+BattleAnimAddress: ; d410
+ ds 2
+BattleAnimDuration: ; d412
+ ds 1
+BattleAnimParent: ; d413
+ ds 2
+BattleAnimLoops: ; d415
+ ds 1
+BattleAnimVar: ; d416
+ ds 1
+BattleAnimByte: ; d417
+ ds 1
+ ds 1
+BattleAnimTemps: ; d419
+ ds 8
+
SECTION "SRAMBank1",SRAM,BANK[1]