diff options
-rw-r--r-- | .gitattributes | 1 | ||||
-rw-r--r-- | INSTALL.md | 178 | ||||
-rw-r--r-- | Makefile | 140 | ||||
-rw-r--r-- | README.md | 30 | ||||
-rw-r--r-- | audio.asm | 173 | ||||
-rw-r--r-- | battle/anim_commands.asm | 1549 | ||||
-rw-r--r-- | battle/anim_gfx.asm | 42 | ||||
-rw-r--r-- | battle/anim_objects.asm | 5092 | ||||
-rw-r--r-- | battle/anims.asm | 5310 | ||||
-rw-r--r-- | battle/bg_effects.asm | 2938 | ||||
-rw-r--r-- | battle/core.asm | 9479 | ||||
-rw-r--r-- | battle/effect_command_pointers.asm | 5 | ||||
-rw-r--r-- | battle/effect_commands.asm | 511 | ||||
-rw-r--r-- | battle/effects/foresight.asm | 24 | ||||
-rw-r--r-- | battle/effects/metronome.asm | 62 | ||||
-rw-r--r-- | battle/effects/mirror_move.asm | 53 | ||||
-rw-r--r-- | battle/effects/nightmare.asm | 39 | ||||
-rw-r--r-- | battle/effects/perish_song.asm | 41 | ||||
-rw-r--r-- | battle/effects/rollout.asm | 97 | ||||
-rw-r--r-- | battle/effects/sandstorm.asm | 20 | ||||
-rw-r--r-- | battle/effects/thief.asm | 117 | ||||
-rw-r--r-- | constants.asm | 82 | ||||
-rw-r--r-- | constants/animation_constants.asm | 63 | ||||
-rw-r--r-- | constants/battle_constants.asm | 4 | ||||
-rw-r--r-- | constants/gfx_constants.asm | 40 | ||||
-rw-r--r-- | constants/landmark_constants.asm | 103 | ||||
-rw-r--r-- | constants/map_constants.asm | 17 | ||||
-rw-r--r-- | constants/move_constants.asm | 510 | ||||
-rw-r--r-- | constants/pokemon_constants.asm | 506 | ||||
-rw-r--r-- | constants/script_constants.asm | 1 | ||||
-rw-r--r-- | constants/wram_constants.asm | 71 | ||||
-rw-r--r-- | contents.asm | 131 | ||||
-rw-r--r-- | engine/color.asm | 10 | ||||
-rw-r--r-- | engine/credits.asm | 896 | ||||
-rw-r--r-- | engine/credits_crystal.asm | 6 | ||||
-rw-r--r-- | engine/engine_flags.asm | 54 | ||||
-rw-r--r-- | engine/events.asm | 15 | ||||
-rw-r--r-- | engine/events_2.asm | 3 | ||||
-rw-r--r-- | engine/facings.asm | 269 | ||||
-rw-r--r-- | engine/fruit_trees.asm | 18 | ||||
-rw-r--r-- | engine/landmarks.asm | 720 | ||||
-rw-r--r-- | engine/movement.asm | 38 | ||||
-rw-r--r-- | engine/scripting.asm | 12 | ||||
-rw-r--r-- | engine/scripting_crystal.asm | 4 | ||||
-rw-r--r-- | engine/std_scripts.asm | 594 | ||||
-rw-r--r-- | event/name_rater.asm | 24 | ||||
-rw-r--r-- | event/poke_seer.asm | 452 | ||||
m--------- | extras | 0 | ||||
-rw-r--r-- | gbhw.asm | 9 | ||||
-rw-r--r-- | gfx/battle/minimize.2bpp | bin | 0 -> 16 bytes | |||
-rw-r--r-- | gfx/credits/theend.2bpp | bin | 0 -> 256 bytes | |||
-rw-r--r-- | gfx/misc/fast_ship.2bpp | bin | 0 -> 128 bytes | |||
-rw-r--r-- | gfx/misc/gbc_only.lz | bin | 0 -> 1350 bytes | |||
-rw-r--r-- | gfx/mobile/havewant.2bpp | bin | 0 -> 2304 bytes | |||
-rw-r--r-- | gfx/mobile/hp.1bpp | bin | 0 -> 8 bytes | |||
-rw-r--r-- | gfx/mobile/lv.1bpp | bin | 0 -> 8 bytes | |||
-rw-r--r-- | gfx/mobile/pokemon_news.2bpp | bin | 0 -> 1152 bytes | |||
-rw-r--r-- | gfx/mobile/select.2bpp | bin | 0 -> 512 bytes | |||
-rw-r--r-- | gfx/pics.asm | 798 | ||||
-rw-r--r-- | gfx/pics/001/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/001/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/002/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/002/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/003/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/003/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/004/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/004/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/005/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/005/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/006/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/006/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/007/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/007/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/008/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/008/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/009/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/009/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/010/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/010/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/011/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/011/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/012/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/012/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/013/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/013/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/014/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/014/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/015/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/015/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/016/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/016/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/017/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/017/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/018/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/018/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/019/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/019/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/020/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/020/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/021/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/021/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/022/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/022/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/023/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/023/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/024/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/024/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/025/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/025/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/026/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/026/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/027/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/027/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/028/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/028/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/029/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/029/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/030/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/030/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/031/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/031/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/032/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/032/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/033/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/033/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/034/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/034/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/035/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/035/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/036/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/036/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/037/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/037/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/038/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/038/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/039/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/039/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/040/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/040/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/041/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/041/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/042/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/042/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/043/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/043/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/044/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/044/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/045/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/045/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/046/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/046/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/047/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/047/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/048/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/048/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/049/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/049/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/050/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/050/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/051/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/051/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/052/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/052/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/053/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/053/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/054/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/054/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/055/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/055/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/056/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/056/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/057/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/057/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/058/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/058/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/059/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/059/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/060/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/060/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/061/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/061/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/062/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/062/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/063/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/063/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/064/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/064/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/065/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/065/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/066/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/066/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/067/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/067/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/068/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/068/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/069/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/069/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/070/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/070/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/071/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/071/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/072/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/072/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/073/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/073/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/074/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/074/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/075/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/075/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/076/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/076/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/077/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/077/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/078/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/078/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/079/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/079/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/080/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/080/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/081/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/081/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/082/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/082/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/083/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/083/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/084/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/084/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/085/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/085/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/086/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/086/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/087/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/087/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/088/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/088/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/089/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/089/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/090/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/090/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/091/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/091/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/092/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/092/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/093/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/093/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/094/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/094/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/095/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/095/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/096/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/096/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/097/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/097/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/098/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/098/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/099/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/099/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/100/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/100/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/101/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/101/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/102/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/102/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/103/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/103/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/104/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/104/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/105/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/105/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/106/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/106/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/107/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/107/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/108/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/108/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/109/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/109/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/110/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/110/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/111/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/111/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/112/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/112/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/113/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/113/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/114/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/114/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/115/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/115/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/116/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/116/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/117/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/117/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/118/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/118/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/119/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/119/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/120/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/120/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/121/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/121/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/122/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/122/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/123/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/123/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/124/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/124/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/125/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/125/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/126/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/126/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/127/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/127/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/128/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/128/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/129/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/129/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/130/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/130/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/131/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/131/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/132/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/132/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/133/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/133/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/134/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/134/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/135/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/135/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/136/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/136/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/137/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/137/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/138/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/138/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/139/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/139/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/140/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/140/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/141/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/141/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/142/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/142/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/143/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/143/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/144/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/144/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/145/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/145/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/146/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/146/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/147/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/147/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/148/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/148/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/149/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/149/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/150/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/150/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/151/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/151/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/152/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/152/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/153/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/153/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/154/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/154/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/155/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/155/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/156/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/156/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/157/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/157/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/158/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/158/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/159/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/159/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/160/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/160/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/161/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/161/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/162/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/162/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/163/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/163/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/164/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/164/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/165/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/165/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/166/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/166/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/167/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/167/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/168/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/168/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/169/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/169/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/170/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/170/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/171/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/171/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/172/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/172/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/173/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/173/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/174/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/174/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/175/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/175/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/176/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/176/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/177/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/177/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/178/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/178/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/179/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/179/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/180/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/180/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/181/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/181/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/182/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/182/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/183/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/183/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/184/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/184/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/185/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/185/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/186/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/186/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/187/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/187/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/188/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/188/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/189/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/189/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/190/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/190/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/191/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/191/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/192/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/192/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/193/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/193/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/194/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/194/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/195/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/195/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/196/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/196/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/197/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/197/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/198/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/198/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/199/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/199/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/200/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/200/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/201/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/201/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/202/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/202/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/203/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/203/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/204/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/204/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/205/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/205/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/206/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/206/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/207/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/207/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/208/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/208/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/209/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/209/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/210/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/210/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/211/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/211/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/212/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/212/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/213/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/213/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/214/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/214/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/215/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/215/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/216/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/216/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/217/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/217/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/218/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/218/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/219/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/219/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/220/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/220/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/221/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/221/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/222/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/222/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/223/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/223/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/224/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/224/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/225/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/225/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/226/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/226/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/227/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/227/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/228/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/228/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/229/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/229/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/230/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/230/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/231/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/231/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/232/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/232/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/233/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/233/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/234/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/234/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/235/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/235/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/236/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/236/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/237/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/237/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/238/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/238/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/239/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/239/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/240/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/240/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/241/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/241/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/242/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/242/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/243/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/243/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/244/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/244/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/245/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/245/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/246/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/246/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/247/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/247/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/248/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/248/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/249/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/249/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/250/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/250/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/251/normal.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/251/shiny.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/pics/anim_pointers.asm | 1 | ||||
-rw-r--r-- | gfx/pics/animation.asm | 1029 | ||||
-rw-r--r-- | gfx/pics/bitmask_pointers.asm | 1 | ||||
-rw-r--r-- | gfx/pics/extra_pointers.asm | 1 | ||||
-rw-r--r-- | gfx/pics/frame_pointers.asm | 1 | ||||
-rw-r--r-- | gfx/pics/palette_pointers.asm | 1004 | ||||
-rw-r--r-- | gfx/pics/unown_anim_pointers.asm | 1 | ||||
-rw-r--r-- | gfx/pics/unown_bitmask_pointers.asm | 1 | ||||
-rw-r--r-- | gfx/pics/unown_extra_pointers.asm | 1 | ||||
-rw-r--r-- | gfx/pics/unown_frame_pointers.asm | 2 | ||||
-rw-r--r-- | gfx/stats/shiny.2bpp | 1 | ||||
-rw-r--r-- | gfx/trainers/000.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/001.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/002.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/003.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/004.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/005.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/006.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/007.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/008.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/009.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/010.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/011.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/012.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/013.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/014.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/015.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/016.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/017.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/018.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/019.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/020.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/021.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/022.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/023.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/024.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/025.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/026.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/027.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/028.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/029.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/030.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/031.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/032.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/033.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/034.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/035.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/036.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/037.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/038.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/039.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/040.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/041.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/042.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/043.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/044.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/045.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/046.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/047.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/048.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/049.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/050.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/051.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/052.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/053.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/054.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/055.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/056.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/057.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/058.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/059.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/060.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/061.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/062.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/063.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/064.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/065.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/066.pal | bin | 8 -> 34 bytes | |||
-rw-r--r-- | gfx/trainers/palette_pointers.asm | 134 | ||||
-rw-r--r-- | home.asm | 3408 | ||||
-rw-r--r-- | home/joypad.asm | 8 | ||||
-rw-r--r-- | home/map.asm | 66 | ||||
-rw-r--r-- | home/menu.asm | 21 | ||||
-rw-r--r-- | home/movement.asm | 221 | ||||
-rw-r--r-- | home/text.asm | 4 | ||||
-rw-r--r-- | home/tilemap.asm | 219 | ||||
-rw-r--r-- | home/time.asm | 2 | ||||
-rw-r--r-- | includes.asm | 1 | ||||
-rwxr-xr-x | init.sh | 21 | ||||
-rw-r--r-- | items/item_effects.asm | 16 | ||||
-rw-r--r-- | macros.asm | 18 | ||||
-rw-r--r-- | main.asm | 30163 | ||||
-rw-r--r-- | maps.asm | 511 | ||||
-rw-r--r-- | maps/BattleTowerBattleRoom.asm | 9 | ||||
-rw-r--r-- | maps/BattleTowerHallway.asm | 2 | ||||
-rw-r--r-- | maps/PokeSeersHouse.asm | 6 | ||||
-rw-r--r-- | maps/map_headers.asm | 776 | ||||
-rw-r--r-- | maps_crystal.asm | 5 | ||||
-rw-r--r-- | misc/crystal_misc.asm | 824 | ||||
-rw-r--r-- | misc/gbc_only.asm | 150 | ||||
-rw-r--r-- | preprocessor.py | 22 | ||||
-rw-r--r-- | prequeue.py | 25 | ||||
-rw-r--r-- | scan_includes.py | 31 | ||||
-rw-r--r-- | stats/egg_moves_crystal.asm | 4 | ||||
-rw-r--r-- | stats/evos_attacks_crystal.asm | 4 | ||||
-rw-r--r-- | stats/pokedex/entries.asm | 24 | ||||
-rw-r--r-- | stats/pokedex/entries_crystal.asm | 5 | ||||
-rw-r--r-- | tilesets/dark.pal | bin | 64 -> 512 bytes | |||
-rw-r--r-- | tilesets/data_2.asm | 4 | ||||
-rw-r--r-- | tilesets/data_4.asm | 8 | ||||
-rw-r--r-- | tilesets/data_7.asm | 2 | ||||
-rw-r--r-- | tilesets/day.pal | bin | 64 -> 512 bytes | |||
-rw-r--r-- | tilesets/morn.pal | bin | 64 -> 512 bytes | |||
-rw-r--r-- | tilesets/nite.pal | bin | 64 -> 512 bytes | |||
-rw-r--r-- | tilesets/palette_maps.asm | 4 | ||||
-rw-r--r-- | tilesets/roofs.asm | 56 | ||||
-rw-r--r-- | tilesets/unused_30_collision.bin | bin | 0 -> 512 bytes | |||
-rw-r--r-- | tilesets/unused_30_metatiles.bin | bin | 0 -> 2048 bytes | |||
-rw-r--r-- | trainers/trainer_pointers.asm | 1 | ||||
-rw-r--r-- | wram.asm | 89 |
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. @@ -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: ; + @@ -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 @@ -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 Binary files differnew file mode 100644 index 000000000..66b554de4 --- /dev/null +++ b/gfx/battle/minimize.2bpp diff --git a/gfx/credits/theend.2bpp b/gfx/credits/theend.2bpp Binary files differnew file mode 100644 index 000000000..b689688ba --- /dev/null +++ b/gfx/credits/theend.2bpp diff --git a/gfx/misc/fast_ship.2bpp b/gfx/misc/fast_ship.2bpp Binary files differnew file mode 100644 index 000000000..e4a5525b6 --- /dev/null +++ b/gfx/misc/fast_ship.2bpp diff --git a/gfx/misc/gbc_only.lz b/gfx/misc/gbc_only.lz Binary files differnew file mode 100644 index 000000000..9533fbe6d --- /dev/null +++ b/gfx/misc/gbc_only.lz diff --git a/gfx/mobile/havewant.2bpp b/gfx/mobile/havewant.2bpp Binary files differnew file mode 100644 index 000000000..02cb8bb2c --- /dev/null +++ b/gfx/mobile/havewant.2bpp diff --git a/gfx/mobile/hp.1bpp b/gfx/mobile/hp.1bpp Binary files differnew file mode 100644 index 000000000..6ba57017b --- /dev/null +++ b/gfx/mobile/hp.1bpp diff --git a/gfx/mobile/lv.1bpp b/gfx/mobile/lv.1bpp Binary files differnew file mode 100644 index 000000000..467a12dea --- /dev/null +++ b/gfx/mobile/lv.1bpp diff --git a/gfx/mobile/pokemon_news.2bpp b/gfx/mobile/pokemon_news.2bpp Binary files differnew file mode 100644 index 000000000..cb67b634e --- /dev/null +++ b/gfx/mobile/pokemon_news.2bpp diff --git a/gfx/mobile/select.2bpp b/gfx/mobile/select.2bpp Binary files differnew file mode 100644 index 000000000..53144abf9 --- /dev/null +++ b/gfx/mobile/select.2bpp 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 Binary files differindex 87dbf21c7..75bb2a401 100644 --- a/gfx/pics/001/normal.pal +++ b/gfx/pics/001/normal.pal diff --git a/gfx/pics/001/shiny.pal b/gfx/pics/001/shiny.pal Binary files differindex c8ff4b413..bcd5ad011 100644 --- a/gfx/pics/001/shiny.pal +++ b/gfx/pics/001/shiny.pal diff --git a/gfx/pics/002/normal.pal b/gfx/pics/002/normal.pal Binary files differindex 2d24ef7c2..31f0796cb 100644 --- a/gfx/pics/002/normal.pal +++ b/gfx/pics/002/normal.pal diff --git a/gfx/pics/002/shiny.pal b/gfx/pics/002/shiny.pal Binary files differindex 0a0e9e156..04c81cf45 100644 --- a/gfx/pics/002/shiny.pal +++ b/gfx/pics/002/shiny.pal diff --git a/gfx/pics/003/normal.pal b/gfx/pics/003/normal.pal Binary files differindex 5a976a7dc..3d53b905f 100644 --- a/gfx/pics/003/normal.pal +++ b/gfx/pics/003/normal.pal diff --git a/gfx/pics/003/shiny.pal b/gfx/pics/003/shiny.pal Binary files differindex 14a77e0c9..6cffe65cb 100644 --- a/gfx/pics/003/shiny.pal +++ b/gfx/pics/003/shiny.pal diff --git a/gfx/pics/004/normal.pal b/gfx/pics/004/normal.pal Binary files differindex 5af3ac8ff..9edccc40a 100644 --- a/gfx/pics/004/normal.pal +++ b/gfx/pics/004/normal.pal diff --git a/gfx/pics/004/shiny.pal b/gfx/pics/004/shiny.pal Binary files differindex 94ed4c900..d7a346bd8 100644 --- a/gfx/pics/004/shiny.pal +++ b/gfx/pics/004/shiny.pal diff --git a/gfx/pics/005/normal.pal b/gfx/pics/005/normal.pal Binary files differindex b92452b86..5de328616 100644 --- a/gfx/pics/005/normal.pal +++ b/gfx/pics/005/normal.pal diff --git a/gfx/pics/005/shiny.pal b/gfx/pics/005/shiny.pal Binary files differindex e060e327b..7a86d2cb1 100644 --- a/gfx/pics/005/shiny.pal +++ b/gfx/pics/005/shiny.pal diff --git a/gfx/pics/006/normal.pal b/gfx/pics/006/normal.pal Binary files differindex 392260a7b..e0658358b 100644 --- a/gfx/pics/006/normal.pal +++ b/gfx/pics/006/normal.pal diff --git a/gfx/pics/006/shiny.pal b/gfx/pics/006/shiny.pal Binary files differindex 59ef82839..88c195d74 100644 --- a/gfx/pics/006/shiny.pal +++ b/gfx/pics/006/shiny.pal diff --git a/gfx/pics/007/normal.pal b/gfx/pics/007/normal.pal Binary files differindex 39accab14..04b589372 100644 --- a/gfx/pics/007/normal.pal +++ b/gfx/pics/007/normal.pal diff --git a/gfx/pics/007/shiny.pal b/gfx/pics/007/shiny.pal Binary files differindex e933ff3dd..8df9f8263 100644 --- a/gfx/pics/007/shiny.pal +++ b/gfx/pics/007/shiny.pal diff --git a/gfx/pics/008/normal.pal b/gfx/pics/008/normal.pal Binary files differindex 4a275a308..0615b9ec0 100644 --- a/gfx/pics/008/normal.pal +++ b/gfx/pics/008/normal.pal diff --git a/gfx/pics/008/shiny.pal b/gfx/pics/008/shiny.pal Binary files differindex 8c68f6fbc..c108dfdbf 100644 --- a/gfx/pics/008/shiny.pal +++ b/gfx/pics/008/shiny.pal diff --git a/gfx/pics/009/normal.pal b/gfx/pics/009/normal.pal Binary files differindex fd914d477..2198d5946 100644 --- a/gfx/pics/009/normal.pal +++ b/gfx/pics/009/normal.pal diff --git a/gfx/pics/009/shiny.pal b/gfx/pics/009/shiny.pal Binary files differindex 74d9c55d4..dbde45ec9 100644 --- a/gfx/pics/009/shiny.pal +++ b/gfx/pics/009/shiny.pal diff --git a/gfx/pics/010/normal.pal b/gfx/pics/010/normal.pal Binary files differindex 2d1dc1057..51093dd01 100644 --- a/gfx/pics/010/normal.pal +++ b/gfx/pics/010/normal.pal diff --git a/gfx/pics/010/shiny.pal b/gfx/pics/010/shiny.pal Binary files differindex ab1bda673..32410e492 100644 --- a/gfx/pics/010/shiny.pal +++ b/gfx/pics/010/shiny.pal diff --git a/gfx/pics/011/normal.pal b/gfx/pics/011/normal.pal Binary files differindex 682860905..c171dafcc 100644 --- a/gfx/pics/011/normal.pal +++ b/gfx/pics/011/normal.pal diff --git a/gfx/pics/011/shiny.pal b/gfx/pics/011/shiny.pal Binary files differindex c4ce829be..4d0b72658 100644 --- a/gfx/pics/011/shiny.pal +++ b/gfx/pics/011/shiny.pal diff --git a/gfx/pics/012/normal.pal b/gfx/pics/012/normal.pal Binary files differindex 045707c20..bd2d494a2 100644 --- a/gfx/pics/012/normal.pal +++ b/gfx/pics/012/normal.pal diff --git a/gfx/pics/012/shiny.pal b/gfx/pics/012/shiny.pal Binary files differindex bcca04ae2..75a74906b 100644 --- a/gfx/pics/012/shiny.pal +++ b/gfx/pics/012/shiny.pal diff --git a/gfx/pics/013/normal.pal b/gfx/pics/013/normal.pal Binary files differindex 1eb27958e..9adb83b51 100644 --- a/gfx/pics/013/normal.pal +++ b/gfx/pics/013/normal.pal diff --git a/gfx/pics/013/shiny.pal b/gfx/pics/013/shiny.pal Binary files differindex 580f715cc..45cc7073c 100644 --- a/gfx/pics/013/shiny.pal +++ b/gfx/pics/013/shiny.pal diff --git a/gfx/pics/014/normal.pal b/gfx/pics/014/normal.pal Binary files differindex 1cd3122d6..6760123ec 100644 --- a/gfx/pics/014/normal.pal +++ b/gfx/pics/014/normal.pal diff --git a/gfx/pics/014/shiny.pal b/gfx/pics/014/shiny.pal Binary files differindex 297f44f80..335bdffe9 100644 --- a/gfx/pics/014/shiny.pal +++ b/gfx/pics/014/shiny.pal diff --git a/gfx/pics/015/normal.pal b/gfx/pics/015/normal.pal Binary files differindex 9555eb6d1..fefb75c12 100644 --- a/gfx/pics/015/normal.pal +++ b/gfx/pics/015/normal.pal diff --git a/gfx/pics/015/shiny.pal b/gfx/pics/015/shiny.pal Binary files differindex a8cb62b7f..cfbc9997a 100644 --- a/gfx/pics/015/shiny.pal +++ b/gfx/pics/015/shiny.pal diff --git a/gfx/pics/016/normal.pal b/gfx/pics/016/normal.pal Binary files differindex 1f964fbae..affaa4265 100644 --- a/gfx/pics/016/normal.pal +++ b/gfx/pics/016/normal.pal diff --git a/gfx/pics/016/shiny.pal b/gfx/pics/016/shiny.pal Binary files differindex 358c51a62..e209bc93f 100644 --- a/gfx/pics/016/shiny.pal +++ b/gfx/pics/016/shiny.pal diff --git a/gfx/pics/017/normal.pal b/gfx/pics/017/normal.pal Binary files differindex dfbcc7b16..70fd6b8ce 100644 --- a/gfx/pics/017/normal.pal +++ b/gfx/pics/017/normal.pal diff --git a/gfx/pics/017/shiny.pal b/gfx/pics/017/shiny.pal Binary files differindex 8a29f2922..56a28e867 100644 --- a/gfx/pics/017/shiny.pal +++ b/gfx/pics/017/shiny.pal diff --git a/gfx/pics/018/normal.pal b/gfx/pics/018/normal.pal Binary files differindex dfbcc7b16..70fd6b8ce 100644 --- a/gfx/pics/018/normal.pal +++ b/gfx/pics/018/normal.pal diff --git a/gfx/pics/018/shiny.pal b/gfx/pics/018/shiny.pal Binary files differindex eb8ab0010..68eefb13f 100644 --- a/gfx/pics/018/shiny.pal +++ b/gfx/pics/018/shiny.pal diff --git a/gfx/pics/019/normal.pal b/gfx/pics/019/normal.pal Binary files differindex 8649a0a9f..8b71d7ccc 100644 --- a/gfx/pics/019/normal.pal +++ b/gfx/pics/019/normal.pal diff --git a/gfx/pics/019/shiny.pal b/gfx/pics/019/shiny.pal Binary files differindex d90f5deb3..834a29cf0 100644 --- a/gfx/pics/019/shiny.pal +++ b/gfx/pics/019/shiny.pal diff --git a/gfx/pics/020/normal.pal b/gfx/pics/020/normal.pal Binary files differindex dbc19fac7..769c93f9e 100644 --- a/gfx/pics/020/normal.pal +++ b/gfx/pics/020/normal.pal diff --git a/gfx/pics/020/shiny.pal b/gfx/pics/020/shiny.pal Binary files differindex ab3079428..a0c0f5546 100644 --- a/gfx/pics/020/shiny.pal +++ b/gfx/pics/020/shiny.pal diff --git a/gfx/pics/021/normal.pal b/gfx/pics/021/normal.pal Binary files differindex 678c03950..4f4bcc66b 100644 --- a/gfx/pics/021/normal.pal +++ b/gfx/pics/021/normal.pal diff --git a/gfx/pics/021/shiny.pal b/gfx/pics/021/shiny.pal Binary files differindex d4b36b3fb..188394e5f 100644 --- a/gfx/pics/021/shiny.pal +++ b/gfx/pics/021/shiny.pal diff --git a/gfx/pics/022/normal.pal b/gfx/pics/022/normal.pal Binary files differindex 4ccbed8df..1d4c56a45 100644 --- a/gfx/pics/022/normal.pal +++ b/gfx/pics/022/normal.pal diff --git a/gfx/pics/022/shiny.pal b/gfx/pics/022/shiny.pal Binary files differindex 2724155c0..abc40692b 100644 --- a/gfx/pics/022/shiny.pal +++ b/gfx/pics/022/shiny.pal diff --git a/gfx/pics/023/normal.pal b/gfx/pics/023/normal.pal Binary files differindex 792ae12cd..a98f678b9 100644 --- a/gfx/pics/023/normal.pal +++ b/gfx/pics/023/normal.pal diff --git a/gfx/pics/023/shiny.pal b/gfx/pics/023/shiny.pal Binary files differindex 75562404a..6f71f8cbb 100644 --- a/gfx/pics/023/shiny.pal +++ b/gfx/pics/023/shiny.pal diff --git a/gfx/pics/024/normal.pal b/gfx/pics/024/normal.pal Binary files differindex c41b02616..adae838d4 100644 --- a/gfx/pics/024/normal.pal +++ b/gfx/pics/024/normal.pal diff --git a/gfx/pics/024/shiny.pal b/gfx/pics/024/shiny.pal Binary files differindex af799ff23..3c731f915 100644 --- a/gfx/pics/024/shiny.pal +++ b/gfx/pics/024/shiny.pal diff --git a/gfx/pics/025/normal.pal b/gfx/pics/025/normal.pal Binary files differindex f9f342d11..0ec212f83 100644 --- a/gfx/pics/025/normal.pal +++ b/gfx/pics/025/normal.pal diff --git a/gfx/pics/025/shiny.pal b/gfx/pics/025/shiny.pal Binary files differindex 5644bb0c7..a89172f54 100644 --- a/gfx/pics/025/shiny.pal +++ b/gfx/pics/025/shiny.pal diff --git a/gfx/pics/026/normal.pal b/gfx/pics/026/normal.pal Binary files differindex 3a0beaca5..f03f62b08 100644 --- a/gfx/pics/026/normal.pal +++ b/gfx/pics/026/normal.pal diff --git a/gfx/pics/026/shiny.pal b/gfx/pics/026/shiny.pal Binary files differindex 2ba32b279..0491d1ee2 100644 --- a/gfx/pics/026/shiny.pal +++ b/gfx/pics/026/shiny.pal diff --git a/gfx/pics/027/normal.pal b/gfx/pics/027/normal.pal Binary files differindex 1d31860a8..8039e0086 100644 --- a/gfx/pics/027/normal.pal +++ b/gfx/pics/027/normal.pal diff --git a/gfx/pics/027/shiny.pal b/gfx/pics/027/shiny.pal Binary files differindex 99804a47e..86d48731e 100644 --- a/gfx/pics/027/shiny.pal +++ b/gfx/pics/027/shiny.pal diff --git a/gfx/pics/028/normal.pal b/gfx/pics/028/normal.pal Binary files differindex 8fcbd5352..0c2b451d9 100644 --- a/gfx/pics/028/normal.pal +++ b/gfx/pics/028/normal.pal diff --git a/gfx/pics/028/shiny.pal b/gfx/pics/028/shiny.pal Binary files differindex e29f2c24c..db584124b 100644 --- a/gfx/pics/028/shiny.pal +++ b/gfx/pics/028/shiny.pal diff --git a/gfx/pics/029/normal.pal b/gfx/pics/029/normal.pal Binary files differindex 07def7ad6..d70e16ccb 100644 --- a/gfx/pics/029/normal.pal +++ b/gfx/pics/029/normal.pal diff --git a/gfx/pics/029/shiny.pal b/gfx/pics/029/shiny.pal Binary files differindex 1217b8c44..06dc1de15 100644 --- a/gfx/pics/029/shiny.pal +++ b/gfx/pics/029/shiny.pal diff --git a/gfx/pics/030/normal.pal b/gfx/pics/030/normal.pal Binary files differindex 3c218831b..917840667 100644 --- a/gfx/pics/030/normal.pal +++ b/gfx/pics/030/normal.pal diff --git a/gfx/pics/030/shiny.pal b/gfx/pics/030/shiny.pal Binary files differindex 11b672938..ae93e6242 100644 --- a/gfx/pics/030/shiny.pal +++ b/gfx/pics/030/shiny.pal diff --git a/gfx/pics/031/normal.pal b/gfx/pics/031/normal.pal Binary files differindex 52b2b30fe..3e1053bfb 100644 --- a/gfx/pics/031/normal.pal +++ b/gfx/pics/031/normal.pal diff --git a/gfx/pics/031/shiny.pal b/gfx/pics/031/shiny.pal Binary files differindex 23f5100d3..b27c118a6 100644 --- a/gfx/pics/031/shiny.pal +++ b/gfx/pics/031/shiny.pal diff --git a/gfx/pics/032/normal.pal b/gfx/pics/032/normal.pal Binary files differindex b2a801d2d..6b057e894 100644 --- a/gfx/pics/032/normal.pal +++ b/gfx/pics/032/normal.pal diff --git a/gfx/pics/032/shiny.pal b/gfx/pics/032/shiny.pal Binary files differindex 5e9dde226..771fd4e31 100644 --- a/gfx/pics/032/shiny.pal +++ b/gfx/pics/032/shiny.pal diff --git a/gfx/pics/033/normal.pal b/gfx/pics/033/normal.pal Binary files differindex 416d858a7..039e46d34 100644 --- a/gfx/pics/033/normal.pal +++ b/gfx/pics/033/normal.pal diff --git a/gfx/pics/033/shiny.pal b/gfx/pics/033/shiny.pal Binary files differindex aa1fd6f41..b6d2e6fe9 100644 --- a/gfx/pics/033/shiny.pal +++ b/gfx/pics/033/shiny.pal diff --git a/gfx/pics/034/normal.pal b/gfx/pics/034/normal.pal Binary files differindex cd1c2d27f..b9ab02b8c 100644 --- a/gfx/pics/034/normal.pal +++ b/gfx/pics/034/normal.pal diff --git a/gfx/pics/034/shiny.pal b/gfx/pics/034/shiny.pal Binary files differindex e9e0543a4..61991fb6f 100644 --- a/gfx/pics/034/shiny.pal +++ b/gfx/pics/034/shiny.pal diff --git a/gfx/pics/035/normal.pal b/gfx/pics/035/normal.pal Binary files differindex 4223e6c7b..295fe98ff 100644 --- a/gfx/pics/035/normal.pal +++ b/gfx/pics/035/normal.pal diff --git a/gfx/pics/035/shiny.pal b/gfx/pics/035/shiny.pal Binary files differindex 8751befbf..1c0871557 100644 --- a/gfx/pics/035/shiny.pal +++ b/gfx/pics/035/shiny.pal diff --git a/gfx/pics/036/normal.pal b/gfx/pics/036/normal.pal Binary files differindex 4223e6c7b..295fe98ff 100644 --- a/gfx/pics/036/normal.pal +++ b/gfx/pics/036/normal.pal diff --git a/gfx/pics/036/shiny.pal b/gfx/pics/036/shiny.pal Binary files differindex 8751befbf..1c0871557 100644 --- a/gfx/pics/036/shiny.pal +++ b/gfx/pics/036/shiny.pal diff --git a/gfx/pics/037/normal.pal b/gfx/pics/037/normal.pal Binary files differindex b8720511d..bd887146d 100644 --- a/gfx/pics/037/normal.pal +++ b/gfx/pics/037/normal.pal diff --git a/gfx/pics/037/shiny.pal b/gfx/pics/037/shiny.pal Binary files differindex 903dac000..0084507cd 100644 --- a/gfx/pics/037/shiny.pal +++ b/gfx/pics/037/shiny.pal diff --git a/gfx/pics/038/normal.pal b/gfx/pics/038/normal.pal Binary files differindex 1d536dc69..54de8db00 100644 --- a/gfx/pics/038/normal.pal +++ b/gfx/pics/038/normal.pal diff --git a/gfx/pics/038/shiny.pal b/gfx/pics/038/shiny.pal Binary files differindex 4ff12abde..6b0dafcc8 100644 --- a/gfx/pics/038/shiny.pal +++ b/gfx/pics/038/shiny.pal diff --git a/gfx/pics/039/normal.pal b/gfx/pics/039/normal.pal Binary files differindex 446437576..47aab43ae 100644 --- a/gfx/pics/039/normal.pal +++ b/gfx/pics/039/normal.pal diff --git a/gfx/pics/039/shiny.pal b/gfx/pics/039/shiny.pal Binary files differindex 4b64a688c..38ce5d76d 100644 --- a/gfx/pics/039/shiny.pal +++ b/gfx/pics/039/shiny.pal diff --git a/gfx/pics/040/normal.pal b/gfx/pics/040/normal.pal Binary files differindex 446437576..47aab43ae 100644 --- a/gfx/pics/040/normal.pal +++ b/gfx/pics/040/normal.pal diff --git a/gfx/pics/040/shiny.pal b/gfx/pics/040/shiny.pal Binary files differindex 4b64a688c..38ce5d76d 100644 --- a/gfx/pics/040/shiny.pal +++ b/gfx/pics/040/shiny.pal diff --git a/gfx/pics/041/normal.pal b/gfx/pics/041/normal.pal Binary files differindex e04dd2f0d..d36d0449c 100644 --- a/gfx/pics/041/normal.pal +++ b/gfx/pics/041/normal.pal diff --git a/gfx/pics/041/shiny.pal b/gfx/pics/041/shiny.pal Binary files differindex dd9190f69..722f84ed2 100644 --- a/gfx/pics/041/shiny.pal +++ b/gfx/pics/041/shiny.pal diff --git a/gfx/pics/042/normal.pal b/gfx/pics/042/normal.pal Binary files differindex e04dd2f0d..d36d0449c 100644 --- a/gfx/pics/042/normal.pal +++ b/gfx/pics/042/normal.pal diff --git a/gfx/pics/042/shiny.pal b/gfx/pics/042/shiny.pal Binary files differindex 74d8ba663..2cb1d6ced 100644 --- a/gfx/pics/042/shiny.pal +++ b/gfx/pics/042/shiny.pal diff --git a/gfx/pics/043/normal.pal b/gfx/pics/043/normal.pal Binary files differindex be46323c9..9371027e6 100644 --- a/gfx/pics/043/normal.pal +++ b/gfx/pics/043/normal.pal diff --git a/gfx/pics/043/shiny.pal b/gfx/pics/043/shiny.pal Binary files differindex c7b0c7d5d..6e1d339b4 100644 --- a/gfx/pics/043/shiny.pal +++ b/gfx/pics/043/shiny.pal diff --git a/gfx/pics/044/normal.pal b/gfx/pics/044/normal.pal Binary files differindex 27727c43b..28d801aaa 100644 --- a/gfx/pics/044/normal.pal +++ b/gfx/pics/044/normal.pal diff --git a/gfx/pics/044/shiny.pal b/gfx/pics/044/shiny.pal Binary files differindex 02de2ca5c..998bfce6e 100644 --- a/gfx/pics/044/shiny.pal +++ b/gfx/pics/044/shiny.pal diff --git a/gfx/pics/045/normal.pal b/gfx/pics/045/normal.pal Binary files differindex d8fe44520..4af23de91 100644 --- a/gfx/pics/045/normal.pal +++ b/gfx/pics/045/normal.pal diff --git a/gfx/pics/045/shiny.pal b/gfx/pics/045/shiny.pal Binary files differindex a51b07257..d65151640 100644 --- a/gfx/pics/045/shiny.pal +++ b/gfx/pics/045/shiny.pal diff --git a/gfx/pics/046/normal.pal b/gfx/pics/046/normal.pal Binary files differindex 52a76c361..dcfb3fd8e 100644 --- a/gfx/pics/046/normal.pal +++ b/gfx/pics/046/normal.pal diff --git a/gfx/pics/046/shiny.pal b/gfx/pics/046/shiny.pal Binary files differindex 9820462e0..7a63c68d7 100644 --- a/gfx/pics/046/shiny.pal +++ b/gfx/pics/046/shiny.pal diff --git a/gfx/pics/047/normal.pal b/gfx/pics/047/normal.pal Binary files differindex 86d603437..91c779584 100644 --- a/gfx/pics/047/normal.pal +++ b/gfx/pics/047/normal.pal diff --git a/gfx/pics/047/shiny.pal b/gfx/pics/047/shiny.pal Binary files differindex a19e1361e..343a793bb 100644 --- a/gfx/pics/047/shiny.pal +++ b/gfx/pics/047/shiny.pal diff --git a/gfx/pics/048/normal.pal b/gfx/pics/048/normal.pal Binary files differindex 753b70af6..90e24bc9d 100644 --- a/gfx/pics/048/normal.pal +++ b/gfx/pics/048/normal.pal diff --git a/gfx/pics/048/shiny.pal b/gfx/pics/048/shiny.pal Binary files differindex 8b19cc243..0660ed752 100644 --- a/gfx/pics/048/shiny.pal +++ b/gfx/pics/048/shiny.pal diff --git a/gfx/pics/049/normal.pal b/gfx/pics/049/normal.pal Binary files differindex c48aa8b14..8b1e77e73 100644 --- a/gfx/pics/049/normal.pal +++ b/gfx/pics/049/normal.pal diff --git a/gfx/pics/049/shiny.pal b/gfx/pics/049/shiny.pal Binary files differindex a4e20d640..50d971276 100644 --- a/gfx/pics/049/shiny.pal +++ b/gfx/pics/049/shiny.pal diff --git a/gfx/pics/050/normal.pal b/gfx/pics/050/normal.pal Binary files differindex 7681cb66c..9eaf1baf0 100644 --- a/gfx/pics/050/normal.pal +++ b/gfx/pics/050/normal.pal diff --git a/gfx/pics/050/shiny.pal b/gfx/pics/050/shiny.pal Binary files differindex d4fc910dc..ce41b3928 100644 --- a/gfx/pics/050/shiny.pal +++ b/gfx/pics/050/shiny.pal diff --git a/gfx/pics/051/normal.pal b/gfx/pics/051/normal.pal Binary files differindex 7681cb66c..9eaf1baf0 100644 --- a/gfx/pics/051/normal.pal +++ b/gfx/pics/051/normal.pal diff --git a/gfx/pics/051/shiny.pal b/gfx/pics/051/shiny.pal Binary files differindex d4fc910dc..ce41b3928 100644 --- a/gfx/pics/051/shiny.pal +++ b/gfx/pics/051/shiny.pal diff --git a/gfx/pics/052/normal.pal b/gfx/pics/052/normal.pal Binary files differindex 46edc1ba9..ed418e46d 100644 --- a/gfx/pics/052/normal.pal +++ b/gfx/pics/052/normal.pal diff --git a/gfx/pics/052/shiny.pal b/gfx/pics/052/shiny.pal Binary files differindex b0ceb7754..3ca34fc76 100644 --- a/gfx/pics/052/shiny.pal +++ b/gfx/pics/052/shiny.pal diff --git a/gfx/pics/053/normal.pal b/gfx/pics/053/normal.pal Binary files differindex 41a6ed038..3c3a068a9 100644 --- a/gfx/pics/053/normal.pal +++ b/gfx/pics/053/normal.pal diff --git a/gfx/pics/053/shiny.pal b/gfx/pics/053/shiny.pal Binary files differindex caacd28ab..6ede92a01 100644 --- a/gfx/pics/053/shiny.pal +++ b/gfx/pics/053/shiny.pal diff --git a/gfx/pics/054/normal.pal b/gfx/pics/054/normal.pal Binary files differindex 165996a10..794efb73e 100644 --- a/gfx/pics/054/normal.pal +++ b/gfx/pics/054/normal.pal diff --git a/gfx/pics/054/shiny.pal b/gfx/pics/054/shiny.pal Binary files differindex c23159d57..27cbf08c4 100644 --- a/gfx/pics/054/shiny.pal +++ b/gfx/pics/054/shiny.pal diff --git a/gfx/pics/055/normal.pal b/gfx/pics/055/normal.pal Binary files differindex 9d0c1ed03..22099e9bf 100644 --- a/gfx/pics/055/normal.pal +++ b/gfx/pics/055/normal.pal diff --git a/gfx/pics/055/shiny.pal b/gfx/pics/055/shiny.pal Binary files differindex 074a1041c..cfd29e90e 100644 --- a/gfx/pics/055/shiny.pal +++ b/gfx/pics/055/shiny.pal diff --git a/gfx/pics/056/normal.pal b/gfx/pics/056/normal.pal Binary files differindex b313d200f..3e432d117 100644 --- a/gfx/pics/056/normal.pal +++ b/gfx/pics/056/normal.pal diff --git a/gfx/pics/056/shiny.pal b/gfx/pics/056/shiny.pal Binary files differindex ce3444bbb..455125489 100644 --- a/gfx/pics/056/shiny.pal +++ b/gfx/pics/056/shiny.pal diff --git a/gfx/pics/057/normal.pal b/gfx/pics/057/normal.pal Binary files differindex bff46b959..9888864e2 100644 --- a/gfx/pics/057/normal.pal +++ b/gfx/pics/057/normal.pal diff --git a/gfx/pics/057/shiny.pal b/gfx/pics/057/shiny.pal Binary files differindex 9c035f819..ee3d37e93 100644 --- a/gfx/pics/057/shiny.pal +++ b/gfx/pics/057/shiny.pal diff --git a/gfx/pics/058/normal.pal b/gfx/pics/058/normal.pal Binary files differindex 59c1e2d4d..07a6b3878 100644 --- a/gfx/pics/058/normal.pal +++ b/gfx/pics/058/normal.pal diff --git a/gfx/pics/058/shiny.pal b/gfx/pics/058/shiny.pal Binary files differindex 8b833be15..5033bfda2 100644 --- a/gfx/pics/058/shiny.pal +++ b/gfx/pics/058/shiny.pal diff --git a/gfx/pics/059/normal.pal b/gfx/pics/059/normal.pal Binary files differindex 3721aa578..c7a4f497a 100644 --- a/gfx/pics/059/normal.pal +++ b/gfx/pics/059/normal.pal diff --git a/gfx/pics/059/shiny.pal b/gfx/pics/059/shiny.pal Binary files differindex 496fe9d6f..78da21464 100644 --- a/gfx/pics/059/shiny.pal +++ b/gfx/pics/059/shiny.pal diff --git a/gfx/pics/060/normal.pal b/gfx/pics/060/normal.pal Binary files differindex f661c55a4..20896080e 100644 --- a/gfx/pics/060/normal.pal +++ b/gfx/pics/060/normal.pal diff --git a/gfx/pics/060/shiny.pal b/gfx/pics/060/shiny.pal Binary files differindex a11db6d89..a6dbd0cfd 100644 --- a/gfx/pics/060/shiny.pal +++ b/gfx/pics/060/shiny.pal diff --git a/gfx/pics/061/normal.pal b/gfx/pics/061/normal.pal Binary files differindex 097a5363a..37c6af44e 100644 --- a/gfx/pics/061/normal.pal +++ b/gfx/pics/061/normal.pal diff --git a/gfx/pics/061/shiny.pal b/gfx/pics/061/shiny.pal Binary files differindex f70358c88..1a5ee7b27 100644 --- a/gfx/pics/061/shiny.pal +++ b/gfx/pics/061/shiny.pal diff --git a/gfx/pics/062/normal.pal b/gfx/pics/062/normal.pal Binary files differindex d7b695489..9968e69e6 100644 --- a/gfx/pics/062/normal.pal +++ b/gfx/pics/062/normal.pal diff --git a/gfx/pics/062/shiny.pal b/gfx/pics/062/shiny.pal Binary files differindex ead43d5bb..f9da6007b 100644 --- a/gfx/pics/062/shiny.pal +++ b/gfx/pics/062/shiny.pal diff --git a/gfx/pics/063/normal.pal b/gfx/pics/063/normal.pal Binary files differindex 395101f78..23f50e983 100644 --- a/gfx/pics/063/normal.pal +++ b/gfx/pics/063/normal.pal diff --git a/gfx/pics/063/shiny.pal b/gfx/pics/063/shiny.pal Binary files differindex aa1bd3109..328319095 100644 --- a/gfx/pics/063/shiny.pal +++ b/gfx/pics/063/shiny.pal diff --git a/gfx/pics/064/normal.pal b/gfx/pics/064/normal.pal Binary files differindex 395101f78..23f50e983 100644 --- a/gfx/pics/064/normal.pal +++ b/gfx/pics/064/normal.pal diff --git a/gfx/pics/064/shiny.pal b/gfx/pics/064/shiny.pal Binary files differindex aa1bd3109..328319095 100644 --- a/gfx/pics/064/shiny.pal +++ b/gfx/pics/064/shiny.pal diff --git a/gfx/pics/065/normal.pal b/gfx/pics/065/normal.pal Binary files differindex 395101f78..23f50e983 100644 --- a/gfx/pics/065/normal.pal +++ b/gfx/pics/065/normal.pal diff --git a/gfx/pics/065/shiny.pal b/gfx/pics/065/shiny.pal Binary files differindex afd42cde6..2e52d97de 100644 --- a/gfx/pics/065/shiny.pal +++ b/gfx/pics/065/shiny.pal diff --git a/gfx/pics/066/normal.pal b/gfx/pics/066/normal.pal Binary files differindex 2b5a6aa69..75548c0a3 100644 --- a/gfx/pics/066/normal.pal +++ b/gfx/pics/066/normal.pal diff --git a/gfx/pics/066/shiny.pal b/gfx/pics/066/shiny.pal Binary files differindex caeb3e478..0b940effd 100644 --- a/gfx/pics/066/shiny.pal +++ b/gfx/pics/066/shiny.pal diff --git a/gfx/pics/067/normal.pal b/gfx/pics/067/normal.pal Binary files differindex c2d981082..85f98ff06 100644 --- a/gfx/pics/067/normal.pal +++ b/gfx/pics/067/normal.pal diff --git a/gfx/pics/067/shiny.pal b/gfx/pics/067/shiny.pal Binary files differindex c68a04636..7dceaa4c1 100644 --- a/gfx/pics/067/shiny.pal +++ b/gfx/pics/067/shiny.pal diff --git a/gfx/pics/068/normal.pal b/gfx/pics/068/normal.pal Binary files differindex d94c3b6d2..d9ba2de40 100644 --- a/gfx/pics/068/normal.pal +++ b/gfx/pics/068/normal.pal diff --git a/gfx/pics/068/shiny.pal b/gfx/pics/068/shiny.pal Binary files differindex f970d224a..afe8a06a6 100644 --- a/gfx/pics/068/shiny.pal +++ b/gfx/pics/068/shiny.pal diff --git a/gfx/pics/069/normal.pal b/gfx/pics/069/normal.pal Binary files differindex 0ab79baf7..92f55f832 100644 --- a/gfx/pics/069/normal.pal +++ b/gfx/pics/069/normal.pal diff --git a/gfx/pics/069/shiny.pal b/gfx/pics/069/shiny.pal Binary files differindex 38c2b8ff2..5a2b267f1 100644 --- a/gfx/pics/069/shiny.pal +++ b/gfx/pics/069/shiny.pal diff --git a/gfx/pics/070/normal.pal b/gfx/pics/070/normal.pal Binary files differindex 55ffe6cde..803367e69 100644 --- a/gfx/pics/070/normal.pal +++ b/gfx/pics/070/normal.pal diff --git a/gfx/pics/070/shiny.pal b/gfx/pics/070/shiny.pal Binary files differindex ace435733..e4f10596c 100644 --- a/gfx/pics/070/shiny.pal +++ b/gfx/pics/070/shiny.pal diff --git a/gfx/pics/071/normal.pal b/gfx/pics/071/normal.pal Binary files differindex 36719041c..6e9844ba3 100644 --- a/gfx/pics/071/normal.pal +++ b/gfx/pics/071/normal.pal diff --git a/gfx/pics/071/shiny.pal b/gfx/pics/071/shiny.pal Binary files differindex 79afd8644..c538a41fa 100644 --- a/gfx/pics/071/shiny.pal +++ b/gfx/pics/071/shiny.pal diff --git a/gfx/pics/072/normal.pal b/gfx/pics/072/normal.pal Binary files differindex af2c79d4c..91a11c6b7 100644 --- a/gfx/pics/072/normal.pal +++ b/gfx/pics/072/normal.pal diff --git a/gfx/pics/072/shiny.pal b/gfx/pics/072/shiny.pal Binary files differindex a0d61c5b1..1fec33a22 100644 --- a/gfx/pics/072/shiny.pal +++ b/gfx/pics/072/shiny.pal diff --git a/gfx/pics/073/normal.pal b/gfx/pics/073/normal.pal Binary files differindex 1ba3d0eb7..98f28bd61 100644 --- a/gfx/pics/073/normal.pal +++ b/gfx/pics/073/normal.pal diff --git a/gfx/pics/073/shiny.pal b/gfx/pics/073/shiny.pal Binary files differindex 9b565a2c6..afe40aff6 100644 --- a/gfx/pics/073/shiny.pal +++ b/gfx/pics/073/shiny.pal diff --git a/gfx/pics/074/normal.pal b/gfx/pics/074/normal.pal Binary files differindex cdc68419e..8df6a1104 100644 --- a/gfx/pics/074/normal.pal +++ b/gfx/pics/074/normal.pal diff --git a/gfx/pics/074/shiny.pal b/gfx/pics/074/shiny.pal Binary files differindex 4f2fe0884..305e1a362 100644 --- a/gfx/pics/074/shiny.pal +++ b/gfx/pics/074/shiny.pal diff --git a/gfx/pics/075/normal.pal b/gfx/pics/075/normal.pal Binary files differindex dc246e18c..fb55478b1 100644 --- a/gfx/pics/075/normal.pal +++ b/gfx/pics/075/normal.pal diff --git a/gfx/pics/075/shiny.pal b/gfx/pics/075/shiny.pal Binary files differindex 022bbd67f..36ba603c5 100644 --- a/gfx/pics/075/shiny.pal +++ b/gfx/pics/075/shiny.pal diff --git a/gfx/pics/076/normal.pal b/gfx/pics/076/normal.pal Binary files differindex 12740cdf0..be50f4de6 100644 --- a/gfx/pics/076/normal.pal +++ b/gfx/pics/076/normal.pal diff --git a/gfx/pics/076/shiny.pal b/gfx/pics/076/shiny.pal Binary files differindex 4e8802480..d50b44fa6 100644 --- a/gfx/pics/076/shiny.pal +++ b/gfx/pics/076/shiny.pal diff --git a/gfx/pics/077/normal.pal b/gfx/pics/077/normal.pal Binary files differindex 13c379ae3..da67a88f7 100644 --- a/gfx/pics/077/normal.pal +++ b/gfx/pics/077/normal.pal diff --git a/gfx/pics/077/shiny.pal b/gfx/pics/077/shiny.pal Binary files differindex b0243090a..0358f40dd 100644 --- a/gfx/pics/077/shiny.pal +++ b/gfx/pics/077/shiny.pal diff --git a/gfx/pics/078/normal.pal b/gfx/pics/078/normal.pal Binary files differindex 13c379ae3..da67a88f7 100644 --- a/gfx/pics/078/normal.pal +++ b/gfx/pics/078/normal.pal diff --git a/gfx/pics/078/shiny.pal b/gfx/pics/078/shiny.pal Binary files differindex f76ff3224..f6ae96e3c 100644 --- a/gfx/pics/078/shiny.pal +++ b/gfx/pics/078/shiny.pal diff --git a/gfx/pics/079/normal.pal b/gfx/pics/079/normal.pal Binary files differindex c661d262b..e11055a37 100644 --- a/gfx/pics/079/normal.pal +++ b/gfx/pics/079/normal.pal diff --git a/gfx/pics/079/shiny.pal b/gfx/pics/079/shiny.pal Binary files differindex b84ed32c0..a70e0d0ed 100644 --- a/gfx/pics/079/shiny.pal +++ b/gfx/pics/079/shiny.pal diff --git a/gfx/pics/080/normal.pal b/gfx/pics/080/normal.pal Binary files differindex 2e249737f..5f6dd1da4 100644 --- a/gfx/pics/080/normal.pal +++ b/gfx/pics/080/normal.pal diff --git a/gfx/pics/080/shiny.pal b/gfx/pics/080/shiny.pal Binary files differindex 33dab4050..7c1a1e020 100644 --- a/gfx/pics/080/shiny.pal +++ b/gfx/pics/080/shiny.pal diff --git a/gfx/pics/081/normal.pal b/gfx/pics/081/normal.pal Binary files differindex ffd51d365..0ac1c9c8e 100644 --- a/gfx/pics/081/normal.pal +++ b/gfx/pics/081/normal.pal diff --git a/gfx/pics/081/shiny.pal b/gfx/pics/081/shiny.pal Binary files differindex 579e53c5e..1ebbee13f 100644 --- a/gfx/pics/081/shiny.pal +++ b/gfx/pics/081/shiny.pal diff --git a/gfx/pics/082/normal.pal b/gfx/pics/082/normal.pal Binary files differindex ffd51d365..0ac1c9c8e 100644 --- a/gfx/pics/082/normal.pal +++ b/gfx/pics/082/normal.pal diff --git a/gfx/pics/082/shiny.pal b/gfx/pics/082/shiny.pal Binary files differindex 73f610a59..54c3a94ac 100644 --- a/gfx/pics/082/shiny.pal +++ b/gfx/pics/082/shiny.pal diff --git a/gfx/pics/083/normal.pal b/gfx/pics/083/normal.pal Binary files differindex d3746467c..17e60c4ce 100644 --- a/gfx/pics/083/normal.pal +++ b/gfx/pics/083/normal.pal diff --git a/gfx/pics/083/shiny.pal b/gfx/pics/083/shiny.pal Binary files differindex 821ad12e2..2bae03e7f 100644 --- a/gfx/pics/083/shiny.pal +++ b/gfx/pics/083/shiny.pal diff --git a/gfx/pics/084/normal.pal b/gfx/pics/084/normal.pal Binary files differindex f22efcc7a..e32cb088f 100644 --- a/gfx/pics/084/normal.pal +++ b/gfx/pics/084/normal.pal diff --git a/gfx/pics/084/shiny.pal b/gfx/pics/084/shiny.pal Binary files differindex 75c6e2cbc..f8093f636 100644 --- a/gfx/pics/084/shiny.pal +++ b/gfx/pics/084/shiny.pal diff --git a/gfx/pics/085/normal.pal b/gfx/pics/085/normal.pal Binary files differindex d70654816..a38c0466c 100644 --- a/gfx/pics/085/normal.pal +++ b/gfx/pics/085/normal.pal diff --git a/gfx/pics/085/shiny.pal b/gfx/pics/085/shiny.pal Binary files differindex ba2fcb035..521bc017b 100644 --- a/gfx/pics/085/shiny.pal +++ b/gfx/pics/085/shiny.pal diff --git a/gfx/pics/086/normal.pal b/gfx/pics/086/normal.pal Binary files differindex ffe97615a..9c09450cb 100644 --- a/gfx/pics/086/normal.pal +++ b/gfx/pics/086/normal.pal diff --git a/gfx/pics/086/shiny.pal b/gfx/pics/086/shiny.pal Binary files differindex e5119edd0..bee98179f 100644 --- a/gfx/pics/086/shiny.pal +++ b/gfx/pics/086/shiny.pal diff --git a/gfx/pics/087/normal.pal b/gfx/pics/087/normal.pal Binary files differindex df7bdf0bd..80bca6734 100644 --- a/gfx/pics/087/normal.pal +++ b/gfx/pics/087/normal.pal diff --git a/gfx/pics/087/shiny.pal b/gfx/pics/087/shiny.pal Binary files differindex 20f11d749..b9da48134 100644 --- a/gfx/pics/087/shiny.pal +++ b/gfx/pics/087/shiny.pal diff --git a/gfx/pics/088/normal.pal b/gfx/pics/088/normal.pal Binary files differindex 93009f30e..32df6345f 100644 --- a/gfx/pics/088/normal.pal +++ b/gfx/pics/088/normal.pal diff --git a/gfx/pics/088/shiny.pal b/gfx/pics/088/shiny.pal Binary files differindex 0f6989947..893276df4 100644 --- a/gfx/pics/088/shiny.pal +++ b/gfx/pics/088/shiny.pal diff --git a/gfx/pics/089/normal.pal b/gfx/pics/089/normal.pal Binary files differindex 93009f30e..32df6345f 100644 --- a/gfx/pics/089/normal.pal +++ b/gfx/pics/089/normal.pal diff --git a/gfx/pics/089/shiny.pal b/gfx/pics/089/shiny.pal Binary files differindex 92cb4a6e0..34c8de27e 100644 --- a/gfx/pics/089/shiny.pal +++ b/gfx/pics/089/shiny.pal diff --git a/gfx/pics/090/normal.pal b/gfx/pics/090/normal.pal Binary files differindex 7a7db7276..c36e0c685 100644 --- a/gfx/pics/090/normal.pal +++ b/gfx/pics/090/normal.pal diff --git a/gfx/pics/090/shiny.pal b/gfx/pics/090/shiny.pal Binary files differindex f37180377..21c389b28 100644 --- a/gfx/pics/090/shiny.pal +++ b/gfx/pics/090/shiny.pal diff --git a/gfx/pics/091/normal.pal b/gfx/pics/091/normal.pal Binary files differindex 2706c8188..a0061617c 100644 --- a/gfx/pics/091/normal.pal +++ b/gfx/pics/091/normal.pal diff --git a/gfx/pics/091/shiny.pal b/gfx/pics/091/shiny.pal Binary files differindex aea55aee0..973ccfb8a 100644 --- a/gfx/pics/091/shiny.pal +++ b/gfx/pics/091/shiny.pal diff --git a/gfx/pics/092/normal.pal b/gfx/pics/092/normal.pal Binary files differindex 1421a65a0..d91233a51 100644 --- a/gfx/pics/092/normal.pal +++ b/gfx/pics/092/normal.pal diff --git a/gfx/pics/092/shiny.pal b/gfx/pics/092/shiny.pal Binary files differindex 252b21125..50e42ab4a 100644 --- a/gfx/pics/092/shiny.pal +++ b/gfx/pics/092/shiny.pal diff --git a/gfx/pics/093/normal.pal b/gfx/pics/093/normal.pal Binary files differindex 13534da1f..7ef36a1c6 100644 --- a/gfx/pics/093/normal.pal +++ b/gfx/pics/093/normal.pal diff --git a/gfx/pics/093/shiny.pal b/gfx/pics/093/shiny.pal Binary files differindex 2a7678e45..b8ea0d809 100644 --- a/gfx/pics/093/shiny.pal +++ b/gfx/pics/093/shiny.pal diff --git a/gfx/pics/094/normal.pal b/gfx/pics/094/normal.pal Binary files differindex 1c7bbbb0e..16a51fce3 100644 --- a/gfx/pics/094/normal.pal +++ b/gfx/pics/094/normal.pal diff --git a/gfx/pics/094/shiny.pal b/gfx/pics/094/shiny.pal Binary files differindex a1f45b769..ccf6bf685 100644 --- a/gfx/pics/094/shiny.pal +++ b/gfx/pics/094/shiny.pal diff --git a/gfx/pics/095/normal.pal b/gfx/pics/095/normal.pal Binary files differindex 858019a00..2b8c1b6b9 100644 --- a/gfx/pics/095/normal.pal +++ b/gfx/pics/095/normal.pal diff --git a/gfx/pics/095/shiny.pal b/gfx/pics/095/shiny.pal Binary files differindex afaa67dff..66935962c 100644 --- a/gfx/pics/095/shiny.pal +++ b/gfx/pics/095/shiny.pal diff --git a/gfx/pics/096/normal.pal b/gfx/pics/096/normal.pal Binary files differindex 8077570dc..e1e6b8d0c 100644 --- a/gfx/pics/096/normal.pal +++ b/gfx/pics/096/normal.pal diff --git a/gfx/pics/096/shiny.pal b/gfx/pics/096/shiny.pal Binary files differindex 47e0e3835..2b0946ece 100644 --- a/gfx/pics/096/shiny.pal +++ b/gfx/pics/096/shiny.pal diff --git a/gfx/pics/097/normal.pal b/gfx/pics/097/normal.pal Binary files differindex 5a7cb7480..ddcd2b573 100644 --- a/gfx/pics/097/normal.pal +++ b/gfx/pics/097/normal.pal diff --git a/gfx/pics/097/shiny.pal b/gfx/pics/097/shiny.pal Binary files differindex 912466394..51f14601f 100644 --- a/gfx/pics/097/shiny.pal +++ b/gfx/pics/097/shiny.pal diff --git a/gfx/pics/098/normal.pal b/gfx/pics/098/normal.pal Binary files differindex d91b45e81..a347ecf9c 100644 --- a/gfx/pics/098/normal.pal +++ b/gfx/pics/098/normal.pal diff --git a/gfx/pics/098/shiny.pal b/gfx/pics/098/shiny.pal Binary files differindex c5973cb33..57fd91a81 100644 --- a/gfx/pics/098/shiny.pal +++ b/gfx/pics/098/shiny.pal diff --git a/gfx/pics/099/normal.pal b/gfx/pics/099/normal.pal Binary files differindex d91b45e81..a347ecf9c 100644 --- a/gfx/pics/099/normal.pal +++ b/gfx/pics/099/normal.pal diff --git a/gfx/pics/099/shiny.pal b/gfx/pics/099/shiny.pal Binary files differindex 0b20aa210..9a9c3818b 100644 --- a/gfx/pics/099/shiny.pal +++ b/gfx/pics/099/shiny.pal diff --git a/gfx/pics/100/normal.pal b/gfx/pics/100/normal.pal Binary files differindex 71936fd2c..07658abee 100644 --- a/gfx/pics/100/normal.pal +++ b/gfx/pics/100/normal.pal diff --git a/gfx/pics/100/shiny.pal b/gfx/pics/100/shiny.pal Binary files differindex 3c64ad56e..b8509a81f 100644 --- a/gfx/pics/100/shiny.pal +++ b/gfx/pics/100/shiny.pal diff --git a/gfx/pics/101/normal.pal b/gfx/pics/101/normal.pal Binary files differindex 71936fd2c..07658abee 100644 --- a/gfx/pics/101/normal.pal +++ b/gfx/pics/101/normal.pal diff --git a/gfx/pics/101/shiny.pal b/gfx/pics/101/shiny.pal Binary files differindex 3c64ad56e..b8509a81f 100644 --- a/gfx/pics/101/shiny.pal +++ b/gfx/pics/101/shiny.pal diff --git a/gfx/pics/102/normal.pal b/gfx/pics/102/normal.pal Binary files differindex b74da31f6..539432719 100644 --- a/gfx/pics/102/normal.pal +++ b/gfx/pics/102/normal.pal diff --git a/gfx/pics/102/shiny.pal b/gfx/pics/102/shiny.pal Binary files differindex 9ba6fb35b..63686e6f0 100644 --- a/gfx/pics/102/shiny.pal +++ b/gfx/pics/102/shiny.pal diff --git a/gfx/pics/103/normal.pal b/gfx/pics/103/normal.pal Binary files differindex c4dac2948..0318f71a5 100644 --- a/gfx/pics/103/normal.pal +++ b/gfx/pics/103/normal.pal diff --git a/gfx/pics/103/shiny.pal b/gfx/pics/103/shiny.pal Binary files differindex ceaab7176..c580552e0 100644 --- a/gfx/pics/103/shiny.pal +++ b/gfx/pics/103/shiny.pal diff --git a/gfx/pics/104/normal.pal b/gfx/pics/104/normal.pal Binary files differindex 584faad18..eb2ec4b7b 100644 --- a/gfx/pics/104/normal.pal +++ b/gfx/pics/104/normal.pal diff --git a/gfx/pics/104/shiny.pal b/gfx/pics/104/shiny.pal Binary files differindex eb27736c8..e27abe43a 100644 --- a/gfx/pics/104/shiny.pal +++ b/gfx/pics/104/shiny.pal diff --git a/gfx/pics/105/normal.pal b/gfx/pics/105/normal.pal Binary files differindex 584faad18..eb2ec4b7b 100644 --- a/gfx/pics/105/normal.pal +++ b/gfx/pics/105/normal.pal diff --git a/gfx/pics/105/shiny.pal b/gfx/pics/105/shiny.pal Binary files differindex 99b32a0cf..2f2093469 100644 --- a/gfx/pics/105/shiny.pal +++ b/gfx/pics/105/shiny.pal diff --git a/gfx/pics/106/normal.pal b/gfx/pics/106/normal.pal Binary files differindex 7ed63b8ff..f9973fcfd 100644 --- a/gfx/pics/106/normal.pal +++ b/gfx/pics/106/normal.pal diff --git a/gfx/pics/106/shiny.pal b/gfx/pics/106/shiny.pal Binary files differindex 6776568e9..c0ee7cc2e 100644 --- a/gfx/pics/106/shiny.pal +++ b/gfx/pics/106/shiny.pal diff --git a/gfx/pics/107/normal.pal b/gfx/pics/107/normal.pal Binary files differindex 0e8b46582..b735101e8 100644 --- a/gfx/pics/107/normal.pal +++ b/gfx/pics/107/normal.pal diff --git a/gfx/pics/107/shiny.pal b/gfx/pics/107/shiny.pal Binary files differindex c8f0a4604..ff930b7a5 100644 --- a/gfx/pics/107/shiny.pal +++ b/gfx/pics/107/shiny.pal diff --git a/gfx/pics/108/normal.pal b/gfx/pics/108/normal.pal Binary files differindex 2a5aa126e..75782a5b8 100644 --- a/gfx/pics/108/normal.pal +++ b/gfx/pics/108/normal.pal diff --git a/gfx/pics/108/shiny.pal b/gfx/pics/108/shiny.pal Binary files differindex 168141f65..214a63264 100644 --- a/gfx/pics/108/shiny.pal +++ b/gfx/pics/108/shiny.pal diff --git a/gfx/pics/109/normal.pal b/gfx/pics/109/normal.pal Binary files differindex 68d868bdc..a4df75fdc 100644 --- a/gfx/pics/109/normal.pal +++ b/gfx/pics/109/normal.pal diff --git a/gfx/pics/109/shiny.pal b/gfx/pics/109/shiny.pal Binary files differindex e30629fdf..8132fea04 100644 --- a/gfx/pics/109/shiny.pal +++ b/gfx/pics/109/shiny.pal diff --git a/gfx/pics/110/normal.pal b/gfx/pics/110/normal.pal Binary files differindex 2bc228336..38c816da2 100644 --- a/gfx/pics/110/normal.pal +++ b/gfx/pics/110/normal.pal diff --git a/gfx/pics/110/shiny.pal b/gfx/pics/110/shiny.pal Binary files differindex e30629fdf..8132fea04 100644 --- a/gfx/pics/110/shiny.pal +++ b/gfx/pics/110/shiny.pal diff --git a/gfx/pics/111/normal.pal b/gfx/pics/111/normal.pal Binary files differindex a72fb5b31..5dbf17032 100644 --- a/gfx/pics/111/normal.pal +++ b/gfx/pics/111/normal.pal diff --git a/gfx/pics/111/shiny.pal b/gfx/pics/111/shiny.pal Binary files differindex b00706024..4b11a7f20 100644 --- a/gfx/pics/111/shiny.pal +++ b/gfx/pics/111/shiny.pal diff --git a/gfx/pics/112/normal.pal b/gfx/pics/112/normal.pal Binary files differindex a72fb5b31..5dbf17032 100644 --- a/gfx/pics/112/normal.pal +++ b/gfx/pics/112/normal.pal diff --git a/gfx/pics/112/shiny.pal b/gfx/pics/112/shiny.pal Binary files differindex 76bb7a1c4..b036be1f3 100644 --- a/gfx/pics/112/shiny.pal +++ b/gfx/pics/112/shiny.pal diff --git a/gfx/pics/113/normal.pal b/gfx/pics/113/normal.pal Binary files differindex 5233d1aba..f7fafd1f7 100644 --- a/gfx/pics/113/normal.pal +++ b/gfx/pics/113/normal.pal diff --git a/gfx/pics/113/shiny.pal b/gfx/pics/113/shiny.pal Binary files differindex b9f815faf..4d52ad934 100644 --- a/gfx/pics/113/shiny.pal +++ b/gfx/pics/113/shiny.pal diff --git a/gfx/pics/114/normal.pal b/gfx/pics/114/normal.pal Binary files differindex de91e0c0c..c742f093f 100644 --- a/gfx/pics/114/normal.pal +++ b/gfx/pics/114/normal.pal diff --git a/gfx/pics/114/shiny.pal b/gfx/pics/114/shiny.pal Binary files differindex 0f8beb311..089ec35c4 100644 --- a/gfx/pics/114/shiny.pal +++ b/gfx/pics/114/shiny.pal diff --git a/gfx/pics/115/normal.pal b/gfx/pics/115/normal.pal Binary files differindex 309accfde..06a80fc6d 100644 --- a/gfx/pics/115/normal.pal +++ b/gfx/pics/115/normal.pal diff --git a/gfx/pics/115/shiny.pal b/gfx/pics/115/shiny.pal Binary files differindex 1f20d4666..492559959 100644 --- a/gfx/pics/115/shiny.pal +++ b/gfx/pics/115/shiny.pal diff --git a/gfx/pics/116/normal.pal b/gfx/pics/116/normal.pal Binary files differindex b6b3e7360..7a8344a06 100644 --- a/gfx/pics/116/normal.pal +++ b/gfx/pics/116/normal.pal diff --git a/gfx/pics/116/shiny.pal b/gfx/pics/116/shiny.pal Binary files differindex 14371c022..9b9875302 100644 --- a/gfx/pics/116/shiny.pal +++ b/gfx/pics/116/shiny.pal diff --git a/gfx/pics/117/normal.pal b/gfx/pics/117/normal.pal Binary files differindex bb159158b..93b323071 100644 --- a/gfx/pics/117/normal.pal +++ b/gfx/pics/117/normal.pal diff --git a/gfx/pics/117/shiny.pal b/gfx/pics/117/shiny.pal Binary files differindex 7f78e3c4b..7dab3b2ec 100644 --- a/gfx/pics/117/shiny.pal +++ b/gfx/pics/117/shiny.pal diff --git a/gfx/pics/118/normal.pal b/gfx/pics/118/normal.pal Binary files differindex f42a9204f..4ada439c0 100644 --- a/gfx/pics/118/normal.pal +++ b/gfx/pics/118/normal.pal diff --git a/gfx/pics/118/shiny.pal b/gfx/pics/118/shiny.pal Binary files differindex 0e26308af..14910020e 100644 --- a/gfx/pics/118/shiny.pal +++ b/gfx/pics/118/shiny.pal diff --git a/gfx/pics/119/normal.pal b/gfx/pics/119/normal.pal Binary files differindex 9f5675e35..2adfee5c9 100644 --- a/gfx/pics/119/normal.pal +++ b/gfx/pics/119/normal.pal diff --git a/gfx/pics/119/shiny.pal b/gfx/pics/119/shiny.pal Binary files differindex 9b2b7425e..be7291e84 100644 --- a/gfx/pics/119/shiny.pal +++ b/gfx/pics/119/shiny.pal diff --git a/gfx/pics/120/normal.pal b/gfx/pics/120/normal.pal Binary files differindex 1c55899e3..59f7cc477 100644 --- a/gfx/pics/120/normal.pal +++ b/gfx/pics/120/normal.pal diff --git a/gfx/pics/120/shiny.pal b/gfx/pics/120/shiny.pal Binary files differindex 8709e9fd0..11546faee 100644 --- a/gfx/pics/120/shiny.pal +++ b/gfx/pics/120/shiny.pal diff --git a/gfx/pics/121/normal.pal b/gfx/pics/121/normal.pal Binary files differindex 4b63f777e..caaf43505 100644 --- a/gfx/pics/121/normal.pal +++ b/gfx/pics/121/normal.pal diff --git a/gfx/pics/121/shiny.pal b/gfx/pics/121/shiny.pal Binary files differindex 48749f54e..c9932cd86 100644 --- a/gfx/pics/121/shiny.pal +++ b/gfx/pics/121/shiny.pal diff --git a/gfx/pics/122/normal.pal b/gfx/pics/122/normal.pal Binary files differindex 975e9df72..8dd10edc5 100644 --- a/gfx/pics/122/normal.pal +++ b/gfx/pics/122/normal.pal diff --git a/gfx/pics/122/shiny.pal b/gfx/pics/122/shiny.pal Binary files differindex f9204da7f..d9a2accd2 100644 --- a/gfx/pics/122/shiny.pal +++ b/gfx/pics/122/shiny.pal diff --git a/gfx/pics/123/normal.pal b/gfx/pics/123/normal.pal Binary files differindex ba62c5abb..ce30374e5 100644 --- a/gfx/pics/123/normal.pal +++ b/gfx/pics/123/normal.pal diff --git a/gfx/pics/123/shiny.pal b/gfx/pics/123/shiny.pal Binary files differindex 55778c79c..550d6dece 100644 --- a/gfx/pics/123/shiny.pal +++ b/gfx/pics/123/shiny.pal diff --git a/gfx/pics/124/normal.pal b/gfx/pics/124/normal.pal Binary files differindex cf7ea7081..6ae162f94 100644 --- a/gfx/pics/124/normal.pal +++ b/gfx/pics/124/normal.pal diff --git a/gfx/pics/124/shiny.pal b/gfx/pics/124/shiny.pal Binary files differindex 703db102f..7e6ad315e 100644 --- a/gfx/pics/124/shiny.pal +++ b/gfx/pics/124/shiny.pal diff --git a/gfx/pics/125/normal.pal b/gfx/pics/125/normal.pal Binary files differindex d13af3bb3..71fecfa13 100644 --- a/gfx/pics/125/normal.pal +++ b/gfx/pics/125/normal.pal diff --git a/gfx/pics/125/shiny.pal b/gfx/pics/125/shiny.pal Binary files differindex 944420b27..e932aa461 100644 --- a/gfx/pics/125/shiny.pal +++ b/gfx/pics/125/shiny.pal diff --git a/gfx/pics/126/normal.pal b/gfx/pics/126/normal.pal Binary files differindex 1007ba6ff..71372fd59 100644 --- a/gfx/pics/126/normal.pal +++ b/gfx/pics/126/normal.pal diff --git a/gfx/pics/126/shiny.pal b/gfx/pics/126/shiny.pal Binary files differindex 8839b90a2..0ccf2a2dd 100644 --- a/gfx/pics/126/shiny.pal +++ b/gfx/pics/126/shiny.pal diff --git a/gfx/pics/127/normal.pal b/gfx/pics/127/normal.pal Binary files differindex eff04a699..09bf39ff4 100644 --- a/gfx/pics/127/normal.pal +++ b/gfx/pics/127/normal.pal diff --git a/gfx/pics/127/shiny.pal b/gfx/pics/127/shiny.pal Binary files differindex d5d452269..4f586775a 100644 --- a/gfx/pics/127/shiny.pal +++ b/gfx/pics/127/shiny.pal diff --git a/gfx/pics/128/normal.pal b/gfx/pics/128/normal.pal Binary files differindex d397893e0..396e765e2 100644 --- a/gfx/pics/128/normal.pal +++ b/gfx/pics/128/normal.pal diff --git a/gfx/pics/128/shiny.pal b/gfx/pics/128/shiny.pal Binary files differindex 7b6f143fb..cc360615c 100644 --- a/gfx/pics/128/shiny.pal +++ b/gfx/pics/128/shiny.pal diff --git a/gfx/pics/129/normal.pal b/gfx/pics/129/normal.pal Binary files differindex 3ed057ed6..225333e20 100644 --- a/gfx/pics/129/normal.pal +++ b/gfx/pics/129/normal.pal diff --git a/gfx/pics/129/shiny.pal b/gfx/pics/129/shiny.pal Binary files differindex d12ba7a99..24fb00761 100644 --- a/gfx/pics/129/shiny.pal +++ b/gfx/pics/129/shiny.pal diff --git a/gfx/pics/130/normal.pal b/gfx/pics/130/normal.pal Binary files differindex bbdc11e5f..51cc26df9 100644 --- a/gfx/pics/130/normal.pal +++ b/gfx/pics/130/normal.pal diff --git a/gfx/pics/130/shiny.pal b/gfx/pics/130/shiny.pal Binary files differindex 359a6acc3..d0599722d 100644 --- a/gfx/pics/130/shiny.pal +++ b/gfx/pics/130/shiny.pal diff --git a/gfx/pics/131/normal.pal b/gfx/pics/131/normal.pal Binary files differindex 51698d6de..9e617a3ef 100644 --- a/gfx/pics/131/normal.pal +++ b/gfx/pics/131/normal.pal diff --git a/gfx/pics/131/shiny.pal b/gfx/pics/131/shiny.pal Binary files differindex aa3c561cc..58fa3bc59 100644 --- a/gfx/pics/131/shiny.pal +++ b/gfx/pics/131/shiny.pal diff --git a/gfx/pics/132/normal.pal b/gfx/pics/132/normal.pal Binary files differindex ef030d1a7..00cb0d5e6 100644 --- a/gfx/pics/132/normal.pal +++ b/gfx/pics/132/normal.pal diff --git a/gfx/pics/132/shiny.pal b/gfx/pics/132/shiny.pal Binary files differindex b933a8bbd..bcc063864 100644 --- a/gfx/pics/132/shiny.pal +++ b/gfx/pics/132/shiny.pal diff --git a/gfx/pics/133/normal.pal b/gfx/pics/133/normal.pal Binary files differindex 37f4db6bd..d09dba19e 100644 --- a/gfx/pics/133/normal.pal +++ b/gfx/pics/133/normal.pal diff --git a/gfx/pics/133/shiny.pal b/gfx/pics/133/shiny.pal Binary files differindex 6e22a95a9..69759609c 100644 --- a/gfx/pics/133/shiny.pal +++ b/gfx/pics/133/shiny.pal diff --git a/gfx/pics/134/normal.pal b/gfx/pics/134/normal.pal Binary files differindex 3b8f8b979..b910e1146 100644 --- a/gfx/pics/134/normal.pal +++ b/gfx/pics/134/normal.pal diff --git a/gfx/pics/134/shiny.pal b/gfx/pics/134/shiny.pal Binary files differindex 821429c6b..b8571c740 100644 --- a/gfx/pics/134/shiny.pal +++ b/gfx/pics/134/shiny.pal diff --git a/gfx/pics/135/normal.pal b/gfx/pics/135/normal.pal Binary files differindex d8f43dbda..81c384474 100644 --- a/gfx/pics/135/normal.pal +++ b/gfx/pics/135/normal.pal diff --git a/gfx/pics/135/shiny.pal b/gfx/pics/135/shiny.pal Binary files differindex 526826eb8..81d8eda41 100644 --- a/gfx/pics/135/shiny.pal +++ b/gfx/pics/135/shiny.pal diff --git a/gfx/pics/136/normal.pal b/gfx/pics/136/normal.pal Binary files differindex 7c484f11c..2156fb420 100644 --- a/gfx/pics/136/normal.pal +++ b/gfx/pics/136/normal.pal diff --git a/gfx/pics/136/shiny.pal b/gfx/pics/136/shiny.pal Binary files differindex e9dc7a850..7e840a3cd 100644 --- a/gfx/pics/136/shiny.pal +++ b/gfx/pics/136/shiny.pal diff --git a/gfx/pics/137/normal.pal b/gfx/pics/137/normal.pal Binary files differindex c3bba346e..61ca2eef9 100644 --- a/gfx/pics/137/normal.pal +++ b/gfx/pics/137/normal.pal diff --git a/gfx/pics/137/shiny.pal b/gfx/pics/137/shiny.pal Binary files differindex 95c3e55ca..bea4751bf 100644 --- a/gfx/pics/137/shiny.pal +++ b/gfx/pics/137/shiny.pal diff --git a/gfx/pics/138/normal.pal b/gfx/pics/138/normal.pal Binary files differindex 68b252db1..b0df7149b 100644 --- a/gfx/pics/138/normal.pal +++ b/gfx/pics/138/normal.pal diff --git a/gfx/pics/138/shiny.pal b/gfx/pics/138/shiny.pal Binary files differindex 7cf46bc34..cc1531b57 100644 --- a/gfx/pics/138/shiny.pal +++ b/gfx/pics/138/shiny.pal diff --git a/gfx/pics/139/normal.pal b/gfx/pics/139/normal.pal Binary files differindex 68b252db1..b0df7149b 100644 --- a/gfx/pics/139/normal.pal +++ b/gfx/pics/139/normal.pal diff --git a/gfx/pics/139/shiny.pal b/gfx/pics/139/shiny.pal Binary files differindex 90a696978..2b8017338 100644 --- a/gfx/pics/139/shiny.pal +++ b/gfx/pics/139/shiny.pal diff --git a/gfx/pics/140/normal.pal b/gfx/pics/140/normal.pal Binary files differindex 8f9c894df..a8935ce9c 100644 --- a/gfx/pics/140/normal.pal +++ b/gfx/pics/140/normal.pal diff --git a/gfx/pics/140/shiny.pal b/gfx/pics/140/shiny.pal Binary files differindex 0732d83c5..1248ce809 100644 --- a/gfx/pics/140/shiny.pal +++ b/gfx/pics/140/shiny.pal diff --git a/gfx/pics/141/normal.pal b/gfx/pics/141/normal.pal Binary files differindex 8f9c894df..a8935ce9c 100644 --- a/gfx/pics/141/normal.pal +++ b/gfx/pics/141/normal.pal diff --git a/gfx/pics/141/shiny.pal b/gfx/pics/141/shiny.pal Binary files differindex 36e615635..5c7ac28cf 100644 --- a/gfx/pics/141/shiny.pal +++ b/gfx/pics/141/shiny.pal diff --git a/gfx/pics/142/normal.pal b/gfx/pics/142/normal.pal Binary files differindex 9720c150b..a816937e3 100644 --- a/gfx/pics/142/normal.pal +++ b/gfx/pics/142/normal.pal diff --git a/gfx/pics/142/shiny.pal b/gfx/pics/142/shiny.pal Binary files differindex bee021013..6dade0490 100644 --- a/gfx/pics/142/shiny.pal +++ b/gfx/pics/142/shiny.pal diff --git a/gfx/pics/143/normal.pal b/gfx/pics/143/normal.pal Binary files differindex 4ae8279ae..af1845a65 100644 --- a/gfx/pics/143/normal.pal +++ b/gfx/pics/143/normal.pal diff --git a/gfx/pics/143/shiny.pal b/gfx/pics/143/shiny.pal Binary files differindex e6d406586..9a3ed5d55 100644 --- a/gfx/pics/143/shiny.pal +++ b/gfx/pics/143/shiny.pal diff --git a/gfx/pics/144/normal.pal b/gfx/pics/144/normal.pal Binary files differindex 06be755e7..121620e3c 100644 --- a/gfx/pics/144/normal.pal +++ b/gfx/pics/144/normal.pal diff --git a/gfx/pics/144/shiny.pal b/gfx/pics/144/shiny.pal Binary files differindex 9d054dccc..d6c56f521 100644 --- a/gfx/pics/144/shiny.pal +++ b/gfx/pics/144/shiny.pal diff --git a/gfx/pics/145/normal.pal b/gfx/pics/145/normal.pal Binary files differindex 06a121a65..fdfcd0418 100644 --- a/gfx/pics/145/normal.pal +++ b/gfx/pics/145/normal.pal diff --git a/gfx/pics/145/shiny.pal b/gfx/pics/145/shiny.pal Binary files differindex a5361d394..e73dbe6ff 100644 --- a/gfx/pics/145/shiny.pal +++ b/gfx/pics/145/shiny.pal diff --git a/gfx/pics/146/normal.pal b/gfx/pics/146/normal.pal Binary files differindex 78f2349d7..74fbaa204 100644 --- a/gfx/pics/146/normal.pal +++ b/gfx/pics/146/normal.pal diff --git a/gfx/pics/146/shiny.pal b/gfx/pics/146/shiny.pal Binary files differindex 338ecacca..523732d45 100644 --- a/gfx/pics/146/shiny.pal +++ b/gfx/pics/146/shiny.pal diff --git a/gfx/pics/147/normal.pal b/gfx/pics/147/normal.pal Binary files differindex e19e45b35..d4e9f5109 100644 --- a/gfx/pics/147/normal.pal +++ b/gfx/pics/147/normal.pal diff --git a/gfx/pics/147/shiny.pal b/gfx/pics/147/shiny.pal Binary files differindex 512c852c2..e7c9b58a1 100644 --- a/gfx/pics/147/shiny.pal +++ b/gfx/pics/147/shiny.pal diff --git a/gfx/pics/148/normal.pal b/gfx/pics/148/normal.pal Binary files differindex d902aae69..ee0234a5e 100644 --- a/gfx/pics/148/normal.pal +++ b/gfx/pics/148/normal.pal diff --git a/gfx/pics/148/shiny.pal b/gfx/pics/148/shiny.pal Binary files differindex 5b065ac5e..744429411 100644 --- a/gfx/pics/148/shiny.pal +++ b/gfx/pics/148/shiny.pal diff --git a/gfx/pics/149/normal.pal b/gfx/pics/149/normal.pal Binary files differindex 71298dc64..40f8cf8c8 100644 --- a/gfx/pics/149/normal.pal +++ b/gfx/pics/149/normal.pal diff --git a/gfx/pics/149/shiny.pal b/gfx/pics/149/shiny.pal Binary files differindex 0134d11bf..f12fb4a7b 100644 --- a/gfx/pics/149/shiny.pal +++ b/gfx/pics/149/shiny.pal diff --git a/gfx/pics/150/normal.pal b/gfx/pics/150/normal.pal Binary files differindex cfa58fc4e..b32f017f5 100644 --- a/gfx/pics/150/normal.pal +++ b/gfx/pics/150/normal.pal diff --git a/gfx/pics/150/shiny.pal b/gfx/pics/150/shiny.pal Binary files differindex fbf05b5bb..c5dec4c3b 100644 --- a/gfx/pics/150/shiny.pal +++ b/gfx/pics/150/shiny.pal diff --git a/gfx/pics/151/normal.pal b/gfx/pics/151/normal.pal Binary files differindex b88b6f7a0..c01d4ab54 100644 --- a/gfx/pics/151/normal.pal +++ b/gfx/pics/151/normal.pal diff --git a/gfx/pics/151/shiny.pal b/gfx/pics/151/shiny.pal Binary files differindex d486192ef..9b1a1cced 100644 --- a/gfx/pics/151/shiny.pal +++ b/gfx/pics/151/shiny.pal diff --git a/gfx/pics/152/normal.pal b/gfx/pics/152/normal.pal Binary files differindex 8180f413d..06fdb2171 100644 --- a/gfx/pics/152/normal.pal +++ b/gfx/pics/152/normal.pal diff --git a/gfx/pics/152/shiny.pal b/gfx/pics/152/shiny.pal Binary files differindex 7aa98110b..c2ff6a3f8 100644 --- a/gfx/pics/152/shiny.pal +++ b/gfx/pics/152/shiny.pal diff --git a/gfx/pics/153/normal.pal b/gfx/pics/153/normal.pal Binary files differindex 3c0545091..03123d2d2 100644 --- a/gfx/pics/153/normal.pal +++ b/gfx/pics/153/normal.pal diff --git a/gfx/pics/153/shiny.pal b/gfx/pics/153/shiny.pal Binary files differindex 71a6f3cad..fcacccc19 100644 --- a/gfx/pics/153/shiny.pal +++ b/gfx/pics/153/shiny.pal diff --git a/gfx/pics/154/normal.pal b/gfx/pics/154/normal.pal Binary files differindex 66b42f4d3..2186bdc28 100644 --- a/gfx/pics/154/normal.pal +++ b/gfx/pics/154/normal.pal diff --git a/gfx/pics/154/shiny.pal b/gfx/pics/154/shiny.pal Binary files differindex 06e7fff9d..b09a172f6 100644 --- a/gfx/pics/154/shiny.pal +++ b/gfx/pics/154/shiny.pal diff --git a/gfx/pics/155/normal.pal b/gfx/pics/155/normal.pal Binary files differindex 434dffec2..38028335c 100644 --- a/gfx/pics/155/normal.pal +++ b/gfx/pics/155/normal.pal diff --git a/gfx/pics/155/shiny.pal b/gfx/pics/155/shiny.pal Binary files differindex b48c37a41..5b3df0b4e 100644 --- a/gfx/pics/155/shiny.pal +++ b/gfx/pics/155/shiny.pal diff --git a/gfx/pics/156/normal.pal b/gfx/pics/156/normal.pal Binary files differindex 9ef797dad..bee6c6eba 100644 --- a/gfx/pics/156/normal.pal +++ b/gfx/pics/156/normal.pal diff --git a/gfx/pics/156/shiny.pal b/gfx/pics/156/shiny.pal Binary files differindex b48c37a41..5b3df0b4e 100644 --- a/gfx/pics/156/shiny.pal +++ b/gfx/pics/156/shiny.pal diff --git a/gfx/pics/157/normal.pal b/gfx/pics/157/normal.pal Binary files differindex 17e85a17c..6b3f9efe7 100644 --- a/gfx/pics/157/normal.pal +++ b/gfx/pics/157/normal.pal diff --git a/gfx/pics/157/shiny.pal b/gfx/pics/157/shiny.pal Binary files differindex b48c37a41..5b3df0b4e 100644 --- a/gfx/pics/157/shiny.pal +++ b/gfx/pics/157/shiny.pal diff --git a/gfx/pics/158/normal.pal b/gfx/pics/158/normal.pal Binary files differindex 602977dc8..a07351f43 100644 --- a/gfx/pics/158/normal.pal +++ b/gfx/pics/158/normal.pal diff --git a/gfx/pics/158/shiny.pal b/gfx/pics/158/shiny.pal Binary files differindex 3c2cd84b1..c947fe43a 100644 --- a/gfx/pics/158/shiny.pal +++ b/gfx/pics/158/shiny.pal diff --git a/gfx/pics/159/normal.pal b/gfx/pics/159/normal.pal Binary files differindex eca750545..933593e9f 100644 --- a/gfx/pics/159/normal.pal +++ b/gfx/pics/159/normal.pal diff --git a/gfx/pics/159/shiny.pal b/gfx/pics/159/shiny.pal Binary files differindex 2b824eef5..efba52bea 100644 --- a/gfx/pics/159/shiny.pal +++ b/gfx/pics/159/shiny.pal diff --git a/gfx/pics/160/normal.pal b/gfx/pics/160/normal.pal Binary files differindex 78ec4fd30..2cbc9b1f5 100644 --- a/gfx/pics/160/normal.pal +++ b/gfx/pics/160/normal.pal diff --git a/gfx/pics/160/shiny.pal b/gfx/pics/160/shiny.pal Binary files differindex 5de362aa3..afe21b2b2 100644 --- a/gfx/pics/160/shiny.pal +++ b/gfx/pics/160/shiny.pal diff --git a/gfx/pics/161/normal.pal b/gfx/pics/161/normal.pal Binary files differindex b298aa2b8..2d0891fb6 100644 --- a/gfx/pics/161/normal.pal +++ b/gfx/pics/161/normal.pal diff --git a/gfx/pics/161/shiny.pal b/gfx/pics/161/shiny.pal Binary files differindex 39f471d15..86ba2ffba 100644 --- a/gfx/pics/161/shiny.pal +++ b/gfx/pics/161/shiny.pal diff --git a/gfx/pics/162/normal.pal b/gfx/pics/162/normal.pal Binary files differindex 74384fea0..d0bf474c9 100644 --- a/gfx/pics/162/normal.pal +++ b/gfx/pics/162/normal.pal diff --git a/gfx/pics/162/shiny.pal b/gfx/pics/162/shiny.pal Binary files differindex 75f4f1810..fe5870bd6 100644 --- a/gfx/pics/162/shiny.pal +++ b/gfx/pics/162/shiny.pal diff --git a/gfx/pics/163/normal.pal b/gfx/pics/163/normal.pal Binary files differindex 2a80e9e6f..af1d96c2d 100644 --- a/gfx/pics/163/normal.pal +++ b/gfx/pics/163/normal.pal diff --git a/gfx/pics/163/shiny.pal b/gfx/pics/163/shiny.pal Binary files differindex c3ad78a92..360685581 100644 --- a/gfx/pics/163/shiny.pal +++ b/gfx/pics/163/shiny.pal diff --git a/gfx/pics/164/normal.pal b/gfx/pics/164/normal.pal Binary files differindex ed39c4c2d..93785d70f 100644 --- a/gfx/pics/164/normal.pal +++ b/gfx/pics/164/normal.pal diff --git a/gfx/pics/164/shiny.pal b/gfx/pics/164/shiny.pal Binary files differindex c59485648..d53a230e7 100644 --- a/gfx/pics/164/shiny.pal +++ b/gfx/pics/164/shiny.pal diff --git a/gfx/pics/165/normal.pal b/gfx/pics/165/normal.pal Binary files differindex 51800cd91..e761d076a 100644 --- a/gfx/pics/165/normal.pal +++ b/gfx/pics/165/normal.pal diff --git a/gfx/pics/165/shiny.pal b/gfx/pics/165/shiny.pal Binary files differindex 1d4890db9..f404bc1d1 100644 --- a/gfx/pics/165/shiny.pal +++ b/gfx/pics/165/shiny.pal diff --git a/gfx/pics/166/normal.pal b/gfx/pics/166/normal.pal Binary files differindex eb965c0ac..09164a55c 100644 --- a/gfx/pics/166/normal.pal +++ b/gfx/pics/166/normal.pal diff --git a/gfx/pics/166/shiny.pal b/gfx/pics/166/shiny.pal Binary files differindex 1d4890db9..f404bc1d1 100644 --- a/gfx/pics/166/shiny.pal +++ b/gfx/pics/166/shiny.pal diff --git a/gfx/pics/167/normal.pal b/gfx/pics/167/normal.pal Binary files differindex 876863bba..92041eaac 100644 --- a/gfx/pics/167/normal.pal +++ b/gfx/pics/167/normal.pal diff --git a/gfx/pics/167/shiny.pal b/gfx/pics/167/shiny.pal Binary files differindex c33693ce8..931425e3c 100644 --- a/gfx/pics/167/shiny.pal +++ b/gfx/pics/167/shiny.pal diff --git a/gfx/pics/168/normal.pal b/gfx/pics/168/normal.pal Binary files differindex d5b055cea..211e75004 100644 --- a/gfx/pics/168/normal.pal +++ b/gfx/pics/168/normal.pal diff --git a/gfx/pics/168/shiny.pal b/gfx/pics/168/shiny.pal Binary files differindex c531cc421..1dae64a4f 100644 --- a/gfx/pics/168/shiny.pal +++ b/gfx/pics/168/shiny.pal diff --git a/gfx/pics/169/normal.pal b/gfx/pics/169/normal.pal Binary files differindex 3d4df8085..667255211 100644 --- a/gfx/pics/169/normal.pal +++ b/gfx/pics/169/normal.pal diff --git a/gfx/pics/169/shiny.pal b/gfx/pics/169/shiny.pal Binary files differindex 74d8ba663..2cb1d6ced 100644 --- a/gfx/pics/169/shiny.pal +++ b/gfx/pics/169/shiny.pal diff --git a/gfx/pics/170/normal.pal b/gfx/pics/170/normal.pal Binary files differindex 0994fae63..1749e7238 100644 --- a/gfx/pics/170/normal.pal +++ b/gfx/pics/170/normal.pal diff --git a/gfx/pics/170/shiny.pal b/gfx/pics/170/shiny.pal Binary files differindex f1ea06147..334561248 100644 --- a/gfx/pics/170/shiny.pal +++ b/gfx/pics/170/shiny.pal diff --git a/gfx/pics/171/normal.pal b/gfx/pics/171/normal.pal Binary files differindex 533adfd39..a61eb7237 100644 --- a/gfx/pics/171/normal.pal +++ b/gfx/pics/171/normal.pal diff --git a/gfx/pics/171/shiny.pal b/gfx/pics/171/shiny.pal Binary files differindex b6739192f..e1e3e4fe8 100644 --- a/gfx/pics/171/shiny.pal +++ b/gfx/pics/171/shiny.pal diff --git a/gfx/pics/172/normal.pal b/gfx/pics/172/normal.pal Binary files differindex f9f342d11..0ec212f83 100644 --- a/gfx/pics/172/normal.pal +++ b/gfx/pics/172/normal.pal diff --git a/gfx/pics/172/shiny.pal b/gfx/pics/172/shiny.pal Binary files differindex 5644bb0c7..a89172f54 100644 --- a/gfx/pics/172/shiny.pal +++ b/gfx/pics/172/shiny.pal diff --git a/gfx/pics/173/normal.pal b/gfx/pics/173/normal.pal Binary files differindex e91d2b943..7c1e3c7f2 100644 --- a/gfx/pics/173/normal.pal +++ b/gfx/pics/173/normal.pal diff --git a/gfx/pics/173/shiny.pal b/gfx/pics/173/shiny.pal Binary files differindex 8751befbf..1c0871557 100644 --- a/gfx/pics/173/shiny.pal +++ b/gfx/pics/173/shiny.pal diff --git a/gfx/pics/174/normal.pal b/gfx/pics/174/normal.pal Binary files differindex 0b88c2e72..e9935054a 100644 --- a/gfx/pics/174/normal.pal +++ b/gfx/pics/174/normal.pal diff --git a/gfx/pics/174/shiny.pal b/gfx/pics/174/shiny.pal Binary files differindex 4b64a688c..38ce5d76d 100644 --- a/gfx/pics/174/shiny.pal +++ b/gfx/pics/174/shiny.pal diff --git a/gfx/pics/175/normal.pal b/gfx/pics/175/normal.pal Binary files differindex 81884a82c..670ccdfaa 100644 --- a/gfx/pics/175/normal.pal +++ b/gfx/pics/175/normal.pal diff --git a/gfx/pics/175/shiny.pal b/gfx/pics/175/shiny.pal Binary files differindex 6947424c0..6e194e5d9 100644 --- a/gfx/pics/175/shiny.pal +++ b/gfx/pics/175/shiny.pal diff --git a/gfx/pics/176/normal.pal b/gfx/pics/176/normal.pal Binary files differindex be9af83ac..c968300f4 100644 --- a/gfx/pics/176/normal.pal +++ b/gfx/pics/176/normal.pal diff --git a/gfx/pics/176/shiny.pal b/gfx/pics/176/shiny.pal Binary files differindex bc9bae96c..10e7182f5 100644 --- a/gfx/pics/176/shiny.pal +++ b/gfx/pics/176/shiny.pal diff --git a/gfx/pics/177/normal.pal b/gfx/pics/177/normal.pal Binary files differindex 0d6c59b01..9f85159c1 100644 --- a/gfx/pics/177/normal.pal +++ b/gfx/pics/177/normal.pal diff --git a/gfx/pics/177/shiny.pal b/gfx/pics/177/shiny.pal Binary files differindex 5f7a198ec..0ee2b82af 100644 --- a/gfx/pics/177/shiny.pal +++ b/gfx/pics/177/shiny.pal diff --git a/gfx/pics/178/normal.pal b/gfx/pics/178/normal.pal Binary files differindex 0d6c59b01..9f85159c1 100644 --- a/gfx/pics/178/normal.pal +++ b/gfx/pics/178/normal.pal diff --git a/gfx/pics/178/shiny.pal b/gfx/pics/178/shiny.pal Binary files differindex 8d44f3162..00ac32371 100644 --- a/gfx/pics/178/shiny.pal +++ b/gfx/pics/178/shiny.pal diff --git a/gfx/pics/179/normal.pal b/gfx/pics/179/normal.pal Binary files differindex d8ff66263..9b9174f67 100644 --- a/gfx/pics/179/normal.pal +++ b/gfx/pics/179/normal.pal diff --git a/gfx/pics/179/shiny.pal b/gfx/pics/179/shiny.pal Binary files differindex 5f04c3dcc..7e4fe925b 100644 --- a/gfx/pics/179/shiny.pal +++ b/gfx/pics/179/shiny.pal diff --git a/gfx/pics/180/normal.pal b/gfx/pics/180/normal.pal Binary files differindex 3dd730e33..68cae7d28 100644 --- a/gfx/pics/180/normal.pal +++ b/gfx/pics/180/normal.pal diff --git a/gfx/pics/180/shiny.pal b/gfx/pics/180/shiny.pal Binary files differindex 5fe6c472d..50c88df2e 100644 --- a/gfx/pics/180/shiny.pal +++ b/gfx/pics/180/shiny.pal diff --git a/gfx/pics/181/normal.pal b/gfx/pics/181/normal.pal Binary files differindex d6111725c..8620983c9 100644 --- a/gfx/pics/181/normal.pal +++ b/gfx/pics/181/normal.pal diff --git a/gfx/pics/181/shiny.pal b/gfx/pics/181/shiny.pal Binary files differindex 59996b4cd..67451112f 100644 --- a/gfx/pics/181/shiny.pal +++ b/gfx/pics/181/shiny.pal diff --git a/gfx/pics/182/normal.pal b/gfx/pics/182/normal.pal Binary files differindex 3fa54ee12..ac7b655f6 100644 --- a/gfx/pics/182/normal.pal +++ b/gfx/pics/182/normal.pal diff --git a/gfx/pics/182/shiny.pal b/gfx/pics/182/shiny.pal Binary files differindex 7f173746e..a099a594e 100644 --- a/gfx/pics/182/shiny.pal +++ b/gfx/pics/182/shiny.pal diff --git a/gfx/pics/183/normal.pal b/gfx/pics/183/normal.pal Binary files differindex 403c52163..048adb0fd 100644 --- a/gfx/pics/183/normal.pal +++ b/gfx/pics/183/normal.pal diff --git a/gfx/pics/183/shiny.pal b/gfx/pics/183/shiny.pal Binary files differindex 15e98e3d6..e75fe9208 100644 --- a/gfx/pics/183/shiny.pal +++ b/gfx/pics/183/shiny.pal diff --git a/gfx/pics/184/normal.pal b/gfx/pics/184/normal.pal Binary files differindex 7d894bf84..794d19341 100644 --- a/gfx/pics/184/normal.pal +++ b/gfx/pics/184/normal.pal diff --git a/gfx/pics/184/shiny.pal b/gfx/pics/184/shiny.pal Binary files differindex 395be8b43..18cfd1195 100644 --- a/gfx/pics/184/shiny.pal +++ b/gfx/pics/184/shiny.pal diff --git a/gfx/pics/185/normal.pal b/gfx/pics/185/normal.pal Binary files differindex 0a4086c5e..009408311 100644 --- a/gfx/pics/185/normal.pal +++ b/gfx/pics/185/normal.pal diff --git a/gfx/pics/185/shiny.pal b/gfx/pics/185/shiny.pal Binary files differindex 4c5c0ea47..b82128b50 100644 --- a/gfx/pics/185/shiny.pal +++ b/gfx/pics/185/shiny.pal diff --git a/gfx/pics/186/normal.pal b/gfx/pics/186/normal.pal Binary files differindex 97a0c4ea4..31ed84e91 100644 --- a/gfx/pics/186/normal.pal +++ b/gfx/pics/186/normal.pal diff --git a/gfx/pics/186/shiny.pal b/gfx/pics/186/shiny.pal Binary files differindex 58caa06f4..1ba49cbc5 100644 --- a/gfx/pics/186/shiny.pal +++ b/gfx/pics/186/shiny.pal diff --git a/gfx/pics/187/normal.pal b/gfx/pics/187/normal.pal Binary files differindex 6212f9bed..6f44a59ec 100644 --- a/gfx/pics/187/normal.pal +++ b/gfx/pics/187/normal.pal diff --git a/gfx/pics/187/shiny.pal b/gfx/pics/187/shiny.pal Binary files differindex 21d097a3a..4a4afec42 100644 --- a/gfx/pics/187/shiny.pal +++ b/gfx/pics/187/shiny.pal diff --git a/gfx/pics/188/normal.pal b/gfx/pics/188/normal.pal Binary files differindex 665efe853..d03c99e28 100644 --- a/gfx/pics/188/normal.pal +++ b/gfx/pics/188/normal.pal diff --git a/gfx/pics/188/shiny.pal b/gfx/pics/188/shiny.pal Binary files differindex 0fdcb4776..3165d8ee7 100644 --- a/gfx/pics/188/shiny.pal +++ b/gfx/pics/188/shiny.pal diff --git a/gfx/pics/189/normal.pal b/gfx/pics/189/normal.pal Binary files differindex ecd1bebe2..582553eb9 100644 --- a/gfx/pics/189/normal.pal +++ b/gfx/pics/189/normal.pal diff --git a/gfx/pics/189/shiny.pal b/gfx/pics/189/shiny.pal Binary files differindex 49cc2620c..c553ebebf 100644 --- a/gfx/pics/189/shiny.pal +++ b/gfx/pics/189/shiny.pal diff --git a/gfx/pics/190/normal.pal b/gfx/pics/190/normal.pal Binary files differindex f52fe12d8..7af3a8f3b 100644 --- a/gfx/pics/190/normal.pal +++ b/gfx/pics/190/normal.pal diff --git a/gfx/pics/190/shiny.pal b/gfx/pics/190/shiny.pal Binary files differindex b82196c31..a01f18d1a 100644 --- a/gfx/pics/190/shiny.pal +++ b/gfx/pics/190/shiny.pal diff --git a/gfx/pics/191/normal.pal b/gfx/pics/191/normal.pal Binary files differindex fe80486e2..51e641e15 100644 --- a/gfx/pics/191/normal.pal +++ b/gfx/pics/191/normal.pal diff --git a/gfx/pics/191/shiny.pal b/gfx/pics/191/shiny.pal Binary files differindex 80c72ccb0..3215a861c 100644 --- a/gfx/pics/191/shiny.pal +++ b/gfx/pics/191/shiny.pal diff --git a/gfx/pics/192/normal.pal b/gfx/pics/192/normal.pal Binary files differindex 01dd5df1b..24b040e73 100644 --- a/gfx/pics/192/normal.pal +++ b/gfx/pics/192/normal.pal diff --git a/gfx/pics/192/shiny.pal b/gfx/pics/192/shiny.pal Binary files differindex 57e1e7ba6..a52ad6f96 100644 --- a/gfx/pics/192/shiny.pal +++ b/gfx/pics/192/shiny.pal diff --git a/gfx/pics/193/normal.pal b/gfx/pics/193/normal.pal Binary files differindex 3d923426d..dc054a54f 100644 --- a/gfx/pics/193/normal.pal +++ b/gfx/pics/193/normal.pal diff --git a/gfx/pics/193/shiny.pal b/gfx/pics/193/shiny.pal Binary files differindex 141bf1a62..cbbdc755b 100644 --- a/gfx/pics/193/shiny.pal +++ b/gfx/pics/193/shiny.pal diff --git a/gfx/pics/194/normal.pal b/gfx/pics/194/normal.pal Binary files differindex 0c9869e3b..ec098b1cf 100644 --- a/gfx/pics/194/normal.pal +++ b/gfx/pics/194/normal.pal diff --git a/gfx/pics/194/shiny.pal b/gfx/pics/194/shiny.pal Binary files differindex e42cd92a4..aa3475256 100644 --- a/gfx/pics/194/shiny.pal +++ b/gfx/pics/194/shiny.pal diff --git a/gfx/pics/195/normal.pal b/gfx/pics/195/normal.pal Binary files differindex d799e48ae..22f75da58 100644 --- a/gfx/pics/195/normal.pal +++ b/gfx/pics/195/normal.pal diff --git a/gfx/pics/195/shiny.pal b/gfx/pics/195/shiny.pal Binary files differindex 2dc9c97ec..05ed0f64a 100644 --- a/gfx/pics/195/shiny.pal +++ b/gfx/pics/195/shiny.pal diff --git a/gfx/pics/196/normal.pal b/gfx/pics/196/normal.pal Binary files differindex 01861777c..d730e22ce 100644 --- a/gfx/pics/196/normal.pal +++ b/gfx/pics/196/normal.pal diff --git a/gfx/pics/196/shiny.pal b/gfx/pics/196/shiny.pal Binary files differindex a5233d371..8f2343d89 100644 --- a/gfx/pics/196/shiny.pal +++ b/gfx/pics/196/shiny.pal diff --git a/gfx/pics/197/normal.pal b/gfx/pics/197/normal.pal Binary files differindex ede23bb51..b3d692a12 100644 --- a/gfx/pics/197/normal.pal +++ b/gfx/pics/197/normal.pal diff --git a/gfx/pics/197/shiny.pal b/gfx/pics/197/shiny.pal Binary files differindex 0806b8529..9173bbb15 100644 --- a/gfx/pics/197/shiny.pal +++ b/gfx/pics/197/shiny.pal diff --git a/gfx/pics/198/normal.pal b/gfx/pics/198/normal.pal Binary files differindex 646bfbad0..c32f0fa7b 100644 --- a/gfx/pics/198/normal.pal +++ b/gfx/pics/198/normal.pal diff --git a/gfx/pics/198/shiny.pal b/gfx/pics/198/shiny.pal Binary files differindex d682fc416..8f015f0fe 100644 --- a/gfx/pics/198/shiny.pal +++ b/gfx/pics/198/shiny.pal diff --git a/gfx/pics/199/normal.pal b/gfx/pics/199/normal.pal Binary files differindex 8269aedb8..1b1aa9fbe 100644 --- a/gfx/pics/199/normal.pal +++ b/gfx/pics/199/normal.pal diff --git a/gfx/pics/199/shiny.pal b/gfx/pics/199/shiny.pal Binary files differindex 73d7f2c41..6a893a090 100644 --- a/gfx/pics/199/shiny.pal +++ b/gfx/pics/199/shiny.pal diff --git a/gfx/pics/200/normal.pal b/gfx/pics/200/normal.pal Binary files differindex 1f916304b..dc04cfdbf 100644 --- a/gfx/pics/200/normal.pal +++ b/gfx/pics/200/normal.pal diff --git a/gfx/pics/200/shiny.pal b/gfx/pics/200/shiny.pal Binary files differindex c1851b8f5..dbd1aac54 100644 --- a/gfx/pics/200/shiny.pal +++ b/gfx/pics/200/shiny.pal diff --git a/gfx/pics/201/normal.pal b/gfx/pics/201/normal.pal Binary files differindex 467e93bde..19f5252a7 100644 --- a/gfx/pics/201/normal.pal +++ b/gfx/pics/201/normal.pal diff --git a/gfx/pics/201/shiny.pal b/gfx/pics/201/shiny.pal Binary files differindex f720f6d91..6a30f11e6 100644 --- a/gfx/pics/201/shiny.pal +++ b/gfx/pics/201/shiny.pal diff --git a/gfx/pics/202/normal.pal b/gfx/pics/202/normal.pal Binary files differindex 8ef2b1a62..71304f147 100644 --- a/gfx/pics/202/normal.pal +++ b/gfx/pics/202/normal.pal diff --git a/gfx/pics/202/shiny.pal b/gfx/pics/202/shiny.pal Binary files differindex 184a8b74f..c721c9ba6 100644 --- a/gfx/pics/202/shiny.pal +++ b/gfx/pics/202/shiny.pal diff --git a/gfx/pics/203/normal.pal b/gfx/pics/203/normal.pal Binary files differindex d9f2a834a..d882c3aeb 100644 --- a/gfx/pics/203/normal.pal +++ b/gfx/pics/203/normal.pal diff --git a/gfx/pics/203/shiny.pal b/gfx/pics/203/shiny.pal Binary files differindex 4aa8b6b1f..51b7f3847 100644 --- a/gfx/pics/203/shiny.pal +++ b/gfx/pics/203/shiny.pal diff --git a/gfx/pics/204/normal.pal b/gfx/pics/204/normal.pal Binary files differindex fcf7b0e0c..159e2d51f 100644 --- a/gfx/pics/204/normal.pal +++ b/gfx/pics/204/normal.pal diff --git a/gfx/pics/204/shiny.pal b/gfx/pics/204/shiny.pal Binary files differindex 9195acb3d..33ee632d5 100644 --- a/gfx/pics/204/shiny.pal +++ b/gfx/pics/204/shiny.pal diff --git a/gfx/pics/205/normal.pal b/gfx/pics/205/normal.pal Binary files differindex 8d838480d..79761d2c0 100644 --- a/gfx/pics/205/normal.pal +++ b/gfx/pics/205/normal.pal diff --git a/gfx/pics/205/shiny.pal b/gfx/pics/205/shiny.pal Binary files differindex 0021de643..84aa229d2 100644 --- a/gfx/pics/205/shiny.pal +++ b/gfx/pics/205/shiny.pal diff --git a/gfx/pics/206/normal.pal b/gfx/pics/206/normal.pal Binary files differindex 6e6a95878..c0c5b25d7 100644 --- a/gfx/pics/206/normal.pal +++ b/gfx/pics/206/normal.pal diff --git a/gfx/pics/206/shiny.pal b/gfx/pics/206/shiny.pal Binary files differindex ca84cd945..a86589ee4 100644 --- a/gfx/pics/206/shiny.pal +++ b/gfx/pics/206/shiny.pal diff --git a/gfx/pics/207/normal.pal b/gfx/pics/207/normal.pal Binary files differindex dbfa06229..c6d87495d 100644 --- a/gfx/pics/207/normal.pal +++ b/gfx/pics/207/normal.pal diff --git a/gfx/pics/207/shiny.pal b/gfx/pics/207/shiny.pal Binary files differindex e061b88fc..b33b2c373 100644 --- a/gfx/pics/207/shiny.pal +++ b/gfx/pics/207/shiny.pal diff --git a/gfx/pics/208/normal.pal b/gfx/pics/208/normal.pal Binary files differindex 00d1ad21f..ee5eb6d6f 100644 --- a/gfx/pics/208/normal.pal +++ b/gfx/pics/208/normal.pal diff --git a/gfx/pics/208/shiny.pal b/gfx/pics/208/shiny.pal Binary files differindex c2206f287..d929c214f 100644 --- a/gfx/pics/208/shiny.pal +++ b/gfx/pics/208/shiny.pal diff --git a/gfx/pics/209/normal.pal b/gfx/pics/209/normal.pal Binary files differindex 9afe0d8a5..52aee4079 100644 --- a/gfx/pics/209/normal.pal +++ b/gfx/pics/209/normal.pal diff --git a/gfx/pics/209/shiny.pal b/gfx/pics/209/shiny.pal Binary files differindex bc1327b06..04cda49ec 100644 --- a/gfx/pics/209/shiny.pal +++ b/gfx/pics/209/shiny.pal diff --git a/gfx/pics/210/normal.pal b/gfx/pics/210/normal.pal Binary files differindex aa904bdc7..4073c9c79 100644 --- a/gfx/pics/210/normal.pal +++ b/gfx/pics/210/normal.pal diff --git a/gfx/pics/210/shiny.pal b/gfx/pics/210/shiny.pal Binary files differindex 6256fc69f..b15bd641c 100644 --- a/gfx/pics/210/shiny.pal +++ b/gfx/pics/210/shiny.pal diff --git a/gfx/pics/211/normal.pal b/gfx/pics/211/normal.pal Binary files differindex 229667386..e6ba82ca6 100644 --- a/gfx/pics/211/normal.pal +++ b/gfx/pics/211/normal.pal diff --git a/gfx/pics/211/shiny.pal b/gfx/pics/211/shiny.pal Binary files differindex 732203033..97c36795e 100644 --- a/gfx/pics/211/shiny.pal +++ b/gfx/pics/211/shiny.pal diff --git a/gfx/pics/212/normal.pal b/gfx/pics/212/normal.pal Binary files differindex 26621d0f8..6dd98afbb 100644 --- a/gfx/pics/212/normal.pal +++ b/gfx/pics/212/normal.pal diff --git a/gfx/pics/212/shiny.pal b/gfx/pics/212/shiny.pal Binary files differindex 166c24d49..e4f5cf30e 100644 --- a/gfx/pics/212/shiny.pal +++ b/gfx/pics/212/shiny.pal diff --git a/gfx/pics/213/normal.pal b/gfx/pics/213/normal.pal Binary files differindex ac76ed994..b52e7ed89 100644 --- a/gfx/pics/213/normal.pal +++ b/gfx/pics/213/normal.pal diff --git a/gfx/pics/213/shiny.pal b/gfx/pics/213/shiny.pal Binary files differindex 2cf70710d..63b3644ab 100644 --- a/gfx/pics/213/shiny.pal +++ b/gfx/pics/213/shiny.pal diff --git a/gfx/pics/214/normal.pal b/gfx/pics/214/normal.pal Binary files differindex 25450a716..cfc263f77 100644 --- a/gfx/pics/214/normal.pal +++ b/gfx/pics/214/normal.pal diff --git a/gfx/pics/214/shiny.pal b/gfx/pics/214/shiny.pal Binary files differindex bc2524ae8..3bc81cbdc 100644 --- a/gfx/pics/214/shiny.pal +++ b/gfx/pics/214/shiny.pal diff --git a/gfx/pics/215/normal.pal b/gfx/pics/215/normal.pal Binary files differindex 174ca7057..1d1728090 100644 --- a/gfx/pics/215/normal.pal +++ b/gfx/pics/215/normal.pal diff --git a/gfx/pics/215/shiny.pal b/gfx/pics/215/shiny.pal Binary files differindex 408e44b2a..951cc3786 100644 --- a/gfx/pics/215/shiny.pal +++ b/gfx/pics/215/shiny.pal diff --git a/gfx/pics/216/normal.pal b/gfx/pics/216/normal.pal Binary files differindex e3d018b58..07a1d3622 100644 --- a/gfx/pics/216/normal.pal +++ b/gfx/pics/216/normal.pal diff --git a/gfx/pics/216/shiny.pal b/gfx/pics/216/shiny.pal Binary files differindex f7486ead8..f3b997329 100644 --- a/gfx/pics/216/shiny.pal +++ b/gfx/pics/216/shiny.pal diff --git a/gfx/pics/217/normal.pal b/gfx/pics/217/normal.pal Binary files differindex 460d813e6..ce64ebf28 100644 --- a/gfx/pics/217/normal.pal +++ b/gfx/pics/217/normal.pal diff --git a/gfx/pics/217/shiny.pal b/gfx/pics/217/shiny.pal Binary files differindex 95d296b12..b2e472ea3 100644 --- a/gfx/pics/217/shiny.pal +++ b/gfx/pics/217/shiny.pal diff --git a/gfx/pics/218/normal.pal b/gfx/pics/218/normal.pal Binary files differindex 6b6245468..e20c176a3 100644 --- a/gfx/pics/218/normal.pal +++ b/gfx/pics/218/normal.pal diff --git a/gfx/pics/218/shiny.pal b/gfx/pics/218/shiny.pal Binary files differindex 282447f31..b66ef094d 100644 --- a/gfx/pics/218/shiny.pal +++ b/gfx/pics/218/shiny.pal diff --git a/gfx/pics/219/normal.pal b/gfx/pics/219/normal.pal Binary files differindex 069c05e8c..572d0464a 100644 --- a/gfx/pics/219/normal.pal +++ b/gfx/pics/219/normal.pal diff --git a/gfx/pics/219/shiny.pal b/gfx/pics/219/shiny.pal Binary files differindex 3796643f3..a31d8288f 100644 --- a/gfx/pics/219/shiny.pal +++ b/gfx/pics/219/shiny.pal diff --git a/gfx/pics/220/normal.pal b/gfx/pics/220/normal.pal Binary files differindex 11d7a0930..c560793f1 100644 --- a/gfx/pics/220/normal.pal +++ b/gfx/pics/220/normal.pal diff --git a/gfx/pics/220/shiny.pal b/gfx/pics/220/shiny.pal Binary files differindex 322bf09b7..4e3eadacb 100644 --- a/gfx/pics/220/shiny.pal +++ b/gfx/pics/220/shiny.pal diff --git a/gfx/pics/221/normal.pal b/gfx/pics/221/normal.pal Binary files differindex d4f91e2c8..6df5615c0 100644 --- a/gfx/pics/221/normal.pal +++ b/gfx/pics/221/normal.pal diff --git a/gfx/pics/221/shiny.pal b/gfx/pics/221/shiny.pal Binary files differindex 5e3104148..3afb0539d 100644 --- a/gfx/pics/221/shiny.pal +++ b/gfx/pics/221/shiny.pal diff --git a/gfx/pics/222/normal.pal b/gfx/pics/222/normal.pal Binary files differindex 975e9df72..8dd10edc5 100644 --- a/gfx/pics/222/normal.pal +++ b/gfx/pics/222/normal.pal diff --git a/gfx/pics/222/shiny.pal b/gfx/pics/222/shiny.pal Binary files differindex 3c4083868..8aec60de2 100644 --- a/gfx/pics/222/shiny.pal +++ b/gfx/pics/222/shiny.pal diff --git a/gfx/pics/223/normal.pal b/gfx/pics/223/normal.pal Binary files differindex b7f0a041d..5373535b1 100644 --- a/gfx/pics/223/normal.pal +++ b/gfx/pics/223/normal.pal diff --git a/gfx/pics/223/shiny.pal b/gfx/pics/223/shiny.pal Binary files differindex ca3895a32..669e14e4a 100644 --- a/gfx/pics/223/shiny.pal +++ b/gfx/pics/223/shiny.pal diff --git a/gfx/pics/224/normal.pal b/gfx/pics/224/normal.pal Binary files differindex eaca3b11b..8073454d1 100644 --- a/gfx/pics/224/normal.pal +++ b/gfx/pics/224/normal.pal diff --git a/gfx/pics/224/shiny.pal b/gfx/pics/224/shiny.pal Binary files differindex a4e7d19c2..a5bdc9b71 100644 --- a/gfx/pics/224/shiny.pal +++ b/gfx/pics/224/shiny.pal diff --git a/gfx/pics/225/normal.pal b/gfx/pics/225/normal.pal Binary files differindex a2302baf8..fb24bd4e1 100644 --- a/gfx/pics/225/normal.pal +++ b/gfx/pics/225/normal.pal diff --git a/gfx/pics/225/shiny.pal b/gfx/pics/225/shiny.pal Binary files differindex 12239dc33..4c4ee713f 100644 --- a/gfx/pics/225/shiny.pal +++ b/gfx/pics/225/shiny.pal diff --git a/gfx/pics/226/normal.pal b/gfx/pics/226/normal.pal Binary files differindex e23863214..ff9214da9 100644 --- a/gfx/pics/226/normal.pal +++ b/gfx/pics/226/normal.pal diff --git a/gfx/pics/226/shiny.pal b/gfx/pics/226/shiny.pal Binary files differindex 6e876925b..cd743d8ba 100644 --- a/gfx/pics/226/shiny.pal +++ b/gfx/pics/226/shiny.pal diff --git a/gfx/pics/227/normal.pal b/gfx/pics/227/normal.pal Binary files differindex eba255e2f..92f01660d 100644 --- a/gfx/pics/227/normal.pal +++ b/gfx/pics/227/normal.pal diff --git a/gfx/pics/227/shiny.pal b/gfx/pics/227/shiny.pal Binary files differindex 1f6071a3d..80c53554d 100644 --- a/gfx/pics/227/shiny.pal +++ b/gfx/pics/227/shiny.pal diff --git a/gfx/pics/228/normal.pal b/gfx/pics/228/normal.pal Binary files differindex c338c672e..7ea34334c 100644 --- a/gfx/pics/228/normal.pal +++ b/gfx/pics/228/normal.pal diff --git a/gfx/pics/228/shiny.pal b/gfx/pics/228/shiny.pal Binary files differindex 38f906dff..c7296ab33 100644 --- a/gfx/pics/228/shiny.pal +++ b/gfx/pics/228/shiny.pal diff --git a/gfx/pics/229/normal.pal b/gfx/pics/229/normal.pal Binary files differindex 1080eebd6..6fbf714ba 100644 --- a/gfx/pics/229/normal.pal +++ b/gfx/pics/229/normal.pal diff --git a/gfx/pics/229/shiny.pal b/gfx/pics/229/shiny.pal Binary files differindex 90d0319fe..cf16faf2c 100644 --- a/gfx/pics/229/shiny.pal +++ b/gfx/pics/229/shiny.pal diff --git a/gfx/pics/230/normal.pal b/gfx/pics/230/normal.pal Binary files differindex 45d85d47c..3e7449818 100644 --- a/gfx/pics/230/normal.pal +++ b/gfx/pics/230/normal.pal diff --git a/gfx/pics/230/shiny.pal b/gfx/pics/230/shiny.pal Binary files differindex e3cd2d8d0..2a65783f1 100644 --- a/gfx/pics/230/shiny.pal +++ b/gfx/pics/230/shiny.pal diff --git a/gfx/pics/231/normal.pal b/gfx/pics/231/normal.pal Binary files differindex 9141eaa73..1952a6537 100644 --- a/gfx/pics/231/normal.pal +++ b/gfx/pics/231/normal.pal diff --git a/gfx/pics/231/shiny.pal b/gfx/pics/231/shiny.pal Binary files differindex 5c22d001b..64b15d904 100644 --- a/gfx/pics/231/shiny.pal +++ b/gfx/pics/231/shiny.pal diff --git a/gfx/pics/232/normal.pal b/gfx/pics/232/normal.pal Binary files differindex 1e882b969..12e7844dd 100644 --- a/gfx/pics/232/normal.pal +++ b/gfx/pics/232/normal.pal diff --git a/gfx/pics/232/shiny.pal b/gfx/pics/232/shiny.pal Binary files differindex 4b4ce3721..d705694c2 100644 --- a/gfx/pics/232/shiny.pal +++ b/gfx/pics/232/shiny.pal diff --git a/gfx/pics/233/normal.pal b/gfx/pics/233/normal.pal Binary files differindex 46ba8c0c8..8dafc26b4 100644 --- a/gfx/pics/233/normal.pal +++ b/gfx/pics/233/normal.pal diff --git a/gfx/pics/233/shiny.pal b/gfx/pics/233/shiny.pal Binary files differindex 06396b077..3b0c4dabe 100644 --- a/gfx/pics/233/shiny.pal +++ b/gfx/pics/233/shiny.pal diff --git a/gfx/pics/234/normal.pal b/gfx/pics/234/normal.pal Binary files differindex 1c82d4a9d..3d036062d 100644 --- a/gfx/pics/234/normal.pal +++ b/gfx/pics/234/normal.pal diff --git a/gfx/pics/234/shiny.pal b/gfx/pics/234/shiny.pal Binary files differindex e8480a466..efdc404e9 100644 --- a/gfx/pics/234/shiny.pal +++ b/gfx/pics/234/shiny.pal diff --git a/gfx/pics/235/normal.pal b/gfx/pics/235/normal.pal Binary files differindex b8c80ea94..76ba4c95c 100644 --- a/gfx/pics/235/normal.pal +++ b/gfx/pics/235/normal.pal diff --git a/gfx/pics/235/shiny.pal b/gfx/pics/235/shiny.pal Binary files differindex b4056e444..3b0290ba1 100644 --- a/gfx/pics/235/shiny.pal +++ b/gfx/pics/235/shiny.pal diff --git a/gfx/pics/236/normal.pal b/gfx/pics/236/normal.pal Binary files differindex 8873ee5d1..686526e1b 100644 --- a/gfx/pics/236/normal.pal +++ b/gfx/pics/236/normal.pal diff --git a/gfx/pics/236/shiny.pal b/gfx/pics/236/shiny.pal Binary files differindex 24cf7a9f7..53e0a5c1e 100644 --- a/gfx/pics/236/shiny.pal +++ b/gfx/pics/236/shiny.pal diff --git a/gfx/pics/237/normal.pal b/gfx/pics/237/normal.pal Binary files differindex 0b7cd878e..a6621cff6 100644 --- a/gfx/pics/237/normal.pal +++ b/gfx/pics/237/normal.pal diff --git a/gfx/pics/237/shiny.pal b/gfx/pics/237/shiny.pal Binary files differindex 1f8b4780a..5c88a27e0 100644 --- a/gfx/pics/237/shiny.pal +++ b/gfx/pics/237/shiny.pal diff --git a/gfx/pics/238/normal.pal b/gfx/pics/238/normal.pal Binary files differindex 838ed2480..21867063d 100644 --- a/gfx/pics/238/normal.pal +++ b/gfx/pics/238/normal.pal diff --git a/gfx/pics/238/shiny.pal b/gfx/pics/238/shiny.pal Binary files differindex 85e1b9314..ee3baba53 100644 --- a/gfx/pics/238/shiny.pal +++ b/gfx/pics/238/shiny.pal diff --git a/gfx/pics/239/normal.pal b/gfx/pics/239/normal.pal Binary files differindex 04936e045..f670fee1c 100644 --- a/gfx/pics/239/normal.pal +++ b/gfx/pics/239/normal.pal diff --git a/gfx/pics/239/shiny.pal b/gfx/pics/239/shiny.pal Binary files differindex e8189490c..4eb42c6d4 100644 --- a/gfx/pics/239/shiny.pal +++ b/gfx/pics/239/shiny.pal diff --git a/gfx/pics/240/normal.pal b/gfx/pics/240/normal.pal Binary files differindex 2408dbf15..3a37ffe0d 100644 --- a/gfx/pics/240/normal.pal +++ b/gfx/pics/240/normal.pal diff --git a/gfx/pics/240/shiny.pal b/gfx/pics/240/shiny.pal Binary files differindex eff8d8053..ee96fafd2 100644 --- a/gfx/pics/240/shiny.pal +++ b/gfx/pics/240/shiny.pal diff --git a/gfx/pics/241/normal.pal b/gfx/pics/241/normal.pal Binary files differindex 6163c1f3d..a3669a307 100644 --- a/gfx/pics/241/normal.pal +++ b/gfx/pics/241/normal.pal diff --git a/gfx/pics/241/shiny.pal b/gfx/pics/241/shiny.pal Binary files differindex 0810545ab..37792fe7e 100644 --- a/gfx/pics/241/shiny.pal +++ b/gfx/pics/241/shiny.pal diff --git a/gfx/pics/242/normal.pal b/gfx/pics/242/normal.pal Binary files differindex 64fdd502e..af97ddab4 100644 --- a/gfx/pics/242/normal.pal +++ b/gfx/pics/242/normal.pal diff --git a/gfx/pics/242/shiny.pal b/gfx/pics/242/shiny.pal Binary files differindex 68c3265d2..862858e75 100644 --- a/gfx/pics/242/shiny.pal +++ b/gfx/pics/242/shiny.pal diff --git a/gfx/pics/243/normal.pal b/gfx/pics/243/normal.pal Binary files differindex be3a5b17c..d357a2df0 100644 --- a/gfx/pics/243/normal.pal +++ b/gfx/pics/243/normal.pal diff --git a/gfx/pics/243/shiny.pal b/gfx/pics/243/shiny.pal Binary files differindex e9abc9aa0..509a54c48 100644 --- a/gfx/pics/243/shiny.pal +++ b/gfx/pics/243/shiny.pal diff --git a/gfx/pics/244/normal.pal b/gfx/pics/244/normal.pal Binary files differindex 43a927695..509503c68 100644 --- a/gfx/pics/244/normal.pal +++ b/gfx/pics/244/normal.pal diff --git a/gfx/pics/244/shiny.pal b/gfx/pics/244/shiny.pal Binary files differindex 91509ff3b..e806f7e00 100644 --- a/gfx/pics/244/shiny.pal +++ b/gfx/pics/244/shiny.pal diff --git a/gfx/pics/245/normal.pal b/gfx/pics/245/normal.pal Binary files differindex 56145031f..aaa246989 100644 --- a/gfx/pics/245/normal.pal +++ b/gfx/pics/245/normal.pal diff --git a/gfx/pics/245/shiny.pal b/gfx/pics/245/shiny.pal Binary files differindex 792200046..776effbc3 100644 --- a/gfx/pics/245/shiny.pal +++ b/gfx/pics/245/shiny.pal diff --git a/gfx/pics/246/normal.pal b/gfx/pics/246/normal.pal Binary files differindex 7f825830b..04a460b3e 100644 --- a/gfx/pics/246/normal.pal +++ b/gfx/pics/246/normal.pal diff --git a/gfx/pics/246/shiny.pal b/gfx/pics/246/shiny.pal Binary files differindex 606497ef3..025a819dc 100644 --- a/gfx/pics/246/shiny.pal +++ b/gfx/pics/246/shiny.pal diff --git a/gfx/pics/247/normal.pal b/gfx/pics/247/normal.pal Binary files differindex b093ddd06..2b92d0804 100644 --- a/gfx/pics/247/normal.pal +++ b/gfx/pics/247/normal.pal diff --git a/gfx/pics/247/shiny.pal b/gfx/pics/247/shiny.pal Binary files differindex fead4e87c..a8c6cb74f 100644 --- a/gfx/pics/247/shiny.pal +++ b/gfx/pics/247/shiny.pal diff --git a/gfx/pics/248/normal.pal b/gfx/pics/248/normal.pal Binary files differindex 0de69a9ec..5c02e7683 100644 --- a/gfx/pics/248/normal.pal +++ b/gfx/pics/248/normal.pal diff --git a/gfx/pics/248/shiny.pal b/gfx/pics/248/shiny.pal Binary files differindex dadd8e96a..4eebd8b4f 100644 --- a/gfx/pics/248/shiny.pal +++ b/gfx/pics/248/shiny.pal diff --git a/gfx/pics/249/normal.pal b/gfx/pics/249/normal.pal Binary files differindex 7ed7170c4..74bf84625 100644 --- a/gfx/pics/249/normal.pal +++ b/gfx/pics/249/normal.pal diff --git a/gfx/pics/249/shiny.pal b/gfx/pics/249/shiny.pal Binary files differindex e79c88d04..22a7970ff 100644 --- a/gfx/pics/249/shiny.pal +++ b/gfx/pics/249/shiny.pal diff --git a/gfx/pics/250/normal.pal b/gfx/pics/250/normal.pal Binary files differindex 5928323bf..be2b43d0d 100644 --- a/gfx/pics/250/normal.pal +++ b/gfx/pics/250/normal.pal diff --git a/gfx/pics/250/shiny.pal b/gfx/pics/250/shiny.pal Binary files differindex f56594c20..64a56ec52 100644 --- a/gfx/pics/250/shiny.pal +++ b/gfx/pics/250/shiny.pal diff --git a/gfx/pics/251/normal.pal b/gfx/pics/251/normal.pal Binary files differindex 3e744012e..df26077cd 100644 --- a/gfx/pics/251/normal.pal +++ b/gfx/pics/251/normal.pal diff --git a/gfx/pics/251/shiny.pal b/gfx/pics/251/shiny.pal Binary files differindex 142b9fb04..1d73c8043 100644 --- a/gfx/pics/251/shiny.pal +++ b/gfx/pics/251/shiny.pal 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 Binary files differindex ca3afac31..ddc5262ba 100644 --- a/gfx/trainers/000.pal +++ b/gfx/trainers/000.pal diff --git a/gfx/trainers/001.pal b/gfx/trainers/001.pal Binary files differindex 896f3e576..a51af5fda 100644 --- a/gfx/trainers/001.pal +++ b/gfx/trainers/001.pal diff --git a/gfx/trainers/002.pal b/gfx/trainers/002.pal Binary files differindex 5368ab1b8..1743f663b 100644 --- a/gfx/trainers/002.pal +++ b/gfx/trainers/002.pal diff --git a/gfx/trainers/003.pal b/gfx/trainers/003.pal Binary files differindex 2442efc2a..736d93ba7 100644 --- a/gfx/trainers/003.pal +++ b/gfx/trainers/003.pal diff --git a/gfx/trainers/004.pal b/gfx/trainers/004.pal Binary files differindex a892a77db..ca319f05a 100644 --- a/gfx/trainers/004.pal +++ b/gfx/trainers/004.pal diff --git a/gfx/trainers/005.pal b/gfx/trainers/005.pal Binary files differindex 40691c008..352d95673 100644 --- a/gfx/trainers/005.pal +++ b/gfx/trainers/005.pal diff --git a/gfx/trainers/006.pal b/gfx/trainers/006.pal Binary files differindex 37ec137f5..9616829dc 100644 --- a/gfx/trainers/006.pal +++ b/gfx/trainers/006.pal diff --git a/gfx/trainers/007.pal b/gfx/trainers/007.pal Binary files differindex 44b15a40f..616598fee 100644 --- a/gfx/trainers/007.pal +++ b/gfx/trainers/007.pal diff --git a/gfx/trainers/008.pal b/gfx/trainers/008.pal Binary files differindex 5af00e47b..190dc92e0 100644 --- a/gfx/trainers/008.pal +++ b/gfx/trainers/008.pal diff --git a/gfx/trainers/009.pal b/gfx/trainers/009.pal Binary files differindex e6e7d26c0..a4be7ff97 100644 --- a/gfx/trainers/009.pal +++ b/gfx/trainers/009.pal diff --git a/gfx/trainers/010.pal b/gfx/trainers/010.pal Binary files differindex 5d3c26a22..d27fd8069 100644 --- a/gfx/trainers/010.pal +++ b/gfx/trainers/010.pal diff --git a/gfx/trainers/011.pal b/gfx/trainers/011.pal Binary files differindex da8d0af3f..92101c5e3 100644 --- a/gfx/trainers/011.pal +++ b/gfx/trainers/011.pal diff --git a/gfx/trainers/012.pal b/gfx/trainers/012.pal Binary files differindex 72e0e17a7..41408a91d 100644 --- a/gfx/trainers/012.pal +++ b/gfx/trainers/012.pal diff --git a/gfx/trainers/013.pal b/gfx/trainers/013.pal Binary files differindex 2a8f454ed..0eeb5fa2d 100644 --- a/gfx/trainers/013.pal +++ b/gfx/trainers/013.pal diff --git a/gfx/trainers/014.pal b/gfx/trainers/014.pal Binary files differindex b4505fd0c..096b1e131 100644 --- a/gfx/trainers/014.pal +++ b/gfx/trainers/014.pal diff --git a/gfx/trainers/015.pal b/gfx/trainers/015.pal Binary files differindex 813429be0..3dee1efef 100644 --- a/gfx/trainers/015.pal +++ b/gfx/trainers/015.pal diff --git a/gfx/trainers/016.pal b/gfx/trainers/016.pal Binary files differindex 703139b8a..f5a1b0c06 100644 --- a/gfx/trainers/016.pal +++ b/gfx/trainers/016.pal diff --git a/gfx/trainers/017.pal b/gfx/trainers/017.pal Binary files differindex 4f0bc1010..aab4b0849 100644 --- a/gfx/trainers/017.pal +++ b/gfx/trainers/017.pal diff --git a/gfx/trainers/018.pal b/gfx/trainers/018.pal Binary files differindex 5d81d1b9a..6243fae58 100644 --- a/gfx/trainers/018.pal +++ b/gfx/trainers/018.pal diff --git a/gfx/trainers/019.pal b/gfx/trainers/019.pal Binary files differindex 0bde417a8..0661e50e8 100644 --- a/gfx/trainers/019.pal +++ b/gfx/trainers/019.pal diff --git a/gfx/trainers/020.pal b/gfx/trainers/020.pal Binary files differindex 03677e151..e8de9b43d 100644 --- a/gfx/trainers/020.pal +++ b/gfx/trainers/020.pal diff --git a/gfx/trainers/021.pal b/gfx/trainers/021.pal Binary files differindex c45c63cf2..a330d692f 100644 --- a/gfx/trainers/021.pal +++ b/gfx/trainers/021.pal diff --git a/gfx/trainers/022.pal b/gfx/trainers/022.pal Binary files differindex 7f3593474..5ba665e79 100644 --- a/gfx/trainers/022.pal +++ b/gfx/trainers/022.pal diff --git a/gfx/trainers/023.pal b/gfx/trainers/023.pal Binary files differindex b1e6bcf70..ca0407a3b 100644 --- a/gfx/trainers/023.pal +++ b/gfx/trainers/023.pal diff --git a/gfx/trainers/024.pal b/gfx/trainers/024.pal Binary files differindex 6c0c148d3..1ca3149dc 100644 --- a/gfx/trainers/024.pal +++ b/gfx/trainers/024.pal diff --git a/gfx/trainers/025.pal b/gfx/trainers/025.pal Binary files differindex decde7ff9..e958004cb 100644 --- a/gfx/trainers/025.pal +++ b/gfx/trainers/025.pal diff --git a/gfx/trainers/026.pal b/gfx/trainers/026.pal Binary files differindex dec99c5b0..bdeefabf8 100644 --- a/gfx/trainers/026.pal +++ b/gfx/trainers/026.pal diff --git a/gfx/trainers/027.pal b/gfx/trainers/027.pal Binary files differindex dec99c5b0..bdeefabf8 100644 --- a/gfx/trainers/027.pal +++ b/gfx/trainers/027.pal diff --git a/gfx/trainers/028.pal b/gfx/trainers/028.pal Binary files differindex 3ecf6fb34..7183a0502 100644 --- a/gfx/trainers/028.pal +++ b/gfx/trainers/028.pal diff --git a/gfx/trainers/029.pal b/gfx/trainers/029.pal Binary files differindex f165ee10b..f8e224ab8 100644 --- a/gfx/trainers/029.pal +++ b/gfx/trainers/029.pal diff --git a/gfx/trainers/030.pal b/gfx/trainers/030.pal Binary files differindex 3b50bf55c..f7dc95d8f 100644 --- a/gfx/trainers/030.pal +++ b/gfx/trainers/030.pal diff --git a/gfx/trainers/031.pal b/gfx/trainers/031.pal Binary files differindex 368f32026..c6faa0d33 100644 --- a/gfx/trainers/031.pal +++ b/gfx/trainers/031.pal diff --git a/gfx/trainers/032.pal b/gfx/trainers/032.pal Binary files differindex 31a7441fc..9201ca909 100644 --- a/gfx/trainers/032.pal +++ b/gfx/trainers/032.pal diff --git a/gfx/trainers/033.pal b/gfx/trainers/033.pal Binary files differindex d80e993b2..a614be34c 100644 --- a/gfx/trainers/033.pal +++ b/gfx/trainers/033.pal diff --git a/gfx/trainers/034.pal b/gfx/trainers/034.pal Binary files differindex 566ee3e4b..950be6902 100644 --- a/gfx/trainers/034.pal +++ b/gfx/trainers/034.pal diff --git a/gfx/trainers/035.pal b/gfx/trainers/035.pal Binary files differindex 40d064421..8e4df4219 100644 --- a/gfx/trainers/035.pal +++ b/gfx/trainers/035.pal diff --git a/gfx/trainers/036.pal b/gfx/trainers/036.pal Binary files differindex d7b5231a4..9d0657111 100644 --- a/gfx/trainers/036.pal +++ b/gfx/trainers/036.pal diff --git a/gfx/trainers/037.pal b/gfx/trainers/037.pal Binary files differindex 359f288aa..164d2166b 100644 --- a/gfx/trainers/037.pal +++ b/gfx/trainers/037.pal diff --git a/gfx/trainers/038.pal b/gfx/trainers/038.pal Binary files differindex fff12874d..6bddcbcc3 100644 --- a/gfx/trainers/038.pal +++ b/gfx/trainers/038.pal diff --git a/gfx/trainers/039.pal b/gfx/trainers/039.pal Binary files differindex 902557c42..33b3c02b1 100644 --- a/gfx/trainers/039.pal +++ b/gfx/trainers/039.pal diff --git a/gfx/trainers/040.pal b/gfx/trainers/040.pal Binary files differindex 8b20f904f..862d4e21e 100644 --- a/gfx/trainers/040.pal +++ b/gfx/trainers/040.pal diff --git a/gfx/trainers/041.pal b/gfx/trainers/041.pal Binary files differindex 5af00e47b..190dc92e0 100644 --- a/gfx/trainers/041.pal +++ b/gfx/trainers/041.pal diff --git a/gfx/trainers/042.pal b/gfx/trainers/042.pal Binary files differindex 688436155..d5c88a3bd 100644 --- a/gfx/trainers/042.pal +++ b/gfx/trainers/042.pal diff --git a/gfx/trainers/043.pal b/gfx/trainers/043.pal Binary files differindex 7fb9a641f..8d0cb5c4c 100644 --- a/gfx/trainers/043.pal +++ b/gfx/trainers/043.pal diff --git a/gfx/trainers/044.pal b/gfx/trainers/044.pal Binary files differindex cb07b7d18..bfffe557d 100644 --- a/gfx/trainers/044.pal +++ b/gfx/trainers/044.pal diff --git a/gfx/trainers/045.pal b/gfx/trainers/045.pal Binary files differindex 2b95a9ec7..90f3a381f 100644 --- a/gfx/trainers/045.pal +++ b/gfx/trainers/045.pal diff --git a/gfx/trainers/046.pal b/gfx/trainers/046.pal Binary files differindex 868cc509f..cfcdd144f 100644 --- a/gfx/trainers/046.pal +++ b/gfx/trainers/046.pal diff --git a/gfx/trainers/047.pal b/gfx/trainers/047.pal Binary files differindex 50ba7dca5..b051224dd 100644 --- a/gfx/trainers/047.pal +++ b/gfx/trainers/047.pal diff --git a/gfx/trainers/048.pal b/gfx/trainers/048.pal Binary files differindex 428b6b7bc..ffee98b09 100644 --- a/gfx/trainers/048.pal +++ b/gfx/trainers/048.pal diff --git a/gfx/trainers/049.pal b/gfx/trainers/049.pal Binary files differindex 3dd3aeda1..59ea02844 100644 --- a/gfx/trainers/049.pal +++ b/gfx/trainers/049.pal diff --git a/gfx/trainers/050.pal b/gfx/trainers/050.pal Binary files differindex a94cc7cb6..66e0a46c9 100644 --- a/gfx/trainers/050.pal +++ b/gfx/trainers/050.pal diff --git a/gfx/trainers/051.pal b/gfx/trainers/051.pal Binary files differindex be6ce1b2d..e19c4d817 100644 --- a/gfx/trainers/051.pal +++ b/gfx/trainers/051.pal diff --git a/gfx/trainers/052.pal b/gfx/trainers/052.pal Binary files differindex 4c752fd4a..d0eec39f9 100644 --- a/gfx/trainers/052.pal +++ b/gfx/trainers/052.pal diff --git a/gfx/trainers/053.pal b/gfx/trainers/053.pal Binary files differindex a58056851..13a083c68 100644 --- a/gfx/trainers/053.pal +++ b/gfx/trainers/053.pal diff --git a/gfx/trainers/054.pal b/gfx/trainers/054.pal Binary files differindex d34e98f74..36ec86f8e 100644 --- a/gfx/trainers/054.pal +++ b/gfx/trainers/054.pal diff --git a/gfx/trainers/055.pal b/gfx/trainers/055.pal Binary files differindex 2431966da..d61b39ec3 100644 --- a/gfx/trainers/055.pal +++ b/gfx/trainers/055.pal diff --git a/gfx/trainers/056.pal b/gfx/trainers/056.pal Binary files differindex d989306c1..e06b66f39 100644 --- a/gfx/trainers/056.pal +++ b/gfx/trainers/056.pal diff --git a/gfx/trainers/057.pal b/gfx/trainers/057.pal Binary files differindex 416e43178..4fb9af5e1 100644 --- a/gfx/trainers/057.pal +++ b/gfx/trainers/057.pal diff --git a/gfx/trainers/058.pal b/gfx/trainers/058.pal Binary files differindex 56a1c2c2d..601ed4ae9 100644 --- a/gfx/trainers/058.pal +++ b/gfx/trainers/058.pal diff --git a/gfx/trainers/059.pal b/gfx/trainers/059.pal Binary files differindex c3fb920d4..334b11d21 100644 --- a/gfx/trainers/059.pal +++ b/gfx/trainers/059.pal diff --git a/gfx/trainers/060.pal b/gfx/trainers/060.pal Binary files differindex 4aeace7ac..47792418b 100644 --- a/gfx/trainers/060.pal +++ b/gfx/trainers/060.pal diff --git a/gfx/trainers/061.pal b/gfx/trainers/061.pal Binary files differindex c403ca527..57d1b94cf 100644 --- a/gfx/trainers/061.pal +++ b/gfx/trainers/061.pal diff --git a/gfx/trainers/062.pal b/gfx/trainers/062.pal Binary files differindex 65dd30c99..3ebf35fb7 100644 --- a/gfx/trainers/062.pal +++ b/gfx/trainers/062.pal diff --git a/gfx/trainers/063.pal b/gfx/trainers/063.pal Binary files differindex a06cfa402..ce6b3f1d7 100644 --- a/gfx/trainers/063.pal +++ b/gfx/trainers/063.pal diff --git a/gfx/trainers/064.pal b/gfx/trainers/064.pal Binary files differindex a3be67ca6..a14a47917 100644 --- a/gfx/trainers/064.pal +++ b/gfx/trainers/064.pal diff --git a/gfx/trainers/065.pal b/gfx/trainers/065.pal Binary files differindex 288efa9eb..746132411 100644 --- a/gfx/trainers/065.pal +++ b/gfx/trainers/065.pal diff --git a/gfx/trainers/066.pal b/gfx/trainers/066.pal Binary files differindex 802f876dd..7e95414ae 100644 --- a/gfx/trainers/066.pal +++ b/gfx/trainers/066.pal 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 @@ -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 Binary files differindex bdfd30645..4c4f7700d 100644 --- a/tilesets/dark.pal +++ b/tilesets/dark.pal 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 Binary files differindex 969fe230d..9535caedd 100644 --- a/tilesets/day.pal +++ b/tilesets/day.pal diff --git a/tilesets/morn.pal b/tilesets/morn.pal Binary files differindex 279a064e2..0ba286f36 100644 --- a/tilesets/morn.pal +++ b/tilesets/morn.pal diff --git a/tilesets/nite.pal b/tilesets/nite.pal Binary files differindex 8c1079f09..0e2fea242 100644 --- a/tilesets/nite.pal +++ b/tilesets/nite.pal 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 Binary files differnew file mode 100644 index 000000000..559aad109 --- /dev/null +++ b/tilesets/unused_30_collision.bin diff --git a/tilesets/unused_30_metatiles.bin b/tilesets/unused_30_metatiles.bin Binary files differnew file mode 100644 index 000000000..b70f1a0e6 --- /dev/null +++ b/tilesets/unused_30_metatiles.bin 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 @@ -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] |