summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_10.s4675
-rw-r--r--asm/battle_2.s2
-rw-r--r--asm/battle_3.s6
-rw-r--r--asm/battle_4.s74
-rw-r--r--asm/battle_9.s6
-rw-r--r--asm/field_tasks.s1972
-rw-r--r--asm/pokeblock.s2675
-rw-r--r--asm/rotating_gate.s1085
-rw-r--r--asm/sound_check_menu.s2444
-rw-r--r--data/field_tasks.s66
-rw-r--r--data/pokeblock.s125
-rw-r--r--data/rotating_gate.s311
-rw-r--r--data/sound_check_menu.s121
-rw-r--r--data/specials.inc4
-rw-r--r--data/text/song_names.inc1105
-rw-r--r--[-rwxr-xr-x]graphics-de/unused/old_charmap.pngbin1873 -> 1873 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/attract.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/attract.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/attract.pngbin2150 -> 2150 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/sandstorm_brew.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/sandstorm_brew.pngbin997 -> 997 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/scary_face.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/scary_face.pngbin428 -> 428 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/scary_face_contest.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/scary_face_opponent.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/scary_face_player.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/water.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/water.pngbin3793 -> 3793 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/cure_bubbles.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/cure_bubbles.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/cure_bubbles.pngbin336 -> 336 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/curse.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/curse.pngbin138 -> 138 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/metal_shine.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/metal_shine.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/metal_shine.pngbin183 -> 183 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/morning_sun.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/morning_sun.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/morning_sun.pngbin188 -> 188 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat.pngbin430 -> 430 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat5.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat6.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat_tilemap_1.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat_tilemap_2.bin0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/unknown_D2EDFC.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/unknown_D2EDFC.pngbin175 -> 175 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/sprites/substitute.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/sprites/substitute.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/sprites/substitute.pngbin446 -> 446 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/ball_display.pngbin191 -> 191 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/ball_display_unused_extra.pngbin158 -> 158 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/bar.pngbin174 -> 174 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/enemy_mon_shadow.pngbin154 -> 154 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/expbar.pngbin166 -> 166 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/hpbar.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/hpbar.pngbin217 -> 217 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/hpbar_anim.pngbin205 -> 205 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/misc.pngbin200 -> 200 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/misc_frameend.pngbin140 -> 140 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status2.pngbin198 -> 198 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status3.pngbin199 -> 199 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status4.pngbin197 -> 197 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status_brn.pngbin176 -> 176 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status_frz.pngbin176 -> 176 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status_par.pngbin172 -> 172 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status_psn.pngbin176 -> 176 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status_slp.pngbin177 -> 177 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window.pngbin360 -> 360 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window2.pngbin318 -> 318 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window3.pngbin314 -> 314 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window4.pngbin306 -> 306 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window5.pngbin297 -> 297 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/building/palette2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/building/palette3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/cave/groudon.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/battle_tower.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/map.binbin4096 -> 4096 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette5.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette6.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette7.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/tiles.pngbin712 -> 712 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/water/kyogre.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_transitions/vs.pngbin533 -> 533 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_transitions/vs_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_transitions/vs_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_transitions/vs_frame.pngbin317 -> 317 bytes
-rw-r--r--[-rwxr-xr-x]graphics/birch_speech/birch.pal0
-rw-r--r--[-rwxr-xr-x]graphics/birch_speech/birch.pngbin837 -> 837 bytes
-rw-r--r--[-rwxr-xr-x]graphics/birch_speech/shadow.pngbin372 -> 372 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/applause.pngbin287 -> 287 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/applause_meter.pngbin184 -> 184 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/audience.pngbin2086 -> 2086 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/faces.pngbin1028 -> 1028 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/heart.pngbin873 -> 873 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/judge.pal0
-rw-r--r--[-rwxr-xr-x]graphics/contest/judge.pngbin593 -> 593 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/judge_symbols.pal0
-rw-r--r--[-rwxr-xr-x]graphics/contest/judge_symbols.pngbin401 -> 401 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc.pngbin1735 -> 1735 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc_2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc_2.pngbin2853 -> 2853 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc_2_tilemap_1.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc_2_tilemap_2.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc_2_tilemap_3.bin0
-rw-r--r--[-rwxr-xr-x]graphics/contest/nextturn.pal0
-rw-r--r--[-rwxr-xr-x]graphics/contest/nextturn.pngbin199 -> 199 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/nextturn_numbers.pngbin200 -> 200 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/nextturn_random.pngbin161 -> 161 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/bag_screen.pngbin1634 -> 1634 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/bag_screen_female.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/bag_screen_male.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/dive.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/dive.pngbin326 -> 326 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/great.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/great.pngbin257 -> 257 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/luxury.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/luxury.pngbin350 -> 350 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/master.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/master.pngbin260 -> 260 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/nest.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/nest.pngbin266 -> 266 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/net.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/net.pngbin246 -> 246 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/poke.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/poke.pngbin249 -> 249 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/premier.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/premier.pngbin289 -> 289 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/repeat.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/repeat.pngbin257 -> 257 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/safari.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/safari.pngbin259 -> 259 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/timer.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/timer.pngbin296 -> 296 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/ultra.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/ultra.pngbin248 -> 248 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball_open.pngbin215 -> 215 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/blank.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/blank.pngbin88 -> 88 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/check_berry.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/check_berry.pngbin1134 -> 1134 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/check_berry_circle.pngbin466 -> 466 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/hold_icons.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/hold_icons.pngbin177 -> 177 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/hpbar_anim.pngbin192 -> 192 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/mart_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/mart_frame.pngbin300 -> 300 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/menu.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/menu.pngbin487 -> 487 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/menu_0.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/menu_1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/money.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/money.pngbin201 -> 201 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/numbers1.pngbin201 -> 201 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/numbers2.pngbin215 -> 215 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/party_menu_hpbar.pngbin220 -> 220 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/party_menu_misc.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/party_menu_misc.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/party_menu_misc.pngbin546 -> 546 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/party_menu_ordertext.pngbin758 -> 758 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/pokeblock.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/pokeblock_case_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/pokeblock_case_frame.pngbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/pokeblock_device.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/pokeblock_device.pngbin530 -> 530 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/status_icons.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/status_icons.pngbin449 -> 449 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/status_screen.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/status_screen.pngbin2011 -> 2011 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/summary_frames.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/summary_frames.pngbin273 -> 273 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bg.pngbin912 -> 912 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal10.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal11.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal12.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal13.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal14.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal15.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal16.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal5.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal6.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal7.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal8.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal9.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_eon.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_eon.pngbin258 -> 258 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_gamefreak.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_gamefreak.pngbin706 -> 706 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_leaves.pngbin5053 -> 5053 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_waterdrops.pngbin462 -> 462 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgclouds.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgclouds.pngbin718 -> 718 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgclouds2.pngbin296 -> 296 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgnight.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgnight.pngbin536 -> 536 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgtrees.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgtrees.pngbin1023 -> 1023 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgtreessmall.pngbin360 -> 360 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bicycle.pngbin732 -> 732 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_brendan.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_brendan.pngbin1401 -> 1401 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_grass.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_grass.pngbin399 -> 399 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_latias.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_latias.pngbin680 -> 680 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_latios.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_latios.pngbin796 -> 796 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_may.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_may.pngbin1617 -> 1617 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_attackgfx.pngbin363 -> 363 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_explosion.pngbin335 -> 335 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_misc1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_misc2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_pokeball.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_pokeball.pngbin2197 -> 2197 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_star.pngbin153 -> 153 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_bag.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_bag.pngbin1304 -> 1304 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_ballarrow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_ballarrow.pngbin635 -> 635 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_circle.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_circle.pngbin349 -> 349 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_grass.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_grass.pngbin691 -> 691 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car.pngbin556 -> 556 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car_bg.pngbin4982 -> 4982 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car_cord.pngbin147 -> 147 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car_door.pngbin155 -> 155 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock_ampm.pngbin178 -> 178 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock_hands.pngbin197 -> 197 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock_small.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock_small.pngbin221 -> 221 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/confetti.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/confetti.pngbin355 -> 355 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/diploma.pngbin2064 -> 2064 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/diploma_national.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/egg_hatch.pngbin469 -> 469 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/egg_shard.pngbin189 -> 189 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/evo_sparkle.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/evo_sparkle.pngbin154 -> 154 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/interview_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/interview_frame.pngbin192 -> 192 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_beauty.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_cool.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_cute.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_full.pngbin1048 -> 1048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_half.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_half.pngbin486 -> 486 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_smart.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_tough.pal0
-rw-r--r--[-rwxr-xr-x]graphics/naming_screen/menu.pngbin541 -> 541 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/area_glow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/area_glow.pngbin334 -> 334 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/arrows.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/arrows.pngbin303 -> 303 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/cry_meter.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/cry_meter.pngbin673 -> 673 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu.pngbin2798 -> 2798 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu2.pngbin963 -> 963 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu_search.pngbin1222 -> 1222 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/noball.pngbin189 -> 189 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/arrow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/arrow.pngbin188 -> 188 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/beach.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/beach_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/beach_bg.pngbin322 -> 322 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/beach_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/beach_frame.pngbin576 -> 576 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/box_bg1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/box_bg2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/box_bg3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/box_bg4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/cave.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/cave_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/cave_bg.pngbin192 -> 192 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/cave_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/cave_frame.pngbin623 -> 623 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/city.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/city_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/city_bg.pngbin175 -> 175 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/city_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/city_frame.pngbin442 -> 442 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/crag.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/crag_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/crag_bg.pngbin236 -> 236 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/crag_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/crag_frame.pngbin603 -> 603 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/desert.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/desert_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/desert_bg.pngbin203 -> 203 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/desert_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/desert_frame.pngbin541 -> 541 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/forest.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/forest_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/forest_bg.pngbin171 -> 171 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/forest_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/forest_frame.pngbin654 -> 654 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/machine.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/machine_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/machine_bg.pngbin145 -> 145 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/machine_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/machine_frame.pngbin616 -> 616 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/plain.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/plain_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/plain_bg.pngbin131 -> 131 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/plain_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/plain_frame.pngbin292 -> 292 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/pokecenter.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/pokecenter_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/pokecenter_bg.pngbin494 -> 494 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/pokecenter_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/pokecenter_frame.pngbin365 -> 365 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/polkadot.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/polkadot_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/polkadot_bg.pngbin185 -> 185 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/polkadot_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/polkadot_frame.pngbin421 -> 421 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/river.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/river_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/river_bg.pngbin164 -> 164 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/river_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/river_frame.pngbin573 -> 573 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/savanna.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/savanna_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/savanna_bg.pngbin189 -> 189 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/savanna_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/savanna_frame.pngbin455 -> 455 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/seafloor.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/seafloor_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/seafloor_bg.pngbin262 -> 262 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/seafloor_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/seafloor_frame.pngbin491 -> 491 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/sky.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/sky_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/sky_bg.pngbin219 -> 219 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/sky_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/sky_frame.pngbin505 -> 505 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/snow.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/snow_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/snow_bg.pngbin174 -> 174 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/snow_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/snow_frame.pngbin550 -> 550 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/volcano.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/volcano_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/volcano_bg.pngbin215 -> 215 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/volcano_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/volcano_frame.pngbin625 -> 625 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/cursor.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/cursor_large.pngbin194 -> 194 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/cursor_small.pngbin168 -> 168 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/icon.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/icon.pngbin628 -> 628 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/map_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/map_frame.pngbin160 -> 160 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/map_misc.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/map_misc.pngbin291 -> 291 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/map_squares.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/region_map.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/region_map.pngbin3959 -> 3959 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/trainereyes_misc.pngbin181 -> 181 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/trainereyes_misc_pal.binbin32 -> 32 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/azurill.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/azurill.pngbin345 -> 345 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/ball.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/ball.pngbin310 -> 310 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/ball_counter.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/ball_counter.pngbin246 -> 246 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/center.pngbin589 -> 589 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/cursor.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/cursor.pngbin153 -> 153 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/makuhita.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/makuhita.pngbin386 -> 386 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/poke_icons.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/poke_icons.pngbin409 -> 409 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/shadow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/shadow.pngbin210 -> 210 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/shroomish.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/shroomish.pngbin531 -> 531 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/skitty.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/skitty.pngbin394 -> 394 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/tailow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/tailow.pngbin297 -> 297 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/wynaut.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/wynaut.pngbin399 -> 399 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/0.pngbin155 -> 155 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/1.pngbin137 -> 137 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/2.pngbin153 -> 153 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/3.pngbin144 -> 144 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/4.pngbin150 -> 150 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/5.pngbin153 -> 153 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/6.pngbin156 -> 156 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/7.pngbin147 -> 147 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/8.pngbin152 -> 152 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/9.pngbin155 -> 155 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_machine.pngbin954 -> 954 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_pikachu.pngbin2210 -> 2210 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/1.pngbin260 -> 260 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/2.pngbin259 -> 259 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/3.pngbin275 -> 275 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/4.pngbin249 -> 249 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/5.pngbin291 -> 291 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/6.pngbin259 -> 259 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/7.pngbin227 -> 227 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr0.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr2_ruby.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr3_ruby.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr5.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr6.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/groudon.pngbin1562 -> 1562 bytes
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/groudon_dark.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/groudon_glow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/kyogre.pngbin1003 -> 1003 bytes
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/kyogre_dark.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/kyogre_glow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/logo_ruby.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/logo_sapphire.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/pokemon_ruby.pngbin4666 -> 4666 bytes
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/pokemon_sapphire.pngbin4558 -> 4558 bytes
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/rubyversion.pngbin1915 -> 1915 bytes
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/sapphireversion.pngbin2199 -> 2199 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/cable_end.pngbin194 -> 194 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/gba.pal0
-rw-r--r--[-rwxr-xr-x]graphics/trade/gba.pngbin1039 -> 1039 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/gba_screen.pngbin170 -> 170 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/glow1.pngbin195 -> 195 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/glow2.pngbin190 -> 190 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/misc.pal0
-rw-r--r--[-rwxr-xr-x]graphics/trade/shadow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/trade/shadow.pngbin231 -> 231 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/bug.pngbin205 -> 205 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/contest_beauty.pngbin224 -> 224 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/contest_cool.pngbin212 -> 212 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/contest_cute.pngbin216 -> 216 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/contest_smart.pngbin223 -> 223 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/contest_tough.pngbin217 -> 217 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/dark.pngbin219 -> 219 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/dragon.pngbin223 -> 223 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/electric.pngbin227 -> 227 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/fight.pngbin227 -> 227 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/fire.pngbin216 -> 216 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/flying.pngbin230 -> 230 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/ghost.pngbin232 -> 232 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/grass.pngbin229 -> 229 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/ground.pngbin231 -> 231 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/ice.pngbin207 -> 207 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/move_types_1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/types/move_types_2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/types/move_types_3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/types/mystery.pngbin215 -> 215 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/normal.pngbin221 -> 221 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/poison.pngbin236 -> 236 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/psychic.pngbin234 -> 234 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/rock.pngbin220 -> 220 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/steel.pngbin223 -> 223 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/water.pngbin218 -> 218 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/ball.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/ball.pngbin150 -> 150 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_3E3BE0.pngbin86 -> 86 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D04388.pngbin156 -> 156 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D07B68.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D07B68.pngbin181 -> 181 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D07B68_2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D0CFAC.binbin36 -> 36 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D0CFD0.binbin36 -> 36 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D0CFF4.binbin36 -> 36 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D0D070.binbin32 -> 32 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D0D2B4.binbin32 -> 32 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D12FEC.pngbin84 -> 84 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D1300C.pngbin92 -> 92 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D15D64.binbin4096 -> 4096 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D17424.binbin4096 -> 4096 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D176CC.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D177D8.binbin8192 -> 8192 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D17C3C.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D1C060.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D1C060.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D1C060.pngbin159 -> 159 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E6BC04.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E70968.binbin4096 -> 4096 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E70C38.bin0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E70F0C.bin0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E8096C.pngbin1034 -> 1034 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E953D0.binbin1152 -> 1152 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E966B8.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E96738.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E96D2C.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E997E8.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E99FB0.binbin1536 -> 1536 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9AB40.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9AB60.binbin640 -> 640 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9C6DC.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9F7E4.binbin1024 -> 1024 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9F988.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9F9E8.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9FBA0.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9FC64.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9FEB4.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9FF58.binbin1600 -> 1600 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/basic_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/basic_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/basic_frame.pngbin230 -> 230 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/battle_anim_023.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/blank_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/blue_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/color_frames.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/color_frames.pngbin282 -> 282 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/goosuto.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/goosuto.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/goosuto.pngbin290 -> 290 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/green_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/line_sketch.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/line_sketch.pngbin328 -> 328 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/line_sketch_2.binbin1024 -> 1024 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/line_sketch_2.pngbin154 -> 154 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/metronome_hand_small.pngbin202 -> 202 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/music_notes.pngbin310 -> 310 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/numbers.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/numbers.pngbin302 -> 302 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_battle_interface_1.pngbin524 -> 524 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_battle_interface_2.pngbin198 -> 198 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_battle_interface_3.pngbin226 -> 226 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_battle_interface_tilemap.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_beatup.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_beatup.pngbin220 -> 220 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_bulbasaur.pngbin490 -> 490 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_bulbasaur2.pngbin520 -> 520 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_charizard.pngbin335 -> 335 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_charmap.binbin4096 -> 4096 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_charmap.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_charmap.pngbin1934 -> 1934 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_2.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_2_1.pngbin1829 -> 1829 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_2_2.pngbin1274 -> 1274 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_classes.pngbin292 -> 292 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_floor.pngbin614 -> 614 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_frame_1.pngbin359 -> 359 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_frame_2.pngbin259 -> 259 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_meter.pngbin212 -> 212 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_numbers.pngbin324 -> 324 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_symbols.pngbin237 -> 237 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal5.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal6.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal7.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/red_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/shadow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/shadow.pngbin170 -> 170 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/water_splash.binbin1024 -> 1024 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/water_splash.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/water_splash.pngbin1064 -> 1064 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/yellow_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/weather/fog1.binbin2048 -> 2048 bytes
-rwxr-xr-x[-rw-r--r--]include/battle.h442
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/anim_func_ptrs.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/base_oam.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/berry_tree_graphics_tables.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/callback_subroutine_pointers.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/field_effect_object_template_pointers.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/field_effect_objects.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/map_object_anims.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/map_object_graphics_info.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/map_object_graphics_info_pointers.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/map_object_pic_tables.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/map_object_subsprites.h0
-rw-r--r--include/data2.h10
-rwxr-xr-x[-rw-r--r--]include/decoration.h2
-rw-r--r--include/field_camera.h2
-rw-r--r--[-rwxr-xr-x]include/field_effect_helpers.h1
-rw-r--r--[-rwxr-xr-x]include/field_map_obj.h0
-rw-r--r--include/field_special_scene.h2
-rw-r--r--include/field_tasks.h6
-rw-r--r--include/global.h11
-rwxr-xr-x[-rw-r--r--]include/graphics.h8
-rw-r--r--include/item_use.h2
-rwxr-xr-x[-rw-r--r--]include/menu.h8
-rwxr-xr-x[-rw-r--r--]include/menu_helpers.h2
-rw-r--r--include/player_pc.h4
-rwxr-xr-xinclude/pokeblock.h28
-rw-r--r--include/rom4.h3
-rw-r--r--include/rotating_gate.h2
-rw-r--r--include/secret_base.h1
-rwxr-xr-x[-rw-r--r--]include/strings.h0
-rw-r--r--include/task.h4
-rw-r--r--include/text.h1
-rw-r--r--include/use_pokeblock.h10
-rwxr-xr-xinclude/vars.h9
-rw-r--r--[-rwxr-xr-x]ld_script.txt18
-rw-r--r--[-rwxr-xr-x]misc.mk0
-rw-r--r--src/battle_10.c1322
-rw-r--r--src/battle_2.c199
-rw-r--r--src/battle_811DA74.c9
-rw-r--r--src/battle_ai.c283
-rw-r--r--src/battle_anim_8137220.c2
-rw-r--r--src/battle_party_menu.c2
-rw-r--r--src/berry.c2
-rw-r--r--src/berry_tag_screen.c2
-rwxr-xr-x[-rw-r--r--]src/decoration.c8
-rw-r--r--[-rwxr-xr-x]src/field_map_obj.c0
-rw-r--r--[-rwxr-xr-x]src/field_map_obj_helpers.c0
-rw-r--r--src/field_special_scene.c2
-rwxr-xr-xsrc/field_tasks.c859
-rw-r--r--src/item_use.c1
-rw-r--r--src/link.c2
-rw-r--r--src/menu.c2
-rw-r--r--src/mori_debug_menu.c2
-rw-r--r--src/party_menu.c2
-rw-r--r--src/player_pc.c1
-rwxr-xr-xsrc/pokeblock.c1116
-rw-r--r--src/pokemon_3.c16
-rw-r--r--src/rom4.c2
-rw-r--r--src/rotating_gate.c1228
-rwxr-xr-xsrc/sound_check_menu.c2198
-rw-r--r--src/tv.c23
-rw-r--r--sym_ewram.txt6
641 files changed, 7532 insertions, 15004 deletions
diff --git a/asm/battle_10.s b/asm/battle_10.s
deleted file mode 100644
index 548c77bce..000000000
--- a/asm/battle_10.s
+++ /dev/null
@@ -1,4675 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start LinkOpponentHandleGetAttributes
-LinkOpponentHandleGetAttributes: @ 803807C
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _080380A8 @ =gBattleBufferA
- ldr r0, _080380AC @ =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080380B4
- ldr r0, _080380B0 @ =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0, 0
- b _080380D6
- .align 2, 0
-_080380A8: .4byte gBattleBufferA
-_080380AC: .4byte gActiveBank
-_080380B0: .4byte gBattlePartyID
-_080380B4:
- ldrb r4, [r1]
- movs r5, 0
-_080380B8:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080380CE
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0
-_080380CE:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _080380B8
-_080380D6:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl4_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end LinkOpponentHandleGetAttributes
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__
-dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _08038124 @ =gBattleBufferA
- ldr r3, _08038128 @ =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0803811A
- bl _08038886
-_0803811A:
- lsls r0, 2
- ldr r1, _0803812C @ =_08038130
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038124: .4byte gBattleBufferA
-_08038128: .4byte gActiveBank
-_0803812C: .4byte _08038130
- .align 2, 0
-_08038130:
- .4byte _08038220
- .4byte _08038444
- .4byte _08038454
- .4byte _08038464
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384E8
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038540
- .4byte _08038550
- .4byte _08038580
- .4byte _08038590
- .4byte _080385A0
- .4byte _080385B0
- .4byte _080385C0
- .4byte _080385D0
- .4byte _080385E0
- .4byte _080385F0
- .4byte _08038600
- .4byte _08038610
- .4byte _08038620
- .4byte _08038630
- .4byte _08038640
- .4byte _08038690
- .4byte _080386A0
- .4byte _080386B0
- .4byte _080386C0
- .4byte _080386D0
- .4byte _080386E0
- .4byte _080386F0
- .4byte _08038700
- .4byte _08038710
- .4byte _08038744
- .4byte _08038754
- .4byte _08038764
- .4byte _08038774
- .4byte _08038784
- .4byte _08038794
- .4byte _080387A4
- .4byte _080387B4
- .4byte _080387D4
- .4byte _080387E4
- .4byte _080387F4
- .4byte _08038804
- .4byte _08038814
- .4byte _08038824
- .4byte _08038834
- .4byte _08038844
- .4byte _08038854
- .4byte _08038864
- .4byte _08038874
-_08038220:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_0803826C:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803826C
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _08038438 @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _0803843C @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _08038440 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_08038424:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08038424
- b _08038886
- .align 2, 0
-_08038434: .4byte gEnemyParty
-_08038438: .4byte 0xfffffc1f
-_0803843C: .4byte 0xfff07fff
-_08038440: .4byte 0xfffffe0f
-_08038444:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038450 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _080387BE
- .align 2, 0
-_08038450: .4byte gEnemyParty
-_08038454:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038460 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _080387BE
- .align 2, 0
-_08038460: .4byte gEnemyParty
-_08038464:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080384C8 @ =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_0803847A:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803847A
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384C8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_080384B8:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _080384B8
- b _08038886
- .align 2, 0
-_080384C8: .4byte gEnemyParty
-_080384CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384E4 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _080387BE
- .align 2, 0
-_080384E4: .4byte gEnemyParty
-_080384E8:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _08038520 @ =gEnemyParty
- mov r8, r2
-_080384F4:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _080384F4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038520 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _08038886
- .align 2, 0
-_08038520: .4byte gEnemyParty
-_08038524:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803853C @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0803887E
- .align 2, 0
-_0803853C: .4byte gEnemyParty
-_08038540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803854C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _0803855A
- .align 2, 0
-_0803854C: .4byte gEnemyParty
-_08038550:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803857C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_0803855A:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _08038886
- .align 2, 0
-_0803857C: .4byte gEnemyParty
-_08038580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803858C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _0803887E
- .align 2, 0
-_0803858C: .4byte gEnemyParty
-_08038590:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803859C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _0803887E
- .align 2, 0
-_0803859C: .4byte gEnemyParty
-_080385A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _0803887E
- .align 2, 0
-_080385AC: .4byte gEnemyParty
-_080385B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _0803887E
- .align 2, 0
-_080385BC: .4byte gEnemyParty
-_080385C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _0803887E
- .align 2, 0
-_080385CC: .4byte gEnemyParty
-_080385D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _0803887E
- .align 2, 0
-_080385DC: .4byte gEnemyParty
-_080385E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _0803887E
- .align 2, 0
-_080385EC: .4byte gEnemyParty
-_080385F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _0803887E
- .align 2, 0
-_080385FC: .4byte gEnemyParty
-_08038600:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803860C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _0803887E
- .align 2, 0
-_0803860C: .4byte gEnemyParty
-_08038610:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803861C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _0803887E
- .align 2, 0
-_0803861C: .4byte gEnemyParty
-_08038620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803862C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _0803887E
- .align 2, 0
-_0803862C: .4byte gEnemyParty
-_08038630:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803863C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _0803887E
- .align 2, 0
-_0803863C: .4byte gEnemyParty
-_08038640:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0803868C @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _08038886
- .align 2, 0
-_0803868C: .4byte gEnemyParty
-_08038690:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803869C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _0803887E
- .align 2, 0
-_0803869C: .4byte gEnemyParty
-_080386A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _0803887E
- .align 2, 0
-_080386AC: .4byte gEnemyParty
-_080386B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _0803887E
- .align 2, 0
-_080386BC: .4byte gEnemyParty
-_080386C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _0803887E
- .align 2, 0
-_080386CC: .4byte gEnemyParty
-_080386D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _0803887E
- .align 2, 0
-_080386DC: .4byte gEnemyParty
-_080386E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _0803887E
- .align 2, 0
-_080386EC: .4byte gEnemyParty
-_080386F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _0803871A
- .align 2, 0
-_080386FC: .4byte gEnemyParty
-_08038700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803870C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _080387BE
- .align 2, 0
-_0803870C: .4byte gEnemyParty
-_08038710:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038740 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_0803871A:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _08038886
- .align 2, 0
-_08038740: .4byte gEnemyParty
-_08038744:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038750 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _0803887E
- .align 2, 0
-_08038750: .4byte gEnemyParty
-_08038754:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038760 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _080387BE
- .align 2, 0
-_08038760: .4byte gEnemyParty
-_08038764:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038770 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _080387BE
- .align 2, 0
-_08038770: .4byte gEnemyParty
-_08038774:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038780 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _080387BE
- .align 2, 0
-_08038780: .4byte gEnemyParty
-_08038784:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038790 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _080387BE
- .align 2, 0
-_08038790: .4byte gEnemyParty
-_08038794:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387A0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _080387BE
- .align 2, 0
-_080387A0: .4byte gEnemyParty
-_080387A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387B0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _080387BE
- .align 2, 0
-_080387B0: .4byte gEnemyParty
-_080387B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387D0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_080387BE:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _08038886
- .align 2, 0
-_080387D0: .4byte gEnemyParty
-_080387D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387E0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _0803887E
- .align 2, 0
-_080387E0: .4byte gEnemyParty
-_080387E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387F0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _0803887E
- .align 2, 0
-_080387F0: .4byte gEnemyParty
-_080387F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038800 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _0803887E
- .align 2, 0
-_08038800: .4byte gEnemyParty
-_08038804:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038810 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _0803887E
- .align 2, 0
-_08038810: .4byte gEnemyParty
-_08038814:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038820 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _0803887E
- .align 2, 0
-_08038820: .4byte gEnemyParty
-_08038824:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038830 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _0803887E
- .align 2, 0
-_08038830: .4byte gEnemyParty
-_08038834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038840 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _0803887E
- .align 2, 0
-_08038840: .4byte gEnemyParty
-_08038844:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038850 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _0803887E
- .align 2, 0
-_08038850: .4byte gEnemyParty
-_08038854:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038860 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _0803887E
- .align 2, 0
-_08038860: .4byte gEnemyParty
-_08038864:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038870 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _0803887E
- .align 2, 0
-_08038870: .4byte gEnemyParty
-_08038874:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038898 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_0803887E:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_08038886:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08038898: .4byte gEnemyParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__
-
- thumb_func_start sub_803889C
-sub_803889C: @ 803889C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803889C
-
- thumb_func_start sub_80388A8
-sub_80388A8: @ 80388A8
- push {r4,r5,lr}
- ldr r1, _080388CC @ =gBattleBufferA
- ldr r0, _080388D0 @ =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080388D8
- ldr r0, _080388D4 @ =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8038900
- b _080388F6
- .align 2, 0
-_080388CC: .4byte gBattleBufferA
-_080388D0: .4byte gActiveBank
-_080388D4: .4byte gBattlePartyID
-_080388D8:
- ldrb r4, [r1]
- movs r5, 0
-_080388DC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080388EA
- adds r0, r5, 0
- bl sub_8038900
-_080388EA:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080388DC
-_080388F6:
- bl dp01_tbl4_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80388A8
-
- thumb_func_start sub_8038900
-sub_8038900: @ 8038900
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _08038938 @ =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, _0803893C @ =gUnknown_02023A63
- adds r4, r0, r2
- adds r7, r4, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0x3B
- bls _0803892E
- bl _0803920C
-_0803892E:
- lsls r0, 2
- ldr r1, _08038940 @ =_08038944
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038938: .4byte gActiveBank
-_0803893C: .4byte gUnknown_02023A63
-_08038940: .4byte _08038944
- .align 2, 0
-_08038944:
- .4byte _08038A34
- .4byte _08038BCC
- .4byte _08038BE8
- .4byte _08038C04
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C78
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _08038D08
- .4byte _08038D24
- .4byte _08038D40
- .4byte _08038D5C
- .4byte _08038D78
- .4byte _08038D94
- .4byte _08038DB0
- .4byte _08038DCC
- .4byte _08038DE8
- .4byte _08038E04
- .4byte _08038E20
- .4byte _08038E3C
- .4byte _08038E58
- .4byte _08038E74
- .4byte _08038E90
- .4byte _08038F04
- .4byte _08038F20
- .4byte _08038F3C
- .4byte _08038F58
- .4byte _08038F74
- .4byte _08038F90
- .4byte _08038FAC
- .4byte _08038FC8
- .4byte _08038FE4
- .4byte _08039000
- .4byte _0803901C
- .4byte _08039038
- .4byte _08039054
- .4byte _08039070
- .4byte _0803908C
- .4byte _080390A8
- .4byte _080390C4
- .4byte _080390E0
- .4byte _080390FC
- .4byte _08039118
- .4byte _08039134
- .4byte _08039150
- .4byte _0803916C
- .4byte _08039188
- .4byte _080391A4
- .4byte _080391C0
- .4byte _080391DC
- .4byte _080391F8
-_08038A34:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r7, 0
- bl SetMonData
- adds r2, r7, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r7
- mov r10, r0
- adds r0, r7, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r7, 0x2
- str r0, [sp, 0x4]
- adds r0, r7, 0x4
- str r0, [sp, 0x8]
- adds r0, r7, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r6, r7, 0
- adds r6, 0x24
- adds r4, r7, 0
- adds r4, 0xC
-_08038A9A:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038A9A
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r7, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r7, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038BC8: .4byte gEnemyParty
-_08038BCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038BE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038BE4: .4byte gEnemyParty
-_08038BE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C00: .4byte gEnemyParty
-_08038C04:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r4
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08038C54 @ =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08038C1C:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038C1C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C54: .4byte gEnemyParty
-_08038C58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C70 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038C74 @ =gBattleBufferA
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _08038CF6
- .align 2, 0
-_08038C70: .4byte gEnemyParty
-_08038C74: .4byte gBattleBufferA
-_08038C78:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038CDC @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x11
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038CDC: .4byte gEnemyParty
-_08038CE0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D00 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038D04 @ =gBattleBufferA
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_08038CF6:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D00: .4byte gEnemyParty
-_08038D04: .4byte gBattleBufferA
-_08038D08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D20 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D20: .4byte gEnemyParty
-_08038D24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D3C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D3C: .4byte gEnemyParty
-_08038D40:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D58 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D58: .4byte gEnemyParty
-_08038D5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D74 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D74: .4byte gEnemyParty
-_08038D78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D90 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D90: .4byte gEnemyParty
-_08038D94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DAC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DAC: .4byte gEnemyParty
-_08038DB0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DC8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DC8: .4byte gEnemyParty
-_08038DCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DE4: .4byte gEnemyParty
-_08038DE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E00: .4byte gEnemyParty
-_08038E04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E1C: .4byte gEnemyParty
-_08038E20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E38: .4byte gEnemyParty
-_08038E3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E54: .4byte gEnemyParty
-_08038E58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E70: .4byte gEnemyParty
-_08038E74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E8C: .4byte gEnemyParty
-_08038E90:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038F00 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x27
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _08038F9E
- .align 2, 0
-_08038F00: .4byte gEnemyParty
-_08038F04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F1C: .4byte gEnemyParty
-_08038F20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F38: .4byte gEnemyParty
-_08038F3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F54: .4byte gEnemyParty
-_08038F58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F70: .4byte gEnemyParty
-_08038F74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F8C: .4byte gEnemyParty
-_08038F90:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FA8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_08038F9E:
- movs r1, 0x2C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FA8: .4byte gEnemyParty
-_08038FAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FC4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FC4: .4byte gEnemyParty
-_08038FC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FE0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FE0: .4byte gEnemyParty
-_08038FE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FFC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FFC: .4byte gEnemyParty
-_08039000:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039018 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039018: .4byte gEnemyParty
-_0803901C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039034 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039034: .4byte gEnemyParty
-_08039038:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039050 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039050: .4byte gEnemyParty
-_08039054:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803906C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803906C: .4byte gEnemyParty
-_08039070:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039088 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039088: .4byte gEnemyParty
-_0803908C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390A4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390A4: .4byte gEnemyParty
-_080390A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390C0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390C0: .4byte gEnemyParty
-_080390C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390DC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390DC: .4byte gEnemyParty
-_080390E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390F8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390F8: .4byte gEnemyParty
-_080390FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039114 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039114: .4byte gEnemyParty
-_08039118:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039130 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039130: .4byte gEnemyParty
-_08039134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803914C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803914C: .4byte gEnemyParty
-_08039150:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039168 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039168: .4byte gEnemyParty
-_0803916C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039184 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039184: .4byte gEnemyParty
-_08039188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391A0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391A0: .4byte gEnemyParty
-_080391A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391BC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391BC: .4byte gEnemyParty
-_080391C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391D8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391D8: .4byte gEnemyParty
-_080391DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391F4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391F4: .4byte gEnemyParty
-_080391F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803921C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_0803920C:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803921C: .4byte gEnemyParty
- thumb_func_end sub_8038900
-
- thumb_func_start sub_8039220
-sub_8039220: @ 8039220
- push {r4-r7,lr}
- ldr r1, _08039284 @ =gBattlePartyID
- ldr r7, _08039288 @ =gActiveBank
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0803928C @ =gBattleBufferA
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _08039290 @ =gEnemyParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08039278
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_08039256:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _08039256
-_08039278:
- bl dp01_tbl4_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039284: .4byte gBattlePartyID
-_08039288: .4byte gActiveBank
-_0803928C: .4byte gBattleBufferA
-_08039290: .4byte gEnemyParty
- thumb_func_end sub_8039220
-
- thumb_func_start sub_8039294
-sub_8039294: @ 8039294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _080393BC @ =gBattlePartyID
- ldr r6, _080393C0 @ =gActiveBank
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r10, r1
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _080393C4 @ =gEnemyParty
- mov r9, r1
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- bl sub_8031794
- ldrb r0, [r6]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080393C8 @ =gUnknown_02024E8C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080393CC @ =gObjectBankIDs
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _080393D0 @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D4 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D8 @ =gBattleMonForms
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldrb r4, [r6]
- lsls r0, r4, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _080393DC @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080393E0 @ =sub_8037A74
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080393BC: .4byte gBattlePartyID
-_080393C0: .4byte gActiveBank
-_080393C4: .4byte gEnemyParty
-_080393C8: .4byte gUnknown_02024E8C
-_080393CC: .4byte gObjectBankIDs
-_080393D0: .4byte gSprites
-_080393D4: .4byte 0x0000ff10
-_080393D8: .4byte gBattleMonForms
-_080393DC: .4byte gBattleBankFunc
-_080393E0: .4byte sub_8037A74
- thumb_func_end sub_8039294
-
- thumb_func_start sub_80393E4
-sub_80393E4: @ 80393E4
- push {r4,lr}
- ldr r1, _0803941C @ =gBattlePartyID
- ldr r4, _08039420 @ =gActiveBank
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, _08039424 @ =gBattleBufferA
- lsls r0, 9
- adds r1, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- lsls r1, r0, 9
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- bl sub_8039430
- ldr r1, _08039428 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803942C @ =sub_8037E30
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803941C: .4byte gBattlePartyID
-_08039420: .4byte gActiveBank
-_08039424: .4byte gBattleBufferA
-_08039428: .4byte gBattleBankFunc
-_0803942C: .4byte sub_8037E30
- thumb_func_end sub_80393E4
-
- thumb_func_start sub_8039430
-sub_8039430: @ 8039430
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0803958C @ =gBattlePartyID
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, _08039590 @ =gBattleBufferA
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r5, _08039594 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08039598 @ =sub_80312F0
- bl CreateInvisibleSpriteWithCallback
- ldr r1, _0803959C @ =gUnknown_0300434C
- mov r10, r1
- add r10, r6
- mov r1, r10
- strb r0, [r1]
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r1, r6, 0
- bl sub_8031794
- adds r0, r6, 0
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080395A0 @ =gUnknown_02024E8C
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080395A4 @ =gObjectBankIDs
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _080395A8 @ =gSprites
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080395AC @ =gBattleMonForms
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080395B0 @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_8046400
- mov r1, r10
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803958C: .4byte gBattlePartyID
-_08039590: .4byte gBattleBufferA
-_08039594: .4byte gEnemyParty
-_08039598: .4byte sub_80312F0
-_0803959C: .4byte gUnknown_0300434C
-_080395A0: .4byte gUnknown_02024E8C
-_080395A4: .4byte gObjectBankIDs
-_080395A8: .4byte gSprites
-_080395AC: .4byte gBattleMonForms
-_080395B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8039430
-
- thumb_func_start sub_80395B4
-sub_80395B4: @ 80395B4
- push {r4-r6,lr}
- ldr r1, _080395E4 @ =gBattleBufferA
- ldr r6, _080395E8 @ =gActiveBank
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _080395F8
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080395EC @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _080395F0 @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080395F4 @ =sub_8039648
- str r1, [r0]
- b _08039634
- .align 2, 0
-_080395E4: .4byte gBattleBufferA
-_080395E8: .4byte gActiveBank
-_080395EC: .4byte 0x02017810
-_080395F0: .4byte gBattleBankFunc
-_080395F4: .4byte sub_8039648
-_080395F8:
- ldr r5, _0803963C @ =gObjectBankIDs
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08039640 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08039644 @ =gHealthboxIDs
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08039634:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803963C: .4byte gObjectBankIDs
-_08039640: .4byte gSprites
-_08039644: .4byte gHealthboxIDs
- thumb_func_end sub_80395B4
-
- thumb_func_start sub_8039648
-sub_8039648: @ 8039648
- push {r4,r5,lr}
- ldr r5, _08039664 @ =gActiveBank
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08039668 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0803966C
- cmp r0, 0x1
- beq _08039698
- b _080396C0
- .align 2, 0
-_08039664: .4byte gActiveBank
-_08039668: .4byte 0x02017810
-_0803966C:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039688
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039688:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _080396C0
-_08039698:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080396C0
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x2
- bl move_anim_start_t4
- ldr r1, _080396C8 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080396CC @ =sub_8037BBC
- str r1, [r0]
-_080396C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080396C8: .4byte gBattleBankFunc
-_080396CC: .4byte sub_8037BBC
- thumb_func_end sub_8039648
-
- thumb_func_start sub_80396D0
-sub_80396D0: @ 80396D0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _08039704 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08039714
- ldr r6, _08039708 @ =gActiveBank
- ldrb r0, [r6]
- bl GetBankIdentity
- movs r1, 0x2
- ands r1, r0
- movs r5, 0x10
- cmp r1, 0
- beq _080396F8
- ldr r5, _0803970C @ =0x0000fff0
-_080396F8:
- ldr r4, _08039710 @ =gLinkPlayers
- ldrb r0, [r6]
- bl sub_803FC34
- b _08039724
- .align 2, 0
-_08039704: .4byte gBattleTypeFlags
-_08039708: .4byte gActiveBank
-_0803970C: .4byte 0x0000fff0
-_08039710: .4byte gLinkPlayers
-_08039714:
- movs r5, 0
- ldr r4, _0803986C @ =gLinkPlayers
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
-_08039724:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x13]
- mov r9, r0
- ldr r0, _08039870 @ =gActiveBank
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r6, _08039874 @ =gUnknown_02024E8C
- lsls r5, 16
- movs r2, 0xB0
- lsls r2, 16
- adds r5, r2
- asrs r5, 16
- ldr r1, _08039878 @ =gTrainerFrontPicCoords
- mov r2, r9
- lsls r0, r2, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 14
- adds r4, r0
- asrs r4, 16
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0803987C @ =gObjectBankIDs
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08039880 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08039884 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable
- mov r1, r9
- lsls r6, r1, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _0803988C @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08039890 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08039894 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r9
- strh r2, [r0, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08039898 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0803989C @ =gBattleBankFunc
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080398A0 @ =sub_803757C
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803986C: .4byte gLinkPlayers
-_08039870: .4byte gActiveBank
-_08039874: .4byte gUnknown_02024E8C
-_08039878: .4byte gTrainerFrontPicCoords
-_0803987C: .4byte gObjectBankIDs
-_08039880: .4byte gSprites
-_08039884: .4byte 0x0000ff10
-_08039888: .4byte gTrainerFrontPicPaletteTable
-_0803988C: .4byte gTrainerFrontPicTable
-_08039890: .4byte 0x000003ff
-_08039894: .4byte 0xfffffc00
-_08039898: .4byte sub_80313A0
-_0803989C: .4byte gBattleBankFunc
-_080398A0: .4byte sub_803757C
- thumb_func_end sub_80396D0
-
- thumb_func_start sub_80398A4
-sub_80398A4: @ 80398A4
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80398A4
-
- thumb_func_start sub_80398B0
-sub_80398B0: @ 80398B0
- push {r4-r6,lr}
- ldr r6, _08039940 @ =gObjectBankIDs
- ldr r4, _08039944 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08039948 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803994C @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08039950 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _08039954 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039958 @ =sub_80375B4
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039940: .4byte gObjectBankIDs
-_08039944: .4byte gActiveBank
-_08039948: .4byte gSprites
-_0803994C: .4byte sub_8078B34
-_08039950: .4byte SpriteCallbackDummy
-_08039954: .4byte gBattleBankFunc
-_08039958: .4byte sub_80375B4
- thumb_func_end sub_80398B0
-
- thumb_func_start sub_803995C
-sub_803995C: @ 803995C
- push {r4,r5,lr}
- ldr r5, _080399A0 @ =gActiveBank
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _080399A4 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _080399A8
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803998E
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0803998E:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _080399E4
- .align 2, 0
-_080399A0: .4byte gActiveBank
-_080399A4: .4byte 0x02017810
-_080399A8:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080399E4
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl PlaySE12WithPanning
- ldr r2, _080399EC @ =gSprites
- ldr r1, _080399F0 @ =gObjectBankIDs
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080399F4 @ =sub_8010384
- str r1, [r0]
- ldr r1, _080399F8 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080399FC @ =sub_8037B78
- str r1, [r0]
-_080399E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080399EC: .4byte gSprites
-_080399F0: .4byte gObjectBankIDs
-_080399F4: .4byte sub_8010384
-_080399F8: .4byte gBattleBankFunc
-_080399FC: .4byte sub_8037B78
- thumb_func_end sub_803995C
-
- thumb_func_start sub_8039A00
-sub_8039A00: @ 8039A00
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A00
-
- thumb_func_start sub_8039A0C
-sub_8039A0C: @ 8039A0C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A0C
-
- thumb_func_start sub_8039A18
-sub_8039A18: @ 8039A18
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A18
-
- thumb_func_start sub_8039A24
-sub_8039A24: @ 8039A24
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A24
-
- thumb_func_start sub_8039A30
-sub_8039A30: @ 8039A30
- push {r4-r6,lr}
- ldr r6, _08039B14 @ =gActiveBank
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08039A42
- b _08039B52
-_08039A42:
- ldr r0, _08039B18 @ =gBattleBufferA
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08039B1C @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _08039B20 @ =gMovePowerMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _08039B24 @ =gMoveDmgMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _08039B28 @ =gHappinessMoveAnim
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08039B2C @ =gWeatherMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _08039B30 @ =gDisableStructMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08039B34 @ =gPID_perBank
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08039B38
- bl dp01_tbl4_exec_completed
- b _08039B52
- .align 2, 0
-_08039B14: .4byte gActiveBank
-_08039B18: .4byte gBattleBufferA
-_08039B1C: .4byte gUnknown_0202F7C4
-_08039B20: .4byte gMovePowerMoveAnim
-_08039B24: .4byte gMoveDmgMoveAnim
-_08039B28: .4byte gHappinessMoveAnim
-_08039B2C: .4byte gWeatherMoveAnim
-_08039B30: .4byte gDisableStructMoveAnim
-_08039B34: .4byte gPID_perBank
-_08039B38:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039B58 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08039B5C @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039B60 @ =sub_8039B64
- str r1, [r0]
-_08039B52:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039B58: .4byte 0x02017810
-_08039B5C: .4byte gBattleBankFunc
-_08039B60: .4byte sub_8039B64
- thumb_func_end sub_8039A30
-
- thumb_func_start sub_8039B64
-sub_8039B64: @ 8039B64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _08039BA8 @ =gBattleBufferA
- ldr r5, _08039BAC @ =gActiveBank
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08039BB0 @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08039BF2
- cmp r2, 0x1
- bgt _08039BB4
- cmp r2, 0
- beq _08039BBE
- b _08039CBC
- .align 2, 0
-_08039BA8: .4byte gBattleBufferA
-_08039BAC: .4byte gActiveBank
-_08039BB0: .4byte 0x02017810
-_08039BB4:
- cmp r2, 0x2
- beq _08039C18
- cmp r2, 0x3
- beq _08039C84
- b _08039CBC
-_08039BBE:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _08039BE2
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039BE2:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039BF2:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08039CBC
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl ExecuteMoveAnim
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039C18:
- ldr r0, _08039C74 @ =gAnimScriptCallback
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08039C78 @ =gAnimScriptActive
- ldrb r0, [r0]
- cmp r0, 0
- bne _08039CBC
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039C60
- cmp r7, 0x1
- bhi _08039C60
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08039C60:
- ldr r0, _08039C7C @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039C80 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08039CBC
- .align 2, 0
-_08039C74: .4byte gAnimScriptCallback
-_08039C78: .4byte gAnimScriptActive
-_08039C7C: .4byte gActiveBank
-_08039C80: .4byte 0x02017810
-_08039C84:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08039CBC
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl4_exec_completed
-_08039CBC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8039B64
-
- thumb_func_start sub_8039CC8
-sub_8039CC8: @ 8039CC8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08039D0C @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08039D10 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _08039D14 @ =gActiveBank
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _08039D18 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl BufferStringBattle
- ldr r0, _08039D1C @ =gUnknown_03004210
- ldr r1, _08039D20 @ =gDisplayedStringBattle
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08039D24 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039D28 @ =sub_8037C2C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039D0C: .4byte gUnknown_030042A4
-_08039D10: .4byte gUnknown_030042A0
-_08039D14: .4byte gActiveBank
-_08039D18: .4byte gUnknown_02023A62
-_08039D1C: .4byte gUnknown_03004210
-_08039D20: .4byte gDisplayedStringBattle
-_08039D24: .4byte gBattleBankFunc
-_08039D28: .4byte sub_8037C2C
- thumb_func_end sub_8039CC8
-
- thumb_func_start sub_8039D2C
-sub_8039D2C: @ 8039D2C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D2C
-
- thumb_func_start sub_8039D38
-sub_8039D38: @ 8039D38
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D38
-
- thumb_func_start sub_8039D44
-sub_8039D44: @ 8039D44
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D44
-
- thumb_func_start sub_8039D50
-sub_8039D50: @ 8039D50
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D50
-
- thumb_func_start sub_8039D5C
-sub_8039D5C: @ 8039D5C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D5C
-
- thumb_func_start sub_8039D68
-sub_8039D68: @ 8039D68
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D68
-
- thumb_func_start sub_8039D74
-sub_8039D74: @ 8039D74
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D74
-
- thumb_func_start sub_8039D80
-sub_8039D80: @ 8039D80
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _08039DF8 @ =gBattleBufferA
- ldr r0, _08039DFC @ =gActiveBank
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _08039E00 @ =0x00007fff
- cmp r7, r0
- beq _08039E10
- ldr r6, _08039E04 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08039E08 @ =gEnemyParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E0C @ =gHealthboxIDs
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08039E3A
- .align 2, 0
-_08039DF8: .4byte gBattleBufferA
-_08039DFC: .4byte gActiveBank
-_08039E00: .4byte 0x00007fff
-_08039E04: .4byte gBattlePartyID
-_08039E08: .4byte gEnemyParty
-_08039E0C: .4byte gHealthboxIDs
-_08039E10:
- ldr r1, _08039E58 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08039E5C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E60 @ =gHealthboxIDs
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08039E3A:
- ldr r1, _08039E64 @ =gBattleBankFunc
- ldr r0, _08039E68 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039E6C @ =sub_8037B24
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039E58: .4byte gBattlePartyID
-_08039E5C: .4byte gEnemyParty
-_08039E60: .4byte gHealthboxIDs
-_08039E64: .4byte gBattleBankFunc
-_08039E68: .4byte gActiveBank
-_08039E6C: .4byte sub_8037B24
- thumb_func_end sub_8039D80
-
- thumb_func_start sub_8039E70
-sub_8039E70: @ 8039E70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039E70
-
- thumb_func_start sub_8039E7C
-sub_8039E7C: @ 8039E7C
- push {r4,lr}
- ldr r4, _08039ED4 @ =gActiveBank
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039ECC
- ldr r0, _08039ED8 @ =gHealthboxIDs
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08039EDC @ =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08039EE0 @ =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08039EE4 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08039EE8 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039EEC @ =sub_8037FAC
- str r1, [r0]
-_08039ECC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039ED4: .4byte gActiveBank
-_08039ED8: .4byte gHealthboxIDs
-_08039EDC: .4byte gBattlePartyID
-_08039EE0: .4byte gEnemyParty
-_08039EE4: .4byte 0x02017810
-_08039EE8: .4byte gBattleBankFunc
-_08039EEC: .4byte sub_8037FAC
- thumb_func_end sub_8039E7C
-
- thumb_func_start sub_8039EF0
-sub_8039EF0: @ 8039EF0
- push {r4,r5,lr}
- ldr r5, _08039F48 @ =gActiveBank
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039F40
- ldr r4, _08039F4C @ =gBattleBufferA
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _08039F50 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039F54 @ =sub_8037FAC
- str r1, [r0]
-_08039F40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08039F48: .4byte gActiveBank
-_08039F4C: .4byte gBattleBufferA
-_08039F50: .4byte gBattleBankFunc
-_08039F54: .4byte sub_8037FAC
- thumb_func_end sub_8039EF0
-
- thumb_func_start sub_8039F58
-sub_8039F58: @ 8039F58
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F58
-
- thumb_func_start sub_8039F64
-sub_8039F64: @ 8039F64
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F64
-
- thumb_func_start sub_8039F70
-sub_8039F70: @ 8039F70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F70
-
- thumb_func_start sub_8039F7C
-sub_8039F7C: @ 8039F7C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F7C
-
- thumb_func_start sub_8039F88
-sub_8039F88: @ 8039F88
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F88
-
- thumb_func_start sub_8039F94
-sub_8039F94: @ 8039F94
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F94
-
- thumb_func_start sub_8039FA0
-sub_8039FA0: @ 8039FA0
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FA0
-
- thumb_func_start sub_8039FAC
-sub_8039FAC: @ 8039FAC
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FAC
-
- thumb_func_start sub_8039FB8
-sub_8039FB8: @ 8039FB8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FB8
-
- thumb_func_start sub_8039FC4
-sub_8039FC4: @ 8039FC4
- push {lr}
- ldr r2, _08039FDC @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08039FDC: .4byte gUnknown_020238C8
- thumb_func_end sub_8039FC4
-
- thumb_func_start sub_8039FE0
-sub_8039FE0: @ 8039FE0
- push {lr}
- ldr r3, _0803A00C @ =gUnknown_020238C8
- ldr r1, _0803A010 @ =gBattleBufferA
- ldr r0, _0803A014 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A00C: .4byte gUnknown_020238C8
-_0803A010: .4byte gBattleBufferA
-_0803A014: .4byte gActiveBank
- thumb_func_end sub_8039FE0
-
- thumb_func_start sub_803A018
-sub_803A018: @ 803A018
- push {lr}
- ldr r2, _0803A02C @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A02C: .4byte gUnknown_020238C8
- thumb_func_end sub_803A018
-
- thumb_func_start sub_803A030
-sub_803A030: @ 803A030
- push {lr}
- ldr r3, _0803A054 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A054: .4byte gUnknown_020238C8
- thumb_func_end sub_803A030
-
- thumb_func_start dp01t_29_4_blink
-dp01t_29_4_blink: @ 803A058
- push {r4,lr}
- ldr r3, _0803A080 @ =gSprites
- ldr r2, _0803A084 @ =gObjectBankIDs
- ldr r4, _0803A088 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _0803A08C
- bl dp01_tbl4_exec_completed
- b _0803A0B6
- .align 2, 0
-_0803A080: .4byte gSprites
-_0803A084: .4byte gObjectBankIDs
-_0803A088: .4byte gActiveBank
-_0803A08C:
- ldr r1, _0803A0BC @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0803A0C0 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim
- str r1, [r0]
-_0803A0B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A0BC: .4byte gDoingBattleAnim
-_0803A0C0: .4byte gBattleBankFunc
-_0803A0C4: .4byte dp01t_0F_4_move_anim
- thumb_func_end dp01t_29_4_blink
-
- thumb_func_start sub_803A0C8
-sub_803A0C8: @ 803A0C8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A0C8
-
- thumb_func_start sub_803A0D4
-sub_803A0D4: @ 803A0D4
- push {r4,lr}
- ldr r4, _0803A110 @ =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0803A0E8
- movs r3, 0xC0
-_0803A0E8:
- ldr r2, _0803A114 @ =gBattleBufferA
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A110: .4byte gActiveBank
-_0803A114: .4byte gBattleBufferA
- thumb_func_end sub_803A0D4
-
- thumb_func_start sub_803A118
-sub_803A118: @ 803A118
- push {lr}
- ldr r2, _0803A140 @ =gBattleBufferA
- ldr r0, _0803A144 @ =gActiveBank
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A140: .4byte gBattleBufferA
-_0803A144: .4byte gActiveBank
- thumb_func_end sub_803A118
-
- thumb_func_start sub_803A148
-sub_803A148: @ 803A148
- push {lr}
- ldr r1, _0803A178 @ =gBattlePartyID
- ldr r0, _0803A17C @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803A180 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A178: .4byte gBattlePartyID
-_0803A17C: .4byte gActiveBank
-_0803A180: .4byte gEnemyParty
- thumb_func_end sub_803A148
-
- thumb_func_start dp01t_2E_4_battle_intro
-dp01t_2E_4_battle_intro: @ 803A184
- push {lr}
- ldr r1, _0803A1AC @ =gBattleBufferA
- ldr r0, _0803A1B0 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0803A1B4 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A1AC: .4byte gBattleBufferA
-_0803A1B0: .4byte gActiveBank
-_0803A1B4: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_4_battle_intro
-
- thumb_func_start sub_803A1B8
-sub_803A1B8: @ 803A1B8
- push {r4-r6,lr}
- ldr r5, _0803A294 @ =gObjectBankIDs
- ldr r6, _0803A298 @ =gActiveBank
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A29C @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803A2A0 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0803A2A4 @ =sub_803A3A8
- bl oamt_set_x3A_32
- ldr r0, _0803A2A8 @ =sub_803A2C4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0803A2AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _0803A2B0 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A276
- ldr r0, _0803A2B4 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _0803A2B8 @ =sub_8044CA0
- str r1, [r0]
-_0803A276:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0803A2BC @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A2C0 @ =nullsub_47
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A294: .4byte gObjectBankIDs
-_0803A298: .4byte gActiveBank
-_0803A29C: .4byte gSprites
-_0803A2A0: .4byte sub_8078B34
-_0803A2A4: .4byte sub_803A3A8
-_0803A2A8: .4byte sub_803A2C4
-_0803A2AC: .4byte gTasks
-_0803A2B0: .4byte 0x02017810
-_0803A2B4: .4byte gUnknown_02024E68
-_0803A2B8: .4byte sub_8044CA0
-_0803A2BC: .4byte gBattleBankFunc
-_0803A2C0: .4byte nullsub_47
- thumb_func_end sub_803A1B8
-
- thumb_func_start sub_803A2C4
-sub_803A2C4: @ 803A2C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, _0803A31C @ =gActiveBank
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, _0803A320 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strb r0, [r7]
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0803A2FE
- ldr r0, _0803A324 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803A330
-_0803A2FE:
- ldr r0, _0803A328 @ =gBattleBufferA
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _0803A32C @ =gBattlePartyID
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- b _0803A370
- .align 2, 0
-_0803A31C: .4byte gActiveBank
-_0803A320: .4byte gTasks
-_0803A324: .4byte gBattleTypeFlags
-_0803A328: .4byte gBattleBufferA
-_0803A32C: .4byte gBattlePartyID
-_0803A330:
- ldr r4, _0803A394 @ =gBattleBufferA
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, _0803A398 @ =gBattlePartyID
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- movs r5, 0x2
- eors r0, r5
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_0803A370:
- ldr r1, _0803A39C @ =gBattleBankFunc
- ldr r2, _0803A3A0 @ =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A3A4 @ =sub_8037840
- str r1, [r0]
- mov r0, r9
- strb r0, [r2]
- mov r0, r8
- bl DestroyTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A394: .4byte gBattleBufferA
-_0803A398: .4byte gBattlePartyID
-_0803A39C: .4byte gBattleBankFunc
-_0803A3A0: .4byte gActiveBank
-_0803A3A4: .4byte sub_8037840
- thumb_func_end sub_803A2C4
-
- thumb_func_start sub_803A3A8
-sub_803A3A8: @ 803A3A8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_8031B74
- ldrh r0, [r4, 0x38]
- ldr r1, _0803A3D4 @ =0x000003ff
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _0803A3D8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A3D4: .4byte 0x000003ff
-_0803A3D8: .4byte 0xfffffc00
- thumb_func_end sub_803A3A8
-
- thumb_func_start sub_803A3DC
-sub_803A3DC: @ 803A3DC
- push {r4-r6,lr}
- ldr r1, _0803A404 @ =gBattleBufferA
- ldr r0, _0803A408 @ =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A40C
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803A40C
- bl dp01_tbl4_exec_completed
- b _0803A4C6
- .align 2, 0
-_0803A404: .4byte gBattleBufferA
-_0803A408: .4byte gActiveBank
-_0803A40C:
- ldr r3, _0803A45C @ =gActiveBank
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A460 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _0803A464 @ =gBattleBufferA
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- cmp r0, 0
- beq _0803A470
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 26
- lsrs r0, r1, 27
- cmp r0, 0x1
- bhi _0803A468
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _0803A4C6
- .align 2, 0
-_0803A45C: .4byte gActiveBank
-_0803A460: .4byte 0x02017810
-_0803A464: .4byte gBattleBufferA
-_0803A468:
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_0803A470:
- adds r5, r6, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _0803A4CC @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _0803A4D0 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A4D4 @ =0x02017810
- adds r0, r3
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A4BA
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_0803A4BA:
- ldr r0, _0803A4D8 @ =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A4DC @ =sub_803A4E0
- str r0, [r1]
-_0803A4C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A4CC: .4byte gUnknown_02023A64
-_0803A4D0: .4byte gUnknown_02024E68
-_0803A4D4: .4byte 0x02017810
-_0803A4D8: .4byte gBattleBankFunc
-_0803A4DC: .4byte sub_803A4E0
- thumb_func_end sub_803A3DC
-
- thumb_func_start sub_803A4E0
-sub_803A4E0: @ 803A4E0
- push {r4,lr}
- ldr r4, _0803A518 @ =gActiveBank
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A51C @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _0803A510
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl4_exec_completed
-_0803A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A518: .4byte gActiveBank
-_0803A51C: .4byte 0x02017810
- thumb_func_end sub_803A4E0
-
- thumb_func_start sub_803A520
-sub_803A520: @ 803A520
- push {lr}
- ldr r0, _0803A558 @ =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _0803A55C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A54E
- ldr r2, _0803A560 @ =gTasks
- ldr r0, _0803A564 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0803A568 @ =sub_8044CA0
- str r1, [r0]
-_0803A54E:
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A558: .4byte gActiveBank
-_0803A55C: .4byte 0x02017810
-_0803A560: .4byte gTasks
-_0803A564: .4byte gUnknown_02024E68
-_0803A568: .4byte sub_8044CA0
- thumb_func_end sub_803A520
-
- thumb_func_start sub_803A56C
-sub_803A56C: @ 803A56C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A56C
-
- thumb_func_start sub_803A578
-sub_803A578: @ 803A578
- push {r4,lr}
- ldr r4, _0803A5C8 @ =gActiveBank
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0803A5BE
- ldr r3, _0803A5CC @ =gSprites
- ldr r0, _0803A5D0 @ =gObjectBankIDs
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _0803A5D4 @ =gBattleBufferA
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_0803A5BE:
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A5C8: .4byte gActiveBank
-_0803A5CC: .4byte gSprites
-_0803A5D0: .4byte gObjectBankIDs
-_0803A5D4: .4byte gBattleBufferA
- thumb_func_end sub_803A578
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl4
-bx_exec_buffer_A_ch0_tbl4: @ 803A5D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _0803A61C @ =gActiveBank
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0803A630
- ldr r5, _0803A620 @ =gBattleBufferA
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _0803A624
- bl dp01_tbl4_exec_completed
- b _0803A630
- .align 2, 0
-_0803A61C: .4byte gActiveBank
-_0803A620: .4byte gBattleBufferA
-_0803A624:
- ldr r0, _0803A638 @ =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A63C @ =sub_8037FD8
- str r0, [r1]
-_0803A630:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A638: .4byte gBattleBankFunc
-_0803A63C: .4byte sub_8037FD8
- thumb_func_end bx_exec_buffer_A_ch0_tbl4
-
- thumb_func_start sub_803A640
-sub_803A640: @ 803A640
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A640
-
- thumb_func_start sub_803A64C
-sub_803A64C: @ 803A64C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A64C
-
- thumb_func_start sub_803A658
-sub_803A658: @ 803A658
- push {lr}
- ldr r1, _0803A674 @ =gBattleBufferA
- ldr r0, _0803A678 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0803A680
- ldr r0, _0803A67C @ =gBattleOutcome
- strb r2, [r0]
- b _0803A688
- .align 2, 0
-_0803A674: .4byte gBattleBufferA
-_0803A678: .4byte gActiveBank
-_0803A67C: .4byte gBattleOutcome
-_0803A680:
- ldr r0, _0803A6AC @ =gBattleOutcome
- movs r1, 0x3
- eors r1, r2
- strb r1, [r0]
-_0803A688:
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl4_exec_completed
- ldr r1, _0803A6B0 @ =gBattleBankFunc
- ldr r0, _0803A6B4 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A6B8 @ =sub_8037F34
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0803A6AC: .4byte gBattleOutcome
-_0803A6B0: .4byte gBattleBankFunc
-_0803A6B4: .4byte gActiveBank
-_0803A6B8: .4byte sub_8037F34
- thumb_func_end sub_803A658
-
- thumb_func_start nullsub_48
-nullsub_48: @ 803A6BC
- bx lr
- thumb_func_end nullsub_48
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_2.s b/asm/battle_2.s
index c1f75dad5..ed4140583 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -4092,7 +4092,7 @@ _08014522:
adds r1, r2
adds r1, 0x20
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r2, _08014568 @ =gSpecialStatuses
ldrb r1, [r4]
lsls r0, r1, 2
diff --git a/asm/battle_3.s b/asm/battle_3.s
index ffe32f27b..8f3097c3d 100644
--- a/asm/battle_3.s
+++ b/asm/battle_3.s
@@ -8590,7 +8590,7 @@ _08019F7C:
beq _08019F92
adds r1, r0, 0
mov r0, r10
- bl sub_81074C4
+ bl RecordAbilityBattle
_08019F92:
mov r0, r9
add sp, 0x28
@@ -9185,7 +9185,7 @@ _0801A4A8:
str r3, [sp, 0xC]
adds r0, r7, 0
adds r1, r5, 0
- bl sub_81074F8
+ bl RecordItemBattle
bl _0801AD5A
.align 2, 0
_0801A4C4: .4byte gBattleMoveDamage
@@ -11475,7 +11475,7 @@ _0801B7C2:
adds r0, 0x20
ldrb r1, [r0]
adds r0, r5, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _0801B804 @ =gSpecialStatuses
lsls r0, r5, 2
adds r0, r5
diff --git a/asm/battle_4.s b/asm/battle_4.s
index 5436d3e55..6747abc6c 100644
--- a/asm/battle_4.s
+++ b/asm/battle_4.s
@@ -291,7 +291,7 @@ _0801BE7E:
mov r2, r8
ldrb r0, [r2]
ldrb r1, [r4]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801BFF4
.align 2, 0
_0801BEB8: .4byte gNoOfAllBanks
@@ -1812,8 +1812,8 @@ _0801CAF0: .4byte gProtectStructs
_0801CAF4: .4byte gBattlescriptCurrInstr
thumb_func_end atk05_damagecalc1
- thumb_func_start sub_801CAF8
-sub_801CAF8: @ 801CAF8
+ thumb_func_start AI_CalcDmg
+AI_CalcDmg: @ 801CAF8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -1923,7 +1923,7 @@ _0801CBDC: .4byte 0x0001601f
_0801CBE0: .4byte gStatuses3
_0801CBE4: .4byte gBattleMoves
_0801CBE8: .4byte gProtectStructs
- thumb_func_end sub_801CAF8
+ thumb_func_end AI_CalcDmg
thumb_func_start battle_attack_damage_modulate_by_effectivity
battle_attack_damage_modulate_by_effectivity: @ 801CBEC
@@ -2143,7 +2143,7 @@ _0801CD44:
strb r2, [r0, 0x6]
ldrb r0, [r4]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801CE58
.align 2, 0
_0801CD94: .4byte gBattleMoves
@@ -2300,7 +2300,7 @@ _0801CE94:
strb r0, [r1, 0x6]
ldrb r0, [r5]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
_0801CED6:
ldr r0, _0801CF1C @ =gBattleMoveFlags
ldrb r1, [r0]
@@ -2412,7 +2412,7 @@ _0801CF94:
strb r1, [r0, 0x6]
ldrb r0, [r3]
movs r1, 0x1A
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801D1A4
.align 2, 0
_0801CFC8: .4byte gBattleMons
@@ -2657,7 +2657,7 @@ _0801D14E:
mov r1, r8
ldrb r0, [r1]
movs r1, 0x19
- bl sub_81074C4
+ bl RecordAbilityBattle
_0801D1A4:
pop {r3,r4}
mov r8, r3
@@ -2778,8 +2778,8 @@ _0801D27A:
bx r0
thumb_func_end b_attack_effectivity_adapt
- thumb_func_start move_effectiveness_something
-move_effectiveness_something: @ 801D280
+ thumb_func_start TypeCalc
+TypeCalc: @ 801D280
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -3020,7 +3020,7 @@ _0801D44C: .4byte gTypeEffectiveness
_0801D450: .4byte gBattleMons
_0801D454: .4byte gBankTarget
_0801D458: .4byte gBattleMoves
- thumb_func_end move_effectiveness_something
+ thumb_func_end TypeCalc
thumb_func_start ai_rate_move
ai_rate_move: @ 801D45C
@@ -3280,7 +3280,7 @@ _0801D632:
bcs _0801D670
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _0801D6FC @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -3484,7 +3484,7 @@ _0801D7E2:
bcs _0801D820
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _0801D890 @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -5294,7 +5294,7 @@ _0801E64A:
mov r3, r8
ldrb r0, [r3]
movs r1, 0x11
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E67C @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -5417,7 +5417,7 @@ _0801E72E:
mov r3, r8
ldrb r0, [r3]
movs r1, 0x29
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E750 @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -5608,7 +5608,7 @@ _0801E8A6:
mov r3, r8
ldrb r0, [r3]
movs r1, 0x7
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E8C8 @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -5651,7 +5651,7 @@ _0801E8FE:
mov r1, r8
ldrb r0, [r1]
movs r1, 0x11
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E93C @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -6081,7 +6081,7 @@ _0801ECF4:
mov r1, r8
ldrb r0, [r1]
movs r1, 0x27
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _0801ED10 @ =gBattlescriptCurrInstr
ldr r0, _0801ED14 @ =BattleScript_FlinchPrevention
str r0, [r1]
@@ -6712,7 +6712,7 @@ _0801F214:
strb r0, [r1]
ldrb r0, [r7]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801F5FA
.align 2, 0
_0801F254: .4byte gBankAttacker
@@ -7044,7 +7044,7 @@ _0801F500:
str r0, [r1]
ldrb r0, [r5]
movs r1, 0x3C
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801F5FA
.align 2, 0
_0801F534: .4byte gLastUsedAbility
@@ -8058,7 +8058,7 @@ _0801FD5C:
ldrb r1, [r0]
adds r0, r4, 0
_0801FD80:
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r0, _0801FD98 @ =0x02000000
ldr r1, _0801FD9C @ =0x000160f8
adds r0, r1
@@ -12829,7 +12829,7 @@ atk4A_damageflags: @ 80222DC
strb r2, [r0, 0x6]
ldrb r0, [r7]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08022452
.align 2, 0
_08022340: .4byte gBattleMoves
@@ -13030,7 +13030,7 @@ _08022494:
strb r0, [r1, 0x6]
ldrb r0, [r2]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
_080224CE:
ldr r0, _08022518 @ =gBattleMoveFlags
ldrb r1, [r0]
@@ -13310,7 +13310,7 @@ _080226EA:
ldr r1, [sp, 0x50]
str r1, [r0]
_08022710:
- bl sub_8010B88
+ bl SwitchInClearStructs
ldr r0, _08022778 @ =0x02000000
ldr r3, _08022754 @ =gActiveBank
ldrb r2, [r3]
@@ -17237,7 +17237,7 @@ _08024726:
bcs _08024764
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _080247F0 @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -17919,7 +17919,7 @@ atk70_record_ability_usage_of_side: @ 8024CB8
ldrb r0, [r1]
ldr r1, _08024CE8 @ =gLastUsedAbility
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
@@ -18739,7 +18739,7 @@ _08025354:
adds r1, r6
adds r1, 0x20
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _08025380 @ =gBattlescriptCurrInstr
ldr r0, _08025384 @ =gUnknown_081D9834
str r0, [r1]
@@ -19746,7 +19746,7 @@ _08025B2C:
str r4, [r5]
ldrb r1, [r2]
adds r0, r3, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08025B56
.align 2, 0
_08025B44: .4byte gBattleMons
@@ -20345,7 +20345,7 @@ _08025FE0:
strb r0, [r1]
ldrb r0, [r2]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r0, _0802602C @ =gActiveBank
ldrb r1, [r0]
lsls r0, r1, 2
@@ -20401,7 +20401,7 @@ _08026040:
strb r0, [r1]
ldrb r0, [r3]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08025F74
.align 2, 0
_08026090: .4byte gActiveBank
@@ -20449,7 +20449,7 @@ _080260CA:
strb r0, [r1]
ldrb r0, [r3]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08025F74
.align 2, 0
_080260FC: .4byte gActiveBank
@@ -21840,7 +21840,7 @@ _08026BCE:
bcs _08026C0C
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _08026C54 @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -21880,7 +21880,7 @@ _08026C0C:
ldr r1, _08026C50 @ =gBankTarget
ldrb r0, [r1]
movs r1, 0x5
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08026E40
.align 2, 0
_08026C4C: .4byte gStringBank
@@ -22497,7 +22497,7 @@ _080270F0:
strb r2, [r0]
ldrb r0, [r5]
movs r1, 0xC
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0802721C
.align 2, 0
_0802714C: .4byte gBattlePartyID
@@ -25469,7 +25469,7 @@ _080288C0: .4byte gBattleMons
_080288C4:
ldrb r1, [r1]
adds r0, r3, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
ldrb r0, [r5, 0x5]
movs r1, 0x1
orrs r0, r1
@@ -25532,7 +25532,7 @@ _08028950: .4byte gBattleMons
_08028954:
ldrb r1, [r1]
adds r0, r3, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _080289AC @ =gBattleCommunication
ldrb r0, [r1, 0x5]
orrs r0, r6
@@ -28815,7 +28815,7 @@ _0802A334:
strb r0, [r1]
ldrb r0, [r7]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0802A49A
.align 2, 0
_0802A360: .4byte gBattlescriptCurrInstr
diff --git a/asm/battle_9.s b/asm/battle_9.s
index 887fbd702..fffb56dc9 100644
--- a/asm/battle_9.s
+++ b/asm/battle_9.s
@@ -1847,7 +1847,7 @@ _08036EA4:
ldrb r1, [r0]
adds r0, r4, 0
mov r2, r10
- bl move_effectiveness_something
+ bl TypeCalc
movs r1, 0x2
ands r1, r0
cmp r1, 0
@@ -1976,11 +1976,11 @@ _08036F90:
beq _08036FCC
ldrb r0, [r6]
mov r1, r10
- bl sub_801CAF8
+ bl AI_CalcDmg
ldrb r1, [r6]
adds r0, r4, 0
mov r2, r10
- bl move_effectiveness_something
+ bl TypeCalc
_08036FCC:
mov r2, r8
ldr r0, [r2]
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
deleted file mode 100644
index 5f3e3a03f..000000000
--- a/asm/field_tasks.s
+++ /dev/null
@@ -1,1972 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start Task_RunPerStepCallback
-Task_RunPerStepCallback: @ 806943C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08069460 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- ldr r2, _08069464 @ =gUnknown_08376364
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08069460: .4byte gTasks
-_08069464: .4byte gUnknown_08376364
- thumb_func_end Task_RunPerStepCallback
-
- thumb_func_start RunTimeBasedEvents
-RunTimeBasedEvents: @ 8069468
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0806947A
- cmp r0, 0x1
- beq _08069498
- b _080694AC
-_0806947A:
- ldr r0, _08069494 @ =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _080694AC
- bl DoTimeBasedEvents
- ldrh r0, [r4]
- adds r0, 0x1
- b _080694AA
- .align 2, 0
-_08069494: .4byte gMain
-_08069498:
- ldr r0, _080694B4 @ =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _080694AC
- ldrh r0, [r4]
- subs r0, 0x1
-_080694AA:
- strh r0, [r4]
-_080694AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080694B4: .4byte gMain
- thumb_func_end RunTimeBasedEvents
-
- thumb_func_start Task_RunTimeBasedEvents
-Task_RunTimeBasedEvents: @ 80694B8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080694E8 @ =gTasks + 0x8
- adds r4, r1, r0
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- cmp r0, 0
- bne _080694E0
- adds r0, r4, 0
- bl RunTimeBasedEvents
- adds r0, r4, 0x2
- adds r1, r4, 0x4
- bl sub_80540D0
-_080694E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080694E8: .4byte gTasks + 0x8
- thumb_func_end Task_RunTimeBasedEvents
-
- thumb_func_start SetUpFieldTasks
-SetUpFieldTasks: @ 80694EC
- push {r4,r5,lr}
- ldr r5, _08069548 @ =Task_RunPerStepCallback
- adds r0, r5, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08069516
- adds r0, r5, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806954C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_08069516:
- ldr r4, _08069550 @ =Task_MuddySlope
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _0806952C
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0806952C:
- ldr r4, _08069554 @ =Task_RunTimeBasedEvents
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08069542
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_08069542:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069548: .4byte Task_RunPerStepCallback
-_0806954C: .4byte gTasks
-_08069550: .4byte Task_MuddySlope
-_08069554: .4byte Task_RunTimeBasedEvents
- thumb_func_end SetUpFieldTasks
-
- thumb_func_start ActivatePerStepCallback
-ActivatePerStepCallback: @ 8069558
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08069590 @ =Task_RunPerStepCallback
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0806959A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08069594 @ =gTasks + 0x8
- adds r1, r0, r1
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x1E
-_0806957C:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0806957C
- cmp r4, 0x7
- bls _08069598
- movs r0, 0
- strh r0, [r1]
- b _0806959A
- .align 2, 0
-_08069590: .4byte Task_RunPerStepCallback
-_08069594: .4byte gTasks + 0x8
-_08069598:
- strh r4, [r1]
-_0806959A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ActivatePerStepCallback
-
- thumb_func_start ResetFieldTasksArgs
-ResetFieldTasksArgs: @ 80695A0
- push {lr}
- ldr r0, _080695D0 @ =Task_RunPerStepCallback
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080695D4 @ =Task_RunTimeBasedEvents
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _080695CA
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080695D8 @ =gTasks + 0x8
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
-_080695CA:
- pop {r0}
- bx r0
- .align 2, 0
-_080695D0: .4byte Task_RunPerStepCallback
-_080695D4: .4byte Task_RunTimeBasedEvents
-_080695D8: .4byte gTasks + 0x8
- thumb_func_end ResetFieldTasksArgs
-
- thumb_func_start DummyPerStepCallback
-DummyPerStepCallback: @ 80695DC
- bx lr
- thumb_func_end DummyPerStepCallback
-
- thumb_func_start sub_80695E0
-sub_80695E0: @ 80695E0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _080695F8
- adds r0, r5, 0
- b _08069630
-_080695F8:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _0806960A
- adds r0, r5, 0
- adds r0, 0x8
- b _08069630
-_0806960A:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806961C
- adds r0, r5, 0
- adds r0, 0x10
- b _08069630
-_0806961C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- bne _0806962C
- movs r0, 0
- b _08069630
-_0806962C:
- adds r0, r5, 0
- adds r0, 0x18
-_08069630:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80695E0
-
- thumb_func_start sub_8069638
-sub_8069638: @ 8069638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r3
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r7, r2, 16
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_80695E0
- adds r4, r0, 0
- adds r5, r4, 0
- cmp r4, 0
- beq _080696B6
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- ldrh r2, [r4, 0x2]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _0806968E
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_0806968E:
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- ldrh r2, [r5, 0x6]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _080696B6
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_080696B6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8069638
-
- thumb_func_start sub_80696C0
-sub_80696C0: @ 80696C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _080696E0 @ =gUnknown_08376384
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080696E0: .4byte gUnknown_08376384
- thumb_func_end sub_80696C0
-
- thumb_func_start sub_80696E4
-sub_80696E4: @ 80696E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _08069704 @ =gUnknown_083763A4
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069704: .4byte gUnknown_083763A4
- thumb_func_end sub_80696E4
-
- thumb_func_start sub_8069708
-sub_8069708: @ 8069708
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _08069728 @ =gUnknown_083763C4
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069728: .4byte gUnknown_083763C4
- thumb_func_end sub_8069708
-
- thumb_func_start sub_806972C
-sub_806972C: @ 806972C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r10, r8
- lsls r1, 16
- lsrs r7, r1, 16
- mov r9, r7
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r5, r3, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _08069770
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r5
- ble _080697B6
-_0806976C:
- movs r0, 0
- b _080697B8
-_08069770:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069788
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r5
- bge _080697B6
- b _0806976C
-_08069788:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _080697A0
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- ble _080697B6
- b _0806976C
-_080697A0:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _080697B6
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- blt _0806976C
-_080697B6:
- movs r0, 0x1
-_080697B8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806972C
-
- thumb_func_start sub_80697C8
-sub_80697C8: @ 80697C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- mov r10, r8
- lsls r3, 16
- lsrs r7, r3, 16
- mov r9, r7
- lsls r0, 16
- asrs r6, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _0806980C
- lsls r0, r7, 16
- asrs r0, 16
- cmp r5, r0
- bge _08069852
-_08069808:
- movs r0, 0
- b _08069854
-_0806980C:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069824
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r5, r0
- ble _08069852
- b _08069808
-_08069824:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806983C
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bge _08069852
- b _08069808
-_0806983C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _08069852
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bgt _08069808
-_08069852:
- movs r0, 0x1
-_08069854:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80697C8
-
- thumb_func_start PerStepCallback_8069864
-PerStepCallback_8069864: @ 8069864
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069898 @ =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r6, r5, 0
- cmp r0, 0x1
- beq _080698BE
- cmp r0, 0x1
- bgt _0806989C
- cmp r0, 0
- beq _080698A2
- b _080699CE
- .align 2, 0
-_08069898: .4byte gTasks + 0x8
-_0806989C:
- cmp r0, 0x2
- beq _0806998C
- b _080699CE
-_080698A2:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r2, 0x1
- bl sub_80696E4
- b _080699CA
-_080698BE:
- mov r0, sp
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080698D8
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r7, 0x6
- ldrsh r0, [r4, r7]
- cmp r1, r0
- beq _080699CE
-_080698D8:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r5, 0x6
- ldrsh r3, [r4, r5]
- bl sub_806972C
- cmp r0, 0
- beq _08069920
- movs r7, 0x4
- ldrsh r0, [r4, r7]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_80696C0
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- movs r5, 0x6
- ldrsh r1, [r4, r5]
- movs r2, 0
- bl sub_8069708
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x6]
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
- b _0806992A
-_08069920:
- movs r7, 0x1
- negs r7, r7
- adds r0, r7, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
-_0806992A:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r5, r6, 0
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r7, 0x6
- ldrsh r3, [r4, r7]
- bl sub_80697C8
- cmp r0, 0
- beq _0806995E
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_80696C0
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0806995E:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r6]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r5, 0
- ldrsh r1, [r6, r5]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080699CE
- movs r0, 0x46
- bl PlaySE
- b _080699CE
-_0806998C:
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080699CE
- mov r0, sp
- movs r7, 0
- ldrsh r0, [r0, r7]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_80696E4
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080699CA
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- cmp r0, r1
- beq _080699CA
- movs r7, 0x8
- ldrsh r0, [r4, r7]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_8069708
-_080699CA:
- movs r0, 0x1
- strh r0, [r4, 0x2]
-_080699CE:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_8069864
-
- thumb_func_start sub_80699D8
-sub_80699D8: @ 80699D8
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08069A32
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _08069A14 @ =0x0000024e
- cmp r1, r0
- beq _08069A18
- adds r0, 0x8
- cmp r1, r0
- beq _08069A28
- b _08069A32
- .align 2, 0
-_08069A14: .4byte 0x0000024e
-_08069A18:
- ldr r2, _08069A24 @ =0x0000024f
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08069A32
- .align 2, 0
-_08069A24: .4byte 0x0000024f
-_08069A28:
- ldr r2, _08069A38 @ =0x00000257
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08069A32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069A38: .4byte 0x00000257
- thumb_func_end sub_80699D8
-
- thumb_func_start sub_8069A3C
-sub_8069A3C: @ 8069A3C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08069A96
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _08069A78 @ =0x0000024f
- cmp r1, r0
- beq _08069A7C
- adds r0, 0x8
- cmp r1, r0
- beq _08069A8C
- b _08069A96
- .align 2, 0
-_08069A78: .4byte 0x0000024f
-_08069A7C:
- ldr r2, _08069A88 @ =0x0000024e
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08069A96
- .align 2, 0
-_08069A88: .4byte 0x0000024e
-_08069A8C:
- ldr r2, _08069A9C @ =0x00000256
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08069A96:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069A9C: .4byte 0x00000256
- thumb_func_end sub_8069A3C
-
- thumb_func_start PerStepCallback_8069AA0
-PerStepCallback_8069AA0: @ 8069AA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069ADC @ =gTasks + 0x8
- adds r6, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- ldrsh r5, [r6, r0]
- mov r9, r4
- cmp r5, 0x1
- beq _08069B34
- cmp r5, 0x1
- bgt _08069AE0
- cmp r5, 0
- beq _08069AE8
- b _08069CA6
- .align 2, 0
-_08069ADC: .4byte gTasks + 0x8
-_08069AE0:
- cmp r5, 0x2
- bne _08069AE6
- b _08069C14
-_08069AE6:
- b _08069CA6
-_08069AE8:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r1, r9
- ldrh r0, [r1]
- strh r0, [r6, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r1, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- cmp r0, 0
- bne _08069B12
- b _08069CA2
-_08069B12:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_80699D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
- b _08069CA2
-_08069B34:
- ldrh r0, [r6, 0x6]
- mov r8, r0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- ldrh r2, [r6, 0x4]
- mov r10, r2
- movs r3, 0x4
- ldrsh r7, [r6, r3]
- cmp r0, r7
- bne _08069B5C
- mov r0, r9
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r1, r0
- bne _08069B5C
- b _08069CA6
-_08069B5C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- lsls r4, r0, 16
- asrs r1, r4, 16
- adds r0, r7, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r7, r0, 24
- bl PlayerGetZCoord
- movs r1, 0
- ands r5, r0
- lsls r0, r5, 24
- adds r5, r4, 0
- cmp r0, 0
- bne _08069BA4
- movs r1, 0x1
-_08069BA4:
- cmp r1, 0
- beq _08069BB8
- ldr r1, [sp, 0x4]
- cmp r1, 0x1
- beq _08069BB2
- cmp r7, 0x1
- bne _08069BB8
-_08069BB2:
- movs r0, 0x47
- bl PlaySE
-_08069BB8:
- cmp r7, 0
- beq _08069BF4
- mov r2, r10
- lsls r4, r2, 16
- asrs r4, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8069A3C
- adds r0, r4, 0
- adds r1, r5, 0
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_80699D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
-_08069BF4:
- mov r0, r10
- strh r0, [r6, 0x8]
- mov r1, r8
- strh r1, [r6, 0xA]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r2, r9
- ldrh r0, [r2]
- strh r0, [r6, 0x6]
- cmp r7, 0
- beq _08069CA6
- movs r0, 0x10
- strh r0, [r6, 0xC]
- movs r0, 0x2
- strh r0, [r6, 0x2]
-_08069C14:
- ldrh r0, [r6, 0xC]
- subs r0, 0x1
- strh r0, [r6, 0xC]
- ldrh r3, [r6, 0x8]
- mov r10, r3
- ldrh r0, [r6, 0xA]
- mov r8, r0
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- movs r1, 0x7
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bhi _08069C9A
- lsls r0, 2
- ldr r1, _08069C40 @ =_08069C44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08069C40: .4byte _08069C44
- .align 2, 0
-_08069C44:
- .4byte _08069C64
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C76
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C9A
-_08069C64:
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r8
- lsls r1, r3, 16
- asrs r1, 16
- bl CurrentMapDrawMetatileAt
- b _08069C9A
-_08069C76:
- mov r0, r10
- lsls r5, r0, 16
- asrs r5, 16
- mov r1, r8
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80699D8
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069A3C
-_08069C9A:
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _08069CA6
-_08069CA2:
- movs r0, 0x1
- strh r0, [r6, 0x2]
-_08069CA6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_8069AA0
-
- thumb_func_start sub_8069CB8
-sub_8069CB8: @ 8069CB8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r0, 16
- ldr r2, _08069CE8 @ =0xfffd0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xA
- bhi _08069CF4
- lsls r0, r1, 16
- asrs r1, r0, 16
- ldr r2, _08069CEC @ =0xfffa0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xD
- bhi _08069CF4
- ldr r0, _08069CF0 @ =gUnknown_083763E4
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08069CF4
- movs r0, 0x1
- b _08069CF6
- .align 2, 0
-_08069CE8: .4byte 0xfffd0000
-_08069CEC: .4byte 0xfffa0000
-_08069CF0: .4byte gUnknown_083763E4
-_08069CF4:
- movs r0, 0
-_08069CF6:
- pop {r1}
- bx r1
- thumb_func_end sub_8069CB8
-
- thumb_func_start sub_8069CFC
-sub_8069CFC: @ 8069CFC
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069CB8
- cmp r0, 0
- beq _08069D2A
- ldr r1, _08069D30 @ =gUnknown_083763E4
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl GetVarPointer
- subs r2, r5, 0x3
- movs r1, 0x1
- lsls r1, r2
- ldrh r2, [r0]
- orrs r1, r2
- strh r1, [r0]
-_08069D2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069D30: .4byte gUnknown_083763E4
- thumb_func_end sub_8069CFC
-
- thumb_func_start sub_8069D34
-sub_8069D34: @ 8069D34
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069CB8
- cmp r0, 0
- beq _08069D66
- ldr r1, _08069D6C @ =gUnknown_083763E4
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl VarGet
- lsls r0, 16
- subs r2, r5, 0x3
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r2
- ands r1, r0
- cmp r1, 0
- bne _08069D70
-_08069D66:
- movs r0, 0
- b _08069D72
- .align 2, 0
-_08069D6C: .4byte gUnknown_083763E4
-_08069D70:
- movs r0, 0x1
-_08069D72:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8069D34
-
- thumb_func_start sub_8069D78
-sub_8069D78: @ 8069D78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08069DCC @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0]
- mov r9, r1
- ldr r7, [r0, 0x4]
- movs r5, 0
- cmp r5, r9
- bge _08069DC0
-_08069D90:
- movs r4, 0
- adds r0, r5, 0x1
- mov r8, r0
- cmp r4, r7
- bge _08069DBA
- lsls r6, r5, 16
-_08069D9C:
- lsls r1, r4, 16
- asrs r1, 16
- asrs r0, r6, 16
- bl sub_8069D34
- cmp r0, 0x1
- bne _08069DB4
- adds r1, r4, 0x7
- adds r0, r5, 0x7
- ldr r2, _08069DD0 @ =0x0000020e
- bl MapGridSetMetatileIdAt
-_08069DB4:
- adds r4, 0x1
- cmp r4, r7
- blt _08069D9C
-_08069DBA:
- mov r5, r8
- cmp r5, r9
- blt _08069D90
-_08069DC0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069DCC: .4byte gMapHeader
-_08069DD0: .4byte 0x0000020e
- thumb_func_end sub_8069D78
-
- thumb_func_start PerStepCallback_8069DD4
-PerStepCallback_8069DD4: @ 8069DD4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069DF8 @ =gTasks + 0x8
- adds r5, r1, r0
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08069E20
- cmp r0, 0x1
- bgt _08069DFC
- cmp r0, 0
- beq _08069E08
- b _08069F56
- .align 2, 0
-_08069DF8: .4byte gTasks + 0x8
-_08069DFC:
- cmp r0, 0x2
- beq _08069EB6
- cmp r0, 0x3
- bne _08069E06
- b _08069F10
-_08069E06:
- b _08069F56
-_08069E08:
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- b _08069F52
-_08069E20:
- mov r7, sp
- adds r7, 0x2
- mov r0, sp
- adds r1, r7, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069E4A
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069E4A
- b _08069F56
-_08069E4A:
- strh r2, [r5, 0x4]
- ldrh r0, [r7]
- strh r0, [r5, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08069E8C @ =0x00004022
- bl GetVarPointer
- adds r6, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsThinIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069E90
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x2
- b _08069EA8
- .align 2, 0
-_08069E8C: .4byte 0x00004022
-_08069E90:
- adds r0, r4, 0
- bl MetatileBehavior_IsCrackedIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069F56
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x3
-_08069EA8:
- strh r0, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x8]
- ldrh r0, [r7]
- strh r0, [r5, 0xA]
- b _08069F56
-_08069EB6:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _08069F1A
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x2A
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069F0C @ =0x0000020e
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- asrs r1, 16
- bl sub_8069CFC
- b _08069F52
- .align 2, 0
-_08069F0C: .4byte 0x0000020e
-_08069F10:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _08069F20
-_08069F1A:
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- b _08069F56
-_08069F20:
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x29
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069F60 @ =0x00000206
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
-_08069F52:
- movs r0, 0x1
- strh r0, [r5, 0x2]
-_08069F56:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069F60: .4byte 0x00000206
- thumb_func_end PerStepCallback_8069DD4
-
- thumb_func_start PerStepCallback_8069F64
-PerStepCallback_8069F64: @ 8069F64
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069FE8 @ =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069F9E
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A02A
-_08069F9E:
- strh r2, [r5, 0x2]
- ldrh r0, [r4]
- strh r0, [r5, 0x4]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsAshGrass
- lsls r0, 24
- cmp r0, 0
- beq _0806A02A
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- ldr r1, _08069FEC @ =0x0000020a
- cmp r0, r1
- bne _08069FF4
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069FF0 @ =0x00000212
- movs r3, 0x4
- bl ash
- b _0806A006
- .align 2, 0
-_08069FE8: .4byte gTasks + 0x8
-_08069FEC: .4byte 0x0000020a
-_08069FF0: .4byte 0x00000212
-_08069FF4:
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _0806A034 @ =0x00000206
- movs r3, 0x4
- bl ash
-_0806A006:
- movs r0, 0x87
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- beq _0806A02A
- ldr r0, _0806A038 @ =0x00004048
- bl GetVarPointer
- adds r2, r0, 0
- ldrh r1, [r2]
- ldr r0, _0806A03C @ =0x0000270e
- cmp r1, r0
- bhi _0806A02A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0806A02A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A034: .4byte 0x00000206
-_0806A038: .4byte 0x00004048
-_0806A03C: .4byte 0x0000270e
- thumb_func_end PerStepCallback_8069F64
-
- thumb_func_start sub_806A040
-sub_806A040: @ 806A040
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0806A074 @ =0x0000022f
- ldr r2, _0806A078 @ =0x00000237
- cmp r0, r1
- bne _0806A05C
- subs r2, 0x31
-_0806A05C:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A074: .4byte 0x0000022f
-_0806A078: .4byte 0x00000237
- thumb_func_end sub_806A040
-
- thumb_func_start PerStepCallback_806A07C
-PerStepCallback_806A07C: @ 806A07C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0806A164 @ =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r1, [r5, 0x8]
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- adds r7, r4, 0
- cmp r0, 0
- beq _0806A0CE
- subs r0, r1, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _0806A0CE
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl sub_806A040
-_0806A0CE:
- ldrh r1, [r5, 0xE]
- movs r3, 0xE
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0806A0EE
- subs r0, r1, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0806A0EE
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- bl sub_806A040
-_0806A0EE:
- lsls r0, r6, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloorHole
- lsls r0, 24
- cmp r0, 0
- beq _0806A106
- ldr r0, _0806A168 @ =0x00004022
- movs r1, 0
- bl VarSet
-_0806A106:
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0806A122
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A182
-_0806A122:
- strh r2, [r5, 0x4]
- adds r4, r7, 0
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloor
- lsls r0, 24
- cmp r0, 0
- beq _0806A182
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0806A14A
- ldr r0, _0806A168 @ =0x00004022
- movs r1, 0
- bl VarSet
-_0806A14A:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0806A16C
- movs r0, 0x3
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0xA]
- ldrh r0, [r4]
- strh r0, [r5, 0xC]
- b _0806A182
- .align 2, 0
-_0806A164: .4byte gTasks + 0x8
-_0806A168: .4byte 0x00004022
-_0806A16C:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _0806A182
- movs r0, 0x3
- strh r0, [r5, 0xE]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x10]
- ldrh r0, [r7]
- strh r0, [r5, 0x12]
-_0806A182:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_806A07C
-
- thumb_func_start sub_806A18C
-sub_806A18C: @ 806A18C
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _0806A1A8
- movs r2, 0xE8
- b _0806A1BC
-_0806A1A8:
- ldr r1, _0806A1E4 @ =gUnknown_08376418
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0806A1B4
- adds r0, 0x7
-_0806A1B4:
- asrs r0, 3
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
-_0806A1BC:
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE8
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A1E4: .4byte gUnknown_08376418
- thumb_func_end sub_806A18C
-
- thumb_func_start Task_MuddySlope
-Task_MuddySlope: @ 806A1E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0806A230 @ =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- ldr r0, _0806A234 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- orrs r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- mov r8, r5
- cmp r1, 0
- beq _0806A238
- cmp r1, 0x1
- beq _0806A264
- b _0806A2B8
- .align 2, 0
-_0806A230: .4byte gTasks + 0x8
-_0806A234: .4byte gSaveBlock1
-_0806A238:
- strh r7, [r4]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- movs r0, 0x1
- strh r0, [r4, 0x2]
- strh r1, [r4, 0x8]
- strh r1, [r4, 0xE]
- strh r1, [r4, 0x14]
- strh r1, [r4, 0x1A]
- b _0806A2B8
-_0806A252:
- movs r0, 0x20
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x2]
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1, 0x4]
- b _0806A2B8
-_0806A264:
- mov r0, sp
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bne _0806A280
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r3, 0
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A2B8
-_0806A280:
- strh r2, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsMuddySlope
- lsls r0, 24
- cmp r0, 0
- beq _0806A2B8
- movs r6, 0x4
- adds r1, r4, 0
- adds r1, 0x8
-_0806A2A8:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0806A252
- adds r1, 0x6
- adds r6, 0x3
- cmp r6, 0xD
- ble _0806A2A8
-_0806A2B8:
- ldr r2, _0806A2D4 @ =gUnknown_0202E844
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806A2D8
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r7, r0
- beq _0806A2D8
- strh r7, [r4]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r2, 0x8]
- b _0806A2DC
- .align 2, 0
-_0806A2D4: .4byte gUnknown_0202E844
-_0806A2D8:
- movs r0, 0
- movs r1, 0
-_0806A2DC:
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- lsls r0, r1, 16
- asrs r7, r0, 16
- adds r5, r4, 0
- adds r5, 0x8
- adds r4, r5, 0
- movs r6, 0x9
-_0806A2EE:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0806A312
- ldrh r0, [r4, 0x2]
- mov r3, r8
- subs r0, r3
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- subs r0, r7
- strh r0, [r4, 0x4]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- adds r0, r5, 0
- bl sub_806A18C
-_0806A312:
- adds r4, 0x6
- adds r5, 0x6
- subs r6, 0x3
- cmp r6, 0
- bge _0806A2EE
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end Task_MuddySlope
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
deleted file mode 100644
index 5b6522144..000000000
--- a/asm/pokeblock.s
+++ /dev/null
@@ -1,2675 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_810B674
-sub_810B674: @ 810B674
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810B674
-
- thumb_func_start sub_810B68C
-sub_810B68C: @ 810B68C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000
- ldr r2, _0810B6B4 @ =0x06007800
- ldr r0, _0810B6B8 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0810B6BC @ =0x80000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B6B0: .4byte gBGTilemapBuffers + 0x1000
-_0810B6B4: .4byte 0x06007800
-_0810B6B8: .4byte 0x040000d4
-_0810B6BC: .4byte 0x80000400
- thumb_func_end sub_810B68C
-
- thumb_func_start sub_810B6C0
-sub_810B6C0: @ 810B6C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0810B6DC @ =gMain
- ldr r1, _0810B6E0 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _0810B6D2
- b _0810B960
-_0810B6D2:
- lsls r0, 2
- ldr r1, _0810B6E4 @ =_0810B6E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810B6DC: .4byte gMain
-_0810B6E0: .4byte 0x0000043c
-_0810B6E4: .4byte _0810B6E8
- .align 2, 0
-_0810B6E8:
- .4byte _0810B734
- .4byte _0810B764
- .4byte _0810B76A
- .4byte _0810B78C
- .4byte _0810B792
- .4byte _0810B7B4
- .4byte _0810B7C0
- .4byte _0810B7DC
- .4byte _0810B7E8
- .4byte _0810B804
- .4byte _0810B810
- .4byte _0810B830
- .4byte _0810B84C
- .4byte _0810B86A
- .4byte _0810B894
- .4byte _0810B89E
- .4byte _0810B8C4
- .4byte _0810B914
- .4byte _0810B934
-_0810B734:
- bl sub_80F9438
- bl sub_80F9368
- ldr r1, _0810B754 @ =REG_BG2CNT
- ldr r2, _0810B758 @ =0x00000f0a
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0810B75C @ =gMain
- ldr r0, _0810B760 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B754: .4byte REG_BG2CNT
-_0810B758: .4byte 0x00000f0a
-_0810B75C: .4byte gMain
-_0810B760: .4byte 0x0000043c
-_0810B764:
- bl remove_some_task
- b _0810B91C
-_0810B76A:
- bl ResetPaletteFade
- ldr r2, _0810B780 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _0810B784 @ =gMain
- ldr r0, _0810B788 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B780: .4byte gPaletteFade
-_0810B784: .4byte gMain
-_0810B788: .4byte 0x0000043c
-_0810B78C:
- bl ResetSpriteData
- b _0810B91C
-_0810B792:
- ldr r0, _0810B7A8 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0810B79E
- bl ResetTasks
-_0810B79E:
- ldr r1, _0810B7AC @ =gMain
- ldr r0, _0810B7B0 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7A8: .4byte gUnknown_02039244
-_0810B7AC: .4byte gMain
-_0810B7B0: .4byte 0x0000043c
-_0810B7B4:
- ldr r0, _0810B7BC @ =gWindowConfig_81E6E34
- bl SetUpWindowConfig
- b _0810B91C
- .align 2, 0
-_0810B7BC: .4byte gWindowConfig_81E6E34
-_0810B7C0:
- ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50
- bl SetUpWindowConfig
- ldr r1, _0810B7D4 @ =gMain
- ldr r0, _0810B7D8 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7D0: .4byte gWindowConfig_81E6E50
-_0810B7D4: .4byte gMain
-_0810B7D8: .4byte 0x0000043c
-_0810B7DC:
- ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34
- bl MultistepInitMenuWindowBegin
- b _0810B91C
- .align 2, 0
-_0810B7E4: .4byte gWindowConfig_81E6E34
-_0810B7E8:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0810B7F2
- b _0810B960
-_0810B7F2:
- ldr r1, _0810B7FC @ =gMain
- ldr r0, _0810B800 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7FC: .4byte gMain
-_0810B800: .4byte 0x0000043c
-_0810B804:
- ldr r0, _0810B80C @ =gWindowConfig_81E6E50
- bl MultistepInitMenuWindowBegin
- b _0810B91C
- .align 2, 0
-_0810B80C: .4byte gWindowConfig_81E6E50
-_0810B810:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0810B81A
- b _0810B960
-_0810B81A:
- ldr r0, _0810B828 @ =0x02000000
- ldr r1, _0810B82C @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0810B91C
- .align 2, 0
-_0810B828: .4byte 0x02000000
-_0810B82C: .4byte 0x0001ffff
-_0810B830:
- bl sub_810B998
- lsls r0, 24
- cmp r0, 0
- bne _0810B83C
- b _0810B960
-_0810B83C:
- ldr r1, _0810B844 @ =gMain
- ldr r0, _0810B848 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B844: .4byte gMain
-_0810B848: .4byte 0x0000043c
-_0810B84C:
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- movs r0, 0
- movs r1, 0xB0
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
- movs r0, 0x1
- movs r1, 0xB0
- movs r2, 0x98
- bl CreateVerticalScrollIndicators
- b _0810B91C
-_0810B86A:
- movs r0, 0x38
- movs r1, 0x40
- movs r2, 0
- bl sub_810BA50
- ldr r1, _0810B884 @ =0x02000000
- ldr r2, _0810B888 @ =0x0001fffe
- adds r1, r2
- strb r0, [r1]
- ldr r1, _0810B88C @ =gMain
- ldr r0, _0810B890 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B884: .4byte 0x02000000
-_0810B888: .4byte 0x0001fffe
-_0810B88C: .4byte gMain
-_0810B890: .4byte 0x0000043c
-_0810B894:
- bl sub_810BC98
- bl sub_810BD08
- b _0810B91C
-_0810B89E:
- bl sub_810BB0C
- bl sub_810BB30
- ldr r0, _0810B8B8 @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- bl sub_810BC84
- ldr r1, _0810B8BC @ =gMain
- ldr r0, _0810B8C0 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B8B8: .4byte gUnknown_02039248
-_0810B8BC: .4byte gMain
-_0810B8C0: .4byte 0x0000043c
-_0810B8C4:
- ldr r3, _0810B8FC @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _0810B900 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0810B904 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0810B908 @ =sub_810B68C
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0810B90C @ =gMain
- ldr r0, _0810B910 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B8FC: .4byte 0x04000208
-_0810B900: .4byte 0x04000200
-_0810B904: .4byte REG_DISPSTAT
-_0810B908: .4byte sub_810B68C
-_0810B90C: .4byte gMain
-_0810B910: .4byte 0x0000043c
-_0810B914:
- bl sub_8055870
- cmp r0, 0x1
- beq _0810B960
-_0810B91C:
- ldr r1, _0810B92C @ =gMain
- ldr r2, _0810B930 @ =0x0000043c
- adds r1, r2
-_0810B922:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810B960
- .align 2, 0
-_0810B92C: .4byte gMain
-_0810B930: .4byte 0x0000043c
-_0810B934:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _0810B958 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0810B95C @ =sub_810B674
- bl SetMainCallback2
- movs r0, 0x1
- b _0810B962
- .align 2, 0
-_0810B958: .4byte gPaletteFade
-_0810B95C: .4byte sub_810B674
-_0810B960:
- movs r0, 0
-_0810B962:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810B6C0
-
- thumb_func_start sub_810B96C
-sub_810B96C: @ 810B96C
- push {lr}
-_0810B96E:
- bl sub_810B6C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B988
- ldr r0, _0810B984 @ =sub_810BF7C
- movs r1, 0
- bl CreateTask
- b _0810B994
- .align 2, 0
-_0810B984: .4byte sub_810BF7C
-_0810B988:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B96E
-_0810B994:
- pop {r0}
- bx r0
- thumb_func_end sub_810B96C
-
- thumb_func_start sub_810B998
-sub_810B998: @ 810B998
- push {lr}
- ldr r0, _0810B9B0 @ =0x02000000
- ldr r1, _0810B9B4 @ =0x0001ffff
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810BA48
- lsls r0, 2
- ldr r1, _0810B9B8 @ =_0810B9BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810B9B0: .4byte 0x02000000
-_0810B9B4: .4byte 0x0001ffff
-_0810B9B8: .4byte _0810B9BC
- .align 2, 0
-_0810B9BC:
- .4byte _0810B9D0
- .4byte _0810B9E4
- .4byte _0810B9F8
- .4byte _0810BA08
- .4byte _0810BA28
-_0810B9D0:
- ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx
- ldr r1, _0810B9E0 @ =0x06008000
- bl LZDecompressVram
- b _0810BA0E
- .align 2, 0
-_0810B9DC: .4byte gMenuPokeblock_Gfx
-_0810B9E0: .4byte 0x06008000
-_0810B9E4:
- ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap
- ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000
- bl sub_800D238
- b _0810BA0E
- .align 2, 0
-_0810B9F0: .4byte gMenuPokeblock_Tilemap
-_0810B9F4: .4byte gBGTilemapBuffers + 0x1000
-_0810B9F8:
- ldr r0, _0810BA04 @ =gMenuPokeblock_Pal
- movs r1, 0
- movs r2, 0xC0
- bl LoadCompressedPalette
- b _0810BA0E
- .align 2, 0
-_0810BA04: .4byte gMenuPokeblock_Pal
-_0810BA08:
- ldr r0, _0810BA1C @ =gUnknown_083F7F74
- bl LoadCompressedObjectPic
-_0810BA0E:
- ldr r1, _0810BA20 @ =0x02000000
- ldr r0, _0810BA24 @ =0x0001ffff
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810BA48
- .align 2, 0
-_0810BA1C: .4byte gUnknown_083F7F74
-_0810BA20: .4byte 0x02000000
-_0810BA24: .4byte 0x0001ffff
-_0810BA28:
- ldr r0, _0810BA3C @ =gUnknown_083F7F7C
- bl LoadCompressedObjectPalette
- ldr r0, _0810BA40 @ =0x02000000
- ldr r1, _0810BA44 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0810BA4A
- .align 2, 0
-_0810BA3C: .4byte gUnknown_083F7F7C
-_0810BA40: .4byte 0x02000000
-_0810BA44: .4byte 0x0001ffff
-_0810BA48:
- movs r0, 0
-_0810BA4A:
- pop {r1}
- bx r1
- thumb_func_end sub_810B998
-
- thumb_func_start sub_810BA50
-sub_810BA50: @ 810BA50
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BA78: .4byte gSpriteTemplate_83F7F84
- thumb_func_end sub_810BA50
-
- thumb_func_start sub_810BA7C
-sub_810BA7C: @ 810BA7C
- push {lr}
- ldr r1, _0810BA98 @ =gUnknown_02039244
- strb r0, [r1]
- ldrb r2, [r1]
- cmp r2, 0x2
- beq _0810BAA8
- cmp r2, 0x3
- beq _0810BAC0
- ldr r1, _0810BA9C @ =gUnknown_03000758
- ldr r0, _0810BAA0 @ =gUnknown_083F7F1C
- str r0, [r1]
- ldr r1, _0810BAA4 @ =gUnknown_0203924C
- movs r0, 0x3
- b _0810BACA
- .align 2, 0
-_0810BA98: .4byte gUnknown_02039244
-_0810BA9C: .4byte gUnknown_03000758
-_0810BAA0: .4byte gUnknown_083F7F1C
-_0810BAA4: .4byte gUnknown_0203924C
-_0810BAA8:
- ldr r0, _0810BAB4 @ =gUnknown_03000758
- ldr r1, _0810BAB8 @ =gUnknown_083F7F1F
- str r1, [r0]
- ldr r0, _0810BABC @ =gUnknown_0203924C
- strb r2, [r0]
- b _0810BACC
- .align 2, 0
-_0810BAB4: .4byte gUnknown_03000758
-_0810BAB8: .4byte gUnknown_083F7F1F
-_0810BABC: .4byte gUnknown_0203924C
-_0810BAC0:
- ldr r1, _0810BAD0 @ =gUnknown_03000758
- ldr r0, _0810BAD4 @ =gUnknown_083F7F21
- str r0, [r1]
- ldr r1, _0810BAD8 @ =gUnknown_0203924C
- movs r0, 0x2
-_0810BACA:
- strb r0, [r1]
-_0810BACC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAD0: .4byte gUnknown_03000758
-_0810BAD4: .4byte gUnknown_083F7F21
-_0810BAD8: .4byte gUnknown_0203924C
- thumb_func_end sub_810BA7C
-
- thumb_func_start sub_810BADC
-sub_810BADC: @ 810BADC
- push {lr}
- movs r0, 0x2
- bl sub_810BA7C
- ldr r0, _0810BAF0 @ =sub_810B96C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAF0: .4byte sub_810B96C
- thumb_func_end sub_810BADC
-
- thumb_func_start sub_810BAF4
-sub_810BAF4: @ 810BAF4
- push {lr}
- movs r0, 0x3
- bl sub_810BA7C
- ldr r0, _0810BB08 @ =sub_810B96C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB08: .4byte sub_810B96C
- thumb_func_end sub_810BAF4
-
- thumb_func_start sub_810BB0C
-sub_810BB0C: @ 810BB0C
- push {lr}
- ldr r0, _0810BB28 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BB2C @ =0x00000111
- bl ItemId_GetItem
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x48
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB28: .4byte gWindowConfig_81E6E34
-_0810BB2C: .4byte 0x00000111
- thumb_func_end sub_810BB0C
-
- thumb_func_start sub_810BB30
-sub_810BB30: @ 810BB30
- push {lr}
- ldr r0, _0810BB70 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BB74 @ =gContestStatsText_Spicy
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0810BB78 @ =gContestStatsText_Dry
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _0810BB7C @ =gContestStatsText_Sweet
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- ldr r0, _0810BB80 @ =gContestStatsText_Bitter
- movs r1, 0x8
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0810BB84 @ =gContestStatsText_Sour
- movs r1, 0x8
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB70: .4byte gWindowConfig_81E6E34
-_0810BB74: .4byte gContestStatsText_Spicy
-_0810BB78: .4byte gContestStatsText_Dry
-_0810BB7C: .4byte gContestStatsText_Sweet
-_0810BB80: .4byte gContestStatsText_Bitter
-_0810BB84: .4byte gContestStatsText_Sour
- thumb_func_end sub_810BB30
-
- thumb_func_start sub_810BB88
-sub_810BB88: @ 810BB88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- mov r6, r8
- adds r0, r6, 0
- adds r0, 0x8
- cmp r6, r0
- bgt _0810BC6C
- ldr r0, _0810BBF8 @ =gStringVar1
- mov r9, r0
- ldr r1, _0810BBFC @ =gSaveBlock1
- mov r10, r1
-_0810BBB0:
- mov r1, r8
- subs r0, r6, r1
- lsls r0, 25
- lsrs r7, r0, 24
- ldr r0, _0810BC00 @ =gUnknown_02039248
- ldrb r0, [r0, 0x2]
- cmp r6, r0
- bne _0810BC08
- mov r0, r9
- ldr r1, _0810BC04 @ =gContestStatsText_StowCase
- movs r2, 0x78
- movs r3, 0
- bl sub_8072C74
- movs r2, 0x1
- orrs r2, r7
- mov r0, r9
- movs r1, 0xF
- bl MenuPrint
- mov r0, r8
- adds r0, 0x8
- cmp r6, r0
- beq _0810BC6C
- adds r1, r7, 0x3
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xF
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- b _0810BC6C
- .align 2, 0
-_0810BBF4: .4byte gWindowConfig_81E6E34
-_0810BBF8: .4byte gStringVar1
-_0810BBFC: .4byte gSaveBlock1
-_0810BC00: .4byte gUnknown_02039248
-_0810BC04: .4byte gContestStatsText_StowCase
-_0810BC08:
- lsls r5, r6, 3
- mov r1, r10
- adds r0, r5, r1
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _0810BC7C @ =gPokeblockNames
- adds r0, r1
- ldr r1, [r0]
- mov r0, r9
- movs r2, 0x5E
- movs r3, 0
- bl sub_8072C74
- adds r4, r0, 0
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x14
- strb r0, [r4, 0x1]
- movs r0, 0x6
- strb r0, [r4, 0x2]
- adds r4, 0x3
- ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8
- adds r5, r0
- adds r0, r5, 0
- bl sub_810C9B0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r2, 0x1
- orrs r2, r7
- mov r0, r9
- movs r1, 0xF
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r0, 0x8
- cmp r6, r0
- ble _0810BBB0
-_0810BC6C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BC7C: .4byte gPokeblockNames
-_0810BC80: .4byte gSaveBlock1 + 0x7F8
- thumb_func_end sub_810BB88
-
- thumb_func_start sub_810BC84
-sub_810BC84: @ 810BC84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_810BB88
- movs r0, 0
- bl sub_810BDAC
- pop {r0}
- bx r0
- thumb_func_end sub_810BC84
-
- thumb_func_start sub_810BC98
-sub_810BC98: @ 810BC98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- ldr r0, _0810BD00 @ =gSaveBlock1
- mov r9, r0
-_0810BCA6:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r5, r0, 16
- mov r8, r1
- cmp r5, 0x27
- bhi _0810BCE8
- lsls r1, r2, 3
- mov r2, r9
- adds r0, r1, r2
- movs r2, 0xFF
- lsls r2, 3
- adds r7, r0, r2
- ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8
- mov r12, r0
- adds r6, r1, r0
-_0810BCC4:
- ldrb r0, [r7]
- cmp r0, 0
- bne _0810BCDE
- ldr r3, [r6]
- ldr r4, [r6, 0x4]
- lsls r2, r5, 3
- add r2, r12
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- str r0, [r6]
- str r1, [r6, 0x4]
- str r3, [r2]
- str r4, [r2, 0x4]
-_0810BCDE:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x27
- bls _0810BCC4
-_0810BCE8:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r2, r0, 16
- cmp r2, 0x26
- bls _0810BCA6
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD00: .4byte gSaveBlock1
-_0810BD04: .4byte gSaveBlock1 + 0x7F8
- thumb_func_end sub_810BC98
-
- thumb_func_start sub_810BD08
-sub_810BD08: @ 810BD08
- push {r4,r5,lr}
- ldr r1, _0810BD5C @ =gUnknown_02039248
- movs r0, 0
- strb r0, [r1, 0x2]
- movs r2, 0
- ldr r5, _0810BD60 @ =gSaveBlock1
- movs r4, 0xFF
- lsls r4, 3
- adds r3, r1, 0
-_0810BD1A:
- lsls r0, r2, 3
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810BD2C
- ldrb r0, [r3, 0x2]
- adds r0, 0x1
- strb r0, [r3, 0x2]
-_0810BD2C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x27
- bls _0810BD1A
- ldrb r0, [r1, 0x2]
- cmp r0, 0x7
- bls _0810BD3E
- movs r0, 0x8
-_0810BD3E:
- strb r0, [r1, 0x3]
- ldrb r2, [r1, 0x1]
- adds r0, r2, 0
- adds r0, 0x8
- ldrb r3, [r1, 0x2]
- cmp r0, r3
- ble _0810BD54
- cmp r2, 0
- beq _0810BD54
- subs r0, r2, 0x1
- strb r0, [r1, 0x1]
-_0810BD54:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD5C: .4byte gUnknown_02039248
-_0810BD60: .4byte gSaveBlock1
- thumb_func_end sub_810BD08
-
- thumb_func_start sub_810BD64
-sub_810BD64: @ 810BD64
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r5, _0810BDA4 @ =gUnknown_02039248
- ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000
-_0810BD70:
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 5
- adds r1, r2, 0
- adds r1, 0xF
- adds r0, r1
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
- ldrb r0, [r5]
- lsls r0, 6
- adds r0, 0x40
- adds r0, r1
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _0810BD70
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BDA4: .4byte gUnknown_02039248
-_0810BDA8: .4byte gBGTilemapBuffers + 0x1000
- thumb_func_end sub_810BD64
-
- thumb_func_start sub_810BDAC
-sub_810BDAC: @ 810BDAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- cmp r0, 0
- bne _0810BDCC
- ldr r0, _0810BDC4 @ =0x00001005
- ldr r1, _0810BDC8 @ =0x00001014
- bl sub_810BD64
- b _0810BDD4
- .align 2, 0
-_0810BDC4: .4byte 0x00001005
-_0810BDC8: .4byte 0x00001014
-_0810BDCC:
- ldr r0, _0810BDE8 @ =0x00002005
- ldr r1, _0810BDEC @ =0x00002014
- bl sub_810BD64
-_0810BDD4:
- ldr r0, _0810BDF0 @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0810BDF4
- movs r0, 0
- movs r1, 0
- bl sub_80F979C
- b _0810BDFC
- .align 2, 0
-_0810BDE8: .4byte 0x00002005
-_0810BDEC: .4byte 0x00002014
-_0810BDF0: .4byte gUnknown_02039248
-_0810BDF4:
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
-_0810BDFC:
- ldr r2, _0810BE1C @ =gUnknown_02039248
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810BE20
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810BE20
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
- b _0810BE28
- .align 2, 0
-_0810BE1C: .4byte gUnknown_02039248
-_0810BE20:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
-_0810BE28:
- movs r6, 0
- ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000
- movs r0, 0xF
- mov r8, r0
-_0810BE30:
- adds r0, r6, 0
- movs r1, 0x3
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 18
- ldr r1, _0810BE98 @ =0x000001a1
- adds r4, r1
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r5, r4, r1
- ldr r1, _0810BE9C @ =gUnknown_02039248
- ldrb r2, [r1]
- ldrb r0, [r1, 0x1]
- adds r0, r2, r0
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810BEB8
- lsls r0, 3
- ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- adds r4, r6, 0x1
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_810CA9C
- lsls r0, 16
- cmp r0, 0
- ble _0810BEA4
- lsls r1, r5, 1
- adds r1, r7
- lsls r2, r6, 12
- adds r0, r2, 0
- adds r0, 0x17
- strh r0, [r1]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- adds r2, 0x18
- strh r2, [r0]
- b _0810BECC
- .align 2, 0
-_0810BE94: .4byte gBGTilemapBuffers + 0x1000
-_0810BE98: .4byte 0x000001a1
-_0810BE9C: .4byte gUnknown_02039248
-_0810BEA0: .4byte gSaveBlock1 + 0x7F8
-_0810BEA4:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- b _0810BECC
-_0810BEB8:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- adds r4, r6, 0x1
-_0810BECC:
- lsls r0, r4, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bls _0810BE30
- ldr r0, _0810BF10 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BF14 @ =gUnknown_02039248
- ldrb r2, [r0]
- ldrb r1, [r0, 0x1]
- adds r2, r1
- ldrb r0, [r0, 0x2]
- cmp r2, r0
- beq _0810BF20
- ldr r4, _0810BF18 @ =gStringVar1
- lsls r0, r2, 3
- ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- bl sub_810C9E8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x10
- movs r3, 0x1
- bl sub_8072C14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- b _0810BF2C
- .align 2, 0
-_0810BF10: .4byte gWindowConfig_81E6E34
-_0810BF14: .4byte gUnknown_02039248
-_0810BF18: .4byte gStringVar1
-_0810BF1C: .4byte gSaveBlock1 + 0x7F8
-_0810BF20:
- movs r0, 0xB
- movs r1, 0x11
- movs r2, 0xC
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0810BF2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810BDAC
-
- thumb_func_start sub_810BF38
-sub_810BF38: @ 810BF38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0810BF6C @ =gSprites
- ldr r0, _0810BF70 @ =0x02000000
- ldr r1, _0810BF74 @ =0x0001fffe
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0810BF78 @ =sub_810C8D4
- str r1, [r0]
- adds r0, r4, 0
- bl sub_810BDAC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BF6C: .4byte gSprites
-_0810BF70: .4byte 0x02000000
-_0810BF74: .4byte 0x0001fffe
-_0810BF78: .4byte sub_810C8D4
- thumb_func_end sub_810BF38
-
- thumb_func_start sub_810BF7C
-sub_810BF7C: @ 810BF7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _0810BFB8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810BF94
- b _0810C0B8
-_0810BF94:
- ldr r2, _0810BFBC @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810BFCE
- ldr r4, _0810BFC0 @ =gUnknown_02039248
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810BFC4
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- b _0810C00A
- .align 2, 0
-_0810BFB8: .4byte gPaletteFade
-_0810BFBC: .4byte gMain
-_0810BFC0: .4byte gUnknown_02039248
-_0810BFC4:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0810C0B8
- subs r0, 0x1
- b _0810C002
-_0810BFCE:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810C012
- ldr r4, _0810BFF0 @ =gUnknown_02039248
- ldrb r0, [r4]
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0810BFF4
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810C00A
- .align 2, 0
-_0810BFF0: .4byte gUnknown_02039248
-_0810BFF4:
- ldrb r1, [r4, 0x1]
- ldrb r0, [r4]
- adds r0, r1, r0
- ldrb r2, [r4, 0x2]
- cmp r0, r2
- beq _0810C0B8
- adds r0, r1, 0x1
-_0810C002:
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- bl sub_810BB88
-_0810C00A:
- movs r0, 0
- bl sub_810BF38
- b _0810C0B8
-_0810C012:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810C05C
- ldr r4, _0810C050 @ =gUnknown_02039248
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- adds r0, r1
- ldrb r1, [r4, 0x2]
- cmp r0, r1
- beq _0810C0B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_810BDAC
- ldr r1, _0810C054 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldrb r2, [r4]
- adds r1, r2
- strh r1, [r0, 0x8]
- ldr r1, _0810C058 @ =sub_810C0C8
- str r1, [r0]
- b _0810C0B8
- .align 2, 0
-_0810C050: .4byte gUnknown_02039248
-_0810C054: .4byte gTasks
-_0810C058: .4byte sub_810C0C8
-_0810C05C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C09C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810C088 @ =gUnknown_02039248
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _0810C094
- ldr r1, _0810C08C @ =gScriptResult
- ldr r2, _0810C090 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_810C31C
- b _0810C0B8
- .align 2, 0
-_0810C088: .4byte gUnknown_02039248
-_0810C08C: .4byte gScriptResult
-_0810C090: .4byte 0x0000ffff
-_0810C094:
- adds r0, r5, 0
- bl sub_810C368
- b _0810C0B8
-_0810C09C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C0B8
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0810C0C0 @ =gScriptResult
- ldr r2, _0810C0C4 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_810C31C
-_0810C0B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C0C0: .4byte gScriptResult
-_0810C0C4: .4byte 0x0000ffff
- thumb_func_end sub_810BF7C
-
- thumb_func_start sub_810C0C8
-sub_810C0C8: @ 810C0C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0810C0F4 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810C110
- ldr r4, _0810C0F8 @ =gUnknown_02039248
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810C0FC
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- b _0810C158
- .align 2, 0
-_0810C0F4: .4byte gMain
-_0810C0F8: .4byte gUnknown_02039248
-_0810C0FC:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0810C1BA
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- b _0810C150
-_0810C110:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810C168
- ldr r4, _0810C134 @ =gUnknown_02039248
- ldrb r0, [r4]
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0810C138
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810C158
- .align 2, 0
-_0810C134: .4byte gUnknown_02039248
-_0810C138:
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- adds r0, r1
- ldrb r1, [r4, 0x2]
- cmp r0, r1
- beq _0810C1BA
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
-_0810C150:
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- bl sub_810BB88
-_0810C158:
- movs r0, 0x1
- bl sub_810BF38
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_810C1C8
- b _0810C1BA
-_0810C168:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810C17A
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810C190
-_0810C17A:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- adds r0, r5, 0
- bl sub_810C23C
- b _0810C1AC
-_0810C190:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C1BA
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- movs r0, 0
- bl sub_810BDAC
-_0810C1AC:
- ldr r0, _0810C1C0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810C1C4 @ =sub_810BF7C
- str r0, [r1]
-_0810C1BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C1C0: .4byte gTasks
-_0810C1C4: .4byte sub_810BF7C
- thumb_func_end sub_810C0C8
-
- thumb_func_start sub_810C1C8
-sub_810C1C8: @ 810C1C8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- ldr r6, _0810C22C @ =0x00001005
- cmp r1, 0
- bne _0810C1D8
- movs r6, 0x5
-_0810C1D8:
- ldr r1, _0810C230 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r2, _0810C234 @ =gUnknown_02039248
- ldrb r1, [r2, 0x1]
- ldrh r0, [r0, 0x8]
- subs r0, r1
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r0, 0x8
- bhi _0810C226
- asrs r0, r1, 16
- ldrb r2, [r2]
- cmp r0, r2
- beq _0810C226
- movs r2, 0
- lsls r0, 1
- adds r1, r0, 0x1
- lsls r5, r1, 5
- ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000
- adds r0, 0x2
- lsls r4, r0, 5
-_0810C208:
- adds r0, r2, 0
- adds r0, 0xF
- adds r1, r5, r0
- lsls r1, 1
- adds r1, r3
- strh r6, [r1]
- adds r0, r4, r0
- lsls r0, 1
- adds r0, r3
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _0810C208
-_0810C226:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C22C: .4byte 0x00001005
-_0810C230: .4byte gTasks
-_0810C234: .4byte gUnknown_02039248
-_0810C238: .4byte gBGTilemapBuffers + 0x1000
- thumb_func_end sub_810C1C8
-
- thumb_func_start sub_810C23C
-sub_810C23C: @ 810C23C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r7, _0810C25C @ =gUnknown_02039248
- ldrb r0, [r7]
- ldrb r2, [r7, 0x1]
- adds r0, r2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r7, 0x2]
- cmp r0, r2
- bne _0810C260
- movs r0, 0
- bl sub_810BDAC
- b _0810C2A2
- .align 2, 0
-_0810C25C: .4byte gUnknown_02039248
-_0810C260:
- ldr r4, _0810C2A8 @ =gSaveBlock1
- lsls r3, r0, 3
- movs r0, 0xFF
- lsls r0, 3
- adds r4, r0
- adds r3, r4
- ldr r5, [r3]
- ldr r6, [r3, 0x4]
- ldr r0, _0810C2AC @ =gTasks
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 3
- adds r2, r0
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r0, 3
- adds r0, r4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r3]
- str r1, [r3, 0x4]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r0, 3
- adds r0, r4
- str r5, [r0]
- str r6, [r0, 0x4]
- ldrb r0, [r7, 0x1]
- bl sub_810BB88
- movs r0, 0
- bl sub_810BDAC
-_0810C2A2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C2A8: .4byte gSaveBlock1
-_0810C2AC: .4byte gTasks
- thumb_func_end sub_810C23C
-
- thumb_func_start sub_810C2B0
-sub_810C2B0: @ 810C2B0
- push {lr}
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- bl BuyMenuFreeMemory
- pop {r0}
- bx r0
- thumb_func_end sub_810C2B0
-
- thumb_func_start sub_810C2C8
-sub_810C2C8: @ 810C2C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810C308 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810C300
- ldr r4, _0810C30C @ =gUnknown_02039244
- ldrb r0, [r4]
- cmp r0, 0x3
- bne _0810C2E8
- ldr r1, _0810C310 @ =gFieldCallback
- ldr r0, _0810C314 @ =sub_8080990
- str r0, [r1]
-_0810C2E8:
- bl sub_810C2B0
- ldr r0, _0810C318 @ =gUnknown_083F7EA8
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0810C300:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C308: .4byte gPaletteFade
-_0810C30C: .4byte gUnknown_02039244
-_0810C310: .4byte gFieldCallback
-_0810C314: .4byte sub_8080990
-_0810C318: .4byte gUnknown_083F7EA8
- thumb_func_end sub_810C2C8
-
- thumb_func_start sub_810C31C
-sub_810C31C: @ 810C31C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- movs r5, 0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0810C358 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0810C342
- ldr r0, _0810C35C @ =gScriptItemId
- strh r5, [r0]
-_0810C342:
- ldr r0, _0810C360 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810C364 @ =sub_810C2C8
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C358: .4byte gUnknown_02039244
-_0810C35C: .4byte gScriptItemId
-_0810C360: .4byte gTasks
-_0810C364: .4byte sub_810C2C8
- thumb_func_end sub_810C31C
-
- thumb_func_start sub_810C368
-sub_810C368: @ 810C368
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _0810C3E8 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0810C37C
- movs r4, 0x2
-_0810C37C:
- movs r0, 0
- bl sub_80F98A4
- movs r0, 0x1
- bl sub_80F98A4
- ldr r0, _0810C3EC @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- adds r1, r4, 0x4
- movs r0, 0x7
- movs r2, 0xD
- movs r3, 0xB
- bl MenuDrawTextWindow
- adds r4, 0x5
- ldr r5, _0810C3F0 @ =gUnknown_0203924C
- ldrb r2, [r5]
- ldr r3, _0810C3F4 @ =gUnknown_083F7EF4
- ldr r0, _0810C3F8 @ =gUnknown_03000758
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x8
- adds r1, r4, 0
- bl PrintMenuItemsReordered
- ldrb r3, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x8
- adds r2, r4, 0
- bl InitMenu
- ldr r2, _0810C3FC @ =gScriptItemId
- ldr r1, _0810C400 @ =gUnknown_02039248
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- adds r0, r1
- strh r0, [r2]
- ldr r1, _0810C404 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C408 @ =sub_810C40C
- str r1, [r0]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C3E8: .4byte gUnknown_02039244
-_0810C3EC: .4byte gWindowConfig_81E6E50
-_0810C3F0: .4byte gUnknown_0203924C
-_0810C3F4: .4byte gUnknown_083F7EF4
-_0810C3F8: .4byte gUnknown_03000758
-_0810C3FC: .4byte gScriptItemId
-_0810C400: .4byte gUnknown_02039248
-_0810C404: .4byte gTasks
-_0810C408: .4byte sub_810C40C
- thumb_func_end sub_810C368
-
- thumb_func_start sub_810C40C
-sub_810C40C: @ 810C40C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _0810C43C @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810C440
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0810C4BC
- .align 2, 0
-_0810C43C: .4byte gMain
-_0810C440:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810C46C
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810C468 @ =gUnknown_0203924C
- ldrb r1, [r1]
- subs r1, 0x1
- cmp r0, r1
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0810C4BC
- .align 2, 0
-_0810C468: .4byte gUnknown_0203924C
-_0810C46C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C4A8
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0810C4A0 @ =gUnknown_083F7EF4
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810C4A4 @ =gUnknown_03000758
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0810C4BC
- .align 2, 0
-_0810C4A0: .4byte gUnknown_083F7EF4
-_0810C4A4: .4byte gUnknown_03000758
-_0810C4A8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_810C748
-_0810C4BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810C40C
-
- thumb_func_start sub_810C4C4
-sub_810C4C4: @ 810C4C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810C4F8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810C4F0
- bl sub_810C2B0
- ldr r0, _0810C4FC @ =gScriptItemId
- ldrh r0, [r0]
- lsls r0, 3
- ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- ldr r1, _0810C504 @ =sub_810B96C
- bl sub_8136130
- adds r0, r4, 0
- bl DestroyTask
-_0810C4F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C4F8: .4byte gPaletteFade
-_0810C4FC: .4byte gScriptItemId
-_0810C500: .4byte gSaveBlock1 + 0x7F8
-_0810C504: .4byte sub_810B96C
- thumb_func_end sub_810C4C4
-
- thumb_func_start sub_810C508
-sub_810C508: @ 810C508
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C538 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C53C @ =sub_810C4C4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C538: .4byte gTasks
-_0810C53C: .4byte sub_810C4C4
- thumb_func_end sub_810C508
-
- thumb_func_start sub_810C540
-sub_810C540: @ 810C540
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- bl HandleDestroyMenuCursors
- movs r0, 0x7
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r0, _0810C5A4 @ =gStringVar1
- ldr r4, _0810C5A8 @ =gPokeblockNames
- ldr r3, _0810C5AC @ =gSaveBlock1
- ldr r2, _0810C5B0 @ =gUnknown_02039248
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- adds r1, r2
- lsls r1, 3
- adds r1, r3
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r4
- ldr r1, [r1]
- bl StringCopy
- ldr r4, _0810C5B4 @ =gStringVar4
- ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _0810C5BC @ =sub_810C5EC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5A0: .4byte gWindowConfig_81E6E50
-_0810C5A4: .4byte gStringVar1
-_0810C5A8: .4byte gPokeblockNames
-_0810C5AC: .4byte gSaveBlock1
-_0810C5B0: .4byte gUnknown_02039248
-_0810C5B4: .4byte gStringVar4
-_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt
-_0810C5BC: .4byte sub_810C5EC
- thumb_func_end sub_810C540
-
- thumb_func_start sub_810C5C0
-sub_810C5C0: @ 810C5C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldr r1, _0810C5E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C5E8 @ =sub_810C540
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5E4: .4byte gTasks
-_0810C5E8: .4byte sub_810C540
- thumb_func_end sub_810C5C0
-
- thumb_func_start sub_810C5EC
-sub_810C5EC: @ 810C5EC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0810C60C @ =gUnknown_083F7F24
- adds r0, r4, 0
- bl DoYesNoFuncWithChoice
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C60C: .4byte gUnknown_083F7F24
- thumb_func_end sub_810C5EC
-
- thumb_func_start sub_810C610
-sub_810C610: @ 810C610
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r1, _0810C658 @ =gUnknown_02039248
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_810CA6C
- ldr r5, _0810C65C @ =gStringVar4
- ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r2, _0810C664 @ =sub_810C704
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- bl sub_810BC98
- bl sub_810BD08
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C658: .4byte gUnknown_02039248
-_0810C65C: .4byte gStringVar4
-_0810C660: .4byte gContestStatsText_WasThrownAway
-_0810C664: .4byte sub_810C704
- thumb_func_end sub_810C610
-
- thumb_func_start sub_810C668
-sub_810C668: @ 810C668
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl StartVerticalScrollIndicators
- movs r0, 0x1
- bl StartVerticalScrollIndicators
- ldr r2, _0810C6CC @ =gUnknown_02039248
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810C698
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810C698
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
-_0810C698:
- ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0810C6D4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C6D8 @ =sub_810BF7C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C6CC: .4byte gUnknown_02039248
-_0810C6D0: .4byte gWindowConfig_81E6E50
-_0810C6D4: .4byte gTasks
-_0810C6D8: .4byte sub_810BF7C
- thumb_func_end sub_810C668
-
- thumb_func_start sub_810C6DC
-sub_810C6DC: @ 810C6DC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810C700 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810C6F6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C6FC
-_0810C6F6:
- adds r0, r2, 0
- bl sub_810C668
-_0810C6FC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810C700: .4byte gMain
- thumb_func_end sub_810C6DC
-
- thumb_func_start sub_810C704
-sub_810C704: @ 810C704
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810C738 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810C73C @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- bl sub_810BC84
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldr r1, _0810C740 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C744 @ =sub_810C6DC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C738: .4byte gWindowConfig_81E6E34
-_0810C73C: .4byte gUnknown_02039248
-_0810C740: .4byte gTasks
-_0810C744: .4byte sub_810C6DC
- thumb_func_end sub_810C704
-
- thumb_func_start sub_810C748
-sub_810C748: @ 810C748
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl StartVerticalScrollIndicators
- movs r0, 0x1
- bl StartVerticalScrollIndicators
- bl HandleDestroyMenuCursors
- movs r0, 0x7
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r1, _0810C780 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C784 @ =sub_810BF7C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C780: .4byte gTasks
-_0810C784: .4byte sub_810BF7C
- thumb_func_end sub_810C748
-
- thumb_func_start sub_810C788
-sub_810C788: @ 810C788
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0810C834 @ =gEnemyParty
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _0810C838 @ =gScriptItemId
- ldrh r1, [r7]
- lsls r1, 3
- ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8
- adds r1, r5
- bl sub_810CAE4
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810C840 @ =gBattleTextBuff1
- ldr r2, _0810C844 @ =gPokeblockNames
- ldr r1, _0810C848 @ =0xfffff808
- adds r5, r1
- ldrh r1, [r7]
- lsls r1, 3
- adds r1, r5
- movs r6, 0xFF
- lsls r6, 3
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldrb r0, [r7]
- bl sub_810CA6C
- ldrh r0, [r7]
- lsls r0, 3
- adds r0, r5
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 8
- strh r0, [r7]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0
- bne _0810C7F4
- adds r0, 0x1
- strh r0, [r7]
-_0810C7F4:
- cmp r4, 0
- ble _0810C7FE
- ldrh r0, [r7]
- adds r0, 0x2
- strh r0, [r7]
-_0810C7FE:
- cmp r4, 0
- bge _0810C808
- ldrh r0, [r7]
- adds r0, 0x3
- strh r0, [r7]
-_0810C808:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C84C @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C850 @ =sub_810C2C8
- str r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C834: .4byte gEnemyParty
-_0810C838: .4byte gScriptItemId
-_0810C83C: .4byte gSaveBlock1 + 0x7F8
-_0810C840: .4byte gBattleTextBuff1
-_0810C844: .4byte gPokeblockNames
-_0810C848: .4byte 0xfffff808
-_0810C84C: .4byte gTasks
-_0810C850: .4byte sub_810C2C8
- thumb_func_end sub_810C788
-
- thumb_func_start sub_810C854
-sub_810C854: @ 810C854
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0810C8B8 @ =gScriptItemId
- ldrb r0, [r4]
- bl SafariZoneActivatePokeblockFeeder
- ldr r0, _0810C8BC @ =gStringVar1
- ldr r3, _0810C8C0 @ =gPokeblockNames
- ldr r2, _0810C8C4 @ =gSaveBlock1
- ldrh r1, [r4]
- lsls r1, 3
- adds r1, r2
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl StringCopy
- ldr r1, _0810C8C8 @ =gScriptResult
- ldrh r0, [r4]
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl sub_810CA6C
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C8CC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C8D0 @ =sub_810C2C8
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C8B8: .4byte gScriptItemId
-_0810C8BC: .4byte gStringVar1
-_0810C8C0: .4byte gPokeblockNames
-_0810C8C4: .4byte gSaveBlock1
-_0810C8C8: .4byte gScriptResult
-_0810C8CC: .4byte gTasks
-_0810C8D0: .4byte sub_810C2C8
- thumb_func_end sub_810C854
-
- thumb_func_start sub_810C8D4
-sub_810C8D4: @ 810C8D4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- ble _0810C8E4
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0810C8E4:
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _0810C8F2
- cmp r5, 0x1
- beq _0810C918
- b _0810C944
-_0810C8F2:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _0810C914 @ =gSpriteAffineAnimTable_83F7F70
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x30]
- b _0810C944
- .align 2, 0
-_0810C914: .4byte gSpriteAffineAnimTable_83F7F70
-_0810C918:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- ble _0810C944
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- strh r2, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, _0810C94C @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_0810C944:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C94C: .4byte SpriteCallbackDummy
- thumb_func_end sub_810C8D4
-
- thumb_func_start ClearPokeblock
-ClearPokeblock: @ 810C950
- lsls r0, 24
- ldr r1, _0810C988 @ =gSaveBlock1
- lsrs r0, 21
- adds r0, r1
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _0810C98C @ =0x000007f9
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0810C990 @ =0x000007fe
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0810C988: .4byte gSaveBlock1
-_0810C98C: .4byte 0x000007f9
-_0810C990: .4byte 0x000007fe
- thumb_func_end ClearPokeblock
-
- thumb_func_start ClearPokeblocks
-ClearPokeblocks: @ 810C994
- push {r4,lr}
- movs r4, 0
-_0810C998:
- adds r0, r4, 0
- bl ClearPokeblock
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x27
- bls _0810C998
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ClearPokeblocks
-
- thumb_func_start sub_810C9B0
-sub_810C9B0: @ 810C9B0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_810CA9C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x1
-_0810C9C0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_810CA9C
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bcs _0810C9D8
- adds r5, r0, 0
-_0810C9D8:
- adds r1, r4, 0
- cmp r1, 0x4
- bls _0810C9C0
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810C9B0
-
- thumb_func_start sub_810C9E8
-sub_810C9E8: @ 810C9E8
- push {lr}
- movs r1, 0x6
- bl sub_810CA9C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x63
- bls _0810C9FA
- movs r0, 0x63
-_0810C9FA:
- pop {r1}
- bx r1
- thumb_func_end sub_810C9E8
-
- thumb_func_start sub_810CA00
-sub_810CA00: @ 810CA00
- push {lr}
- movs r1, 0
- ldr r3, _0810CA1C @ =gSaveBlock1
- movs r2, 0xFF
- lsls r2, 3
-_0810CA0A:
- lsls r0, r1, 3
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CA20
- lsls r0, r1, 24
- asrs r0, 24
- b _0810CA2E
- .align 2, 0
-_0810CA1C: .4byte gSaveBlock1
-_0810CA20:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x27
- bls _0810CA0A
- movs r0, 0x1
- negs r0, r0
-_0810CA2E:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA00
-
- thumb_func_start sub_810CA34
-sub_810CA34: @ 810CA34
- push {r4,lr}
- adds r4, r0, 0
- bl sub_810CA00
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _0810CA64
- ldr r0, _0810CA60 @ =gSaveBlock1
- lsls r2, 3
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- adds r2, r0
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x1
- b _0810CA66
- .align 2, 0
-_0810CA60: .4byte gSaveBlock1
-_0810CA64:
- movs r0, 0
-_0810CA66:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810CA34
-
- thumb_func_start sub_810CA6C
-sub_810CA6C: @ 810CA6C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0810CA90 @ =gSaveBlock1
- lsls r0, r2, 3
- adds r0, r1
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810CA94
- adds r0, r2, 0
- bl ClearPokeblock
- movs r0, 0x1
- b _0810CA96
- .align 2, 0
-_0810CA90: .4byte gSaveBlock1
-_0810CA94:
- movs r0, 0
-_0810CA96:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA6C
-
- thumb_func_start sub_810CA9C
-sub_810CA9C: @ 810CA9C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0
- bne _0810CAAC
- ldrb r0, [r0]
- b _0810CADE
-_0810CAAC:
- cmp r1, 0x1
- bne _0810CAB4
- ldrb r0, [r0, 0x1]
- b _0810CADE
-_0810CAB4:
- cmp r1, 0x2
- bne _0810CABC
- ldrb r0, [r0, 0x2]
- b _0810CADE
-_0810CABC:
- cmp r1, 0x3
- bne _0810CAC4
- ldrb r0, [r0, 0x3]
- b _0810CADE
-_0810CAC4:
- cmp r1, 0x4
- bne _0810CACC
- ldrb r0, [r0, 0x4]
- b _0810CADE
-_0810CACC:
- cmp r1, 0x5
- bne _0810CAD4
- ldrb r0, [r0, 0x5]
- b _0810CADE
-_0810CAD4:
- cmp r2, 0x6
- beq _0810CADC
- movs r0, 0
- b _0810CADE
-_0810CADC:
- ldrb r0, [r0, 0x6]
-_0810CADE:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA9C
-
- thumb_func_start sub_810CAE4
-sub_810CAE4: @ 810CAE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- movs r4, 0
- ldr r1, _0810CB40 @ =gUnknown_083F7E28
- mov r9, r1
- lsls r1, r0, 2
- adds r7, r1, r0
-_0810CAFE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- adds r1, r5, 0
- bl sub_810CA9C
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- ble _0810CB2A
- adds r0, r7, r4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r1, r0
- lsls r0, r6, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
-_0810CB2A:
- adds r4, r5, 0
- cmp r4, 0x4
- bls _0810CAFE
- lsls r0, r6, 16
- asrs r0, 16
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810CB40: .4byte gUnknown_083F7E28
- thumb_func_end sub_810CAE4
-
- thumb_func_start sub_810CB44
-sub_810CB44: @ 810CB44
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0
- bl sub_810CA9C
- lsls r0, 24
- ldr r1, _0810CB64 @ =gPokeblockNames
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CB64: .4byte gPokeblockNames
- thumb_func_end sub_810CB44
-
- thumb_func_start sub_810CB68
-sub_810CB68: @ 810CB68
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r7, _0810CB98 @ =gPokeblockNames
-_0810CB74:
- lsls r1, r4, 3
- ldr r0, _0810CB9C @ =gUnknown_083F7F9C
- adds r1, r0
- adds r0, r5, 0
- bl sub_810CAE4
- lsls r0, 16
- cmp r0, 0
- ble _0810CBA0
- adds r0, r4, 0x1
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl StringCopy
- movs r0, 0x1
- b _0810CBAC
- .align 2, 0
-_0810CB98: .4byte gPokeblockNames
-_0810CB9C: .4byte gUnknown_083F7F9C
-_0810CBA0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0810CB74
- movs r0, 0
-_0810CBAC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810CB68
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rotating_gate.s b/asm/rotating_gate.s
deleted file mode 100644
index a553802e8..000000000
--- a/asm/rotating_gate.s
+++ /dev/null
@@ -1,1085 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetCurrentMapRotatingGatePuzzleType
-GetCurrentMapRotatingGatePuzzleType: @ 80C799C
- push {lr}
- ldr r0, _080C79B0 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0x86
- lsls r0, 1
- cmp r1, r0
- bne _080C79B4
- movs r0, 0x1
- b _080C79C6
- .align 2, 0
-_080C79B0: .4byte gSaveBlock1
-_080C79B4:
- ldr r0, _080C79C0 @ =0x0000081d
- cmp r1, r0
- beq _080C79C4
- movs r0, 0
- b _080C79C6
- .align 2, 0
-_080C79C0: .4byte 0x0000081d
-_080C79C4:
- movs r0, 0x2
-_080C79C6:
- pop {r1}
- bx r1
- thumb_func_end GetCurrentMapRotatingGatePuzzleType
-
- thumb_func_start sub_80C79CC
-sub_80C79CC: @ 80C79CC
- push {r4-r6,lr}
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r5, r0, 0
- movs r3, 0
- ldr r4, _080C7A00 @ =gUnknown_02038804
- ldrb r0, [r4]
- cmp r3, r0
- bge _080C79F8
- ldr r6, _080C7A04 @ =gUnknown_02038800
-_080C79E4:
- adds r2, r5, r3
- ldr r1, [r6]
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0, 0x5]
- strb r0, [r2]
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _080C79E4
-_080C79F8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7A00: .4byte gUnknown_02038804
-_080C7A04: .4byte gUnknown_02038800
- thumb_func_end sub_80C79CC
-
- thumb_func_start sub_80C7A08
-sub_80C7A08: @ 80C7A08
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r0, r4
- ldrb r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7A08
-
- thumb_func_start sub_80C7A24
-sub_80C7A24: @ 80C7A24
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r0, r4
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7A24
-
- thumb_func_start sub_80C7A44
-sub_80C7A44: @ 80C7A44
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80C7A08
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r4, 0x1
- bne _080C7A68
- cmp r1, 0
- beq _080C7A64
- subs r0, r1, 0x1
- lsls r0, 24
- b _080C7A72
-_080C7A64:
- movs r1, 0x3
- b _080C7A74
-_080C7A68:
- adds r1, 0x1
- lsls r1, 24
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r1
-_080C7A72:
- lsrs r1, r0, 24
-_080C7A74:
- adds r0, r5, 0
- bl sub_80C7A24
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7A44
-
- thumb_func_start sub_80C7A80
-sub_80C7A80: @ 80C7A80
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0x1
- beq _080C7A94
- cmp r0, 0x1
- ble _080C7AC8
- cmp r0, 0x2
- beq _080C7AAC
- b _080C7AC8
-_080C7A94:
- ldr r1, _080C7AA0 @ =gUnknown_02038800
- ldr r0, _080C7AA4 @ =gUnknown_083D2964
- str r0, [r1]
- ldr r1, _080C7AA8 @ =gUnknown_02038804
- movs r0, 0x7
- b _080C7AB6
- .align 2, 0
-_080C7AA0: .4byte gUnknown_02038800
-_080C7AA4: .4byte gUnknown_083D2964
-_080C7AA8: .4byte gUnknown_02038804
-_080C7AAC:
- ldr r1, _080C7ACC @ =gUnknown_02038800
- ldr r0, _080C7AD0 @ =gUnknown_083D299C
- str r0, [r1]
- ldr r1, _080C7AD4 @ =gUnknown_02038804
- movs r0, 0xE
-_080C7AB6:
- strb r0, [r1]
- movs r1, 0
- ldr r3, _080C7AD8 @ =gUnknown_020387F0
- movs r2, 0x40
-_080C7ABE:
- adds r0, r1, r3
- strb r2, [r0]
- adds r1, 0x1
- cmp r1, 0xD
- bls _080C7ABE
-_080C7AC8:
- pop {r0}
- bx r0
- .align 2, 0
-_080C7ACC: .4byte gUnknown_02038800
-_080C7AD0: .4byte gUnknown_083D299C
-_080C7AD4: .4byte gUnknown_02038804
-_080C7AD8: .4byte gUnknown_020387F0
- thumb_func_end sub_80C7A80
-
- thumb_func_start sub_80C7ADC
-sub_80C7ADC: @ 80C7ADC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- ldr r2, _080C7B9C @ =gSaveBlock1
- ldrh r1, [r2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r3, r0, 16
- adds r1, 0x11
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldrh r1, [r2, 0x2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r2, r0, 16
- adds r1, 0xE
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r5, 0
- ldr r0, _080C7BA0 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080C7B8C
- lsls r0, r2, 16
- asrs r7, r0, 16
- lsls r0, r3, 16
- asrs r6, r0, 16
-_080C7B28:
- ldr r0, _080C7BA4 @ =gUnknown_02038800
- ldr r0, [r0]
- lsls r1, r5, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r1, r0, 16
- cmp r7, r1
- bgt _080C7B7E
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- blt _080C7B7E
- lsls r0, r2, 16
- asrs r1, r0, 16
- cmp r6, r1
- bgt _080C7B7E
- mov r2, r9
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, r1
- blt _080C7B7E
- ldr r0, _080C7BA8 @ =gUnknown_020387F0
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x40
- bne _080C7B7E
- ldr r3, [sp]
- lsls r1, r3, 16
- mov r0, r10
- lsls r2, r0, 16
- adds r0, r5, 0
- asrs r1, 16
- asrs r2, 16
- bl sub_80C7BAC
- strb r0, [r4]
-_080C7B7E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C7BA0 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080C7B28
-_080C7B8C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7B9C: .4byte gSaveBlock1
-_080C7BA0: .4byte gUnknown_02038804
-_080C7BA4: .4byte gUnknown_02038800
-_080C7BA8: .4byte gUnknown_020387F0
- thumb_func_end sub_80C7ADC
-
- thumb_func_start sub_80C7BAC
-sub_80C7BAC: @ 80C7BAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, _080C7BDC @ =gUnknown_02038800
- lsls r1, r6, 3
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080C7BD4
- cmp r0, 0x4
- bne _080C7BE4
-_080C7BD4:
- mov r1, sp
- ldr r0, _080C7BE0 @ =gSpriteTemplate_83D60A4
- b _080C7BE8
- .align 2, 0
-_080C7BDC: .4byte gUnknown_02038800
-_080C7BE0: .4byte gSpriteTemplate_83D60A4
-_080C7BE4:
- mov r1, sp
- ldr r0, _080C7C7C @ =gSpriteTemplate_83D608C
-_080C7BE8:
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r2, sp
- ldrb r0, [r4, 0x4]
- movs r3, 0x98
- lsls r3, 5
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x94
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080C7C84
- ldrh r0, [r4]
- adds r0, 0x7
- ldrh r1, [r4, 0x2]
- adds r1, 0x7
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r2, _080C7C80 @ =gSprites
- adds r4, r2
- strh r6, [r4, 0x2E]
- movs r2, 0x3E
- adds r2, r4
- mov r12, r2
- ldrb r2, [r2]
- movs r3, 0x2
- orrs r2, r3
- mov r3, r12
- strb r2, [r3]
- lsls r0, 16
- asrs r0, 16
- lsls r2, r7, 16
- asrs r2, 16
- adds r0, r2
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- mov r3, r8
- lsls r2, r3, 16
- asrs r2, 16
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_8060388
- adds r0, r4, 0
- bl sub_80C7D14
- adds r0, r6, 0
- bl sub_80C7A08
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- adds r0, r5, 0
- b _080C7C86
- .align 2, 0
-_080C7C7C: .4byte gSpriteTemplate_83D608C
-_080C7C80: .4byte gSprites
-_080C7C84:
- movs r0, 0x40
-_080C7C86:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7BAC
-
- thumb_func_start sub_80C7C94
-sub_80C7C94: @ 80C7C94
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x30]
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r6, 0x32]
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r6, 0
- bl sub_80C7D14
- cmp r5, 0x1
- bne _080C7CDA
- adds r0, r4, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080C7CCA
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_080C7CCA:
- movs r0, 0x30
- bl PlaySE
- adds r0, r6, 0
- adds r1, r4, 0
- bl StartSpriteAffineAnim
- b _080C7D08
-_080C7CDA:
- cmp r5, 0x2
- bne _080C7D08
- adds r0, r7, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080C7CFA
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_080C7CFA:
- movs r0, 0x30
- bl PlaySE
- adds r0, r6, 0
- adds r1, r4, 0
- bl StartSpriteAffineAnim
-_080C7D08:
- movs r0, 0
- strh r0, [r6, 0x30]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7C94
-
- thumb_func_start sub_80C7D14
-sub_80C7D14: @ 80C7D14
- push {r4-r6,lr}
- mov r12, r0
- mov r4, r12
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r5, 0x5
- negs r5, r5
- ands r5, r0
- strb r5, [r4]
- mov r0, r12
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- adds r0, 0x28
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldr r0, _080C7DA8 @ =gSpriteCoordOffsetX
- adds r2, r1
- ldrh r0, [r0]
- adds r2, r0
- lsls r2, 16
- mov r3, r12
- ldrh r1, [r3, 0x26]
- ldrh r0, [r3, 0x22]
- adds r1, r0
- mov r0, r12
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r3, _080C7DAC @ =gSpriteCoordOffsetY
- adds r0, r1
- ldrh r3, [r3]
- adds r0, r3
- lsls r0, 16
- movs r3, 0x80
- lsls r3, 15
- adds r1, r2, r3
- lsrs r1, 16
- lsrs r6, r0, 16
- adds r0, r3
- lsrs r3, r0, 16
- asrs r2, 16
- cmp r2, 0xFF
- bgt _080C7D7A
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080C7D82
-_080C7D7A:
- movs r1, 0x4
- adds r0, r5, 0
- orrs r0, r1
- strb r0, [r4]
-_080C7D82:
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0xAF
- bgt _080C7D96
- lsls r0, r3, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080C7DA2
-_080C7D96:
- mov r0, r12
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080C7DA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7DA8: .4byte gSpriteCoordOffsetX
-_080C7DAC: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_80C7D14
-
- thumb_func_start LoadRotatingGatePics
-LoadRotatingGatePics: @ 80C7DB0
- push {lr}
- ldr r0, _080C7DBC @ =gRotatingGatesGraphicsTable
- bl LoadSpriteSheets
- pop {r0}
- bx r0
- .align 2, 0
-_080C7DBC: .4byte gRotatingGatesGraphicsTable
- thumb_func_end LoadRotatingGatePics
-
- thumb_func_start sub_80C7DC0
-sub_80C7DC0: @ 80C7DC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _080C7DF4 @ =gSaveBlock1
- ldrh r1, [r2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r1, 0x11
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldrh r1, [r2, 0x2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r1, 0xE
- lsls r1, 16
- lsrs r7, r1, 16
- movs r6, 0
- b _080C7E66
- .align 2, 0
-_080C7DF4: .4byte gSaveBlock1
-_080C7DF8:
- ldr r0, _080C7E7C @ =gUnknown_02038800
- ldr r0, [r0]
- lsls r1, r6, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080C7E80 @ =gUnknown_020387F0
- adds r0, r6, r0
- ldrb r0, [r0]
- cmp r0, 0x40
- beq _080C7E64
- lsls r0, r2, 16
- mov r2, r10
- lsls r1, r2, 16
- asrs r2, r0, 16
- cmp r0, r1
- blt _080C7E44
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r2, r0
- bgt _080C7E44
- lsls r0, r3, 16
- mov r2, r8
- lsls r1, r2, 16
- asrs r2, r0, 16
- cmp r0, r1
- blt _080C7E44
- lsls r0, r7, 16
- asrs r0, 16
- cmp r2, r0
- ble _080C7E64
-_080C7E44:
- ldr r0, _080C7E80 @ =gUnknown_020387F0
- adds r5, r6, r0
- ldrb r0, [r5]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C7E84 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- movs r0, 0x40
- strb r0, [r5]
-_080C7E64:
- adds r6, 0x1
-_080C7E66:
- ldr r0, _080C7E88 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r6, r0
- blt _080C7DF8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7E7C: .4byte gUnknown_02038800
-_080C7E80: .4byte gUnknown_020387F0
-_080C7E84: .4byte gSprites
-_080C7E88: .4byte gUnknown_02038804
- thumb_func_end sub_80C7DC0
-
- thumb_func_start sub_80C7E8C
-sub_80C7E8C: @ 80C7E8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r1, 0x1
- bne _080C7EAC
- ldr r0, _080C7EA8 @ =gUnknown_083D611C
- mov r10, r0
- b _080C7EB8
- .align 2, 0
-_080C7EA8: .4byte gUnknown_083D611C
-_080C7EAC:
- cmp r1, 0x2
- beq _080C7EB4
-_080C7EB0:
- movs r0, 0
- b _080C7F48
-_080C7EB4:
- ldr r1, _080C7F58 @ =gUnknown_083D60FC
- mov r10, r1
-_080C7EB8:
- adds r0, r4, 0
- bl sub_80C7A08
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r0, _080C7F5C @ =gUnknown_02038800
- ldr r1, [r0]
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldrh r1, [r0]
- adds r1, 0x7
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- movs r3, 0
- lsls r2, 3
- str r2, [sp, 0x4]
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
-_080C7EE8:
- movs r6, 0
- ldr r2, [sp]
- adds r7, r2, r3
- lsls r0, r3, 1
- adds r5, r7, 0
- ldr r1, [sp, 0x4]
- adds r0, r1
- ldr r2, _080C7F60 @ =gUnknown_083D613C
- adds r4, r0, r2
-_080C7EFA:
- adds r0, r5, 0
- cmp r5, 0
- bge _080C7F02
- adds r0, r7, 0x3
-_080C7F02:
- asrs r0, 2
- lsls r0, 2
- subs r0, r5, r0
- lsls r0, 1
- adds r0, r6
- lsls r0, 24
- lsrs r1, r0, 24
- ldrb r0, [r4]
- cmp r0, 0
- beq _080C7F38
- lsls r1, 2
- add r1, r10
- movs r0, 0
- ldrsb r0, [r1, r0]
- add r0, r9
- ldrb r1, [r1, 0x1]
- lsls r1, 24
- asrs r1, 24
- add r1, r8
- str r3, [sp, 0x8]
- bl MapGridIsImpassableAt
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x8]
- cmp r0, 0x1
- beq _080C7EB0
-_080C7F38:
- adds r4, 0x1
- adds r6, 0x1
- cmp r6, 0x1
- ble _080C7EFA
- adds r3, 0x1
- cmp r3, 0x3
- ble _080C7EE8
- movs r0, 0x1
-_080C7F48:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C7F58: .4byte gUnknown_083D60FC
-_080C7F5C: .4byte gUnknown_02038800
-_080C7F60: .4byte gUnknown_083D613C
- thumb_func_end sub_80C7E8C
-
- thumb_func_start sub_80C7F64
-sub_80C7F64: @ 80C7F64
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r4, 24
- lsrs r5, r4, 24
- lsrs r4, 25
- movs r0, 0x1
- ands r5, r0
- adds r0, r6, 0
- bl sub_80C7A08
- subs r4, r0
- adds r1, r4, 0x4
- adds r0, r1, 0
- cmp r1, 0
- bge _080C7F8A
- adds r0, r4, 0x7
-_080C7F8A:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- ldr r1, _080C7FB0 @ =gUnknown_02038800
- ldr r2, [r1]
- lsls r1, r6, 3
- adds r1, r2
- ldrb r1, [r1, 0x4]
- ldr r2, _080C7FB4 @ =gUnknown_083D613C
- lsls r0, 24
- asrs r0, 23
- adds r0, r5
- lsls r1, 3
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080C7FB0: .4byte gUnknown_02038800
-_080C7FB4: .4byte gUnknown_083D613C
- thumb_func_end sub_80C7F64
-
- thumb_func_start sub_80C7FB8
-sub_80C7FB8: @ 80C7FB8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080C7FE4 @ =gUnknown_020387F0
- adds r2, r3, r0
- ldrb r0, [r2]
- cmp r0, 0x40
- beq _080C7FDC
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C7FE8 @ =gSprites
- adds r4, r0
- strh r1, [r4, 0x30]
- adds r0, r3, 0
- bl sub_80C7A08
- strh r0, [r4, 0x32]
-_080C7FDC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7FE4: .4byte gUnknown_020387F0
-_080C7FE8: .4byte gSprites
- thumb_func_end sub_80C7FB8
-
- thumb_func_start sub_80C7FEC
-sub_80C7FEC: @ 80C7FEC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r0, 0x2
- bne _080C8008
- ldr r3, _080C8004 @ =gUnknown_083D60BC
- b _080C802A
- .align 2, 0
-_080C8004: .4byte gUnknown_083D60BC
-_080C8008:
- cmp r0, 0x1
- bne _080C8014
- ldr r3, _080C8010 @ =gUnknown_083D60CC
- b _080C802A
- .align 2, 0
-_080C8010: .4byte gUnknown_083D60CC
-_080C8014:
- cmp r0, 0x3
- bne _080C8020
- ldr r3, _080C801C @ =gUnknown_083D60DC
- b _080C802A
- .align 2, 0
-_080C801C: .4byte gUnknown_083D60DC
-_080C8020:
- cmp r3, 0x4
- beq _080C8028
- movs r0, 0xFF
- b _080C8038
-_080C8028:
- ldr r3, _080C803C @ =gUnknown_083D60EC
-_080C802A:
- lsls r0, r2, 16
- lsls r1, 16
- asrs r1, 16
- asrs r0, 14
- adds r0, r1
- adds r0, r3, r0
- ldrb r0, [r0]
-_080C8038:
- pop {r1}
- bx r1
- .align 2, 0
-_080C803C: .4byte gUnknown_083D60EC
- thumb_func_end sub_80C7FEC
-
- thumb_func_start sub_80C8040
-sub_80C8040: @ 80C8040
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C8052
- bl sub_80C7A80
- bl sub_80C79CC
-_080C8052:
- pop {r0}
- bx r0
- thumb_func_end sub_80C8040
-
- thumb_func_start RotatingGatePuzzleCameraUpdate
-RotatingGatePuzzleCameraUpdate: @ 80C8058
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C807A
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r5, 16
- asrs r1, 16
- bl sub_80C7ADC
- bl sub_80C7DC0
-_080C807A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end RotatingGatePuzzleCameraUpdate
-
- thumb_func_start sub_80C8080
-sub_80C8080: @ 80C8080
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C809A
- bl LoadRotatingGatePics
- bl sub_80C7A80
- movs r0, 0
- movs r1, 0
- bl sub_80C7ADC
-_080C809A:
- pop {r0}
- bx r0
- thumb_func_end sub_80C8080
-
- thumb_func_start CheckForRotatingGatePuzzleCollision
-CheckForRotatingGatePuzzleCollision: @ 80C80A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- bne _080C80D4
- b _080C8172
-_080C80C2:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7FB8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7A44
- b _080C8172
-_080C80D4:
- movs r6, 0
- ldr r0, _080C8160 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r6, r0
- bge _080C8172
- lsls r0, r4, 16
- asrs r7, r0, 16
-_080C80E2:
- ldr r0, _080C8164 @ =gUnknown_02038800
- ldr r1, [r0]
- lsls r0, r6, 3
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x7
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- subs r0, r4, 0x2
- cmp r0, r7
- bgt _080C8168
- adds r0, r4, 0x1
- cmp r7, r0
- bgt _080C8168
- lsls r0, r2, 16
- asrs r3, r0, 16
- subs r1, r3, 0x2
- mov r2, r8
- lsls r0, r2, 16
- asrs r2, r0, 16
- cmp r1, r2
- bgt _080C8168
- adds r0, r3, 0x1
- cmp r2, r0
- bgt _080C8168
- subs r1, r7, r4
- adds r1, 0x2
- subs r2, r3
- adds r2, 0x2
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- mov r0, r9
- bl sub_80C7FEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080C8168
- lsrs r5, r0, 4
- movs r1, 0xF
- ands r1, r0
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80C7F64
- cmp r0, 0
- beq _080C8168
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7E8C
- cmp r0, 0
- bne _080C80C2
- movs r0, 0x1
- b _080C8174
- .align 2, 0
-_080C8160: .4byte gUnknown_02038804
-_080C8164: .4byte gUnknown_02038800
-_080C8168:
- adds r6, 0x1
- ldr r0, _080C8180 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r6, r0
- blt _080C80E2
-_080C8172:
- movs r0, 0
-_080C8174:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C8180: .4byte gUnknown_02038804
- thumb_func_end CheckForRotatingGatePuzzleCollision
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/sound_check_menu.s b/asm/sound_check_menu.s
deleted file mode 100644
index b47229d2b..000000000
--- a/asm/sound_check_menu.s
+++ /dev/null
@@ -1,2444 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80BA0A8
-sub_80BA0A8: @ 80BA0A8
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80BA0A8
-
- thumb_func_start sub_80BA0C0
-sub_80BA0C0: @ 80BA0C0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, _080BA0E8 @ =gUnknown_020387B0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BA0E2
- bl m4aSoundMain
- bl m4aSoundMain
- bl m4aSoundMain
-_080BA0E2:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA0E8: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA0C0
-
- thumb_func_start unref_sub_80BA0EC
-unref_sub_80BA0EC: @ 80BA0EC
- push {r4-r6,lr}
- sub sp, 0xC
- movs r0, 0
- bl SetVBlankCallback
- movs r6, 0x80
- lsls r6, 19
- movs r5, 0
- strh r5, [r6]
- ldr r0, _080BA20C @ =REG_BG2CNT
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x10
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- add r0, sp, 0x4
- strh r5, [r0]
- ldr r1, _080BA210 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA214 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r4, 0
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA218 @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r1]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA21C @ =0x81000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _080BA220 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _080BA224 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BA228 @ =REG_WIN0H
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- ldr r1, _080BA22C @ =REG_WININ
- ldr r2, _080BA230 @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x31
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xE1
- strh r0, [r1]
- ldr r0, _080BA234 @ =REG_BLDALPHA
- strh r4, [r0]
- adds r1, 0x4
- movs r0, 0x7
- strh r0, [r1]
- ldr r1, _080BA238 @ =0x04000200
- movs r2, 0x1
- strh r2, [r1]
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- ldr r2, _080BA23C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080BA240 @ =sub_80BA0C0
- bl SetVBlankCallback
- ldr r0, _080BA244 @ =sub_80BA0A8
- bl SetMainCallback2
- ldr r1, _080BA248 @ =0x00007140
- adds r0, r1, 0
- strh r0, [r6]
- ldr r0, _080BA24C @ =sub_80BA258
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BA250 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r4, [r1, 0xE]
- ldr r0, _080BA254 @ =gUnknown_020387B0
- strb r5, [r0]
- strh r4, [r1, 0xE]
- bl m4aSoundInit
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA20C: .4byte REG_BG2CNT
-_080BA210: .4byte 0x040000d4
-_080BA214: .4byte 0x8100c000
-_080BA218: .4byte 0x85000100
-_080BA21C: .4byte 0x81000200
-_080BA220: .4byte gWindowConfig_81E6C3C
-_080BA224: .4byte gWindowConfig_81E6CE4
-_080BA228: .4byte REG_WIN0H
-_080BA22C: .4byte REG_WININ
-_080BA230: .4byte 0x00001111
-_080BA234: .4byte REG_BLDALPHA
-_080BA238: .4byte 0x04000200
-_080BA23C: .4byte REG_DISPSTAT
-_080BA240: .4byte sub_80BA0C0
-_080BA244: .4byte sub_80BA0A8
-_080BA248: .4byte 0x00007140
-_080BA24C: .4byte sub_80BA258
-_080BA250: .4byte gTasks
-_080BA254: .4byte gUnknown_020387B0
- thumb_func_end unref_sub_80BA0EC
-
- thumb_func_start sub_80BA258
-sub_80BA258: @ 80BA258
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x40
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080BA354 @ =gDebugText_SoundCheckJap
- mov r0, sp
- movs r2, 0x9
- bl memcpy
- add r7, sp, 0xC
- ldr r1, _080BA358 @ =gDebugText_BGM
- adds r0, r7, 0
- movs r2, 0x4
- bl memcpy
- add r0, sp, 0x10
- mov r8, r0
- ldr r1, _080BA35C @ =gDebugText_SE
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x14
- ldr r1, _080BA360 @ =gUnknown_083D02D9
- adds r0, r5, 0
- movs r2, 0xD
- bl memcpy
- add r4, sp, 0x24
- ldr r1, _080BA364 @ =gDebugText_UpDown
- adds r0, r4, 0
- movs r2, 0xC
- bl memcpy
- add r6, sp, 0x30
- ldr r1, _080BA368 @ =gDebugText_DriverTest
- adds r0, r6, 0
- movs r2, 0xE
- bl memcpy
- ldr r0, _080BA36C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA344
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x1B
- movs r3, 0x3
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0x5
- movs r2, 0x1B
- movs r3, 0xA
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0xC
- movs r2, 0x1B
- movs r3, 0x11
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x4
- movs r2, 0x1
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0xE
- movs r2, 0x1
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x4
- movs r2, 0x6
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0x6
- bl MenuPrint
- mov r0, r8
- movs r1, 0x4
- movs r2, 0xD
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0xD
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xE
- movs r2, 0x12
- bl MenuPrint
- ldr r1, _080BA370 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA374 @ =sub_80BA384
- str r1, [r0]
- ldr r1, _080BA378 @ =REG_WIN0H
- ldr r2, _080BA37C @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA380 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
-_080BA344:
- add sp, 0x40
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA354: .4byte gDebugText_SoundCheckJap
-_080BA358: .4byte gDebugText_BGM
-_080BA35C: .4byte gDebugText_SE
-_080BA360: .4byte gUnknown_083D02D9
-_080BA364: .4byte gDebugText_UpDown
-_080BA368: .4byte gDebugText_DriverTest
-_080BA36C: .4byte gPaletteFade
-_080BA370: .4byte gTasks
-_080BA374: .4byte sub_80BA384
-_080BA378: .4byte REG_WIN0H
-_080BA37C: .4byte 0x000011df
-_080BA380: .4byte 0x0000011f
- thumb_func_end sub_80BA258
-
- thumb_func_start sub_80BA384
-sub_80BA384: @ 80BA384
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BA3EC @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x8]
- bl sub_80BA6B8
- ldr r1, _080BA3F0 @ =0x0000015d
- adds r0, r1, 0
- ldrh r2, [r4, 0xA]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- movs r2, 0x8
- bl sub_80BA700
- ldr r1, _080BA3F4 @ =gBGMNames
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0x8
- bl sub_80BA79C
- ldrh r0, [r4, 0xC]
- movs r1, 0x7
- movs r2, 0xF
- bl sub_80BA700
- ldr r1, _080BA3F8 @ =gSENames
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl sub_80BA79C
- ldr r0, _080BA3FC @ =sub_80BA65C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA3EC: .4byte gTasks
-_080BA3F0: .4byte 0x0000015d
-_080BA3F4: .4byte gBGMNames
-_080BA3F8: .4byte gSENames
-_080BA3FC: .4byte sub_80BA65C
- thumb_func_end sub_80BA384
-
- thumb_func_start sub_80BA400
-sub_80BA400: @ 80BA400
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080BA428 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BA434
- ldr r0, _080BA42C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA430 @ =sub_80BA800
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA428: .4byte gMain
-_080BA42C: .4byte gTasks
-_080BA430: .4byte sub_80BA800
-_080BA434:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BA458
- ldr r0, _080BA450 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA454 @ =sub_80BAF84
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA450: .4byte gTasks
-_080BA454: .4byte sub_80BAF84
-_080BA458:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080BA478
- ldr r0, _080BA470 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA474 @ =sub_80BB25C
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA470: .4byte gTasks
-_080BA474: .4byte sub_80BB25C
-_080BA478:
- movs r6, 0x1
- movs r5, 0x1
- ands r5, r1
- cmp r5, 0
- beq _080BA538
- ldr r0, _080BA4AC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r5, r1, r0
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080BA4D0
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA4BA
- movs r3, 0xC
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA4B0
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- b _080BA4C4
- .align 2, 0
-_080BA4AC: .4byte gTasks
-_080BA4B0:
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- strh r4, [r5, 0x10]
- b _080BA64C
-_080BA4BA:
- movs r4, 0xC
- ldrsh r0, [r5, r4]
- cmp r0, 0
- bne _080BA4C4
- b _080BA64C
-_080BA4C4:
- ldrh r0, [r5, 0xC]
- bl m4aSongNumStart
- ldrh r0, [r5, 0xC]
- strh r0, [r5, 0x10]
- b _080BA64C
-_080BA4D0:
- ldrh r1, [r5, 0xE]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA514
- movs r3, 0xA
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA500
- ldr r0, _080BA4FC @ =0x0000015d
- adds r4, r0, 0
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- ldrh r1, [r5, 0xA]
- adds r4, r1
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- b _080BA528
- .align 2, 0
-_080BA4FC: .4byte 0x0000015d
-_080BA500:
- ldr r2, _080BA510 @ =0x0000015d
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- strh r4, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA510: .4byte 0x0000015d
-_080BA514:
- ldrh r1, [r5, 0xA]
- movs r3, 0xA
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _080BA520
- b _080BA64C
-_080BA520:
- ldr r4, _080BA534 @ =0x0000015d
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
-_080BA528:
- bl m4aSongNumStart
- ldrh r0, [r5, 0xA]
- strh r0, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA534: .4byte 0x0000015d
-_080BA538:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BA570
- movs r0, 0x5
- bl m4aSongNumStart
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080BA568 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA56C @ =sub_80BA68C
- str r1, [r0]
- b _080BA64C
- .align 2, 0
-_080BA568: .4byte gTasks
-_080BA56C: .4byte sub_80BA68C
-_080BA570:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080BA582
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BA59C
-_080BA582:
- ldr r0, _080BA598 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- eors r0, r6
- strh r0, [r1, 0x8]
-_080BA592:
- movs r0, 0x1
- b _080BA64E
- .align 2, 0
-_080BA598: .4byte gTasks
-_080BA59C:
- movs r0, 0x10
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BA5EA
- ldr r0, _080BA5CC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080BA5D6
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080BA5D0
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA5CC: .4byte gTasks
-_080BA5D0:
- movs r0, 0xF7
- strh r0, [r1, 0xC]
- b _080BA592
-_080BA5D6:
- ldrh r2, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0
- ble _080BA5E4
- subs r0, r2, 0x1
- b _080BA5E6
-_080BA5E4:
- movs r0, 0x75
-_080BA5E6:
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA5EA:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BA630
- ldr r1, _080BA614 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x8
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _080BA61C
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0xF6
- bgt _080BA618
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA614: .4byte gTasks
-_080BA618:
- strh r3, [r1, 0xC]
- b _080BA592
-_080BA61C:
- ldrh r3, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0x74
- bgt _080BA62C
- adds r0, r3, 0x1
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA62C:
- strh r2, [r1, 0xA]
- b _080BA592
-_080BA630:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080BA648
- ldr r0, _080BA644 @ =gUnknown_020387B0
- strb r6, [r0]
- b _080BA64C
- .align 2, 0
-_080BA644: .4byte gUnknown_020387B0
-_080BA648:
- ldr r0, _080BA658 @ =gUnknown_020387B0
- strb r1, [r0]
-_080BA64C:
- movs r0, 0
-_080BA64E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BA658: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA400
-
- thumb_func_start sub_80BA65C
-sub_80BA65C: @ 80BA65C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80BA400
- lsls r0, 24
- cmp r0, 0
- beq _080BA67C
- ldr r0, _080BA684 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA688 @ =sub_80BA384
- str r0, [r1]
-_080BA67C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA684: .4byte gTasks
-_080BA688: .4byte sub_80BA384
- thumb_func_end sub_80BA65C
-
- thumb_func_start sub_80BA68C
-sub_80BA68C: @ 80BA68C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080BA6B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA6AA
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080BA6B4 @ =CB2_InitTitleScreen
- bl SetMainCallback2
-_080BA6AA:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6B0: .4byte gPaletteFade
-_080BA6B4: .4byte CB2_InitTitleScreen
- thumb_func_end sub_80BA68C
-
- thumb_func_start sub_80BA6B8
-sub_80BA6B8: @ 80BA6B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA6C6
- cmp r0, 0x1
- beq _080BA6E0
-_080BA6C6:
- ldr r1, _080BA6D4 @ =REG_WIN1H
- ldr r2, _080BA6D8 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6DC @ =0x00002957
- b _080BA6EC
- .align 2, 0
-_080BA6D4: .4byte REG_WIN1H
-_080BA6D8: .4byte 0x000011df
-_080BA6DC: .4byte 0x00002957
-_080BA6E0:
- ldr r1, _080BA6F4 @ =REG_WIN1H
- ldr r2, _080BA6F8 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6FC @ =0x0000618f
-_080BA6EC:
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6F4: .4byte REG_WIN1H
-_080BA6F8: .4byte 0x000011df
-_080BA6FC: .4byte 0x0000618f
- thumb_func_end sub_80BA6B8
-
- thumb_func_start sub_80BA700
-sub_80BA700: @ 80BA700
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r7, r2, 16
- movs r1, 0
- movs r2, 0
-_080BA714:
- mov r3, sp
- adds r0, r3, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _080BA714
- mov r1, sp
- movs r0, 0xB0
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- movs r4, 0
- adds r0, r5, 0
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA748
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1]
- movs r4, 0x1
-_080BA748:
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080BA766
- cmp r4, 0
- beq _080BA76C
-_080BA766:
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1, 0x1]
-_080BA76C:
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4, 0x2]
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA700
-
- thumb_func_start sub_80BA79C
-sub_80BA79C: @ 80BA79C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- movs r3, 0
- movs r1, 0
-_080BA7AE:
- mov r2, sp
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xA
- bls _080BA7AE
- mov r0, sp
- movs r1, 0xFF
- strb r1, [r0, 0xA]
- movs r3, 0
- ldrb r0, [r4]
- lsls r2, r6, 24
- lsls r5, 24
- cmp r0, 0xFF
- beq _080BA7EC
-_080BA7D0:
- mov r0, sp
- adds r1, r0, r3
- adds r0, r4, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080BA7EC
- cmp r3, 0x9
- bls _080BA7D0
-_080BA7EC:
- lsrs r1, r2, 24
- lsrs r2, r5, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA79C
-
- thumb_func_start sub_80BA800
-sub_80BA800: @ 80BA800
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xCC
- lsls r0, 24
- str r0, [sp, 0xB0]
- lsrs r2, r0, 24
- str r2, [sp, 0xAC]
- ldr r1, _080BA9E8 @ =gUnknown_083D0312
- mov r0, sp
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0xB4]
- ldr r1, _080BA9EC @ =gUnknown_083D031C
- movs r2, 0xB
- bl memcpy
- mov r2, sp
- adds r2, 0x18
- str r2, [sp, 0xB8]
- ldr r1, _080BA9F0 @ =gDebugText_Voice
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x24
- str r0, [sp, 0xBC]
- ldr r1, _080BA9F4 @ =gDebugText_Volume
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x30
- str r2, [sp, 0xC0]
- ldr r1, _080BA9F8 @ =gDebugText_Panpot
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x3C
- str r0, [sp, 0xC4]
- ldr r1, _080BA9FC @ =gDebugText_Pitch
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x48
- str r2, [sp, 0xC8]
- ldr r1, _080BAA00 @ =gDebugText_Length
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- add r4, sp, 0x54
- ldr r1, _080BAA04 @ =gDebugText_Release
- adds r0, r4, 0
- movs r2, 0xA
- bl memcpy
- add r7, sp, 0x60
- ldr r1, _080BAA08 @ =gDebugText_Progress
- adds r0, r7, 0
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x6C
- mov r10, r0
- ldr r1, _080BAA0C @ =gDebugText_Chorus
- movs r2, 0xA
- bl memcpy
- add r2, sp, 0x78
- mov r9, r2
- ldr r1, _080BAA10 @ =gDebugText_Priority
- mov r0, r9
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x84
- mov r8, r0
- ldr r1, _080BAA14 @ =gUnknown_083D0381
- movs r2, 0x9
- bl memcpy
- add r6, sp, 0x90
- ldr r1, _080BAA18 @ =gUnknown_083D038A
- adds r0, r6, 0
- movs r2, 0x9
- bl memcpy
- add r5, sp, 0x9C
- ldr r1, _080BAA1C @ =gUnknown_083D0393
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x13
- movs r2, 0x4
- bl MenuPrint
- ldr r0, [sp, 0xB4]
- movs r1, 0x13
- movs r2, 0x2
- bl MenuPrint
- ldr r0, [sp, 0xB8]
- movs r1, 0x2
- movs r2, 0x1
- bl MenuPrint
- ldr r0, [sp, 0xBC]
- movs r1, 0x2
- movs r2, 0x3
- bl MenuPrint
- ldr r0, [sp, 0xC0]
- movs r1, 0x2
- movs r2, 0x5
- bl MenuPrint
- ldr r0, [sp, 0xC4]
- movs r1, 0x2
- movs r2, 0x7
- bl MenuPrint
- ldr r0, [sp, 0xC8]
- movs r1, 0x2
- movs r2, 0x9
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xB
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- mov r0, r10
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- mov r0, r9
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- mov r0, r8
- movs r1, 0x13
- movs r2, 0x10
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x13
- movs r2, 0xE
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x13
- movs r2, 0xC
- bl MenuPrint
- ldr r1, _080BAA20 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080BAA24 @ =gUnknown_020387B3
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080BAA28 @ =gUnknown_020387B1
- strb r1, [r0]
- ldr r0, _080BAA2C @ =gUnknown_020387B2
- strb r1, [r0]
- ldr r0, _080BAA30 @ =gUnknown_03005D30
- movs r2, 0
- str r2, [r0]
- ldr r0, _080BAA34 @ =gUnknown_020387D8
- strb r2, [r0]
- ldr r1, _080BAA38 @ =gUnknown_020387D9
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080BAA3C @ =gUnknown_020387B4
- str r2, [r0]
- movs r1, 0x78
- str r1, [r0, 0x4]
- str r2, [r0, 0x8]
- movs r1, 0xF0
- lsls r1, 6
- str r1, [r0, 0xC]
- movs r1, 0xB4
- str r1, [r0, 0x10]
- str r2, [r0, 0x18]
- str r2, [r0, 0x14]
- str r2, [r0, 0x1C]
- movs r1, 0x2
- str r1, [r0, 0x20]
- bl sub_80BAD5C
- movs r0, 0
- movs r1, 0
- bl sub_80BAE10
- ldr r1, _080BAA40 @ =gTasks
- ldr r2, [sp, 0xAC]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAA44 @ =sub_80BAA48
- str r1, [r0]
- add sp, 0xCC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA9E8: .4byte gUnknown_083D0312
-_080BA9EC: .4byte gUnknown_083D031C
-_080BA9F0: .4byte gDebugText_Voice
-_080BA9F4: .4byte gDebugText_Volume
-_080BA9F8: .4byte gDebugText_Panpot
-_080BA9FC: .4byte gDebugText_Pitch
-_080BAA00: .4byte gDebugText_Length
-_080BAA04: .4byte gDebugText_Release
-_080BAA08: .4byte gDebugText_Progress
-_080BAA0C: .4byte gDebugText_Chorus
-_080BAA10: .4byte gDebugText_Priority
-_080BAA14: .4byte gUnknown_083D0381
-_080BAA18: .4byte gUnknown_083D038A
-_080BAA1C: .4byte gUnknown_083D0393
-_080BAA20: .4byte REG_WIN0H
-_080BAA24: .4byte gUnknown_020387B3
-_080BAA28: .4byte gUnknown_020387B1
-_080BAA2C: .4byte gUnknown_020387B2
-_080BAA30: .4byte gUnknown_03005D30
-_080BAA34: .4byte gUnknown_020387D8
-_080BAA38: .4byte gUnknown_020387D9
-_080BAA3C: .4byte gUnknown_020387B4
-_080BAA40: .4byte gTasks
-_080BAA44: .4byte sub_80BAA48
- thumb_func_end sub_80BA800
-
- thumb_func_start sub_80BAA48
-sub_80BAA48: @ 80BAA48
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080BAA90 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080BAAA8
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BAA94 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BAA98 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BAA9C @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BAAA0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAAA4 @ =sub_80BA258
- str r1, [r0]
- b _080BACC6
- .align 2, 0
-_080BAA90: .4byte gMain
-_080BAA94: .4byte 0x00007140
-_080BAA98: .4byte 0x000011df
-_080BAA9C: .4byte 0x0000011f
-_080BAAA0: .4byte gTasks
-_080BAAA4: .4byte sub_80BA258
-_080BAAA8:
- ldrh r1, [r1, 0x30]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BAAD0
- ldr r1, _080BAACC @ =gUnknown_020387B3
- ldrb r2, [r1]
- subs r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080BAAEA
- movs r0, 0x8
- strb r0, [r1]
- b _080BAAEA
- .align 2, 0
-_080BAACC: .4byte gUnknown_020387B3
-_080BAAD0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BAAF8
- ldr r1, _080BAAF4 @ =gUnknown_020387B3
- ldrb r2, [r1]
- adds r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x8
- ble _080BAAEA
- strb r3, [r1]
-_080BAAEA:
- ldrb r1, [r1]
- adds r0, r2, 0
- bl sub_80BAE10
- b _080BACC6
- .align 2, 0
-_080BAAF4: .4byte gUnknown_020387B3
-_080BAAF8:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080BAB14
- ldr r0, _080BAB10 @ =gUnknown_020387D8
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- bl sub_80BAD5C
- b _080BACC6
- .align 2, 0
-_080BAB10: .4byte gUnknown_020387D8
-_080BAB14:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _080BAB38
- ldr r4, _080BAB34 @ =gUnknown_020387D9
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- bl sub_80BAD5C
- ldrb r0, [r4]
- bl SetPokemonCryStereo
- b _080BACC6
- .align 2, 0
-_080BAB34: .4byte gUnknown_020387D9
-_080BAB38:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BAB46
- movs r0, 0xA
- b _080BAB6E
-_080BAB46:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BAB56
- movs r0, 0xA
- negs r0, r0
- b _080BAB6E
-_080BAB56:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BAB64
- movs r0, 0x1
- negs r0, r0
- b _080BAB6E
-_080BAB64:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BAB78
- movs r0, 0x1
-_080BAB6E:
- bl sub_80BACDC
- bl sub_80BAD5C
- b _080BACC6
-_080BAB78:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080BAB82
- b _080BACA2
-_080BAB82:
- ldr r4, _080BABE4 @ =gUnknown_020387B4
- ldrb r0, [r4, 0x4]
- bl SetPokemonCryVolume
- movs r0, 0x8
- ldrsb r0, [r4, r0]
- bl SetPokemonCryPanpot
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- bl SetPokemonCryPitch
- ldrh r0, [r4, 0x10]
- bl SetPokemonCryLength
- ldr r0, [r4, 0x18]
- bl SetPokemonCryProgress
- ldrb r0, [r4, 0x14]
- bl SetPokemonCryRelease
- movs r0, 0x1C
- ldrsb r0, [r4, r0]
- bl SetPokemonCryChorus
- ldr r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl SetPokemonCryPriority
- ldr r4, [r4]
- adds r0, r4, 0
- cmp r4, 0
- bge _080BABC8
- adds r0, 0x7F
-_080BABC8:
- asrs r2, r0, 7
- lsls r0, r2, 7
- subs r0, r4, r0
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BAC1C
- cmp r0, 0x1
- bgt _080BABE8
- cmp r0, 0
- beq _080BABF2
- b _080BACA2
- .align 2, 0
-_080BABE4: .4byte gUnknown_020387B4
-_080BABE8:
- cmp r0, 0x2
- beq _080BAC48
- cmp r0, 0x3
- beq _080BAC74
- b _080BACA2
-_080BABF2:
- ldr r0, _080BAC04 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC0C
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC08 @ =voicegroup_84537C0
- b _080BAC98
- .align 2, 0
-_080BAC04: .4byte gUnknown_020387D8
-_080BAC08: .4byte voicegroup_84537C0
-_080BAC0C:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC18 @ =voicegroup_8452590
- b _080BAC98
- .align 2, 0
-_080BAC18: .4byte voicegroup_8452590
-_080BAC1C:
- ldr r0, _080BAC30 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC38
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC34 @ =voicegroup_8453DC0
- b _080BAC98
- .align 2, 0
-_080BAC30: .4byte gUnknown_020387D8
-_080BAC34: .4byte voicegroup_8453DC0
-_080BAC38:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC44 @ =voicegroup_8452B90
- b _080BAC98
- .align 2, 0
-_080BAC44: .4byte voicegroup_8452B90
-_080BAC48:
- ldr r0, _080BAC5C @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC64
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC60 @ =voicegroup_84543C0
- b _080BAC98
- .align 2, 0
-_080BAC5C: .4byte gUnknown_020387D8
-_080BAC60: .4byte voicegroup_84543C0
-_080BAC64:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC70 @ =voicegroup_8453190
- b _080BAC98
- .align 2, 0
-_080BAC70: .4byte voicegroup_8453190
-_080BAC74:
- ldr r0, _080BAC88 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC90
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC8C @ =voicegroup_84549C0
- b _080BAC98
- .align 2, 0
-_080BAC88: .4byte gUnknown_020387D8
-_080BAC8C: .4byte voicegroup_84549C0
-_080BAC90:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BACCC @ =voicegroup_8453790
-_080BAC98:
- adds r0, r1
- bl SetPokemonCryTone
- ldr r1, _080BACD0 @ =gUnknown_03005D30
- str r0, [r1]
-_080BACA2:
- ldr r0, _080BACD0 @ =gUnknown_03005D30
- ldr r0, [r0]
- cmp r0, 0
- beq _080BACC6
- ldr r5, _080BACD4 @ =gUnknown_020387B1
- bl IsPokemonCryPlaying
- strb r0, [r5]
- ldr r4, _080BACD8 @ =gUnknown_020387B2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4]
- cmp r0, r2
- beq _080BACC2
- bl sub_80BAD5C
-_080BACC2:
- ldrb r0, [r5]
- strb r0, [r4]
-_080BACC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BACCC: .4byte voicegroup_8453790
-_080BACD0: .4byte gUnknown_03005D30
-_080BACD4: .4byte gUnknown_020387B1
-_080BACD8: .4byte gUnknown_020387B2
- thumb_func_end sub_80BAA48
-
- thumb_func_start sub_80BACDC
-sub_80BACDC: @ 80BACDC
- push {r4-r6,lr}
- sub sp, 0x40
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BAD50 @ =gUnknown_083D039C
- mov r0, sp
- movs r2, 0x40
- bl memcpy
- ldr r6, _080BAD54 @ =gUnknown_020387B4
- ldr r5, _080BAD58 @ =gUnknown_020387B3
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r1, 2
- adds r1, r6
- lsls r4, 24
- asrs r4, 24
- ldr r0, [r1]
- adds r0, r4
- str r0, [r1]
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- ble _080BAD26
- lsls r0, r2, 3
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD26:
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 3
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- bge _080BAD46
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD46:
- add sp, 0x40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAD50: .4byte gUnknown_083D039C
-_080BAD54: .4byte gUnknown_020387B4
-_080BAD58: .4byte gUnknown_020387B3
- thumb_func_end sub_80BACDC
-
- thumb_func_start sub_80BAD5C
-sub_80BAD5C: @ 80BAD5C
- push {r4,lr}
- ldr r4, _080BAE00 @ =gUnknown_020387B4
- ldr r0, [r4]
- adds r0, 0x1
- movs r1, 0xB
- movs r2, 0x1
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x4]
- movs r1, 0xB
- movs r2, 0x3
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x8]
- movs r1, 0xB
- movs r2, 0x5
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0xC]
- movs r1, 0xB
- movs r2, 0x7
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x10]
- movs r1, 0xB
- movs r2, 0x9
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x14]
- movs r1, 0xB
- movs r2, 0xB
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x18]
- movs r1, 0xB
- movs r2, 0xD
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x1C]
- movs r1, 0xB
- movs r2, 0xF
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x20]
- movs r1, 0xB
- movs r2, 0x11
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, _080BAE04 @ =gUnknown_020387B1
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0x10
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE08 @ =gUnknown_020387D8
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE0C @ =gUnknown_020387D9
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xC
- movs r3, 0x1
- bl sub_80BAE78
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE00: .4byte gUnknown_020387B4
-_080BAE04: .4byte gUnknown_020387B1
-_080BAE08: .4byte gUnknown_020387D8
-_080BAE0C: .4byte gUnknown_020387D9
- thumb_func_end sub_80BAD5C
-
- thumb_func_start sub_80BAE10
-sub_80BAE10: @ 80BAE10
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080BAE6C @ =gUnknown_083D03DC
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _080BAE70 @ =gUnknown_083D03DE
- movs r2, 0x2
- bl memcpy
- ldr r6, _080BAE74 @ =gUnknown_083D0300
- lsls r4, 1
- adds r0, r4, r6
- ldrb r1, [r0]
- adds r4, 0x1
- adds r4, r6
- ldrb r2, [r4]
- mov r0, r8
- bl MenuPrint
- lsls r5, 1
- adds r0, r5, r6
- ldrb r1, [r0]
- adds r5, 0x1
- adds r5, r6
- ldrb r2, [r5]
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE6C: .4byte gUnknown_083D03DC
-_080BAE70: .4byte gUnknown_083D03DE
-_080BAE74: .4byte gUnknown_083D0300
- thumb_func_end sub_80BAE10
-
- thumb_func_start sub_80BAE78
-sub_80BAE78: @ 80BAE78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- mov r1, sp
- ldr r0, _080BAF80 @ =gUnknown_083D03E0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- movs r5, 0
- add r0, sp, 0x18
- mov r9, r0
- cmp r5, r7
- bgt _080BAEC0
- mov r4, r9
- movs r3, 0
-_080BAEAC:
- lsls r0, r5, 24
- asrs r0, 24
- adds r1, r4, r0
- strb r3, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, r7
- ble _080BAEAC
-_080BAEC0:
- adds r0, r7, 0x1
- add r0, r9
- movs r1, 0xFF
- strb r1, [r0]
- movs r1, 0
- mov r3, r8
- cmp r3, 0
- bge _080BAED6
- negs r3, r3
- mov r8, r3
- movs r1, 0x1
-_080BAED6:
- movs r4, 0
- mov r10, r4
- cmp r7, 0x1
- bne _080BAEE2
- movs r5, 0x1
- mov r10, r5
-_080BAEE2:
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 24
- lsls r6, 24
- str r6, [sp, 0x24]
- lsls r2, 24
- str r2, [sp, 0x28]
- cmp r0, 0
- blt _080BAF62
- str r1, [sp, 0x20]
-_080BAEF8:
- asrs r6, r0, 24
- lsls r0, r6, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r0, 0
- bne _080BAF1A
- mov r0, r10
- cmp r0, 0
- bne _080BAF1A
- lsls r4, r5, 24
- cmp r6, 0
- bne _080BAF46
-_080BAF1A:
- lsls r4, r5, 24
- ldr r3, [sp, 0x20]
- cmp r3, 0
- beq _080BAF34
- mov r5, r10
- cmp r5, 0
- bne _080BAF34
- asrs r0, r4, 24
- subs r0, r7, r0
- subs r0, 0x1
- add r0, r9
- movs r1, 0xAE
- strb r1, [r0]
-_080BAF34:
- asrs r1, r4, 24
- subs r1, r7, r1
- add r1, r9
- lsls r0, r2, 24
- asrs r0, 24
- subs r0, 0x5F
- strb r0, [r1]
- movs r0, 0x1
- mov r10, r0
-_080BAF46:
- asrs r4, 24
- lsls r0, r4, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __modsi3
- mov r8, r0
- subs r4, 0x1
- lsls r4, 24
- lsrs r5, r4, 24
- lsls r0, r5, 24
- cmp r0, 0
- bge _080BAEF8
-_080BAF62:
- ldr r3, [sp, 0x24]
- lsrs r1, r3, 24
- ldr r4, [sp, 0x28]
- lsrs r2, r4, 24
- mov r0, r9
- bl MenuPrint
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAF80: .4byte gUnknown_083D03E0
- thumb_func_end sub_80BAE78
-
- thumb_func_start sub_80BAF84
-sub_80BAF84: @ 80BAF84
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BB01C @ =gOtherText_SE
- mov r0, sp
- movs r2, 0x3
- bl memcpy
- add r6, sp, 0x4
- ldr r1, _080BB020 @ =gOtherText_Pan
- adds r0, r6, 0
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB024 @ =gUnknown_083D0381
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x3
- movs r2, 0x2
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0x4
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x8
- bl MenuPrint
- ldr r1, _080BB028 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, _080BB02C @ =gUnknown_020387B4
- movs r0, 0x1
- str r0, [r1]
- movs r0, 0
- str r0, [r1, 0x8]
- str r0, [r1, 0x1C]
- str r0, [r1, 0x18]
- str r0, [r1, 0x14]
- bl sub_80BB1D4
- ldr r1, _080BB030 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB034 @ =sub_80BB038
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB01C: .4byte gOtherText_SE
-_080BB020: .4byte gOtherText_Pan
-_080BB024: .4byte gUnknown_083D0381
-_080BB028: .4byte REG_WIN0H
-_080BB02C: .4byte gUnknown_020387B4
-_080BB030: .4byte gTasks
-_080BB034: .4byte sub_80BB038
- thumb_func_end sub_80BAF84
-
- thumb_func_start sub_80BB038
-sub_80BB038: @ 80BB038
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80BB1D4
- ldr r2, _080BB058 @ =gUnknown_020387B4
- ldr r0, [r2, 0x18]
- cmp r0, 0
- beq _080BB0A2
- ldr r0, [r2, 0x14]
- cmp r0, 0
- beq _080BB05C
- subs r0, 0x1
- str r0, [r2, 0x14]
- b _080BB0A2
- .align 2, 0
-_080BB058: .4byte gUnknown_020387B4
-_080BB05C:
- ldr r0, _080BB088 @ =gUnknown_083D03F8
- ldr r1, [r2, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB08C
- cmp r1, 0x7F
- bne _080BB0A2
- ldr r0, [r2, 0x1C]
- adds r0, 0x2
- str r0, [r2, 0x1C]
- cmp r0, 0x3E
- bgt _080BB0A2
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- b _080BB0A2
- .align 2, 0
-_080BB088: .4byte gUnknown_083D03F8
-_080BB08C:
- ldr r0, [r2, 0x1C]
- subs r1, r0, 0x2
- str r1, [r2, 0x1C]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- ble _080BB0A2
- lsls r0, r1, 24
- asrs r0, 24
- bl SE12PanpotControl
-_080BB0A2:
- ldr r1, _080BB0EC @ =gMain
- ldrh r3, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r3
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r1, 0
- cmp r4, 0
- beq _080BB104
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB0F0 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB0F4 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB0F8 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB0FC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB100 @ =sub_80BA258
- str r1, [r0]
- b _080BB1C8
- .align 2, 0
-_080BB0EC: .4byte gMain
-_080BB0F0: .4byte 0x00007140
-_080BB0F4: .4byte 0x000011df
-_080BB0F8: .4byte 0x0000011f
-_080BB0FC: .4byte gTasks
-_080BB100: .4byte sub_80BA258
-_080BB104:
- movs r6, 0x1
- adds r2, r6, 0
- ands r2, r3
- cmp r2, 0
- beq _080BB15E
- ldr r0, _080BB138 @ =gUnknown_083D03F8
- ldr r5, _080BB13C @ =gUnknown_020387B4
- ldr r1, [r5, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB140
- cmp r1, 0x7F
- bne _080BB154
- ldrh r0, [r5]
- movs r4, 0x40
- negs r4, r4
- adds r1, r4, 0
- bl PlaySE12WithPanning
- str r4, [r5, 0x1C]
- b _080BB14C
- .align 2, 0
-_080BB138: .4byte gUnknown_083D03F8
-_080BB13C: .4byte gUnknown_020387B4
-_080BB140:
- ldrh r0, [r5]
- movs r1, 0x3F
- bl PlaySE12WithPanning
- movs r0, 0x3F
- str r0, [r5, 0x1C]
-_080BB14C:
- str r6, [r5, 0x18]
- movs r0, 0x1E
- str r0, [r5, 0x14]
- b _080BB1C8
-_080BB154:
- ldrh r0, [r5]
- bl PlaySE12WithPanning
- str r4, [r5, 0x18]
- b _080BB1C8
-_080BB15E:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r3
- cmp r0, 0
- beq _080BB176
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1, 0x8]
- adds r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0x4
- ble _080BB176
- str r2, [r1, 0x8]
-_080BB176:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB192
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1, 0x8]
- subs r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0
- bge _080BB192
- movs r0, 0x4
- str r0, [r1, 0x8]
-_080BB192:
- ldrh r1, [r7, 0x30]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BB1B0
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0xF7
- ble _080BB1C8
- movs r0, 0
- b _080BB1C6
- .align 2, 0
-_080BB1AC: .4byte gUnknown_020387B4
-_080BB1B0:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BB1C8
- ldr r1, _080BB1D0 @ =gUnknown_020387B4
- ldr r0, [r1]
- subs r0, 0x1
- str r0, [r1]
- cmp r0, 0
- bge _080BB1C8
- movs r0, 0xF7
-_080BB1C6:
- str r0, [r1]
-_080BB1C8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB1D0: .4byte gUnknown_020387B4
- thumb_func_end sub_80BB038
-
- thumb_func_start sub_80BB1D4
-sub_80BB1D4: @ 80BB1D4
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r1, _080BB218 @ =gOtherText_LR
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB21C @ =gOtherText_RL
- adds r0, r5, 0
- movs r2, 0x5
- bl memcpy
- ldr r4, _080BB220 @ =gUnknown_020387B4
- ldr r0, [r4]
- movs r1, 0x7
- movs r2, 0x2
- movs r3, 0x3
- bl sub_80BAE78
- ldr r1, _080BB224 @ =gUnknown_083D03F8
- ldr r0, [r4, 0x8]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB228
- cmp r1, 0x7F
- bne _080BB234
- mov r0, sp
- b _080BB22A
- .align 2, 0
-_080BB218: .4byte gOtherText_LR
-_080BB21C: .4byte gOtherText_RL
-_080BB220: .4byte gUnknown_020387B4
-_080BB224: .4byte gUnknown_083D03F8
-_080BB228:
- adds r0, r5, 0
-_080BB22A:
- movs r1, 0x7
- movs r2, 0x4
- bl MenuPrint
- b _080BB240
-_080BB234:
- adds r0, r1, 0
- movs r1, 0x7
- movs r2, 0x4
- movs r3, 0x3
- bl sub_80BAE78
-_080BB240:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80BAE78
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB1D4
-
- thumb_func_start sub_80BB25C
-sub_80BB25C: @ 80BB25C
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080BB374 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _080BB378 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- ldr r1, _080BB37C @ =gUnknown_03005D34
- movs r0, 0x1
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _080BB380 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- ldr r1, _080BB384 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xE8
- lsls r1, 13
- orrs r0, r1
- ldr r1, _080BB388 @ =0x00ffffff
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0x4]
- ldr r1, _080BB38C @ =0xffff00ff
- ldr r0, [sp, 0x8]
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 5
- orrs r0, r1
- ldr r1, _080BB390 @ =0xffffff00
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- str r0, [sp, 0x8]
- movs r1, 0
- ldr r0, _080BB394 @ =gUnknown_03005E98
- strb r1, [r0]
- add r4, sp, 0xC
-_080BB2BE:
- add r0, sp, 0x4
- movs r1, 0x3
- bl sub_8119E3C
- lsls r0, 24
- cmp r0, 0
- beq _080BB2BE
- ldr r1, _080BB380 @ =0xffff0000
- ldr r0, [sp, 0xC]
- ands r0, r1
- ldr r1, _080BB384 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 12
- orrs r0, r1
- ldr r1, _080BB388 @ =0x00ffffff
- ands r0, r1
- movs r1, 0xD0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0xC]
- ldr r1, _080BB390 @ =0xffffff00
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0xC
- orrs r0, r1
- ldr r1, _080BB38C @ =0xffff00ff
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 4
- orrs r0, r1
- str r0, [r4, 0x4]
- movs r1, 0
- ldr r0, _080BB394 @ =gUnknown_03005E98
- strb r1, [r0]
- lsls r5, r6, 2
-_080BB306:
- adds r0, r4, 0
- movs r1, 0x2
- bl ShowPokedexCryScreen
- lsls r0, 24
- cmp r0, 0
- beq _080BB306
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x5
- movs r3, 0x13
- bl MenuDrawTextWindow
- bl sub_80BB494
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BB398 @ =REG_BG2HOFS
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _080BB39C @ =REG_BG2CNT
- ldr r2, _080BB3A0 @ =0x00000f01
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080BB3A4 @ =0x00001d03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- adds r2, 0x3D
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080BB3A8 @ =gMPlay_BGM
- movs r1, 0x2
- bl m4aMPlayFadeOutTemporarily
- ldr r1, _080BB3AC @ =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB3B0 @ =sub_80BB3B4
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB374: .4byte gWindowConfig_81E6C3C
-_080BB378: .4byte gWindowConfig_81E6CE4
-_080BB37C: .4byte gUnknown_03005D34
-_080BB380: .4byte 0xffff0000
-_080BB384: .4byte 0xff00ffff
-_080BB388: .4byte 0x00ffffff
-_080BB38C: .4byte 0xffff00ff
-_080BB390: .4byte 0xffffff00
-_080BB394: .4byte gUnknown_03005E98
-_080BB398: .4byte REG_BG2HOFS
-_080BB39C: .4byte REG_BG2CNT
-_080BB3A0: .4byte 0x00000f01
-_080BB3A4: .4byte 0x00001d03
-_080BB3A8: .4byte gMPlay_BGM
-_080BB3AC: .4byte gTasks
-_080BB3B0: .4byte sub_80BB3B4
- thumb_func_end sub_80BB25C
-
- thumb_func_start sub_80BB3B4
-sub_80BB3B4: @ 80BB3B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8119F88
- ldr r4, _080BB478 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BB3D4
- ldr r0, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r0]
- bl sub_811A050
-_080BB3D4:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB3E4
- bl StopCryAndClearCrySongs
-_080BB3E4:
- ldrh r1, [r4, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BB408
- ldr r1, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080BB404
- movs r2, 0xC0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_080BB404:
- bl sub_80BB494
-_080BB408:
- ldr r0, _080BB478 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BB42E
- ldr r2, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 17
- cmp r0, r1
- bls _080BB42A
- movs r0, 0x1
- strh r0, [r2]
-_080BB42A:
- bl sub_80BB494
-_080BB42E:
- ldr r0, _080BB478 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BB472
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB480 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB484 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB488 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB48C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB490 @ =sub_80BA258
- str r1, [r0]
- bl DestroyCryMeterNeedleSprite
-_080BB472:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB478: .4byte gMain
-_080BB47C: .4byte gUnknown_03005D34
-_080BB480: .4byte 0x00007140
-_080BB484: .4byte 0x000011df
-_080BB488: .4byte 0x0000011f
-_080BB48C: .4byte gTasks
-_080BB490: .4byte sub_80BA258
- thumb_func_end sub_80BB3B4
-
- thumb_func_start sub_80BB494
-sub_80BB494: @ 80BB494
- push {lr}
- ldr r0, _080BB4A8 @ =gUnknown_03005D34
- ldrh r0, [r0]
- movs r1, 0x1
- movs r2, 0x11
- movs r3, 0x3
- bl sub_80BAE78
- pop {r0}
- bx r0
- .align 2, 0
-_080BB4A8: .4byte gUnknown_03005D34
- thumb_func_end sub_80BB494
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/field_tasks.s b/data/field_tasks.s
deleted file mode 100644
index 122e089e6..000000000
--- a/data/field_tasks.s
+++ /dev/null
@@ -1,66 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_08376364:: @ 8376364
- .4byte DummyPerStepCallback
- .4byte PerStepCallback_8069F64
- .4byte PerStepCallback_8069AA0
- .4byte PerStepCallback_8069864
- .4byte PerStepCallback_8069DD4
- .4byte EndTruckSequence
- .4byte sub_80BCF1C
- .4byte PerStepCallback_806A07C
-
-gUnknown_08376384:: @ 8376384
- .byte 0, 0,0x59, 2, 0, 1,0x61, 2
- .byte 0, -1,0x59, 2, 0, 0,0x61, 2
- .byte 0, 0,0x52, 2, 1, 0,0x53, 2
- .byte -1, 0,0x52, 2, 0, 0,0x53, 2
-
-gUnknown_083763A4:: @ 83763A4
- .byte 0, 0,0x5A, 2, 0, 1,0x62, 2
- .byte 0, -1,0x5A, 2, 0, 0,0x62, 2
- .byte 0, 0,0x54, 2, 1, 0,0x55, 2
- .byte -1, 0,0x54, 2, 0, 0,0x55, 2
-
-gUnknown_083763C4:: @ 83763C4
- .byte 0, 0,0x58, 2, 0, 1,0x60, 2
- .byte 0, -1,0x58, 2, 0, 0,0x60, 2
- .byte 0, 0,0x50, 2, 1, 0,0x51, 2
- .byte -1, 0,0x50, 2, 0, 0,0x51, 2
-
- .align 1
-gUnknown_083763E4:: @ 83763E4
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0x4001
- .2byte 0x4002
- .2byte 0x4003
- .2byte 0x4004
- .2byte 0
- .2byte 0
- .2byte 0x4005
- .2byte 0x4006
- .2byte 0x4007
- .2byte 0
- .2byte 0
- .2byte 0x4008
- .2byte 0x4009
- .2byte 0x400A
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
-
- .align 1
-gUnknown_08376418:: @ 8376418
- .2byte 0xE8, 0xEB, 0xEA, 0xE9
diff --git a/data/pokeblock.s b/data/pokeblock.s
deleted file mode 100644
index 6d0b1890d..000000000
--- a/data/pokeblock.s
+++ /dev/null
@@ -1,125 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_083F7E28:: @ 83F7E28
- .byte 0, 0, 0, 0, 0
- .byte 1, 0, 0, 0, -1
- .byte 1, 0, -1, 0, 0
- .byte 1, -1, 0, 0, 0
- .byte 1, 0, 0, -1, 0
- .byte -1, 0, 0, 0, 1
- .byte 0, 0, 0, 0, 0
- .byte 0, 0, -1, 0, 1
- .byte 0, -1, 0, 0, 1
- .byte 0, 0, 0, -1, 1
- .byte -1, 0, 1, 0, 0
- .byte 0, 0, 1, 0, -1
- .byte 0, 0, 0, 0, 0
- .byte 0, -1, 1, 0, 0
- .byte 0, 0, 1, -1, 0
- .byte -1, 1, 0, 0, 0
- .byte 0, 1, 0, 0, -1
- .byte 0, 1, -1, 0, 0
- .byte 0, 0, 0, 0, 0
- .byte 0, 1, 0, -1, 0
- .byte -1, 0, 0, 1, 0
- .byte 0, 0, 0, 1, -1
- .byte 0, 0, -1, 1, 0
- .byte 0, -1, 0, 1, 0
- .byte 0, 0, 0, 0, 0
-
- .align 2
-gUnknown_083F7EA8:: @ 83F7EA8
- .4byte sub_80A5B40, c2_exit_to_overworld_2_switch
- .4byte sub_802E424, c2_exit_to_overworld_2_switch
-
- .align 2
-gPokeblockNames:: @ 83F7EB8
- .4byte NULL
- .4byte ContestStatsText_RedPokeBlock
- .4byte ContestStatsText_BluePokeBlock
- .4byte ContestStatsText_PinkPokeBlock
- .4byte ContestStatsText_GreenPokeBlock
- .4byte ContestStatsText_YellowPokeBlock
- .4byte ContestStatsText_PurplePokeBlock
- .4byte ContestStatsText_IndigoPokeBlock
- .4byte ContestStatsText_BrownPokeBlock
- .4byte ContestStatsText_LiteBluePokeBlock
- .4byte ContestStatsText_OlivePokeBlock
- .4byte ContestStatsText_GrayPokeBlock
- .4byte ContestStatsText_BlackPokeBlock
- .4byte ContestStatsText_WhitePokeBlock
- .4byte ContestStatsText_GoldPokeBlock
-
- .align 2
-gUnknown_083F7EF4:: @ 83F7EF4
- .4byte OtherText_Use, sub_810C508
- .4byte OtherText_Toss, sub_810C5C0
- .4byte gOtherText_CancelNoTerminator, sub_810C748
- .4byte OtherText_Use, sub_810C788
- .4byte OtherText_Use, sub_810C854
-
-gUnknown_083F7F1C:: @ 83F7F1C
- .byte 0, 1, 2
-
-gUnknown_083F7F1F:: @ 83F7F1F
- .byte 3, 2
-
-gUnknown_083F7F21:: @ 83F7F21
- .byte 4, 2
-
- .align 2
-gUnknown_083F7F24:: @ 83F7F24
- .4byte sub_810C610
- .4byte sub_810C668
-
-@ unreferenced
- .byte 0x16, 0x17, 0x18, 0x21, 0x2F
-
- .align 2
-gOamData_83F7F34:: @ 83F7F34
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83F7F3C:: @ 83F7F3C
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83F7F44:: @ 83F7F44
- .4byte gSpriteAnim_83F7F3C
-
- .align 2
-gSpriteAffineAnim_83F7F48:: @ 83F7F48
- obj_rot_scal_anim_frame 0x0, 0x0, -2, 2
- obj_rot_scal_anim_frame 0x0, 0x0, 2, 4
- obj_rot_scal_anim_frame 0x0, 0x0, -2, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 2, 2
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83F7F70:: @ 83F7F70
- .4byte gSpriteAffineAnim_83F7F48
-
- .align 2
-gUnknown_083F7F74:: @ 83F7F74
- obj_tiles gMenuPokeblockDevice_Gfx, 2048, 0x39d0
-
- .align 2
-gUnknown_083F7F7C:: @ 83F7F7C
- obj_pal gMenuPokeblockDevice_Pal, 0x39d0
-
- .align 2
-gSpriteTemplate_83F7F84:: @ 83F7F84
- spr_template 14800, 14800, gOamData_83F7F34, gSpriteAnimTable_83F7F44, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_083F7F9C:: @ 83F7F9C
- .byte 1, 20, 0, 0, 0, 0, 20, 0
- .byte 2, 0, 20, 0, 0, 0, 20, 0
- .byte 3, 0, 0, 20, 0, 0, 20, 0
- .byte 4, 0, 0, 0, 20, 0, 20, 0
- .byte 5, 0, 0, 0, 0, 20, 20, 0
diff --git a/data/rotating_gate.s b/data/rotating_gate.s
deleted file mode 100644
index 06cc64e51..000000000
--- a/data/rotating_gate.s
+++ /dev/null
@@ -1,311 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083D2964:: @ 83D2964
- .byte 12, 0, 5, 0, 3, 0, 0, 0
- .byte 14, 0, 7, 0, 3, 3, 0, 0
- .byte 16, 0, 4, 0, 5, 1, 0, 0
- .byte 15, 0, 14, 0, 1, 0, 0, 0
- .byte 18, 0, 13, 0, 4, 2, 0, 0
- .byte 8, 0, 20, 0, 4, 2, 0, 0
- .byte 16, 0, 20, 0, 7, 1, 0, 0
-
- .align 2
-gUnknown_083D299C:: @ 83D299C
- .byte 13, 0, 3, 0, 4, 3, 0, 0
- .byte 12, 0, 6, 0, 4, 2, 0, 0
- .byte 3, 0, 6, 0, 4, 2, 0, 0
- .byte 3, 0, 9, 0, 5, 3, 0, 0
- .byte 8, 0, 8, 0, 0, 1, 0, 0
- .byte 2, 0, 12, 0, 6, 2, 0, 0
- .byte 9, 0, 13, 0, 1, 0, 0, 0
- .byte 3, 0, 14, 0, 2, 1, 0, 0
- .byte 9, 0, 15, 0, 3, 2, 0, 0
- .byte 3, 0, 18, 0, 5, 2, 0, 0
- .byte 2, 0, 19, 0, 4, 0, 0, 0
- .byte 5, 0, 21, 0, 0, 0, 0, 0
- .byte 9, 0, 19, 0, 3, 3, 0, 0
- .byte 12, 0, 20, 0, 4, 1, 0, 0
-
- .align 2
-RotatingGateTiles_1: @ 83D2A0C
- .incbin "graphics/rotating_gates/1.4bpp"
-
- .align 2
-RotatingGateTiles_2: @ 83D320C
- .incbin "graphics/rotating_gates/2.4bpp"
-
- .align 2
-RotatingGateTiles_3: @ 83D3A0C
- .incbin "graphics/rotating_gates/3.4bpp"
-
- .align 2
-RotatingGateTiles_5: @ 83D420C
- .incbin "graphics/rotating_gates/5.4bpp"
-
- .align 2
-RotatingGateTiles_6: @ 83D4A0C
- .incbin "graphics/rotating_gates/6.4bpp"
-
- .align 2
-RotatingGateTiles_7: @ 83D520C
- .incbin "graphics/rotating_gates/7.4bpp"
-
- .align 2
-RotatingGateTiles_0: @ 83D5A0C
- .incbin "graphics/rotating_gates/0.4bpp"
-
- .align 2
-RotatingGateTiles_4: @ 83D5C0C
- .incbin "graphics/rotating_gates/4.4bpp"
-
- .align 2
-gOamData_83D5E0C:: @ 83D5E0C
- .2byte 0x0100
- .2byte 0xC000
- .2byte 0x5800
-
- .align 2
-gOamData_83D5E14:: @ 83D5E14
- .2byte 0x0100
- .2byte 0x8000
- .2byte 0x5800
-
- .align 2
-gRotatingGatesGraphicsTable:: @ 83D5E1C
- obj_tiles RotatingGateTiles_0, 0x200, 0x1300
- obj_tiles RotatingGateTiles_1, 0x800, 0x1301
- obj_tiles RotatingGateTiles_2, 0x800, 0x1302
- obj_tiles RotatingGateTiles_3, 0x800, 0x1303
- obj_tiles RotatingGateTiles_4, 0x200, 0x1304
- obj_tiles RotatingGateTiles_5, 0x800, 0x1305
- obj_tiles RotatingGateTiles_6, 0x800, 0x1306
- obj_tiles RotatingGateTiles_7, 0x800, 0x1307
- null_obj_tiles
-
- .align 2
-gSpriteAnim_83D5E64:: @ 83D5E64
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D5E6C:: @ 83D5E6C
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D5E74:: @ 83D5E74
- .4byte gSpriteAnim_83D5E64
-
- .align 2
-gSpriteAnimTable_83D5E78:: @ 83D5E78
- .4byte gSpriteAnim_83D5E6C
-
- .align 2
-gSpriteAffineAnim_83D5E7C:: @ 83D5E7C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83D5E8C:: @ 83D5E8C
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83D5E9C:: @ 83D5E9C
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83D5EAC:: @ 83D5EAC
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83D5EBC:: @ 83D5EBC
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5ED4:: @ 83D5ED4
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5EEC:: @ 83D5EEC
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F04:: @ 83D5F04
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F1C:: @ 83D5F1C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F34:: @ 83D5F34
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F4C:: @ 83D5F4C
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F64:: @ 83D5F64
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F7C:: @ 83D5F7C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F94:: @ 83D5F94
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5FAC:: @ 83D5FAC
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5FC4:: @ 83D5FC4
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5FDC:: @ 83D5FDC
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5FF4:: @ 83D5FF4
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D600C:: @ 83D600C
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6024:: @ 83D6024
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D603C:: @ 83D603C
- .4byte gSpriteAffineAnim_83D5E7C
- .4byte gSpriteAffineAnim_83D5E8C
- .4byte gSpriteAffineAnim_83D5E9C
- .4byte gSpriteAffineAnim_83D5EAC
- .4byte gSpriteAffineAnim_83D5F1C
- .4byte gSpriteAffineAnim_83D5F64
- .4byte gSpriteAffineAnim_83D5F4C
- .4byte gSpriteAffineAnim_83D5F34
- .4byte gSpriteAffineAnim_83D5EBC
- .4byte gSpriteAffineAnim_83D5ED4
- .4byte gSpriteAffineAnim_83D5EEC
- .4byte gSpriteAffineAnim_83D5F04
- .4byte gSpriteAffineAnim_83D5FDC
- .4byte gSpriteAffineAnim_83D6024
- .4byte gSpriteAffineAnim_83D600C
- .4byte gSpriteAffineAnim_83D5FF4
- .4byte gSpriteAffineAnim_83D5F7C
- .4byte gSpriteAffineAnim_83D5F94
- .4byte gSpriteAffineAnim_83D5FAC
- .4byte gSpriteAffineAnim_83D5FC4
-
- .align 2
-gSpriteTemplate_83D608C:: @ 83D608C
- spr_template 4864, 0xFFFF, gOamData_83D5E0C, gSpriteAnimTable_83D5E74, NULL, gSpriteAffineAnimTable_83D603C, sub_80C7C94
-
- .align 2
-gSpriteTemplate_83D60A4:: @ 83D60A4
- spr_template 4864, 0xFFFF, gOamData_83D5E14, gSpriteAnimTable_83D5E78, NULL, gSpriteAffineAnimTable_83D603C, sub_80C7C94
-
-gUnknown_083D60BC:: @ 83D60BC
- .byte 255, 255, 255, 255
- .byte 39, 38, 18, 19
- .byte 255, 255, 255, 255
- .byte 255, 255, 255, 255
-
-gUnknown_083D60CC:: @ 83D60CC
- .byte 255, 255, 255, 255
- .byte 255, 255, 255, 255
- .byte 23, 22, 34, 35
- .byte 255, 255, 255, 255
-
-gUnknown_083D60DC:: @ 83D60DC
- .byte 255, 17, 255, 255
- .byte 255, 16, 255, 255
- .byte 255, 36, 255, 255
- .byte 255, 37, 255, 255
-
-gUnknown_083D60EC:: @ 83D60EC
- .byte 255, 255, 33, 255
- .byte 255, 255, 32, 255
- .byte 255, 255, 20, 255
- .byte 255, 255, 21, 255
-
-gUnknown_083D60FC:: @ 83D60FC
- .byte 0, -1, 0, 0
- .byte 1, -2, 0, 0
- .byte 0, 0, 0, 0
- .byte 1, 0, 0, 0
- .byte -1, 0, 0, 0
- .byte -1, 1, 0, 0
- .byte -1, -1, 0, 0
- .byte -2, -1, 0, 0
-
-gUnknown_083D611C:: @ 83D611C
- .byte -1, -1, 0, 0
- .byte -1, -2, 0, 0
- .byte 0, -1, 0, 0
- .byte 1, -1, 0, 0
- .byte 0, 0, 0, 0
- .byte 0, 1, 0, 0
- .byte -1, 0, 0, 0
- .byte -2, 0, 0, 0
-
- .align 2
-gUnknown_083D613C:: @ 83D613C
- .byte 1, 0, 1, 0, 0, 0, 0, 0
- .byte 1, 1, 1, 0, 0, 0, 0, 0
- .byte 1, 0, 1, 1, 0, 0, 0, 0
- .byte 1, 1, 1, 1, 0, 0, 0, 0
- .byte 1, 0, 1, 0, 1, 0, 0, 0
- .byte 1, 1, 1, 0, 1, 0, 0, 0
- .byte 1, 0, 1, 1, 1, 0, 0, 0
- .byte 1, 0, 1, 0, 1, 1, 0, 0
- .byte 1, 1, 1, 1, 1, 0, 0, 0
- .byte 1, 1, 1, 0, 1, 1, 0, 0
- .byte 1, 0, 1, 1, 1, 1, 0, 0
- .byte 1, 1, 1, 1, 1, 1, 0, 0
diff --git a/data/sound_check_menu.s b/data/sound_check_menu.s
deleted file mode 100644
index a91f55d04..000000000
--- a/data/sound_check_menu.s
+++ /dev/null
@@ -1,121 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2 @ object file boundary?
-
-gDebugText_SoundCheckJap:: @ 83D02C8
- .string "サウンドチェック$" @ Sound Check
-
-gDebugText_BGM:: @ 83D02D1
- .string "BGM$"
-
-gDebugText_SE:: @ 83D02D5
- .string "SE $"
-
-gUnknown_083D02D9:: @ 83D02D9
- .string "A‥さいせい B‥おわり$"
-
-gDebugText_UpDown:: @ 83D02E6
- .string "L‥UP R‥DOWN$"
-
-gDebugText_DriverTest:: @ 83D02F2
- .string "R‥DRIVER-TEST$"
-
-gUnknown_083D0300:: @ 83D0300
- .byte 1, 1
- .byte 1, 3
- .byte 1, 5
- .byte 1, 7
- .byte 1, 9
- .byte 1, 11
- .byte 1, 13
- .byte 1, 15
- .byte 1, 17
-
-gUnknown_083D0312:: @ 83D0312
- .string "Bぼたんで もどる$"
-
-gUnknown_083D031C:: @ 83D031C
- .string "Aぼたんで さいせい$"
-
-gDebugText_Voice:: @ 83D0327
- .string "VOICE‥‥‥‥$"
-
-gDebugText_Volume:: @ 83D0331
- .string "VOLUME‥‥‥$"
-
-gDebugText_Panpot:: @ 83D033B
- .string "PANPOT‥‥‥$"
-
-gDebugText_Pitch:: @ 83D0345
- .string "PITCH‥‥‥‥$"
-
-gDebugText_Length:: @ 83D034F
- .string "LENGTH‥‥‥$"
-
-gDebugText_Release:: @ 83D0359
- .string "RELEASE‥‥$"
-
-gDebugText_Progress:: @ 83D0363
- .string "PROGRESS‥$"
-
-gDebugText_Chorus:: @ 83D036D
- .string "CHORUS‥‥‥$"
-
-gDebugText_Priority:: @ 83D0377
- .string "PRIORITY‥$"
-
-gUnknown_083D0381:: @ 83D0381
- .string "さいせいちゆう‥$" @ 再生中 (playing)
-
-gUnknown_083D038A:: @ 83D038A
- .string "はんてん‥‥‥‥$" @ 反転 (reverse)
-
-gUnknown_083D0393:: @ 83D0393
- .string "すてれお‥‥‥‥$" @ stereo
-
- .align 2
-gUnknown_083D039C:: @ 83D039C
- .4byte 0, 387
- .4byte 0, 127
- .4byte -127, 127
- .4byte -128, 32639
- .4byte 0, 65535
- .4byte 0, 255
- .4byte 0, 65535
- .4byte -64, 63
-
-gUnknown_083D03DC:: @ 83D03DC
- .string "▶$"
-
-gUnknown_083D03DE:: @ 83D03DE
- .string " $"
-
- .align 2
-gUnknown_083D03E0:: @ 83D03E0
- .4byte 1
- .4byte 10
- .4byte 100
- .4byte 1000
- .4byte 10000
- .4byte 100000
-
-gUnknown_083D03F8:: @ 83D03F8
- .byte 0x3F, 0x00, 0xC0, 0x7F, 0x80 @ stereo panning
-
-gOtherText_SE:: @ 83D03FD
- .string "SE$"
-
-gOtherText_Pan:: @ 83D0400
- .string "PAN$"
-
-gOtherText_LR:: @ 83D0404
- .string " LR$"
-
-gOtherText_RL:: @ 83D0409
- .string " RL$"
-
-@ 83D040E
- .include "data/text/song_names.inc"
diff --git a/data/specials.inc b/data/specials.inc
index e0022bea1..f7aa3456a 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -201,8 +201,8 @@ gSpecials::
.4byte sub_80B7D0C
.4byte ExecuteWhiteOut
.4byte sp0C8_whiteout_maybe
- .4byte sub_80C8040
- .4byte sub_80C8080
+ .4byte RotatingGate_InitPuzzle
+ .4byte RotatingGate_InitPuzzleAndGraphics
.4byte SetSSTidalFlag
.4byte ResetSSTidalFlag
.4byte EnterSafariMode
diff --git a/data/text/song_names.inc b/data/text/song_names.inc
deleted file mode 100644
index 29fad36e1..000000000
--- a/data/text/song_names.inc
+++ /dev/null
@@ -1,1105 +0,0 @@
-BGMName_STOP:
- .string "STOP$"
-BGMName_TETSUJI:
- .string "TETSUJI$"
-BGMName_FIELD13:
- .string "FIELD13$"
-BGMName_KACHI22:
- .string "KACHI22$"
-BGMName_KACHI2:
- .string "KACHI2$"
-BGMName_KACHI3:
- .string "KACHI3$"
-BGMName_KACHI5:
- .string "KACHI5$"
-BGMName_PCC:
- .string "PCC$"
-BGMName_NIBI:
- .string "NIBI$"
-BGMName_SUIKUN:
- .string "SUIKUN$"
-BGMName_DOORO1:
- .string "DOORO1$"
-BGMName_DOORO_X1:
- .string "DOORO-X1$"
-BGMName_DOORO_X3:
- .string "DOORO-X3$"
-BGMName_MACHI_S2:
- .string "MACHI-S2$"
-BGMName_MACHI_S4:
- .string "MACHI-S4$"
-BGMName_GIM:
- .string "GIM$"
-BGMName_NAMINORI:
- .string "NAMINORI$"
-BGMName_DAN01:
- .string "DAN01$"
-BGMName_FANFA1:
- .string "FANFA1$"
-BGMName_ME_ASA:
- .string "ME-ASA$"
-BGMName_ME_BACHI:
- .string "ME-BACHI$"
-BGMName_FANFA4:
- .string "FANFA4$"
-BGMName_FANFA5:
- .string "FANFA5$"
-BGMName_ME_WAZA:
- .string "ME-WAZA$"
-BGMName_BIJYUTU:
- .string "BIJYUTU$"
-BGMName_DOORO_X4:
- .string "DOORO-X4$"
-BGMName_FUNE_KAN:
- .string "FUNE-KAN$"
-BGMName_ME_SHINKA:
- .string "ME-SHINKA$"
-BGMName_SHINKA:
- .string "SHINKA$"
-BGMName_ME_WASURE:
- .string "ME-WASURE$"
-BGMName_SYOUJOEYE:
- .string "SYOUJOEYE$"
-BGMName_BOYEYE:
- .string "BOYEYE$"
-BGMName_DAN02:
- .string "DAN02$"
-BGMName_MACHI_S3:
- .string "MACHI-S3$"
-BGMName_ODAMAKI:
- .string "ODAMAKI$"
-BGMName_B_TOWER:
- .string "B-TOWER$"
-BGMName_SWIMEYE:
- .string "SWIMEYE$"
-BGMName_DAN03:
- .string "DAN03$"
-BGMName_ME_KINOMI:
- .string "ME-KINOMI$"
-BGMName_ME_TAMA:
- .string "ME-TAMA$"
-BGMName_ME_B_BIG:
- .string "ME-B-BIG$"
-BGMName_ME_B_SMALL:
- .string "ME-B-SMALL$"
-BGMName_ME_ZANNEN:
- .string "ME-ZANNEN$"
-BGMName_BD_TIME:
- .string "BD-TIME$"
-BGMName_TEST1:
- .string "TEST1$"
-BGMName_TEST2:
- .string "TEST2$"
-BGMName_TEST3:
- .string "TEST3$"
-BGMName_TEST4:
- .string "TEST4$"
-BGMName_TEST:
- .string "TEST$"
-BGMName_GOMACHI0:
- .string "GOMACHI0$"
-BGMName_GOTOWN:
- .string "GOTOWN$"
-BGMName_POKECEN:
- .string "POKECEN$"
-BGMName_NEXTROAD:
- .string "NEXTROAD$"
-BGMName_GRANROAD:
- .string "GRANROAD$"
-BGMName_CYCLING:
- .string "CYCLING$"
-BGMName_FRIENDLY:
- .string "FRIENDLY$"
-BGMName_MISHIRO:
- .string "MISHIRO$"
-BGMName_TOZAN:
- .string "TOZAN$"
-BGMName_GIRLEYE:
- .string "GIRLEYE$"
-BGMName_MINAMO:
- .string "MINAMO$"
-BGMName_ASHROAD:
- .string "ASHROAD$"
-BGMName_EVENT0:
- .string "EVENT0$"
-BGMName_DEEPDEEP:
- .string "DEEPDEEP$"
-BGMName_KACHI1:
- .string "KACHI1$"
-BGMName_TITLE3:
- .string "TITLE3$"
-BGMName_DEMO1:
- .string "DEMO1$"
-BGMName_GIRL_SUP:
- .string "GIRL-SUP$"
-BGMName_HAGESHII:
- .string "HAGESHII$"
-BGMName_KAKKOII:
- .string "KAKKOII$"
-BGMName_KAZANBAI:
- .string "KAZANBAI$"
-BGMName_AQA_0:
- .string "AQA-0$"
-BGMName_TSURETEK:
- .string "TSURETEK$"
-BGMName_BOY_SUP:
- .string "BOY-SUP$"
-BGMName_RAINBOW:
- .string "RAINBOW$"
-BGMName_AYASII:
- .string "AYASII$"
-BGMName_KACHI4:
- .string "KACHI4$"
-BGMName_ROPEWAY:
- .string "ROPEWAY$"
-BGMName_CASINO:
- .string "CASINO$"
-BGMName_HIGHTOWN:
- .string "HIGHTOWN$"
-BGMName_SAFARI:
- .string "SAFARI$"
-BGMName_C_ROAD:
- .string "C-ROAD$"
-BGMName_AJITO:
- .string "AJITO$"
-BGMName_M_BOAT:
- .string "M-BOAT$"
-BGMName_M_DUNGON:
- .string "M-DUNGON$"
-BGMName_FINECITY:
- .string "FINECITY$"
-BGMName_MACHUPI:
- .string "MACHUPI$"
-BGMName_P_SCHOOL:
- .string "P-SCHOOL$"
-BGMName_DENDOU:
- .string "DENDOU$"
-BGMName_TONEKUSA:
- .string "TONEKUSA$"
-BGMName_MABOROSI:
- .string "MABOROSI$"
-BGMName_CON_FAN:
- .string "CON-FAN$"
-BGMName_CONTEST0:
- .string "CONTEST0$"
-BGMName_MGM0:
- .string "MGM0$"
-BGMName_T_BATTLE:
- .string "T-BATTLE$"
-BGMName_OOAME:
- .string "OOAME$"
-BGMName_HIDERI:
- .string "HIDERI$"
-BGMName_RUNECITY:
- .string "RUNECITY$"
-BGMName_CON_K:
- .string "CON-K$"
-BGMName_EIKOU_R:
- .string "EIKOU-R$"
-BGMName_KARAKURI:
- .string "KARAKURI$"
-BGMName_HUTAGO:
- .string "HUTAGO$"
-BGMName_SITENNOU:
- .string "SITENNOU$"
-BGMName_YAMA_EYE:
- .string "YAMA-EYE$"
-BGMName_CONLOBBY:
- .string "CONLOBBY$"
-BGMName_INTER_V:
- .string "INTER-V$"
-BGMName_DAIGO:
- .string "DAIGO$"
-BGMName_THANKFOR:
- .string "THANKFOR$"
-BGMName_END:
- .string "END$"
-BGMName_BATTLE27:
- .string "BATTLE27$"
-BGMName_BATTLE31:
- .string "BATTLE31$"
-BGMName_BATTLE20:
- .string "BATTLE20$"
-BGMName_BATTLE32:
- .string "BATTLE32$"
-BGMName_BATTLE33:
- .string "BATTLE33$"
-BGMName_BATTLE36:
- .string "BATTLE36$"
-BGMName_BATTLE34:
- .string "BATTLE34$"
-BGMName_BATTLE35:
- .string "BATTLE35$"
-BGMName_BATTLE38:
- .string "BATTLE38$"
-BGMName_BATTLE30:
- .string "BATTLE30$"
-
- .align 2
-gBGMNames:: @ 83D07AC
- .word BGMName_STOP
- .word BGMName_TETSUJI
- .word BGMName_FIELD13
- .word BGMName_KACHI22
- .word BGMName_KACHI2
- .word BGMName_KACHI3
- .word BGMName_KACHI5
- .word BGMName_PCC
- .word BGMName_NIBI
- .word BGMName_SUIKUN
- .word BGMName_DOORO1
- .word BGMName_DOORO_X1
- .word BGMName_DOORO_X3
- .word BGMName_MACHI_S2
- .word BGMName_MACHI_S4
- .word BGMName_GIM
- .word BGMName_NAMINORI
- .word BGMName_DAN01
- .word BGMName_FANFA1
- .word BGMName_ME_ASA
- .word BGMName_ME_BACHI
- .word BGMName_FANFA4
- .word BGMName_FANFA5
- .word BGMName_ME_WAZA
- .word BGMName_BIJYUTU
- .word BGMName_DOORO_X4
- .word BGMName_FUNE_KAN
- .word BGMName_ME_SHINKA
- .word BGMName_SHINKA
- .word BGMName_ME_WASURE
- .word BGMName_SYOUJOEYE
- .word BGMName_BOYEYE
- .word BGMName_DAN02
- .word BGMName_MACHI_S3
- .word BGMName_ODAMAKI
- .word BGMName_B_TOWER
- .word BGMName_SWIMEYE
- .word BGMName_DAN03
- .word BGMName_ME_KINOMI
- .word BGMName_ME_TAMA
- .word BGMName_ME_B_BIG
- .word BGMName_ME_B_SMALL
- .word BGMName_ME_ZANNEN
- .word BGMName_BD_TIME
- .word BGMName_TEST1
- .word BGMName_TEST2
- .word BGMName_TEST3
- .word BGMName_TEST4
- .word BGMName_TEST
- .word BGMName_GOMACHI0
- .word BGMName_GOTOWN
- .word BGMName_POKECEN
- .word BGMName_NEXTROAD
- .word BGMName_GRANROAD
- .word BGMName_CYCLING
- .word BGMName_FRIENDLY
- .word BGMName_MISHIRO
- .word BGMName_TOZAN
- .word BGMName_GIRLEYE
- .word BGMName_MINAMO
- .word BGMName_ASHROAD
- .word BGMName_EVENT0
- .word BGMName_DEEPDEEP
- .word BGMName_KACHI1
- .word BGMName_TITLE3
- .word BGMName_DEMO1
- .word BGMName_GIRL_SUP
- .word BGMName_HAGESHII
- .word BGMName_KAKKOII
- .word BGMName_KAZANBAI
- .word BGMName_AQA_0
- .word BGMName_TSURETEK
- .word BGMName_BOY_SUP
- .word BGMName_RAINBOW
- .word BGMName_AYASII
- .word BGMName_KACHI4
- .word BGMName_ROPEWAY
- .word BGMName_CASINO
- .word BGMName_HIGHTOWN
- .word BGMName_SAFARI
- .word BGMName_C_ROAD
- .word BGMName_AJITO
- .word BGMName_M_BOAT
- .word BGMName_M_DUNGON
- .word BGMName_FINECITY
- .word BGMName_MACHUPI
- .word BGMName_P_SCHOOL
- .word BGMName_DENDOU
- .word BGMName_TONEKUSA
- .word BGMName_MABOROSI
- .word BGMName_CON_FAN
- .word BGMName_CONTEST0
- .word BGMName_MGM0
- .word BGMName_T_BATTLE
- .word BGMName_OOAME
- .word BGMName_HIDERI
- .word BGMName_RUNECITY
- .word BGMName_CON_K
- .word BGMName_EIKOU_R
- .word BGMName_KARAKURI
- .word BGMName_HUTAGO
- .word BGMName_SITENNOU
- .word BGMName_YAMA_EYE
- .word BGMName_CONLOBBY
- .word BGMName_INTER_V
- .word BGMName_DAIGO
- .word BGMName_THANKFOR
- .word BGMName_END
- .word BGMName_BATTLE27
- .word BGMName_BATTLE31
- .word BGMName_BATTLE20
- .word BGMName_BATTLE32
- .word BGMName_BATTLE33
- .word BGMName_BATTLE36
- .word BGMName_BATTLE34
- .word BGMName_BATTLE35
- .word BGMName_BATTLE38
- .word BGMName_BATTLE30
-
-SEName_STOP:
- .string "STOP$"
-SEName_KAIFUKU:
- .string "KAIFUKU$"
-SEName_PC_LOGON:
- .string "PC-LOGON$"
-SEName_PC_OFF:
- .string "PC-OFF$"
-SEName_PC_ON:
- .string "PC-ON$"
-SEName_SELECT:
- .string "SELECT$"
-SEName_WIN_OPEN:
- .string "WIN-OPEN$"
-SEName_WALL_HIT:
- .string "WALL-HIT$"
-SEName_DOOR:
- .string "DOOR$"
-SEName_KAIDAN:
- .string "KAIDAN$"
-SEName_DANSA:
- .string "DANSA$"
-SEName_JITENSYA:
- .string "JITENSYA$"
-SEName_KOUKA_L:
- .string "KOUKA-L$"
-SEName_KOUKA_M:
- .string "KOUKA-M$"
-SEName_KOUKA_H:
- .string "KOUKA-H$"
-SEName_BOWA2:
- .string "BOWA2$"
-SEName_POKE_DEAD:
- .string "POKE-DEAD$"
-SEName_NIGERU:
- .string "NIGERU$"
-SEName_JIDO_DOA:
- .string "JIDO-DOA$"
-SEName_NAMINORI:
- .string "NAMINORI$"
-SEName_BAN:
- .string "BAN$"
-SEName_PIN:
- .string "PIN$"
-SEName_BOO:
- .string "BOO$"
-SEName_BOWA:
- .string "BOWA$"
-SEName_JYUNI:
- .string "JYUNI$"
-SEName_A:
- .string "A$"
-SEName_I:
- .string "I$"
-SEName_U:
- .string "U$"
-SEName_E:
- .string "E$"
-SEName_O:
- .string "O$"
-SEName_N:
- .string "N$"
-SEName_SEIKAI:
- .string "SEIKAI$"
-SEName_HAZURE:
- .string "HAZURE$"
-SEName_EXP:
- .string "EXP$"
-SEName_JITE_PYOKO:
- .string "JITE-PYOKO$"
-SEName_MU_PACHI:
- .string "MU-PACHI$"
-SEName_TK_KASYA:
- .string "TK-KASYA$"
-SEName_FU_ZAKU:
- .string "FU-ZAKU$"
-SEName_FU_ZAKU2:
- .string "FU-ZAKU2$"
-SEName_FU_ZUZUZU:
- .string "FU-ZUZUZU$"
-SEName_RU_GASHIN:
- .string "RU-GASHIN$"
-SEName_RU_GASYAN:
- .string "RU-GASYAN$"
-SEName_RU_BARI:
- .string "RU-BARI$"
-SEName_RU_HYUU:
- .string "RU-HYUU$"
-SEName_KI_GASYAN:
- .string "KI-GASYAN$"
-SEName_TK_WARPIN:
- .string "TK-WARPIN$"
-SEName_TK_WARPOUT:
- .string "TK-WARPOUT$"
-SEName_TU_SAA:
- .string "TU-SAA$"
-SEName_HI_TURUN:
- .string "HI-TURUN$"
-SEName_TRACK_MOVE:
- .string "TRACK-MOVE$"
-SEName_TRACK_STOP:
- .string "TRACK-STOP$"
-SEName_TRACK_HAIK:
- .string "TRACK-HAIK$"
-SEName_TRACK_DOOR:
- .string "TRACK-DOOR$"
-SEName_MOTER:
- .string "MOTER$"
-SEName_CARD:
- .string "CARD$"
-SEName_SAVE:
- .string "SAVE$"
-SEName_KON:
- .string "KON$"
-SEName_KON2:
- .string "KON2$"
-SEName_KON3:
- .string "KON3$"
-SEName_KON4:
- .string "KON4$"
-SEName_SUIKOMU:
- .string "SUIKOMU$"
-SEName_NAGERU:
- .string "NAGERU$"
-SEName_TOY_C:
- .string "TOY-C$"
-SEName_TOY_D:
- .string "TOY-D$"
-SEName_TOY_E:
- .string "TOY-E$"
-SEName_TOY_F:
- .string "TOY-F$"
-SEName_TOY_G:
- .string "TOY-G$"
-SEName_TOY_A:
- .string "TOY-A$"
-SEName_TOY_B:
- .string "TOY-B$"
-SEName_TOY_C1:
- .string "TOY-C1$"
-SEName_MIZU:
- .string "MIZU$"
-SEName_HASHI:
- .string "HASHI$"
-SEName_DAUGI:
- .string "DAUGI$"
-SEName_PINPON:
- .string "PINPON$"
-SEName_FUUSEN1:
- .string "FUUSEN1$"
-SEName_FUUSEN2:
- .string "FUUSEN2$"
-SEName_FUUSEN3:
- .string "FUUSEN3$"
-SEName_TOY_KABE:
- .string "TOY-KABE$"
-SEName_TOY_DANGO:
- .string "TOY-DANGO$"
-SEName_DOKU:
- .string "DOKU$"
-SEName_ESUKA:
- .string "ESUKA$"
-SEName_T_AME:
- .string "T-AME$"
-SEName_T_AME_E:
- .string "T-AME-E$"
-SEName_T_OOAME:
- .string "T-OOAME$"
-SEName_T_OOAME_E:
- .string "T-OOAME-E$"
-SEName_T_KOAME:
- .string "T-KOAME$"
-SEName_T_KOAME_E:
- .string "T-KOAME-E$"
-SEName_T_KAMI:
- .string "T-KAMI$"
-SEName_T_KAMI2:
- .string "T-KAMI2$"
-SEName_ELEBETA:
- .string "ELEBETA$"
-SEName_HINSI:
- .string "HINSI$"
-SEName_EXPMAX:
- .string "EXPMAX$"
-SEName_TAMAKORO:
- .string "TAMAKORO$"
-SEName_TAMAKORO_E:
- .string "TAMAKORO-E$"
-SEName_BASABASA:
- .string "BASABASA$"
-SEName_REGI:
- .string "REGI$"
-SEName_C_GAJI:
- .string "C-GAJI$"
-SEName_C_MAKU_U:
- .string "C-MAKU-U$"
-SEName_C_MAKU_D:
- .string "C-MAKU-D$"
-SEName_C_PASI:
- .string "C-PASI$"
-SEName_C_SYU:
- .string "C-SYU$"
-SEName_C_PIKON:
- .string "C-PIKON$"
-SEName_REAPOKE:
- .string "REAPOKE$"
-SEName_OP_BASYU:
- .string "OP-BASYU$"
-SEName_BT_START:
- .string "BT-START$"
-SEName_DENDOU:
- .string "DENDOU$"
-SEName_JIHANKI:
- .string "JIHANKI$"
-SEName_TAMA:
- .string "TAMA$"
-SEName_Z_SCROLL:
- .string "Z-SCROLL$"
-SEName_Z_PAGE:
- .string "Z-PAGE$"
-SEName_PN_ON:
- .string "PN-ON$"
-SEName_PN_OFF:
- .string "PN-OFF$"
-SEName_Z_SEARCH:
- .string "Z-SEARCH$"
-SEName_TAMAGO:
- .string "TAMAGO$"
-SEName_TB_START:
- .string "TB-START$"
-SEName_TB_KON:
- .string "TB-KON$"
-SEName_TB_KARA:
- .string "TB-KARA$"
-SEName_BIDORO:
- .string "BIDORO$"
-SEName_W085:
- .string "W085$"
-SEName_W085B:
- .string "W085B$"
-SEName_W231:
- .string "W231$"
-SEName_W171:
- .string "W171$"
-SEName_W233:
- .string "W233$"
-SEName_W233B:
- .string "W233B$"
-SEName_W145:
- .string "W145$"
-SEName_W145B:
- .string "W145B$"
-SEName_W145C:
- .string "W145C$"
-SEName_W240:
- .string "W240$"
-SEName_W015:
- .string "W015$"
-SEName_W081:
- .string "W081$"
-SEName_W081B:
- .string "W081B$"
-SEName_W088:
- .string "W088$"
-SEName_W016:
- .string "W016$"
-SEName_W016B:
- .string "W016B$"
-SEName_W003:
- .string "W003$"
-SEName_W104:
- .string "W104$"
-SEName_W013:
- .string "W013$"
-SEName_W196:
- .string "W196$"
-SEName_W086:
- .string "W086$"
-SEName_W004:
- .string "W004$"
-SEName_W025:
- .string "W025$"
-SEName_W025B:
- .string "W025B$"
-SEName_W152:
- .string "W152$"
-SEName_W026:
- .string "W026$"
-SEName_W172:
- .string "W172$"
-SEName_W172B:
- .string "W172B$"
-SEName_W053:
- .string "W053$"
-SEName_W007:
- .string "W007$"
-SEName_W092:
- .string "W092$"
-SEName_W221:
- .string "W221$"
-SEName_W221B:
- .string "W221B$"
-SEName_W052:
- .string "W052$"
-SEName_W036:
- .string "W036$"
-SEName_W059:
- .string "W059$"
-SEName_W059B:
- .string "W059B$"
-SEName_W010:
- .string "W010$"
-SEName_W011:
- .string "W011$"
-SEName_W017:
- .string "W017$"
-SEName_W019:
- .string "W019$"
-SEName_W028:
- .string "W028$"
-SEName_W013B:
- .string "W013B$"
-SEName_W044:
- .string "W044$"
-SEName_W029:
- .string "W029$"
-SEName_W057:
- .string "W057$"
-SEName_W056:
- .string "W056$"
-SEName_W250:
- .string "W250$"
-SEName_W030:
- .string "W030$"
-SEName_W039:
- .string "W039$"
-SEName_W054:
- .string "W054$"
-SEName_W077:
- .string "W077$"
-SEName_W020:
- .string "W020$"
-SEName_W082:
- .string "W082$"
-SEName_W047:
- .string "W047$"
-SEName_W195:
- .string "W195$"
-SEName_W006:
- .string "W006$"
-SEName_W091:
- .string "W091$"
-SEName_W146:
- .string "W146$"
-SEName_W120:
- .string "W120$"
-SEName_W153:
- .string "W153$"
-SEName_W071B:
- .string "W071B$"
-SEName_W071:
- .string "W071$"
-SEName_W103:
- .string "W103$"
-SEName_W062:
- .string "W062$"
-SEName_W062B:
- .string "W062B$"
-SEName_W048:
- .string "W048$"
-SEName_W187:
- .string "W187$"
-SEName_W118:
- .string "W118$"
-SEName_W155:
- .string "W155$"
-SEName_W122:
- .string "W122$"
-SEName_W060:
- .string "W060$"
-SEName_W185:
- .string "W185$"
-SEName_W014:
- .string "W014$"
-SEName_W043:
- .string "W043$"
-SEName_W207:
- .string "W207$"
-SEName_W207B:
- .string "W207B$"
-SEName_W215:
- .string "W215$"
-SEName_W109:
- .string "W109$"
-SEName_W173:
- .string "W173$"
-SEName_W280:
- .string "W280$"
-SEName_W202:
- .string "W202$"
-SEName_W060B:
- .string "W060B$"
-SEName_W076:
- .string "W076$"
-SEName_W080:
- .string "W080$"
-SEName_W100:
- .string "W100$"
-SEName_W107:
- .string "W107$"
-SEName_W166:
- .string "W166$"
-SEName_W129:
- .string "W129$"
-SEName_W115:
- .string "W115$"
-SEName_W112:
- .string "W112$"
-SEName_W197:
- .string "W197$"
-SEName_W199:
- .string "W199$"
-SEName_W236:
- .string "W236$"
-SEName_W204:
- .string "W204$"
-SEName_W268:
- .string "W268$"
-SEName_W070:
- .string "W070$"
-SEName_W063:
- .string "W063$"
-SEName_W127:
- .string "W127$"
-SEName_W179:
- .string "W179$"
-SEName_W151:
- .string "W151$"
-SEName_W201:
- .string "W201$"
-SEName_W161:
- .string "W161$"
-SEName_W161B:
- .string "W161B$"
-SEName_W227:
- .string "W227$"
-SEName_W227B:
- .string "W227B$"
-SEName_W226:
- .string "W226$"
-SEName_W208:
- .string "W208$"
-SEName_W213:
- .string "W213$"
-SEName_W213B:
- .string "W213B$"
-SEName_W234:
- .string "W234$"
-SEName_W260:
- .string "W260$"
-SEName_W328:
- .string "W328$"
-SEName_W320:
- .string "W320$"
-SEName_W255:
- .string "W255$"
-SEName_W291:
- .string "W291$"
-SEName_W089:
- .string "W089$"
-SEName_W239:
- .string "W239$"
-SEName_W230:
- .string "W230$"
-SEName_W281:
- .string "W281$"
-SEName_W327:
- .string "W327$"
-SEName_W287:
- .string "W287$"
-SEName_W257:
- .string "W257$"
-SEName_W253:
- .string "W253$"
-SEName_W258:
- .string "W258$"
-SEName_W322:
- .string "W322$"
-SEName_W298:
- .string "W298$"
-SEName_W287B:
- .string "W287B$"
-SEName_W114:
- .string "W114$"
-SEName_W063B:
- .string "W063B$"
-
- .align 2
-gSENames:: @ 83D0F78
- .word SEName_STOP
- .word SEName_KAIFUKU
- .word SEName_PC_LOGON
- .word SEName_PC_OFF
- .word SEName_PC_ON
- .word SEName_SELECT
- .word SEName_WIN_OPEN
- .word SEName_WALL_HIT
- .word SEName_DOOR
- .word SEName_KAIDAN
- .word SEName_DANSA
- .word SEName_JITENSYA
- .word SEName_KOUKA_L
- .word SEName_KOUKA_M
- .word SEName_KOUKA_H
- .word SEName_BOWA2
- .word SEName_POKE_DEAD
- .word SEName_NIGERU
- .word SEName_JIDO_DOA
- .word SEName_NAMINORI
- .word SEName_BAN
- .word SEName_PIN
- .word SEName_BOO
- .word SEName_BOWA
- .word SEName_JYUNI
- .word SEName_A
- .word SEName_I
- .word SEName_U
- .word SEName_E
- .word SEName_O
- .word SEName_N
- .word SEName_SEIKAI
- .word SEName_HAZURE
- .word SEName_EXP
- .word SEName_JITE_PYOKO
- .word SEName_MU_PACHI
- .word SEName_TK_KASYA
- .word SEName_FU_ZAKU
- .word SEName_FU_ZAKU2
- .word SEName_FU_ZUZUZU
- .word SEName_RU_GASHIN
- .word SEName_RU_GASYAN
- .word SEName_RU_BARI
- .word SEName_RU_HYUU
- .word SEName_KI_GASYAN
- .word SEName_TK_WARPIN
- .word SEName_TK_WARPOUT
- .word SEName_TU_SAA
- .word SEName_HI_TURUN
- .word SEName_TRACK_MOVE
- .word SEName_TRACK_STOP
- .word SEName_TRACK_HAIK
- .word SEName_TRACK_DOOR
- .word SEName_MOTER
- .word SEName_CARD
- .word SEName_SAVE
- .word SEName_KON
- .word SEName_KON2
- .word SEName_KON3
- .word SEName_KON4
- .word SEName_SUIKOMU
- .word SEName_NAGERU
- .word SEName_TOY_C
- .word SEName_TOY_D
- .word SEName_TOY_E
- .word SEName_TOY_F
- .word SEName_TOY_G
- .word SEName_TOY_A
- .word SEName_TOY_B
- .word SEName_TOY_C1
- .word SEName_MIZU
- .word SEName_HASHI
- .word SEName_DAUGI
- .word SEName_PINPON
- .word SEName_FUUSEN1
- .word SEName_FUUSEN2
- .word SEName_FUUSEN3
- .word SEName_TOY_KABE
- .word SEName_TOY_DANGO
- .word SEName_DOKU
- .word SEName_ESUKA
- .word SEName_T_AME
- .word SEName_T_AME_E
- .word SEName_T_OOAME
- .word SEName_T_OOAME_E
- .word SEName_T_KOAME
- .word SEName_T_KOAME_E
- .word SEName_T_KAMI
- .word SEName_T_KAMI2
- .word SEName_ELEBETA
- .word SEName_HINSI
- .word SEName_EXPMAX
- .word SEName_TAMAKORO
- .word SEName_TAMAKORO_E
- .word SEName_BASABASA
- .word SEName_REGI
- .word SEName_C_GAJI
- .word SEName_C_MAKU_U
- .word SEName_C_MAKU_D
- .word SEName_C_PASI
- .word SEName_C_SYU
- .word SEName_C_PIKON
- .word SEName_REAPOKE
- .word SEName_OP_BASYU
- .word SEName_BT_START
- .word SEName_DENDOU
- .word SEName_JIHANKI
- .word SEName_TAMA
- .word SEName_Z_SCROLL
- .word SEName_Z_PAGE
- .word SEName_PN_ON
- .word SEName_PN_OFF
- .word SEName_Z_SEARCH
- .word SEName_TAMAGO
- .word SEName_TB_START
- .word SEName_TB_KON
- .word SEName_TB_KARA
- .word SEName_BIDORO
- .word SEName_W085
- .word SEName_W085B
- .word SEName_W231
- .word SEName_W171
- .word SEName_W233
- .word SEName_W233B
- .word SEName_W145
- .word SEName_W145B
- .word SEName_W145C
- .word SEName_W240
- .word SEName_W015
- .word SEName_W081
- .word SEName_W081B
- .word SEName_W088
- .word SEName_W016
- .word SEName_W016B
- .word SEName_W003
- .word SEName_W104
- .word SEName_W013
- .word SEName_W196
- .word SEName_W086
- .word SEName_W004
- .word SEName_W025
- .word SEName_W025B
- .word SEName_W152
- .word SEName_W026
- .word SEName_W172
- .word SEName_W172B
- .word SEName_W053
- .word SEName_W007
- .word SEName_W092
- .word SEName_W221
- .word SEName_W221B
- .word SEName_W052
- .word SEName_W036
- .word SEName_W059
- .word SEName_W059B
- .word SEName_W010
- .word SEName_W011
- .word SEName_W017
- .word SEName_W019
- .word SEName_W028
- .word SEName_W013B
- .word SEName_W044
- .word SEName_W029
- .word SEName_W057
- .word SEName_W056
- .word SEName_W250
- .word SEName_W030
- .word SEName_W039
- .word SEName_W054
- .word SEName_W077
- .word SEName_W020
- .word SEName_W082
- .word SEName_W047
- .word SEName_W195
- .word SEName_W006
- .word SEName_W091
- .word SEName_W146
- .word SEName_W120
- .word SEName_W153
- .word SEName_W071B
- .word SEName_W071
- .word SEName_W103
- .word SEName_W062
- .word SEName_W062B
- .word SEName_W048
- .word SEName_W187
- .word SEName_W118
- .word SEName_W155
- .word SEName_W122
- .word SEName_W060
- .word SEName_W185
- .word SEName_W014
- .word SEName_W043
- .word SEName_W207
- .word SEName_W207B
- .word SEName_W215
- .word SEName_W109
- .word SEName_W173
- .word SEName_W280
- .word SEName_W202
- .word SEName_W060B
- .word SEName_W076
- .word SEName_W080
- .word SEName_W100
- .word SEName_W107
- .word SEName_W166
- .word SEName_W129
- .word SEName_W115
- .word SEName_W112
- .word SEName_W197
- .word SEName_W199
- .word SEName_W236
- .word SEName_W204
- .word SEName_W268
- .word SEName_W070
- .word SEName_W063
- .word SEName_W127
- .word SEName_W179
- .word SEName_W151
- .word SEName_W201
- .word SEName_W161
- .word SEName_W161B
- .word SEName_W227
- .word SEName_W227B
- .word SEName_W226
- .word SEName_W208
- .word SEName_W213
- .word SEName_W213B
- .word SEName_W234
- .word SEName_W260
- .word SEName_W328
- .word SEName_W320
- .word SEName_W255
- .word SEName_W291
- .word SEName_W089
- .word SEName_W239
- .word SEName_W230
- .word SEName_W281
- .word SEName_W327
- .word SEName_W287
- .word SEName_W257
- .word SEName_W253
- .word SEName_W258
- .word SEName_W322
- .word SEName_W298
- .word SEName_W287B
- .word SEName_W114
- .word SEName_W063B
diff --git a/graphics-de/unused/old_charmap.png b/graphics-de/unused/old_charmap.png
index 72ceffbf9..72ceffbf9 100755..100644
--- a/graphics-de/unused/old_charmap.png
+++ b/graphics-de/unused/old_charmap.png
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/attract.bin b/graphics/battle_anims/backgrounds/attract.bin
index b06f46479..b06f46479 100755..100644
--- a/graphics/battle_anims/backgrounds/attract.bin
+++ b/graphics/battle_anims/backgrounds/attract.bin
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/attract.pal b/graphics/battle_anims/backgrounds/attract.pal
index a3a183566..a3a183566 100755..100644
--- a/graphics/battle_anims/backgrounds/attract.pal
+++ b/graphics/battle_anims/backgrounds/attract.pal
diff --git a/graphics/battle_anims/backgrounds/attract.png b/graphics/battle_anims/backgrounds/attract.png
index c5bba0f89..c5bba0f89 100755..100644
--- a/graphics/battle_anims/backgrounds/attract.png
+++ b/graphics/battle_anims/backgrounds/attract.png
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/sandstorm_brew.bin b/graphics/battle_anims/backgrounds/sandstorm_brew.bin
index 64e6d8584..64e6d8584 100755..100644
--- a/graphics/battle_anims/backgrounds/sandstorm_brew.bin
+++ b/graphics/battle_anims/backgrounds/sandstorm_brew.bin
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/sandstorm_brew.png b/graphics/battle_anims/backgrounds/sandstorm_brew.png
index 87d5d41ea..87d5d41ea 100755..100644
--- a/graphics/battle_anims/backgrounds/sandstorm_brew.png
+++ b/graphics/battle_anims/backgrounds/sandstorm_brew.png
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/scary_face.pal b/graphics/battle_anims/backgrounds/scary_face.pal
index 580360ac0..580360ac0 100755..100644
--- a/graphics/battle_anims/backgrounds/scary_face.pal
+++ b/graphics/battle_anims/backgrounds/scary_face.pal
diff --git a/graphics/battle_anims/backgrounds/scary_face.png b/graphics/battle_anims/backgrounds/scary_face.png
index a395485cf..a395485cf 100755..100644
--- a/graphics/battle_anims/backgrounds/scary_face.png
+++ b/graphics/battle_anims/backgrounds/scary_face.png
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/scary_face_contest.bin b/graphics/battle_anims/backgrounds/scary_face_contest.bin
index e2d1e3a99..e2d1e3a99 100755..100644
--- a/graphics/battle_anims/backgrounds/scary_face_contest.bin
+++ b/graphics/battle_anims/backgrounds/scary_face_contest.bin
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/scary_face_opponent.bin b/graphics/battle_anims/backgrounds/scary_face_opponent.bin
index dfaaf5f2f..dfaaf5f2f 100755..100644
--- a/graphics/battle_anims/backgrounds/scary_face_opponent.bin
+++ b/graphics/battle_anims/backgrounds/scary_face_opponent.bin
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/scary_face_player.bin b/graphics/battle_anims/backgrounds/scary_face_player.bin
index 690305126..690305126 100755..100644
--- a/graphics/battle_anims/backgrounds/scary_face_player.bin
+++ b/graphics/battle_anims/backgrounds/scary_face_player.bin
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/water.pal b/graphics/battle_anims/backgrounds/water.pal
index ee7a7b6e2..ee7a7b6e2 100755..100644
--- a/graphics/battle_anims/backgrounds/water.pal
+++ b/graphics/battle_anims/backgrounds/water.pal
diff --git a/graphics/battle_anims/backgrounds/water.png b/graphics/battle_anims/backgrounds/water.png
index 7740f99f8..7740f99f8 100755..100644
--- a/graphics/battle_anims/backgrounds/water.png
+++ b/graphics/battle_anims/backgrounds/water.png
Binary files differ
diff --git a/graphics/battle_anims/masks/cure_bubbles.bin b/graphics/battle_anims/masks/cure_bubbles.bin
index fa2f572b6..fa2f572b6 100755..100644
--- a/graphics/battle_anims/masks/cure_bubbles.bin
+++ b/graphics/battle_anims/masks/cure_bubbles.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/cure_bubbles.pal b/graphics/battle_anims/masks/cure_bubbles.pal
index 2868f2479..2868f2479 100755..100644
--- a/graphics/battle_anims/masks/cure_bubbles.pal
+++ b/graphics/battle_anims/masks/cure_bubbles.pal
diff --git a/graphics/battle_anims/masks/cure_bubbles.png b/graphics/battle_anims/masks/cure_bubbles.png
index aa7f7b1f2..aa7f7b1f2 100755..100644
--- a/graphics/battle_anims/masks/cure_bubbles.png
+++ b/graphics/battle_anims/masks/cure_bubbles.png
Binary files differ
diff --git a/graphics/battle_anims/masks/curse.bin b/graphics/battle_anims/masks/curse.bin
index 1e9623948..1e9623948 100755..100644
--- a/graphics/battle_anims/masks/curse.bin
+++ b/graphics/battle_anims/masks/curse.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/curse.png b/graphics/battle_anims/masks/curse.png
index 03979ee8d..03979ee8d 100755..100644
--- a/graphics/battle_anims/masks/curse.png
+++ b/graphics/battle_anims/masks/curse.png
Binary files differ
diff --git a/graphics/battle_anims/masks/metal_shine.bin b/graphics/battle_anims/masks/metal_shine.bin
index fed60df36..fed60df36 100755..100644
--- a/graphics/battle_anims/masks/metal_shine.bin
+++ b/graphics/battle_anims/masks/metal_shine.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/metal_shine.pal b/graphics/battle_anims/masks/metal_shine.pal
index 019a17c3f..019a17c3f 100755..100644
--- a/graphics/battle_anims/masks/metal_shine.pal
+++ b/graphics/battle_anims/masks/metal_shine.pal
diff --git a/graphics/battle_anims/masks/metal_shine.png b/graphics/battle_anims/masks/metal_shine.png
index a9c5a952c..a9c5a952c 100755..100644
--- a/graphics/battle_anims/masks/metal_shine.png
+++ b/graphics/battle_anims/masks/metal_shine.png
Binary files differ
diff --git a/graphics/battle_anims/masks/morning_sun.bin b/graphics/battle_anims/masks/morning_sun.bin
index cfa7b8069..cfa7b8069 100755..100644
--- a/graphics/battle_anims/masks/morning_sun.bin
+++ b/graphics/battle_anims/masks/morning_sun.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/morning_sun.pal b/graphics/battle_anims/masks/morning_sun.pal
index 08249a43c..08249a43c 100755..100644
--- a/graphics/battle_anims/masks/morning_sun.pal
+++ b/graphics/battle_anims/masks/morning_sun.pal
diff --git a/graphics/battle_anims/masks/morning_sun.png b/graphics/battle_anims/masks/morning_sun.png
index c10b02782..c10b02782 100755..100644
--- a/graphics/battle_anims/masks/morning_sun.png
+++ b/graphics/battle_anims/masks/morning_sun.png
Binary files differ
diff --git a/graphics/battle_anims/masks/stat.png b/graphics/battle_anims/masks/stat.png
index 0a6014ccd..0a6014ccd 100755..100644
--- a/graphics/battle_anims/masks/stat.png
+++ b/graphics/battle_anims/masks/stat.png
Binary files differ
diff --git a/graphics/battle_anims/masks/stat1.pal b/graphics/battle_anims/masks/stat1.pal
index d4128a31f..d4128a31f 100755..100644
--- a/graphics/battle_anims/masks/stat1.pal
+++ b/graphics/battle_anims/masks/stat1.pal
diff --git a/graphics/battle_anims/masks/stat2.pal b/graphics/battle_anims/masks/stat2.pal
index 434b06e8d..434b06e8d 100755..100644
--- a/graphics/battle_anims/masks/stat2.pal
+++ b/graphics/battle_anims/masks/stat2.pal
diff --git a/graphics/battle_anims/masks/stat3.pal b/graphics/battle_anims/masks/stat3.pal
index 784e5c640..784e5c640 100755..100644
--- a/graphics/battle_anims/masks/stat3.pal
+++ b/graphics/battle_anims/masks/stat3.pal
diff --git a/graphics/battle_anims/masks/stat4.pal b/graphics/battle_anims/masks/stat4.pal
index 2868f2479..2868f2479 100755..100644
--- a/graphics/battle_anims/masks/stat4.pal
+++ b/graphics/battle_anims/masks/stat4.pal
diff --git a/graphics/battle_anims/masks/stat5.pal b/graphics/battle_anims/masks/stat5.pal
index 4991b1bd7..4991b1bd7 100755..100644
--- a/graphics/battle_anims/masks/stat5.pal
+++ b/graphics/battle_anims/masks/stat5.pal
diff --git a/graphics/battle_anims/masks/stat6.pal b/graphics/battle_anims/masks/stat6.pal
index f647ff4b3..f647ff4b3 100755..100644
--- a/graphics/battle_anims/masks/stat6.pal
+++ b/graphics/battle_anims/masks/stat6.pal
diff --git a/graphics/battle_anims/masks/stat_tilemap_1.bin b/graphics/battle_anims/masks/stat_tilemap_1.bin
index 1b65e515a..1b65e515a 100755..100644
--- a/graphics/battle_anims/masks/stat_tilemap_1.bin
+++ b/graphics/battle_anims/masks/stat_tilemap_1.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/stat_tilemap_2.bin b/graphics/battle_anims/masks/stat_tilemap_2.bin
index eb336cb74..eb336cb74 100755..100644
--- a/graphics/battle_anims/masks/stat_tilemap_2.bin
+++ b/graphics/battle_anims/masks/stat_tilemap_2.bin
diff --git a/graphics/battle_anims/masks/unknown_D2EDFC.bin b/graphics/battle_anims/masks/unknown_D2EDFC.bin
index 712c1ee12..712c1ee12 100755..100644
--- a/graphics/battle_anims/masks/unknown_D2EDFC.bin
+++ b/graphics/battle_anims/masks/unknown_D2EDFC.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/unknown_D2EDFC.png b/graphics/battle_anims/masks/unknown_D2EDFC.png
index d0b372cbb..d0b372cbb 100755..100644
--- a/graphics/battle_anims/masks/unknown_D2EDFC.png
+++ b/graphics/battle_anims/masks/unknown_D2EDFC.png
Binary files differ
diff --git a/graphics/battle_anims/sprites/substitute.bin b/graphics/battle_anims/sprites/substitute.bin
index d30c07d4e..d30c07d4e 100755..100644
--- a/graphics/battle_anims/sprites/substitute.bin
+++ b/graphics/battle_anims/sprites/substitute.bin
Binary files differ
diff --git a/graphics/battle_anims/sprites/substitute.pal b/graphics/battle_anims/sprites/substitute.pal
index 8b6e458a1..8b6e458a1 100755..100644
--- a/graphics/battle_anims/sprites/substitute.pal
+++ b/graphics/battle_anims/sprites/substitute.pal
diff --git a/graphics/battle_anims/sprites/substitute.png b/graphics/battle_anims/sprites/substitute.png
index 0b6dea850..0b6dea850 100755..100644
--- a/graphics/battle_anims/sprites/substitute.png
+++ b/graphics/battle_anims/sprites/substitute.png
Binary files differ
diff --git a/graphics/battle_interface/ball_display.png b/graphics/battle_interface/ball_display.png
index 0c49d7ac4..0c49d7ac4 100755..100644
--- a/graphics/battle_interface/ball_display.png
+++ b/graphics/battle_interface/ball_display.png
Binary files differ
diff --git a/graphics/battle_interface/ball_display_unused_extra.png b/graphics/battle_interface/ball_display_unused_extra.png
index 5473d53df..5473d53df 100755..100644
--- a/graphics/battle_interface/ball_display_unused_extra.png
+++ b/graphics/battle_interface/ball_display_unused_extra.png
Binary files differ
diff --git a/graphics/battle_interface/bar.png b/graphics/battle_interface/bar.png
index b947a7803..b947a7803 100755..100644
--- a/graphics/battle_interface/bar.png
+++ b/graphics/battle_interface/bar.png
Binary files differ
diff --git a/graphics/battle_interface/enemy_mon_shadow.png b/graphics/battle_interface/enemy_mon_shadow.png
index 3db333a92..3db333a92 100755..100644
--- a/graphics/battle_interface/enemy_mon_shadow.png
+++ b/graphics/battle_interface/enemy_mon_shadow.png
Binary files differ
diff --git a/graphics/battle_interface/expbar.png b/graphics/battle_interface/expbar.png
index b54dbe600..b54dbe600 100755..100644
--- a/graphics/battle_interface/expbar.png
+++ b/graphics/battle_interface/expbar.png
Binary files differ
diff --git a/graphics/battle_interface/hpbar.pal b/graphics/battle_interface/hpbar.pal
index ea646bb82..ea646bb82 100755..100644
--- a/graphics/battle_interface/hpbar.pal
+++ b/graphics/battle_interface/hpbar.pal
diff --git a/graphics/battle_interface/hpbar.png b/graphics/battle_interface/hpbar.png
index f3a0314e4..f3a0314e4 100755..100644
--- a/graphics/battle_interface/hpbar.png
+++ b/graphics/battle_interface/hpbar.png
Binary files differ
diff --git a/graphics/battle_interface/hpbar_anim.png b/graphics/battle_interface/hpbar_anim.png
index 9e7564234..9e7564234 100755..100644
--- a/graphics/battle_interface/hpbar_anim.png
+++ b/graphics/battle_interface/hpbar_anim.png
Binary files differ
diff --git a/graphics/battle_interface/misc.png b/graphics/battle_interface/misc.png
index 6456ebe5c..6456ebe5c 100755..100644
--- a/graphics/battle_interface/misc.png
+++ b/graphics/battle_interface/misc.png
Binary files differ
diff --git a/graphics/battle_interface/misc_frameend.png b/graphics/battle_interface/misc_frameend.png
index 630f44242..630f44242 100755..100644
--- a/graphics/battle_interface/misc_frameend.png
+++ b/graphics/battle_interface/misc_frameend.png
Binary files differ
diff --git a/graphics/battle_interface/status2.png b/graphics/battle_interface/status2.png
index 97a344ae3..97a344ae3 100755..100644
--- a/graphics/battle_interface/status2.png
+++ b/graphics/battle_interface/status2.png
Binary files differ
diff --git a/graphics/battle_interface/status3.png b/graphics/battle_interface/status3.png
index 3e5989d05..3e5989d05 100755..100644
--- a/graphics/battle_interface/status3.png
+++ b/graphics/battle_interface/status3.png
Binary files differ
diff --git a/graphics/battle_interface/status4.png b/graphics/battle_interface/status4.png
index d9769ad28..d9769ad28 100755..100644
--- a/graphics/battle_interface/status4.png
+++ b/graphics/battle_interface/status4.png
Binary files differ
diff --git a/graphics/battle_interface/status_brn.png b/graphics/battle_interface/status_brn.png
index 0de1e3ad2..0de1e3ad2 100755..100644
--- a/graphics/battle_interface/status_brn.png
+++ b/graphics/battle_interface/status_brn.png
Binary files differ
diff --git a/graphics/battle_interface/status_frz.png b/graphics/battle_interface/status_frz.png
index 3e1d534b5..3e1d534b5 100755..100644
--- a/graphics/battle_interface/status_frz.png
+++ b/graphics/battle_interface/status_frz.png
Binary files differ
diff --git a/graphics/battle_interface/status_par.png b/graphics/battle_interface/status_par.png
index 177d4eb5b..177d4eb5b 100755..100644
--- a/graphics/battle_interface/status_par.png
+++ b/graphics/battle_interface/status_par.png
Binary files differ
diff --git a/graphics/battle_interface/status_psn.png b/graphics/battle_interface/status_psn.png
index 95869e572..95869e572 100755..100644
--- a/graphics/battle_interface/status_psn.png
+++ b/graphics/battle_interface/status_psn.png
Binary files differ
diff --git a/graphics/battle_interface/status_slp.png b/graphics/battle_interface/status_slp.png
index b0eb5a250..b0eb5a250 100755..100644
--- a/graphics/battle_interface/status_slp.png
+++ b/graphics/battle_interface/status_slp.png
Binary files differ
diff --git a/graphics/battle_interface/window.pal b/graphics/battle_interface/window.pal
index bc8e8f2bc..bc8e8f2bc 100755..100644
--- a/graphics/battle_interface/window.pal
+++ b/graphics/battle_interface/window.pal
diff --git a/graphics/battle_interface/window.png b/graphics/battle_interface/window.png
index 2117967ec..2117967ec 100755..100644
--- a/graphics/battle_interface/window.png
+++ b/graphics/battle_interface/window.png
Binary files differ
diff --git a/graphics/battle_interface/window2.png b/graphics/battle_interface/window2.png
index ac084b2e5..ac084b2e5 100755..100644
--- a/graphics/battle_interface/window2.png
+++ b/graphics/battle_interface/window2.png
Binary files differ
diff --git a/graphics/battle_interface/window3.png b/graphics/battle_interface/window3.png
index f45e2f714..f45e2f714 100755..100644
--- a/graphics/battle_interface/window3.png
+++ b/graphics/battle_interface/window3.png
Binary files differ
diff --git a/graphics/battle_interface/window4.png b/graphics/battle_interface/window4.png
index a366186cf..a366186cf 100755..100644
--- a/graphics/battle_interface/window4.png
+++ b/graphics/battle_interface/window4.png
Binary files differ
diff --git a/graphics/battle_interface/window5.png b/graphics/battle_interface/window5.png
index e48f380a4..e48f380a4 100755..100644
--- a/graphics/battle_interface/window5.png
+++ b/graphics/battle_interface/window5.png
Binary files differ
diff --git a/graphics/battle_terrain/building/palette2.pal b/graphics/battle_terrain/building/palette2.pal
index 3ca2e0b0c..3ca2e0b0c 100755..100644
--- a/graphics/battle_terrain/building/palette2.pal
+++ b/graphics/battle_terrain/building/palette2.pal
diff --git a/graphics/battle_terrain/building/palette3.pal b/graphics/battle_terrain/building/palette3.pal
index cebf5e687..cebf5e687 100755..100644
--- a/graphics/battle_terrain/building/palette3.pal
+++ b/graphics/battle_terrain/building/palette3.pal
diff --git a/graphics/battle_terrain/cave/groudon.pal b/graphics/battle_terrain/cave/groudon.pal
index 73021c957..73021c957 100755..100644
--- a/graphics/battle_terrain/cave/groudon.pal
+++ b/graphics/battle_terrain/cave/groudon.pal
diff --git a/graphics/battle_terrain/stadium/battle_tower.pal b/graphics/battle_terrain/stadium/battle_tower.pal
index 10a842bcc..10a842bcc 100755..100644
--- a/graphics/battle_terrain/stadium/battle_tower.pal
+++ b/graphics/battle_terrain/stadium/battle_tower.pal
diff --git a/graphics/battle_terrain/stadium/map.bin b/graphics/battle_terrain/stadium/map.bin
index d7bee6035..d7bee6035 100755..100644
--- a/graphics/battle_terrain/stadium/map.bin
+++ b/graphics/battle_terrain/stadium/map.bin
Binary files differ
diff --git a/graphics/battle_terrain/stadium/palette1.pal b/graphics/battle_terrain/stadium/palette1.pal
index 8252e3c5e..8252e3c5e 100755..100644
--- a/graphics/battle_terrain/stadium/palette1.pal
+++ b/graphics/battle_terrain/stadium/palette1.pal
diff --git a/graphics/battle_terrain/stadium/palette2.pal b/graphics/battle_terrain/stadium/palette2.pal
index 48b2d851b..48b2d851b 100755..100644
--- a/graphics/battle_terrain/stadium/palette2.pal
+++ b/graphics/battle_terrain/stadium/palette2.pal
diff --git a/graphics/battle_terrain/stadium/palette3.pal b/graphics/battle_terrain/stadium/palette3.pal
index 10c5b50d6..10c5b50d6 100755..100644
--- a/graphics/battle_terrain/stadium/palette3.pal
+++ b/graphics/battle_terrain/stadium/palette3.pal
diff --git a/graphics/battle_terrain/stadium/palette4.pal b/graphics/battle_terrain/stadium/palette4.pal
index 201de5471..201de5471 100755..100644
--- a/graphics/battle_terrain/stadium/palette4.pal
+++ b/graphics/battle_terrain/stadium/palette4.pal
diff --git a/graphics/battle_terrain/stadium/palette5.pal b/graphics/battle_terrain/stadium/palette5.pal
index 16f50d89b..16f50d89b 100755..100644
--- a/graphics/battle_terrain/stadium/palette5.pal
+++ b/graphics/battle_terrain/stadium/palette5.pal
diff --git a/graphics/battle_terrain/stadium/palette6.pal b/graphics/battle_terrain/stadium/palette6.pal
index 118a6a3bb..118a6a3bb 100755..100644
--- a/graphics/battle_terrain/stadium/palette6.pal
+++ b/graphics/battle_terrain/stadium/palette6.pal
diff --git a/graphics/battle_terrain/stadium/palette7.pal b/graphics/battle_terrain/stadium/palette7.pal
index b0c050be5..b0c050be5 100755..100644
--- a/graphics/battle_terrain/stadium/palette7.pal
+++ b/graphics/battle_terrain/stadium/palette7.pal
diff --git a/graphics/battle_terrain/stadium/tiles.png b/graphics/battle_terrain/stadium/tiles.png
index ece531ec0..ece531ec0 100755..100644
--- a/graphics/battle_terrain/stadium/tiles.png
+++ b/graphics/battle_terrain/stadium/tiles.png
Binary files differ
diff --git a/graphics/battle_terrain/water/kyogre.pal b/graphics/battle_terrain/water/kyogre.pal
index eaa19730f..eaa19730f 100755..100644
--- a/graphics/battle_terrain/water/kyogre.pal
+++ b/graphics/battle_terrain/water/kyogre.pal
diff --git a/graphics/battle_transitions/vs.png b/graphics/battle_transitions/vs.png
index a1badcb02..a1badcb02 100755..100644
--- a/graphics/battle_transitions/vs.png
+++ b/graphics/battle_transitions/vs.png
Binary files differ
diff --git a/graphics/battle_transitions/vs_frame.bin b/graphics/battle_transitions/vs_frame.bin
index 2ad153964..2ad153964 100755..100644
--- a/graphics/battle_transitions/vs_frame.bin
+++ b/graphics/battle_transitions/vs_frame.bin
Binary files differ
diff --git a/graphics/battle_transitions/vs_frame.pal b/graphics/battle_transitions/vs_frame.pal
index 104afd395..104afd395 100755..100644
--- a/graphics/battle_transitions/vs_frame.pal
+++ b/graphics/battle_transitions/vs_frame.pal
diff --git a/graphics/battle_transitions/vs_frame.png b/graphics/battle_transitions/vs_frame.png
index 0b38c8960..0b38c8960 100755..100644
--- a/graphics/battle_transitions/vs_frame.png
+++ b/graphics/battle_transitions/vs_frame.png
Binary files differ
diff --git a/graphics/birch_speech/birch.pal b/graphics/birch_speech/birch.pal
index b89a5861a..b89a5861a 100755..100644
--- a/graphics/birch_speech/birch.pal
+++ b/graphics/birch_speech/birch.pal
diff --git a/graphics/birch_speech/birch.png b/graphics/birch_speech/birch.png
index b34ae7436..b34ae7436 100755..100644
--- a/graphics/birch_speech/birch.png
+++ b/graphics/birch_speech/birch.png
Binary files differ
diff --git a/graphics/birch_speech/shadow.png b/graphics/birch_speech/shadow.png
index 778b75797..778b75797 100755..100644
--- a/graphics/birch_speech/shadow.png
+++ b/graphics/birch_speech/shadow.png
Binary files differ
diff --git a/graphics/contest/applause.png b/graphics/contest/applause.png
index 32b1748a0..32b1748a0 100755..100644
--- a/graphics/contest/applause.png
+++ b/graphics/contest/applause.png
Binary files differ
diff --git a/graphics/contest/applause_meter.png b/graphics/contest/applause_meter.png
index 8a4fce8c0..8a4fce8c0 100755..100644
--- a/graphics/contest/applause_meter.png
+++ b/graphics/contest/applause_meter.png
Binary files differ
diff --git a/graphics/contest/audience.png b/graphics/contest/audience.png
index 59f8d0add..59f8d0add 100755..100644
--- a/graphics/contest/audience.png
+++ b/graphics/contest/audience.png
Binary files differ
diff --git a/graphics/contest/faces.png b/graphics/contest/faces.png
index bba47a91d..bba47a91d 100755..100644
--- a/graphics/contest/faces.png
+++ b/graphics/contest/faces.png
Binary files differ
diff --git a/graphics/contest/heart.png b/graphics/contest/heart.png
index bd1ede8fc..bd1ede8fc 100755..100644
--- a/graphics/contest/heart.png
+++ b/graphics/contest/heart.png
Binary files differ
diff --git a/graphics/contest/judge.pal b/graphics/contest/judge.pal
index e62f2abd3..e62f2abd3 100755..100644
--- a/graphics/contest/judge.pal
+++ b/graphics/contest/judge.pal
diff --git a/graphics/contest/judge.png b/graphics/contest/judge.png
index c4dcf520b..c4dcf520b 100755..100644
--- a/graphics/contest/judge.png
+++ b/graphics/contest/judge.png
Binary files differ
diff --git a/graphics/contest/judge_symbols.pal b/graphics/contest/judge_symbols.pal
index 3eeaa1128..3eeaa1128 100755..100644
--- a/graphics/contest/judge_symbols.pal
+++ b/graphics/contest/judge_symbols.pal
diff --git a/graphics/contest/judge_symbols.png b/graphics/contest/judge_symbols.png
index 7669fb88b..7669fb88b 100755..100644
--- a/graphics/contest/judge_symbols.png
+++ b/graphics/contest/judge_symbols.png
Binary files differ
diff --git a/graphics/contest/misc.png b/graphics/contest/misc.png
index 536924daf..536924daf 100755..100644
--- a/graphics/contest/misc.png
+++ b/graphics/contest/misc.png
Binary files differ
diff --git a/graphics/contest/misc_2.pal b/graphics/contest/misc_2.pal
index 869aef9e1..869aef9e1 100755..100644
--- a/graphics/contest/misc_2.pal
+++ b/graphics/contest/misc_2.pal
diff --git a/graphics/contest/misc_2.png b/graphics/contest/misc_2.png
index 44a4a8295..44a4a8295 100755..100644
--- a/graphics/contest/misc_2.png
+++ b/graphics/contest/misc_2.png
Binary files differ
diff --git a/graphics/contest/misc_2_tilemap_1.bin b/graphics/contest/misc_2_tilemap_1.bin
index 197e88cee..197e88cee 100755..100644
--- a/graphics/contest/misc_2_tilemap_1.bin
+++ b/graphics/contest/misc_2_tilemap_1.bin
Binary files differ
diff --git a/graphics/contest/misc_2_tilemap_2.bin b/graphics/contest/misc_2_tilemap_2.bin
index b31126836..b31126836 100755..100644
--- a/graphics/contest/misc_2_tilemap_2.bin
+++ b/graphics/contest/misc_2_tilemap_2.bin
Binary files differ
diff --git a/graphics/contest/misc_2_tilemap_3.bin b/graphics/contest/misc_2_tilemap_3.bin
index 5055ab79e..5055ab79e 100755..100644
--- a/graphics/contest/misc_2_tilemap_3.bin
+++ b/graphics/contest/misc_2_tilemap_3.bin
diff --git a/graphics/contest/nextturn.pal b/graphics/contest/nextturn.pal
index 05991c79e..05991c79e 100755..100644
--- a/graphics/contest/nextturn.pal
+++ b/graphics/contest/nextturn.pal
diff --git a/graphics/contest/nextturn.png b/graphics/contest/nextturn.png
index 747c4b5a7..747c4b5a7 100755..100644
--- a/graphics/contest/nextturn.png
+++ b/graphics/contest/nextturn.png
Binary files differ
diff --git a/graphics/contest/nextturn_numbers.png b/graphics/contest/nextturn_numbers.png
index 4386f822d..4386f822d 100755..100644
--- a/graphics/contest/nextturn_numbers.png
+++ b/graphics/contest/nextturn_numbers.png
Binary files differ
diff --git a/graphics/contest/nextturn_random.png b/graphics/contest/nextturn_random.png
index b92003823..b92003823 100755..100644
--- a/graphics/contest/nextturn_random.png
+++ b/graphics/contest/nextturn_random.png
Binary files differ
diff --git a/graphics/interface/bag_screen.png b/graphics/interface/bag_screen.png
index 86b824bce..86b824bce 100755..100644
--- a/graphics/interface/bag_screen.png
+++ b/graphics/interface/bag_screen.png
Binary files differ
diff --git a/graphics/interface/bag_screen_female.pal b/graphics/interface/bag_screen_female.pal
index d5d99e115..d5d99e115 100755..100644
--- a/graphics/interface/bag_screen_female.pal
+++ b/graphics/interface/bag_screen_female.pal
diff --git a/graphics/interface/bag_screen_male.pal b/graphics/interface/bag_screen_male.pal
index 49c4879bd..49c4879bd 100755..100644
--- a/graphics/interface/bag_screen_male.pal
+++ b/graphics/interface/bag_screen_male.pal
diff --git a/graphics/interface/ball/dive.pal b/graphics/interface/ball/dive.pal
index 1bd07d69d..1bd07d69d 100755..100644
--- a/graphics/interface/ball/dive.pal
+++ b/graphics/interface/ball/dive.pal
diff --git a/graphics/interface/ball/dive.png b/graphics/interface/ball/dive.png
index 5be9b1ed6..5be9b1ed6 100755..100644
--- a/graphics/interface/ball/dive.png
+++ b/graphics/interface/ball/dive.png
Binary files differ
diff --git a/graphics/interface/ball/great.pal b/graphics/interface/ball/great.pal
index f19aa5e4a..f19aa5e4a 100755..100644
--- a/graphics/interface/ball/great.pal
+++ b/graphics/interface/ball/great.pal
diff --git a/graphics/interface/ball/great.png b/graphics/interface/ball/great.png
index 0c054d7d3..0c054d7d3 100755..100644
--- a/graphics/interface/ball/great.png
+++ b/graphics/interface/ball/great.png
Binary files differ
diff --git a/graphics/interface/ball/luxury.pal b/graphics/interface/ball/luxury.pal
index a49399d01..a49399d01 100755..100644
--- a/graphics/interface/ball/luxury.pal
+++ b/graphics/interface/ball/luxury.pal
diff --git a/graphics/interface/ball/luxury.png b/graphics/interface/ball/luxury.png
index 8056416b2..8056416b2 100755..100644
--- a/graphics/interface/ball/luxury.png
+++ b/graphics/interface/ball/luxury.png
Binary files differ
diff --git a/graphics/interface/ball/master.pal b/graphics/interface/ball/master.pal
index 72247849b..72247849b 100755..100644
--- a/graphics/interface/ball/master.pal
+++ b/graphics/interface/ball/master.pal
diff --git a/graphics/interface/ball/master.png b/graphics/interface/ball/master.png
index 9787a8896..9787a8896 100755..100644
--- a/graphics/interface/ball/master.png
+++ b/graphics/interface/ball/master.png
Binary files differ
diff --git a/graphics/interface/ball/nest.pal b/graphics/interface/ball/nest.pal
index 4bee9fa12..4bee9fa12 100755..100644
--- a/graphics/interface/ball/nest.pal
+++ b/graphics/interface/ball/nest.pal
diff --git a/graphics/interface/ball/nest.png b/graphics/interface/ball/nest.png
index a2fa81c1e..a2fa81c1e 100755..100644
--- a/graphics/interface/ball/nest.png
+++ b/graphics/interface/ball/nest.png
Binary files differ
diff --git a/graphics/interface/ball/net.pal b/graphics/interface/ball/net.pal
index dc5abb94d..dc5abb94d 100755..100644
--- a/graphics/interface/ball/net.pal
+++ b/graphics/interface/ball/net.pal
diff --git a/graphics/interface/ball/net.png b/graphics/interface/ball/net.png
index 6fef48101..6fef48101 100755..100644
--- a/graphics/interface/ball/net.png
+++ b/graphics/interface/ball/net.png
Binary files differ
diff --git a/graphics/interface/ball/poke.pal b/graphics/interface/ball/poke.pal
index 0e6b2fb5c..0e6b2fb5c 100755..100644
--- a/graphics/interface/ball/poke.pal
+++ b/graphics/interface/ball/poke.pal
diff --git a/graphics/interface/ball/poke.png b/graphics/interface/ball/poke.png
index 1e4aba669..1e4aba669 100755..100644
--- a/graphics/interface/ball/poke.png
+++ b/graphics/interface/ball/poke.png
Binary files differ
diff --git a/graphics/interface/ball/premier.pal b/graphics/interface/ball/premier.pal
index 0e6b2fb5c..0e6b2fb5c 100755..100644
--- a/graphics/interface/ball/premier.pal
+++ b/graphics/interface/ball/premier.pal
diff --git a/graphics/interface/ball/premier.png b/graphics/interface/ball/premier.png
index f5aaadbaf..f5aaadbaf 100755..100644
--- a/graphics/interface/ball/premier.png
+++ b/graphics/interface/ball/premier.png
Binary files differ
diff --git a/graphics/interface/ball/repeat.pal b/graphics/interface/ball/repeat.pal
index c3689e13f..c3689e13f 100755..100644
--- a/graphics/interface/ball/repeat.pal
+++ b/graphics/interface/ball/repeat.pal
diff --git a/graphics/interface/ball/repeat.png b/graphics/interface/ball/repeat.png
index 5abe789a2..5abe789a2 100755..100644
--- a/graphics/interface/ball/repeat.png
+++ b/graphics/interface/ball/repeat.png
Binary files differ
diff --git a/graphics/interface/ball/safari.pal b/graphics/interface/ball/safari.pal
index bbe4d76f3..bbe4d76f3 100755..100644
--- a/graphics/interface/ball/safari.pal
+++ b/graphics/interface/ball/safari.pal
diff --git a/graphics/interface/ball/safari.png b/graphics/interface/ball/safari.png
index 0dd49aef9..0dd49aef9 100755..100644
--- a/graphics/interface/ball/safari.png
+++ b/graphics/interface/ball/safari.png
Binary files differ
diff --git a/graphics/interface/ball/timer.pal b/graphics/interface/ball/timer.pal
index e0c23569e..e0c23569e 100755..100644
--- a/graphics/interface/ball/timer.pal
+++ b/graphics/interface/ball/timer.pal
diff --git a/graphics/interface/ball/timer.png b/graphics/interface/ball/timer.png
index 2b63f6795..2b63f6795 100755..100644
--- a/graphics/interface/ball/timer.png
+++ b/graphics/interface/ball/timer.png
Binary files differ
diff --git a/graphics/interface/ball/ultra.pal b/graphics/interface/ball/ultra.pal
index 3b7021097..3b7021097 100755..100644
--- a/graphics/interface/ball/ultra.pal
+++ b/graphics/interface/ball/ultra.pal
diff --git a/graphics/interface/ball/ultra.png b/graphics/interface/ball/ultra.png
index edae9a9f1..edae9a9f1 100755..100644
--- a/graphics/interface/ball/ultra.png
+++ b/graphics/interface/ball/ultra.png
Binary files differ
diff --git a/graphics/interface/ball_open.png b/graphics/interface/ball_open.png
index 1030f4942..1030f4942 100755..100644
--- a/graphics/interface/ball_open.png
+++ b/graphics/interface/ball_open.png
Binary files differ
diff --git a/graphics/interface/blank.pal b/graphics/interface/blank.pal
index 9757f2e57..9757f2e57 100755..100644
--- a/graphics/interface/blank.pal
+++ b/graphics/interface/blank.pal
diff --git a/graphics/interface/blank.png b/graphics/interface/blank.png
index 3a4ba289c..3a4ba289c 100755..100644
--- a/graphics/interface/blank.png
+++ b/graphics/interface/blank.png
Binary files differ
diff --git a/graphics/interface/check_berry.pal b/graphics/interface/check_berry.pal
index f4f6cb4e3..f4f6cb4e3 100755..100644
--- a/graphics/interface/check_berry.pal
+++ b/graphics/interface/check_berry.pal
diff --git a/graphics/interface/check_berry.png b/graphics/interface/check_berry.png
index 8a4ea695a..8a4ea695a 100755..100644
--- a/graphics/interface/check_berry.png
+++ b/graphics/interface/check_berry.png
Binary files differ
diff --git a/graphics/interface/check_berry_circle.png b/graphics/interface/check_berry_circle.png
index 38f2ae26b..38f2ae26b 100755..100644
--- a/graphics/interface/check_berry_circle.png
+++ b/graphics/interface/check_berry_circle.png
Binary files differ
diff --git a/graphics/interface/hold_icons.pal b/graphics/interface/hold_icons.pal
index e31d717c9..e31d717c9 100755..100644
--- a/graphics/interface/hold_icons.pal
+++ b/graphics/interface/hold_icons.pal
diff --git a/graphics/interface/hold_icons.png b/graphics/interface/hold_icons.png
index 53eeedde3..53eeedde3 100755..100644
--- a/graphics/interface/hold_icons.png
+++ b/graphics/interface/hold_icons.png
Binary files differ
diff --git a/graphics/interface/hpbar_anim.png b/graphics/interface/hpbar_anim.png
index d4e79fdae..d4e79fdae 100755..100644
--- a/graphics/interface/hpbar_anim.png
+++ b/graphics/interface/hpbar_anim.png
Binary files differ
diff --git a/graphics/interface/mart_frame.bin b/graphics/interface/mart_frame.bin
index e9bc3eaa7..e9bc3eaa7 100755..100644
--- a/graphics/interface/mart_frame.bin
+++ b/graphics/interface/mart_frame.bin
Binary files differ
diff --git a/graphics/interface/mart_frame.png b/graphics/interface/mart_frame.png
index a776e789a..a776e789a 100755..100644
--- a/graphics/interface/mart_frame.png
+++ b/graphics/interface/mart_frame.png
Binary files differ
diff --git a/graphics/interface/menu.pal b/graphics/interface/menu.pal
index 80a6cefcd..80a6cefcd 100755..100644
--- a/graphics/interface/menu.pal
+++ b/graphics/interface/menu.pal
diff --git a/graphics/interface/menu.png b/graphics/interface/menu.png
index e82b78ff3..e82b78ff3 100755..100644
--- a/graphics/interface/menu.png
+++ b/graphics/interface/menu.png
Binary files differ
diff --git a/graphics/interface/menu_0.pal b/graphics/interface/menu_0.pal
index 67e1af896..67e1af896 100755..100644
--- a/graphics/interface/menu_0.pal
+++ b/graphics/interface/menu_0.pal
diff --git a/graphics/interface/menu_1.pal b/graphics/interface/menu_1.pal
index 3adc73766..3adc73766 100755..100644
--- a/graphics/interface/menu_1.pal
+++ b/graphics/interface/menu_1.pal
diff --git a/graphics/interface/money.pal b/graphics/interface/money.pal
index 3fa8d8cff..3fa8d8cff 100755..100644
--- a/graphics/interface/money.pal
+++ b/graphics/interface/money.pal
diff --git a/graphics/interface/money.png b/graphics/interface/money.png
index 5ad533dbf..5ad533dbf 100755..100644
--- a/graphics/interface/money.png
+++ b/graphics/interface/money.png
Binary files differ
diff --git a/graphics/interface/numbers1.png b/graphics/interface/numbers1.png
index f15757958..f15757958 100755..100644
--- a/graphics/interface/numbers1.png
+++ b/graphics/interface/numbers1.png
Binary files differ
diff --git a/graphics/interface/numbers2.png b/graphics/interface/numbers2.png
index 4ddf364bf..4ddf364bf 100755..100644
--- a/graphics/interface/numbers2.png
+++ b/graphics/interface/numbers2.png
Binary files differ
diff --git a/graphics/interface/party_menu_hpbar.png b/graphics/interface/party_menu_hpbar.png
index 5860ada9b..5860ada9b 100755..100644
--- a/graphics/interface/party_menu_hpbar.png
+++ b/graphics/interface/party_menu_hpbar.png
Binary files differ
diff --git a/graphics/interface/party_menu_misc.bin b/graphics/interface/party_menu_misc.bin
index 3b3bcc57a..3b3bcc57a 100755..100644
--- a/graphics/interface/party_menu_misc.bin
+++ b/graphics/interface/party_menu_misc.bin
Binary files differ
diff --git a/graphics/interface/party_menu_misc.pal b/graphics/interface/party_menu_misc.pal
index 4bc706a6b..4bc706a6b 100755..100644
--- a/graphics/interface/party_menu_misc.pal
+++ b/graphics/interface/party_menu_misc.pal
diff --git a/graphics/interface/party_menu_misc.png b/graphics/interface/party_menu_misc.png
index 6ca98493b..6ca98493b 100755..100644
--- a/graphics/interface/party_menu_misc.png
+++ b/graphics/interface/party_menu_misc.png
Binary files differ
diff --git a/graphics/interface/party_menu_ordertext.png b/graphics/interface/party_menu_ordertext.png
index 003af36d0..003af36d0 100755..100644
--- a/graphics/interface/party_menu_ordertext.png
+++ b/graphics/interface/party_menu_ordertext.png
Binary files differ
diff --git a/graphics/interface/pokeblock.bin b/graphics/interface/pokeblock.bin
index 232df0fdb..232df0fdb 100755..100644
--- a/graphics/interface/pokeblock.bin
+++ b/graphics/interface/pokeblock.bin
Binary files differ
diff --git a/graphics/interface/pokeblock_case_frame.pal b/graphics/interface/pokeblock_case_frame.pal
index ef58ae778..ef58ae778 100755..100644
--- a/graphics/interface/pokeblock_case_frame.pal
+++ b/graphics/interface/pokeblock_case_frame.pal
diff --git a/graphics/interface/pokeblock_case_frame.png b/graphics/interface/pokeblock_case_frame.png
index 646636365..646636365 100755..100644
--- a/graphics/interface/pokeblock_case_frame.png
+++ b/graphics/interface/pokeblock_case_frame.png
Binary files differ
diff --git a/graphics/interface/pokeblock_device.pal b/graphics/interface/pokeblock_device.pal
index a491b61af..a491b61af 100755..100644
--- a/graphics/interface/pokeblock_device.pal
+++ b/graphics/interface/pokeblock_device.pal
diff --git a/graphics/interface/pokeblock_device.png b/graphics/interface/pokeblock_device.png
index 65b29a8b3..65b29a8b3 100755..100644
--- a/graphics/interface/pokeblock_device.png
+++ b/graphics/interface/pokeblock_device.png
Binary files differ
diff --git a/graphics/interface/status_icons.pal b/graphics/interface/status_icons.pal
index 718f5bb77..718f5bb77 100755..100644
--- a/graphics/interface/status_icons.pal
+++ b/graphics/interface/status_icons.pal
diff --git a/graphics/interface/status_icons.png b/graphics/interface/status_icons.png
index f319d5566..f319d5566 100755..100644
--- a/graphics/interface/status_icons.png
+++ b/graphics/interface/status_icons.png
Binary files differ
diff --git a/graphics/interface/status_screen.pal b/graphics/interface/status_screen.pal
index 61cd08f0c..61cd08f0c 100755..100644
--- a/graphics/interface/status_screen.pal
+++ b/graphics/interface/status_screen.pal
diff --git a/graphics/interface/status_screen.png b/graphics/interface/status_screen.png
index 3024a035c..3024a035c 100755..100644
--- a/graphics/interface/status_screen.png
+++ b/graphics/interface/status_screen.png
Binary files differ
diff --git a/graphics/interface/summary_frames.pal b/graphics/interface/summary_frames.pal
index d46aa6c8f..d46aa6c8f 100755..100644
--- a/graphics/interface/summary_frames.pal
+++ b/graphics/interface/summary_frames.pal
diff --git a/graphics/interface/summary_frames.png b/graphics/interface/summary_frames.png
index d3c9a2c08..d3c9a2c08 100755..100644
--- a/graphics/interface/summary_frames.png
+++ b/graphics/interface/summary_frames.png
Binary files differ
diff --git a/graphics/intro/intro1_bg.png b/graphics/intro/intro1_bg.png
index 14b3cb5ec..14b3cb5ec 100755..100644
--- a/graphics/intro/intro1_bg.png
+++ b/graphics/intro/intro1_bg.png
Binary files differ
diff --git a/graphics/intro/intro1_bgpal1.pal b/graphics/intro/intro1_bgpal1.pal
index 3617c25a8..3617c25a8 100755..100644
--- a/graphics/intro/intro1_bgpal1.pal
+++ b/graphics/intro/intro1_bgpal1.pal
diff --git a/graphics/intro/intro1_bgpal10.pal b/graphics/intro/intro1_bgpal10.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal10.pal
+++ b/graphics/intro/intro1_bgpal10.pal
diff --git a/graphics/intro/intro1_bgpal11.pal b/graphics/intro/intro1_bgpal11.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal11.pal
+++ b/graphics/intro/intro1_bgpal11.pal
diff --git a/graphics/intro/intro1_bgpal12.pal b/graphics/intro/intro1_bgpal12.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal12.pal
+++ b/graphics/intro/intro1_bgpal12.pal
diff --git a/graphics/intro/intro1_bgpal13.pal b/graphics/intro/intro1_bgpal13.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal13.pal
+++ b/graphics/intro/intro1_bgpal13.pal
diff --git a/graphics/intro/intro1_bgpal14.pal b/graphics/intro/intro1_bgpal14.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal14.pal
+++ b/graphics/intro/intro1_bgpal14.pal
diff --git a/graphics/intro/intro1_bgpal15.pal b/graphics/intro/intro1_bgpal15.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal15.pal
+++ b/graphics/intro/intro1_bgpal15.pal
diff --git a/graphics/intro/intro1_bgpal16.pal b/graphics/intro/intro1_bgpal16.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal16.pal
+++ b/graphics/intro/intro1_bgpal16.pal
diff --git a/graphics/intro/intro1_bgpal2.pal b/graphics/intro/intro1_bgpal2.pal
index 3617c25a8..3617c25a8 100755..100644
--- a/graphics/intro/intro1_bgpal2.pal
+++ b/graphics/intro/intro1_bgpal2.pal
diff --git a/graphics/intro/intro1_bgpal3.pal b/graphics/intro/intro1_bgpal3.pal
index 8a1fb05a5..8a1fb05a5 100755..100644
--- a/graphics/intro/intro1_bgpal3.pal
+++ b/graphics/intro/intro1_bgpal3.pal
diff --git a/graphics/intro/intro1_bgpal4.pal b/graphics/intro/intro1_bgpal4.pal
index 9761c8fac..9761c8fac 100755..100644
--- a/graphics/intro/intro1_bgpal4.pal
+++ b/graphics/intro/intro1_bgpal4.pal
diff --git a/graphics/intro/intro1_bgpal5.pal b/graphics/intro/intro1_bgpal5.pal
index 3617c25a8..3617c25a8 100755..100644
--- a/graphics/intro/intro1_bgpal5.pal
+++ b/graphics/intro/intro1_bgpal5.pal
diff --git a/graphics/intro/intro1_bgpal6.pal b/graphics/intro/intro1_bgpal6.pal
index c242494ac..c242494ac 100755..100644
--- a/graphics/intro/intro1_bgpal6.pal
+++ b/graphics/intro/intro1_bgpal6.pal
diff --git a/graphics/intro/intro1_bgpal7.pal b/graphics/intro/intro1_bgpal7.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal7.pal
+++ b/graphics/intro/intro1_bgpal7.pal
diff --git a/graphics/intro/intro1_bgpal8.pal b/graphics/intro/intro1_bgpal8.pal
index aef9152e4..aef9152e4 100755..100644
--- a/graphics/intro/intro1_bgpal8.pal
+++ b/graphics/intro/intro1_bgpal8.pal
diff --git a/graphics/intro/intro1_bgpal9.pal b/graphics/intro/intro1_bgpal9.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal9.pal
+++ b/graphics/intro/intro1_bgpal9.pal
diff --git a/graphics/intro/intro1_eon.pal b/graphics/intro/intro1_eon.pal
index dcfc242a5..dcfc242a5 100755..100644
--- a/graphics/intro/intro1_eon.pal
+++ b/graphics/intro/intro1_eon.pal
diff --git a/graphics/intro/intro1_eon.png b/graphics/intro/intro1_eon.png
index cf8eedc08..cf8eedc08 100755..100644
--- a/graphics/intro/intro1_eon.png
+++ b/graphics/intro/intro1_eon.png
Binary files differ
diff --git a/graphics/intro/intro1_gamefreak.pal b/graphics/intro/intro1_gamefreak.pal
index aef9152e4..aef9152e4 100755..100644
--- a/graphics/intro/intro1_gamefreak.pal
+++ b/graphics/intro/intro1_gamefreak.pal
diff --git a/graphics/intro/intro1_gamefreak.png b/graphics/intro/intro1_gamefreak.png
index fe734a591..fe734a591 100755..100644
--- a/graphics/intro/intro1_gamefreak.png
+++ b/graphics/intro/intro1_gamefreak.png
Binary files differ
diff --git a/graphics/intro/intro1_leaves.png b/graphics/intro/intro1_leaves.png
index 38c442b24..38c442b24 100755..100644
--- a/graphics/intro/intro1_leaves.png
+++ b/graphics/intro/intro1_leaves.png
Binary files differ
diff --git a/graphics/intro/intro1_waterdrops.png b/graphics/intro/intro1_waterdrops.png
index 13dd3e216..13dd3e216 100755..100644
--- a/graphics/intro/intro1_waterdrops.png
+++ b/graphics/intro/intro1_waterdrops.png
Binary files differ
diff --git a/graphics/intro/intro2_bgclouds.pal b/graphics/intro/intro2_bgclouds.pal
index 6b312a16c..6b312a16c 100755..100644
--- a/graphics/intro/intro2_bgclouds.pal
+++ b/graphics/intro/intro2_bgclouds.pal
diff --git a/graphics/intro/intro2_bgclouds.png b/graphics/intro/intro2_bgclouds.png
index 7ba3d78f4..7ba3d78f4 100755..100644
--- a/graphics/intro/intro2_bgclouds.png
+++ b/graphics/intro/intro2_bgclouds.png
Binary files differ
diff --git a/graphics/intro/intro2_bgclouds2.png b/graphics/intro/intro2_bgclouds2.png
index 933332fdd..933332fdd 100755..100644
--- a/graphics/intro/intro2_bgclouds2.png
+++ b/graphics/intro/intro2_bgclouds2.png
Binary files differ
diff --git a/graphics/intro/intro2_bgnight.pal b/graphics/intro/intro2_bgnight.pal
index 765aad45a..765aad45a 100755..100644
--- a/graphics/intro/intro2_bgnight.pal
+++ b/graphics/intro/intro2_bgnight.pal
diff --git a/graphics/intro/intro2_bgnight.png b/graphics/intro/intro2_bgnight.png
index cb95bb04f..cb95bb04f 100755..100644
--- a/graphics/intro/intro2_bgnight.png
+++ b/graphics/intro/intro2_bgnight.png
Binary files differ
diff --git a/graphics/intro/intro2_bgtrees.pal b/graphics/intro/intro2_bgtrees.pal
index 5c506481a..5c506481a 100755..100644
--- a/graphics/intro/intro2_bgtrees.pal
+++ b/graphics/intro/intro2_bgtrees.pal
diff --git a/graphics/intro/intro2_bgtrees.png b/graphics/intro/intro2_bgtrees.png
index e6d163579..e6d163579 100755..100644
--- a/graphics/intro/intro2_bgtrees.png
+++ b/graphics/intro/intro2_bgtrees.png
Binary files differ
diff --git a/graphics/intro/intro2_bgtreessmall.png b/graphics/intro/intro2_bgtreessmall.png
index 33a7213b8..33a7213b8 100755..100644
--- a/graphics/intro/intro2_bgtreessmall.png
+++ b/graphics/intro/intro2_bgtreessmall.png
Binary files differ
diff --git a/graphics/intro/intro2_bicycle.png b/graphics/intro/intro2_bicycle.png
index 49af395bd..49af395bd 100755..100644
--- a/graphics/intro/intro2_bicycle.png
+++ b/graphics/intro/intro2_bicycle.png
Binary files differ
diff --git a/graphics/intro/intro2_brendan.pal b/graphics/intro/intro2_brendan.pal
index 5a8f9efcc..5a8f9efcc 100755..100644
--- a/graphics/intro/intro2_brendan.pal
+++ b/graphics/intro/intro2_brendan.pal
diff --git a/graphics/intro/intro2_brendan.png b/graphics/intro/intro2_brendan.png
index d09913663..d09913663 100755..100644
--- a/graphics/intro/intro2_brendan.png
+++ b/graphics/intro/intro2_brendan.png
Binary files differ
diff --git a/graphics/intro/intro2_grass.pal b/graphics/intro/intro2_grass.pal
index 389977abf..389977abf 100755..100644
--- a/graphics/intro/intro2_grass.pal
+++ b/graphics/intro/intro2_grass.pal
diff --git a/graphics/intro/intro2_grass.png b/graphics/intro/intro2_grass.png
index e573ca45e..e573ca45e 100755..100644
--- a/graphics/intro/intro2_grass.png
+++ b/graphics/intro/intro2_grass.png
Binary files differ
diff --git a/graphics/intro/intro2_latias.pal b/graphics/intro/intro2_latias.pal
index 0af96be29..0af96be29 100755..100644
--- a/graphics/intro/intro2_latias.pal
+++ b/graphics/intro/intro2_latias.pal
diff --git a/graphics/intro/intro2_latias.png b/graphics/intro/intro2_latias.png
index 5623895ce..5623895ce 100755..100644
--- a/graphics/intro/intro2_latias.png
+++ b/graphics/intro/intro2_latias.png
Binary files differ
diff --git a/graphics/intro/intro2_latios.pal b/graphics/intro/intro2_latios.pal
index bb51c0a7d..bb51c0a7d 100755..100644
--- a/graphics/intro/intro2_latios.pal
+++ b/graphics/intro/intro2_latios.pal
diff --git a/graphics/intro/intro2_latios.png b/graphics/intro/intro2_latios.png
index 439e26fe6..439e26fe6 100755..100644
--- a/graphics/intro/intro2_latios.png
+++ b/graphics/intro/intro2_latios.png
Binary files differ
diff --git a/graphics/intro/intro2_may.pal b/graphics/intro/intro2_may.pal
index 4d15e827b..4d15e827b 100755..100644
--- a/graphics/intro/intro2_may.pal
+++ b/graphics/intro/intro2_may.pal
diff --git a/graphics/intro/intro2_may.png b/graphics/intro/intro2_may.png
index bad682bbb..bad682bbb 100755..100644
--- a/graphics/intro/intro2_may.png
+++ b/graphics/intro/intro2_may.png
Binary files differ
diff --git a/graphics/intro/intro3_attackgfx.png b/graphics/intro/intro3_attackgfx.png
index 0ab052e36..0ab052e36 100755..100644
--- a/graphics/intro/intro3_attackgfx.png
+++ b/graphics/intro/intro3_attackgfx.png
Binary files differ
diff --git a/graphics/intro/intro3_explosion.png b/graphics/intro/intro3_explosion.png
index 1b687e53d..1b687e53d 100755..100644
--- a/graphics/intro/intro3_explosion.png
+++ b/graphics/intro/intro3_explosion.png
Binary files differ
diff --git a/graphics/intro/intro3_misc1.pal b/graphics/intro/intro3_misc1.pal
index a34bebc24..a34bebc24 100755..100644
--- a/graphics/intro/intro3_misc1.pal
+++ b/graphics/intro/intro3_misc1.pal
diff --git a/graphics/intro/intro3_misc2.pal b/graphics/intro/intro3_misc2.pal
index 3c985dc07..3c985dc07 100755..100644
--- a/graphics/intro/intro3_misc2.pal
+++ b/graphics/intro/intro3_misc2.pal
diff --git a/graphics/intro/intro3_pokeball.pal b/graphics/intro/intro3_pokeball.pal
index d520a5e82..d520a5e82 100755..100644
--- a/graphics/intro/intro3_pokeball.pal
+++ b/graphics/intro/intro3_pokeball.pal
diff --git a/graphics/intro/intro3_pokeball.png b/graphics/intro/intro3_pokeball.png
index 4af0187f8..4af0187f8 100755..100644
--- a/graphics/intro/intro3_pokeball.png
+++ b/graphics/intro/intro3_pokeball.png
Binary files differ
diff --git a/graphics/intro/intro3_star.png b/graphics/intro/intro3_star.png
index fb9368c34..fb9368c34 100755..100644
--- a/graphics/intro/intro3_star.png
+++ b/graphics/intro/intro3_star.png
Binary files differ
diff --git a/graphics/misc/birch_bag.pal b/graphics/misc/birch_bag.pal
index ca609b98d..ca609b98d 100755..100644
--- a/graphics/misc/birch_bag.pal
+++ b/graphics/misc/birch_bag.pal
diff --git a/graphics/misc/birch_bag.png b/graphics/misc/birch_bag.png
index 86bfbbbc0..86bfbbbc0 100755..100644
--- a/graphics/misc/birch_bag.png
+++ b/graphics/misc/birch_bag.png
Binary files differ
diff --git a/graphics/misc/birch_ballarrow.pal b/graphics/misc/birch_ballarrow.pal
index 12f7e8075..12f7e8075 100755..100644
--- a/graphics/misc/birch_ballarrow.pal
+++ b/graphics/misc/birch_ballarrow.pal
diff --git a/graphics/misc/birch_ballarrow.png b/graphics/misc/birch_ballarrow.png
index d2f0a3d97..d2f0a3d97 100755..100644
--- a/graphics/misc/birch_ballarrow.png
+++ b/graphics/misc/birch_ballarrow.png
Binary files differ
diff --git a/graphics/misc/birch_circle.pal b/graphics/misc/birch_circle.pal
index 52239fbc3..52239fbc3 100755..100644
--- a/graphics/misc/birch_circle.pal
+++ b/graphics/misc/birch_circle.pal
diff --git a/graphics/misc/birch_circle.png b/graphics/misc/birch_circle.png
index 3501dfec4..3501dfec4 100755..100644
--- a/graphics/misc/birch_circle.png
+++ b/graphics/misc/birch_circle.png
Binary files differ
diff --git a/graphics/misc/birch_grass.pal b/graphics/misc/birch_grass.pal
index 9a87ec0d5..9a87ec0d5 100755..100644
--- a/graphics/misc/birch_grass.pal
+++ b/graphics/misc/birch_grass.pal
diff --git a/graphics/misc/birch_grass.png b/graphics/misc/birch_grass.png
index 838fa5f4c..838fa5f4c 100755..100644
--- a/graphics/misc/birch_grass.png
+++ b/graphics/misc/birch_grass.png
Binary files differ
diff --git a/graphics/misc/cable_car.pal b/graphics/misc/cable_car.pal
index 64985f6da..64985f6da 100755..100644
--- a/graphics/misc/cable_car.pal
+++ b/graphics/misc/cable_car.pal
diff --git a/graphics/misc/cable_car.png b/graphics/misc/cable_car.png
index 67f581fb9..67f581fb9 100755..100644
--- a/graphics/misc/cable_car.png
+++ b/graphics/misc/cable_car.png
Binary files differ
diff --git a/graphics/misc/cable_car_bg.pal b/graphics/misc/cable_car_bg.pal
index d543b4cce..d543b4cce 100755..100644
--- a/graphics/misc/cable_car_bg.pal
+++ b/graphics/misc/cable_car_bg.pal
diff --git a/graphics/misc/cable_car_bg.png b/graphics/misc/cable_car_bg.png
index f268ea990..f268ea990 100755..100644
--- a/graphics/misc/cable_car_bg.png
+++ b/graphics/misc/cable_car_bg.png
Binary files differ
diff --git a/graphics/misc/cable_car_cord.png b/graphics/misc/cable_car_cord.png
index b8176d3ca..b8176d3ca 100755..100644
--- a/graphics/misc/cable_car_cord.png
+++ b/graphics/misc/cable_car_cord.png
Binary files differ
diff --git a/graphics/misc/cable_car_door.png b/graphics/misc/cable_car_door.png
index a61b3f504..a61b3f504 100755..100644
--- a/graphics/misc/cable_car_door.png
+++ b/graphics/misc/cable_car_door.png
Binary files differ
diff --git a/graphics/misc/clock1.pal b/graphics/misc/clock1.pal
index 1582ebfd2..1582ebfd2 100755..100644
--- a/graphics/misc/clock1.pal
+++ b/graphics/misc/clock1.pal
diff --git a/graphics/misc/clock2.pal b/graphics/misc/clock2.pal
index a7909e2e0..a7909e2e0 100755..100644
--- a/graphics/misc/clock2.pal
+++ b/graphics/misc/clock2.pal
diff --git a/graphics/misc/clock_ampm.png b/graphics/misc/clock_ampm.png
index b0d596293..b0d596293 100755..100644
--- a/graphics/misc/clock_ampm.png
+++ b/graphics/misc/clock_ampm.png
Binary files differ
diff --git a/graphics/misc/clock_hands.png b/graphics/misc/clock_hands.png
index 016625770..016625770 100755..100644
--- a/graphics/misc/clock_hands.png
+++ b/graphics/misc/clock_hands.png
Binary files differ
diff --git a/graphics/misc/clock_small.pal b/graphics/misc/clock_small.pal
index 3398fcbe3..3398fcbe3 100755..100644
--- a/graphics/misc/clock_small.pal
+++ b/graphics/misc/clock_small.pal
diff --git a/graphics/misc/clock_small.png b/graphics/misc/clock_small.png
index 6b9f6c1f7..6b9f6c1f7 100755..100644
--- a/graphics/misc/clock_small.png
+++ b/graphics/misc/clock_small.png
Binary files differ
diff --git a/graphics/misc/confetti.pal b/graphics/misc/confetti.pal
index f2494e508..f2494e508 100755..100644
--- a/graphics/misc/confetti.pal
+++ b/graphics/misc/confetti.pal
diff --git a/graphics/misc/confetti.png b/graphics/misc/confetti.png
index ef8b921d8..ef8b921d8 100755..100644
--- a/graphics/misc/confetti.png
+++ b/graphics/misc/confetti.png
Binary files differ
diff --git a/graphics/misc/diploma.png b/graphics/misc/diploma.png
index d9607dce6..d9607dce6 100755..100644
--- a/graphics/misc/diploma.png
+++ b/graphics/misc/diploma.png
Binary files differ
diff --git a/graphics/misc/diploma_national.pal b/graphics/misc/diploma_national.pal
index 03c37bf22..03c37bf22 100755..100644
--- a/graphics/misc/diploma_national.pal
+++ b/graphics/misc/diploma_national.pal
diff --git a/graphics/misc/egg_hatch.png b/graphics/misc/egg_hatch.png
index abea3122f..abea3122f 100755..100644
--- a/graphics/misc/egg_hatch.png
+++ b/graphics/misc/egg_hatch.png
Binary files differ
diff --git a/graphics/misc/egg_shard.png b/graphics/misc/egg_shard.png
index d404445b8..d404445b8 100755..100644
--- a/graphics/misc/egg_shard.png
+++ b/graphics/misc/egg_shard.png
Binary files differ
diff --git a/graphics/misc/evo_sparkle.pal b/graphics/misc/evo_sparkle.pal
index 7ccbffd1d..7ccbffd1d 100755..100644
--- a/graphics/misc/evo_sparkle.pal
+++ b/graphics/misc/evo_sparkle.pal
diff --git a/graphics/misc/evo_sparkle.png b/graphics/misc/evo_sparkle.png
index ac6172602..ac6172602 100755..100644
--- a/graphics/misc/evo_sparkle.png
+++ b/graphics/misc/evo_sparkle.png
Binary files differ
diff --git a/graphics/misc/interview_frame.pal b/graphics/misc/interview_frame.pal
index 7d6c36d2b..7d6c36d2b 100755..100644
--- a/graphics/misc/interview_frame.pal
+++ b/graphics/misc/interview_frame.pal
diff --git a/graphics/misc/interview_frame.png b/graphics/misc/interview_frame.png
index 63470e729..63470e729 100755..100644
--- a/graphics/misc/interview_frame.png
+++ b/graphics/misc/interview_frame.png
Binary files differ
diff --git a/graphics/misc/ribbons_beauty.pal b/graphics/misc/ribbons_beauty.pal
index 78dcdf6f0..78dcdf6f0 100755..100644
--- a/graphics/misc/ribbons_beauty.pal
+++ b/graphics/misc/ribbons_beauty.pal
diff --git a/graphics/misc/ribbons_cool.pal b/graphics/misc/ribbons_cool.pal
index ae6725c65..ae6725c65 100755..100644
--- a/graphics/misc/ribbons_cool.pal
+++ b/graphics/misc/ribbons_cool.pal
diff --git a/graphics/misc/ribbons_cute.pal b/graphics/misc/ribbons_cute.pal
index 7deb2fd4d..7deb2fd4d 100755..100644
--- a/graphics/misc/ribbons_cute.pal
+++ b/graphics/misc/ribbons_cute.pal
diff --git a/graphics/misc/ribbons_full.png b/graphics/misc/ribbons_full.png
index aeaecc5e5..aeaecc5e5 100755..100644
--- a/graphics/misc/ribbons_full.png
+++ b/graphics/misc/ribbons_full.png
Binary files differ
diff --git a/graphics/misc/ribbons_half.pal b/graphics/misc/ribbons_half.pal
index ad0de0547..ad0de0547 100755..100644
--- a/graphics/misc/ribbons_half.pal
+++ b/graphics/misc/ribbons_half.pal
diff --git a/graphics/misc/ribbons_half.png b/graphics/misc/ribbons_half.png
index 095891feb..095891feb 100755..100644
--- a/graphics/misc/ribbons_half.png
+++ b/graphics/misc/ribbons_half.png
Binary files differ
diff --git a/graphics/misc/ribbons_smart.pal b/graphics/misc/ribbons_smart.pal
index 3321186ed..3321186ed 100755..100644
--- a/graphics/misc/ribbons_smart.pal
+++ b/graphics/misc/ribbons_smart.pal
diff --git a/graphics/misc/ribbons_tough.pal b/graphics/misc/ribbons_tough.pal
index 0a01d552f..0a01d552f 100755..100644
--- a/graphics/misc/ribbons_tough.pal
+++ b/graphics/misc/ribbons_tough.pal
diff --git a/graphics/naming_screen/menu.png b/graphics/naming_screen/menu.png
index aae121e3e..aae121e3e 100755..100644
--- a/graphics/naming_screen/menu.png
+++ b/graphics/naming_screen/menu.png
Binary files differ
diff --git a/graphics/pokedex/area_glow.pal b/graphics/pokedex/area_glow.pal
index 0b9ac5a6d..0b9ac5a6d 100755..100644
--- a/graphics/pokedex/area_glow.pal
+++ b/graphics/pokedex/area_glow.pal
diff --git a/graphics/pokedex/area_glow.png b/graphics/pokedex/area_glow.png
index 039e932a8..039e932a8 100755..100644
--- a/graphics/pokedex/area_glow.png
+++ b/graphics/pokedex/area_glow.png
Binary files differ
diff --git a/graphics/pokedex/arrows.pal b/graphics/pokedex/arrows.pal
index 256cee631..256cee631 100755..100644
--- a/graphics/pokedex/arrows.pal
+++ b/graphics/pokedex/arrows.pal
diff --git a/graphics/pokedex/arrows.png b/graphics/pokedex/arrows.png
index 2abf39366..2abf39366 100755..100644
--- a/graphics/pokedex/arrows.png
+++ b/graphics/pokedex/arrows.png
Binary files differ
diff --git a/graphics/pokedex/cry_meter.pal b/graphics/pokedex/cry_meter.pal
index 224f3d983..224f3d983 100755..100644
--- a/graphics/pokedex/cry_meter.pal
+++ b/graphics/pokedex/cry_meter.pal
diff --git a/graphics/pokedex/cry_meter.png b/graphics/pokedex/cry_meter.png
index ec6b0ed43..ec6b0ed43 100755..100644
--- a/graphics/pokedex/cry_meter.png
+++ b/graphics/pokedex/cry_meter.png
Binary files differ
diff --git a/graphics/pokedex/menu.png b/graphics/pokedex/menu.png
index dd8ab63a7..dd8ab63a7 100755..100644
--- a/graphics/pokedex/menu.png
+++ b/graphics/pokedex/menu.png
Binary files differ
diff --git a/graphics/pokedex/menu1.pal b/graphics/pokedex/menu1.pal
index 9850d59b0..9850d59b0 100755..100644
--- a/graphics/pokedex/menu1.pal
+++ b/graphics/pokedex/menu1.pal
diff --git a/graphics/pokedex/menu2.pal b/graphics/pokedex/menu2.pal
index da71fe5ba..da71fe5ba 100755..100644
--- a/graphics/pokedex/menu2.pal
+++ b/graphics/pokedex/menu2.pal
diff --git a/graphics/pokedex/menu2.png b/graphics/pokedex/menu2.png
index 27de53df0..27de53df0 100755..100644
--- a/graphics/pokedex/menu2.png
+++ b/graphics/pokedex/menu2.png
Binary files differ
diff --git a/graphics/pokedex/menu3.pal b/graphics/pokedex/menu3.pal
index 101b62b41..101b62b41 100755..100644
--- a/graphics/pokedex/menu3.pal
+++ b/graphics/pokedex/menu3.pal
diff --git a/graphics/pokedex/menu_search.png b/graphics/pokedex/menu_search.png
index d1c4ae466..d1c4ae466 100755..100644
--- a/graphics/pokedex/menu_search.png
+++ b/graphics/pokedex/menu_search.png
Binary files differ
diff --git a/graphics/pokedex/noball.png b/graphics/pokedex/noball.png
index 40acfbd7d..40acfbd7d 100755..100644
--- a/graphics/pokedex/noball.png
+++ b/graphics/pokedex/noball.png
Binary files differ
diff --git a/graphics/pokemon_storage/arrow.pal b/graphics/pokemon_storage/arrow.pal
index 527c10ba2..527c10ba2 100755..100644
--- a/graphics/pokemon_storage/arrow.pal
+++ b/graphics/pokemon_storage/arrow.pal
diff --git a/graphics/pokemon_storage/arrow.png b/graphics/pokemon_storage/arrow.png
index 53aae9e51..53aae9e51 100755..100644
--- a/graphics/pokemon_storage/arrow.png
+++ b/graphics/pokemon_storage/arrow.png
Binary files differ
diff --git a/graphics/pokemon_storage/beach.bin b/graphics/pokemon_storage/beach.bin
index aa2a97d94..aa2a97d94 100755..100644
--- a/graphics/pokemon_storage/beach.bin
+++ b/graphics/pokemon_storage/beach.bin
Binary files differ
diff --git a/graphics/pokemon_storage/beach_bg.pal b/graphics/pokemon_storage/beach_bg.pal
index b7cb930c4..b7cb930c4 100755..100644
--- a/graphics/pokemon_storage/beach_bg.pal
+++ b/graphics/pokemon_storage/beach_bg.pal
diff --git a/graphics/pokemon_storage/beach_bg.png b/graphics/pokemon_storage/beach_bg.png
index e90325251..e90325251 100755..100644
--- a/graphics/pokemon_storage/beach_bg.png
+++ b/graphics/pokemon_storage/beach_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/beach_frame.pal b/graphics/pokemon_storage/beach_frame.pal
index 360d77bde..360d77bde 100755..100644
--- a/graphics/pokemon_storage/beach_frame.pal
+++ b/graphics/pokemon_storage/beach_frame.pal
diff --git a/graphics/pokemon_storage/beach_frame.png b/graphics/pokemon_storage/beach_frame.png
index c2b17f4d5..c2b17f4d5 100755..100644
--- a/graphics/pokemon_storage/beach_frame.png
+++ b/graphics/pokemon_storage/beach_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/box_bg1.pal b/graphics/pokemon_storage/box_bg1.pal
index 52ac12110..52ac12110 100755..100644
--- a/graphics/pokemon_storage/box_bg1.pal
+++ b/graphics/pokemon_storage/box_bg1.pal
diff --git a/graphics/pokemon_storage/box_bg2.pal b/graphics/pokemon_storage/box_bg2.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/pokemon_storage/box_bg2.pal
+++ b/graphics/pokemon_storage/box_bg2.pal
diff --git a/graphics/pokemon_storage/box_bg3.pal b/graphics/pokemon_storage/box_bg3.pal
index 87eb83684..87eb83684 100755..100644
--- a/graphics/pokemon_storage/box_bg3.pal
+++ b/graphics/pokemon_storage/box_bg3.pal
diff --git a/graphics/pokemon_storage/box_bg4.pal b/graphics/pokemon_storage/box_bg4.pal
index a15c0ba56..a15c0ba56 100755..100644
--- a/graphics/pokemon_storage/box_bg4.pal
+++ b/graphics/pokemon_storage/box_bg4.pal
diff --git a/graphics/pokemon_storage/cave.bin b/graphics/pokemon_storage/cave.bin
index e8cec86f6..e8cec86f6 100755..100644
--- a/graphics/pokemon_storage/cave.bin
+++ b/graphics/pokemon_storage/cave.bin
Binary files differ
diff --git a/graphics/pokemon_storage/cave_bg.pal b/graphics/pokemon_storage/cave_bg.pal
index 6b783cdd5..6b783cdd5 100755..100644
--- a/graphics/pokemon_storage/cave_bg.pal
+++ b/graphics/pokemon_storage/cave_bg.pal
diff --git a/graphics/pokemon_storage/cave_bg.png b/graphics/pokemon_storage/cave_bg.png
index 6a4a7ae7a..6a4a7ae7a 100755..100644
--- a/graphics/pokemon_storage/cave_bg.png
+++ b/graphics/pokemon_storage/cave_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/cave_frame.pal b/graphics/pokemon_storage/cave_frame.pal
index f6e731395..f6e731395 100755..100644
--- a/graphics/pokemon_storage/cave_frame.pal
+++ b/graphics/pokemon_storage/cave_frame.pal
diff --git a/graphics/pokemon_storage/cave_frame.png b/graphics/pokemon_storage/cave_frame.png
index 484e6dd06..484e6dd06 100755..100644
--- a/graphics/pokemon_storage/cave_frame.png
+++ b/graphics/pokemon_storage/cave_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/city.bin b/graphics/pokemon_storage/city.bin
index 8274f44a4..8274f44a4 100755..100644
--- a/graphics/pokemon_storage/city.bin
+++ b/graphics/pokemon_storage/city.bin
Binary files differ
diff --git a/graphics/pokemon_storage/city_bg.pal b/graphics/pokemon_storage/city_bg.pal
index ba67b3414..ba67b3414 100755..100644
--- a/graphics/pokemon_storage/city_bg.pal
+++ b/graphics/pokemon_storage/city_bg.pal
diff --git a/graphics/pokemon_storage/city_bg.png b/graphics/pokemon_storage/city_bg.png
index 3e9ee0168..3e9ee0168 100755..100644
--- a/graphics/pokemon_storage/city_bg.png
+++ b/graphics/pokemon_storage/city_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/city_frame.pal b/graphics/pokemon_storage/city_frame.pal
index a5387638a..a5387638a 100755..100644
--- a/graphics/pokemon_storage/city_frame.pal
+++ b/graphics/pokemon_storage/city_frame.pal
diff --git a/graphics/pokemon_storage/city_frame.png b/graphics/pokemon_storage/city_frame.png
index 5464bc160..5464bc160 100755..100644
--- a/graphics/pokemon_storage/city_frame.png
+++ b/graphics/pokemon_storage/city_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/crag.bin b/graphics/pokemon_storage/crag.bin
index ce256ff37..ce256ff37 100755..100644
--- a/graphics/pokemon_storage/crag.bin
+++ b/graphics/pokemon_storage/crag.bin
Binary files differ
diff --git a/graphics/pokemon_storage/crag_bg.pal b/graphics/pokemon_storage/crag_bg.pal
index f72b27d13..f72b27d13 100755..100644
--- a/graphics/pokemon_storage/crag_bg.pal
+++ b/graphics/pokemon_storage/crag_bg.pal
diff --git a/graphics/pokemon_storage/crag_bg.png b/graphics/pokemon_storage/crag_bg.png
index 6eea4e118..6eea4e118 100755..100644
--- a/graphics/pokemon_storage/crag_bg.png
+++ b/graphics/pokemon_storage/crag_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/crag_frame.pal b/graphics/pokemon_storage/crag_frame.pal
index c4f85c644..c4f85c644 100755..100644
--- a/graphics/pokemon_storage/crag_frame.pal
+++ b/graphics/pokemon_storage/crag_frame.pal
diff --git a/graphics/pokemon_storage/crag_frame.png b/graphics/pokemon_storage/crag_frame.png
index 9d5d9cab9..9d5d9cab9 100755..100644
--- a/graphics/pokemon_storage/crag_frame.png
+++ b/graphics/pokemon_storage/crag_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/desert.bin b/graphics/pokemon_storage/desert.bin
index 75207eaf5..75207eaf5 100755..100644
--- a/graphics/pokemon_storage/desert.bin
+++ b/graphics/pokemon_storage/desert.bin
Binary files differ
diff --git a/graphics/pokemon_storage/desert_bg.pal b/graphics/pokemon_storage/desert_bg.pal
index c5ca027d2..c5ca027d2 100755..100644
--- a/graphics/pokemon_storage/desert_bg.pal
+++ b/graphics/pokemon_storage/desert_bg.pal
diff --git a/graphics/pokemon_storage/desert_bg.png b/graphics/pokemon_storage/desert_bg.png
index 04d467025..04d467025 100755..100644
--- a/graphics/pokemon_storage/desert_bg.png
+++ b/graphics/pokemon_storage/desert_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/desert_frame.pal b/graphics/pokemon_storage/desert_frame.pal
index 4cf04f8ae..4cf04f8ae 100755..100644
--- a/graphics/pokemon_storage/desert_frame.pal
+++ b/graphics/pokemon_storage/desert_frame.pal
diff --git a/graphics/pokemon_storage/desert_frame.png b/graphics/pokemon_storage/desert_frame.png
index e19e9eee8..e19e9eee8 100755..100644
--- a/graphics/pokemon_storage/desert_frame.png
+++ b/graphics/pokemon_storage/desert_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/forest.bin b/graphics/pokemon_storage/forest.bin
index 005155f6c..005155f6c 100755..100644
--- a/graphics/pokemon_storage/forest.bin
+++ b/graphics/pokemon_storage/forest.bin
Binary files differ
diff --git a/graphics/pokemon_storage/forest_bg.pal b/graphics/pokemon_storage/forest_bg.pal
index 946becabb..946becabb 100755..100644
--- a/graphics/pokemon_storage/forest_bg.pal
+++ b/graphics/pokemon_storage/forest_bg.pal
diff --git a/graphics/pokemon_storage/forest_bg.png b/graphics/pokemon_storage/forest_bg.png
index 51bd24528..51bd24528 100755..100644
--- a/graphics/pokemon_storage/forest_bg.png
+++ b/graphics/pokemon_storage/forest_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/forest_frame.pal b/graphics/pokemon_storage/forest_frame.pal
index 1b4166087..1b4166087 100755..100644
--- a/graphics/pokemon_storage/forest_frame.pal
+++ b/graphics/pokemon_storage/forest_frame.pal
diff --git a/graphics/pokemon_storage/forest_frame.png b/graphics/pokemon_storage/forest_frame.png
index b9039c5f0..b9039c5f0 100755..100644
--- a/graphics/pokemon_storage/forest_frame.png
+++ b/graphics/pokemon_storage/forest_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/machine.bin b/graphics/pokemon_storage/machine.bin
index 981638225..981638225 100755..100644
--- a/graphics/pokemon_storage/machine.bin
+++ b/graphics/pokemon_storage/machine.bin
Binary files differ
diff --git a/graphics/pokemon_storage/machine_bg.pal b/graphics/pokemon_storage/machine_bg.pal
index 4f75effd5..4f75effd5 100755..100644
--- a/graphics/pokemon_storage/machine_bg.pal
+++ b/graphics/pokemon_storage/machine_bg.pal
diff --git a/graphics/pokemon_storage/machine_bg.png b/graphics/pokemon_storage/machine_bg.png
index d3f84167c..d3f84167c 100755..100644
--- a/graphics/pokemon_storage/machine_bg.png
+++ b/graphics/pokemon_storage/machine_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/machine_frame.pal b/graphics/pokemon_storage/machine_frame.pal
index aa74af16f..aa74af16f 100755..100644
--- a/graphics/pokemon_storage/machine_frame.pal
+++ b/graphics/pokemon_storage/machine_frame.pal
diff --git a/graphics/pokemon_storage/machine_frame.png b/graphics/pokemon_storage/machine_frame.png
index 0e2bdde13..0e2bdde13 100755..100644
--- a/graphics/pokemon_storage/machine_frame.png
+++ b/graphics/pokemon_storage/machine_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/plain.bin b/graphics/pokemon_storage/plain.bin
index b9ab5e535..b9ab5e535 100755..100644
--- a/graphics/pokemon_storage/plain.bin
+++ b/graphics/pokemon_storage/plain.bin
Binary files differ
diff --git a/graphics/pokemon_storage/plain_bg.pal b/graphics/pokemon_storage/plain_bg.pal
index 74e28306b..74e28306b 100755..100644
--- a/graphics/pokemon_storage/plain_bg.pal
+++ b/graphics/pokemon_storage/plain_bg.pal
diff --git a/graphics/pokemon_storage/plain_bg.png b/graphics/pokemon_storage/plain_bg.png
index 0b6dce460..0b6dce460 100755..100644
--- a/graphics/pokemon_storage/plain_bg.png
+++ b/graphics/pokemon_storage/plain_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/plain_frame.pal b/graphics/pokemon_storage/plain_frame.pal
index b68d724cd..b68d724cd 100755..100644
--- a/graphics/pokemon_storage/plain_frame.pal
+++ b/graphics/pokemon_storage/plain_frame.pal
diff --git a/graphics/pokemon_storage/plain_frame.png b/graphics/pokemon_storage/plain_frame.png
index eedd67aad..eedd67aad 100755..100644
--- a/graphics/pokemon_storage/plain_frame.png
+++ b/graphics/pokemon_storage/plain_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/pokecenter.bin b/graphics/pokemon_storage/pokecenter.bin
index 6c5924c37..6c5924c37 100755..100644
--- a/graphics/pokemon_storage/pokecenter.bin
+++ b/graphics/pokemon_storage/pokecenter.bin
Binary files differ
diff --git a/graphics/pokemon_storage/pokecenter_bg.pal b/graphics/pokemon_storage/pokecenter_bg.pal
index b029c1741..b029c1741 100755..100644
--- a/graphics/pokemon_storage/pokecenter_bg.pal
+++ b/graphics/pokemon_storage/pokecenter_bg.pal
diff --git a/graphics/pokemon_storage/pokecenter_bg.png b/graphics/pokemon_storage/pokecenter_bg.png
index 94834b69e..94834b69e 100755..100644
--- a/graphics/pokemon_storage/pokecenter_bg.png
+++ b/graphics/pokemon_storage/pokecenter_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/pokecenter_frame.pal b/graphics/pokemon_storage/pokecenter_frame.pal
index 4a8074805..4a8074805 100755..100644
--- a/graphics/pokemon_storage/pokecenter_frame.pal
+++ b/graphics/pokemon_storage/pokecenter_frame.pal
diff --git a/graphics/pokemon_storage/pokecenter_frame.png b/graphics/pokemon_storage/pokecenter_frame.png
index 99ef4a680..99ef4a680 100755..100644
--- a/graphics/pokemon_storage/pokecenter_frame.png
+++ b/graphics/pokemon_storage/pokecenter_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/polkadot.bin b/graphics/pokemon_storage/polkadot.bin
index 8477f680c..8477f680c 100755..100644
--- a/graphics/pokemon_storage/polkadot.bin
+++ b/graphics/pokemon_storage/polkadot.bin
Binary files differ
diff --git a/graphics/pokemon_storage/polkadot_bg.pal b/graphics/pokemon_storage/polkadot_bg.pal
index b7bf06f47..b7bf06f47 100755..100644
--- a/graphics/pokemon_storage/polkadot_bg.pal
+++ b/graphics/pokemon_storage/polkadot_bg.pal
diff --git a/graphics/pokemon_storage/polkadot_bg.png b/graphics/pokemon_storage/polkadot_bg.png
index 16bf0be88..16bf0be88 100755..100644
--- a/graphics/pokemon_storage/polkadot_bg.png
+++ b/graphics/pokemon_storage/polkadot_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/polkadot_frame.pal b/graphics/pokemon_storage/polkadot_frame.pal
index d90a6f0b2..d90a6f0b2 100755..100644
--- a/graphics/pokemon_storage/polkadot_frame.pal
+++ b/graphics/pokemon_storage/polkadot_frame.pal
diff --git a/graphics/pokemon_storage/polkadot_frame.png b/graphics/pokemon_storage/polkadot_frame.png
index 41477d9ff..41477d9ff 100755..100644
--- a/graphics/pokemon_storage/polkadot_frame.png
+++ b/graphics/pokemon_storage/polkadot_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/river.bin b/graphics/pokemon_storage/river.bin
index ff2736df7..ff2736df7 100755..100644
--- a/graphics/pokemon_storage/river.bin
+++ b/graphics/pokemon_storage/river.bin
Binary files differ
diff --git a/graphics/pokemon_storage/river_bg.pal b/graphics/pokemon_storage/river_bg.pal
index 09d45090a..09d45090a 100755..100644
--- a/graphics/pokemon_storage/river_bg.pal
+++ b/graphics/pokemon_storage/river_bg.pal
diff --git a/graphics/pokemon_storage/river_bg.png b/graphics/pokemon_storage/river_bg.png
index 085640004..085640004 100755..100644
--- a/graphics/pokemon_storage/river_bg.png
+++ b/graphics/pokemon_storage/river_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/river_frame.pal b/graphics/pokemon_storage/river_frame.pal
index 9fcc4cbca..9fcc4cbca 100755..100644
--- a/graphics/pokemon_storage/river_frame.pal
+++ b/graphics/pokemon_storage/river_frame.pal
diff --git a/graphics/pokemon_storage/river_frame.png b/graphics/pokemon_storage/river_frame.png
index c4adcd23c..c4adcd23c 100755..100644
--- a/graphics/pokemon_storage/river_frame.png
+++ b/graphics/pokemon_storage/river_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/savanna.bin b/graphics/pokemon_storage/savanna.bin
index 4d166b7a9..4d166b7a9 100755..100644
--- a/graphics/pokemon_storage/savanna.bin
+++ b/graphics/pokemon_storage/savanna.bin
Binary files differ
diff --git a/graphics/pokemon_storage/savanna_bg.pal b/graphics/pokemon_storage/savanna_bg.pal
index d80816c35..d80816c35 100755..100644
--- a/graphics/pokemon_storage/savanna_bg.pal
+++ b/graphics/pokemon_storage/savanna_bg.pal
diff --git a/graphics/pokemon_storage/savanna_bg.png b/graphics/pokemon_storage/savanna_bg.png
index 4bc6b14e3..4bc6b14e3 100755..100644
--- a/graphics/pokemon_storage/savanna_bg.png
+++ b/graphics/pokemon_storage/savanna_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/savanna_frame.pal b/graphics/pokemon_storage/savanna_frame.pal
index 1c1742cc2..1c1742cc2 100755..100644
--- a/graphics/pokemon_storage/savanna_frame.pal
+++ b/graphics/pokemon_storage/savanna_frame.pal
diff --git a/graphics/pokemon_storage/savanna_frame.png b/graphics/pokemon_storage/savanna_frame.png
index 63897d514..63897d514 100755..100644
--- a/graphics/pokemon_storage/savanna_frame.png
+++ b/graphics/pokemon_storage/savanna_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/seafloor.bin b/graphics/pokemon_storage/seafloor.bin
index c6be345de..c6be345de 100755..100644
--- a/graphics/pokemon_storage/seafloor.bin
+++ b/graphics/pokemon_storage/seafloor.bin
Binary files differ
diff --git a/graphics/pokemon_storage/seafloor_bg.pal b/graphics/pokemon_storage/seafloor_bg.pal
index 43b2eecab..43b2eecab 100755..100644
--- a/graphics/pokemon_storage/seafloor_bg.pal
+++ b/graphics/pokemon_storage/seafloor_bg.pal
diff --git a/graphics/pokemon_storage/seafloor_bg.png b/graphics/pokemon_storage/seafloor_bg.png
index 8f53e7dc2..8f53e7dc2 100755..100644
--- a/graphics/pokemon_storage/seafloor_bg.png
+++ b/graphics/pokemon_storage/seafloor_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/seafloor_frame.pal b/graphics/pokemon_storage/seafloor_frame.pal
index 79c7650b4..79c7650b4 100755..100644
--- a/graphics/pokemon_storage/seafloor_frame.pal
+++ b/graphics/pokemon_storage/seafloor_frame.pal
diff --git a/graphics/pokemon_storage/seafloor_frame.png b/graphics/pokemon_storage/seafloor_frame.png
index 3f2d5f713..3f2d5f713 100755..100644
--- a/graphics/pokemon_storage/seafloor_frame.png
+++ b/graphics/pokemon_storage/seafloor_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/sky.bin b/graphics/pokemon_storage/sky.bin
index e2c553b2a..e2c553b2a 100755..100644
--- a/graphics/pokemon_storage/sky.bin
+++ b/graphics/pokemon_storage/sky.bin
Binary files differ
diff --git a/graphics/pokemon_storage/sky_bg.pal b/graphics/pokemon_storage/sky_bg.pal
index 3d722ed6d..3d722ed6d 100755..100644
--- a/graphics/pokemon_storage/sky_bg.pal
+++ b/graphics/pokemon_storage/sky_bg.pal
diff --git a/graphics/pokemon_storage/sky_bg.png b/graphics/pokemon_storage/sky_bg.png
index 560e406e1..560e406e1 100755..100644
--- a/graphics/pokemon_storage/sky_bg.png
+++ b/graphics/pokemon_storage/sky_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/sky_frame.pal b/graphics/pokemon_storage/sky_frame.pal
index 951f59ecf..951f59ecf 100755..100644
--- a/graphics/pokemon_storage/sky_frame.pal
+++ b/graphics/pokemon_storage/sky_frame.pal
diff --git a/graphics/pokemon_storage/sky_frame.png b/graphics/pokemon_storage/sky_frame.png
index 85b1f75b0..85b1f75b0 100755..100644
--- a/graphics/pokemon_storage/sky_frame.png
+++ b/graphics/pokemon_storage/sky_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/snow.bin b/graphics/pokemon_storage/snow.bin
index 3e8253ade..3e8253ade 100755..100644
--- a/graphics/pokemon_storage/snow.bin
+++ b/graphics/pokemon_storage/snow.bin
Binary files differ
diff --git a/graphics/pokemon_storage/snow_bg.pal b/graphics/pokemon_storage/snow_bg.pal
index 01e46d027..01e46d027 100755..100644
--- a/graphics/pokemon_storage/snow_bg.pal
+++ b/graphics/pokemon_storage/snow_bg.pal
diff --git a/graphics/pokemon_storage/snow_bg.png b/graphics/pokemon_storage/snow_bg.png
index 4415750c4..4415750c4 100755..100644
--- a/graphics/pokemon_storage/snow_bg.png
+++ b/graphics/pokemon_storage/snow_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/snow_frame.pal b/graphics/pokemon_storage/snow_frame.pal
index 437ccb934..437ccb934 100755..100644
--- a/graphics/pokemon_storage/snow_frame.pal
+++ b/graphics/pokemon_storage/snow_frame.pal
diff --git a/graphics/pokemon_storage/snow_frame.png b/graphics/pokemon_storage/snow_frame.png
index 8ac1ae138..8ac1ae138 100755..100644
--- a/graphics/pokemon_storage/snow_frame.png
+++ b/graphics/pokemon_storage/snow_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/volcano.bin b/graphics/pokemon_storage/volcano.bin
index 5d7102e09..5d7102e09 100755..100644
--- a/graphics/pokemon_storage/volcano.bin
+++ b/graphics/pokemon_storage/volcano.bin
Binary files differ
diff --git a/graphics/pokemon_storage/volcano_bg.pal b/graphics/pokemon_storage/volcano_bg.pal
index 8ea563b6e..8ea563b6e 100755..100644
--- a/graphics/pokemon_storage/volcano_bg.pal
+++ b/graphics/pokemon_storage/volcano_bg.pal
diff --git a/graphics/pokemon_storage/volcano_bg.png b/graphics/pokemon_storage/volcano_bg.png
index 8561696b7..8561696b7 100755..100644
--- a/graphics/pokemon_storage/volcano_bg.png
+++ b/graphics/pokemon_storage/volcano_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/volcano_frame.pal b/graphics/pokemon_storage/volcano_frame.pal
index 0378aff29..0378aff29 100755..100644
--- a/graphics/pokemon_storage/volcano_frame.pal
+++ b/graphics/pokemon_storage/volcano_frame.pal
diff --git a/graphics/pokemon_storage/volcano_frame.png b/graphics/pokemon_storage/volcano_frame.png
index 4480c6c24..4480c6c24 100755..100644
--- a/graphics/pokemon_storage/volcano_frame.png
+++ b/graphics/pokemon_storage/volcano_frame.png
Binary files differ
diff --git a/graphics/pokenav/cursor.pal b/graphics/pokenav/cursor.pal
index b35568acf..b35568acf 100755..100644
--- a/graphics/pokenav/cursor.pal
+++ b/graphics/pokenav/cursor.pal
diff --git a/graphics/pokenav/cursor_large.png b/graphics/pokenav/cursor_large.png
index eeda68a0e..eeda68a0e 100755..100644
--- a/graphics/pokenav/cursor_large.png
+++ b/graphics/pokenav/cursor_large.png
Binary files differ
diff --git a/graphics/pokenav/cursor_small.png b/graphics/pokenav/cursor_small.png
index 031e7ed16..031e7ed16 100755..100644
--- a/graphics/pokenav/cursor_small.png
+++ b/graphics/pokenav/cursor_small.png
Binary files differ
diff --git a/graphics/pokenav/icon.pal b/graphics/pokenav/icon.pal
index 6130754f4..6130754f4 100755..100644
--- a/graphics/pokenav/icon.pal
+++ b/graphics/pokenav/icon.pal
diff --git a/graphics/pokenav/icon.png b/graphics/pokenav/icon.png
index 083f32272..083f32272 100755..100644
--- a/graphics/pokenav/icon.png
+++ b/graphics/pokenav/icon.png
Binary files differ
diff --git a/graphics/pokenav/map_frame.pal b/graphics/pokenav/map_frame.pal
index d460cfe4e..d460cfe4e 100755..100644
--- a/graphics/pokenav/map_frame.pal
+++ b/graphics/pokenav/map_frame.pal
diff --git a/graphics/pokenav/map_frame.png b/graphics/pokenav/map_frame.png
index f64171746..f64171746 100755..100644
--- a/graphics/pokenav/map_frame.png
+++ b/graphics/pokenav/map_frame.png
Binary files differ
diff --git a/graphics/pokenav/map_misc.pal b/graphics/pokenav/map_misc.pal
index c0f2cc4e9..c0f2cc4e9 100755..100644
--- a/graphics/pokenav/map_misc.pal
+++ b/graphics/pokenav/map_misc.pal
diff --git a/graphics/pokenav/map_misc.png b/graphics/pokenav/map_misc.png
index 7a997afc5..7a997afc5 100755..100644
--- a/graphics/pokenav/map_misc.png
+++ b/graphics/pokenav/map_misc.png
Binary files differ
diff --git a/graphics/pokenav/map_squares.pal b/graphics/pokenav/map_squares.pal
index 7325e7fb8..7325e7fb8 100755..100644
--- a/graphics/pokenav/map_squares.pal
+++ b/graphics/pokenav/map_squares.pal
diff --git a/graphics/pokenav/region_map.pal b/graphics/pokenav/region_map.pal
index 4fca67ade..4fca67ade 100755..100644
--- a/graphics/pokenav/region_map.pal
+++ b/graphics/pokenav/region_map.pal
diff --git a/graphics/pokenav/region_map.png b/graphics/pokenav/region_map.png
index 08df6eb29..08df6eb29 100755..100644
--- a/graphics/pokenav/region_map.png
+++ b/graphics/pokenav/region_map.png
Binary files differ
diff --git a/graphics/pokenav/trainereyes_misc.png b/graphics/pokenav/trainereyes_misc.png
index 63c641ee1..63c641ee1 100755..100644
--- a/graphics/pokenav/trainereyes_misc.png
+++ b/graphics/pokenav/trainereyes_misc.png
Binary files differ
diff --git a/graphics/pokenav/trainereyes_misc_pal.bin b/graphics/pokenav/trainereyes_misc_pal.bin
index 4d681dd27..4d681dd27 100755..100644
--- a/graphics/pokenav/trainereyes_misc_pal.bin
+++ b/graphics/pokenav/trainereyes_misc_pal.bin
Binary files differ
diff --git a/graphics/roulette/azurill.pal b/graphics/roulette/azurill.pal
index 2d6c464e3..2d6c464e3 100755..100644
--- a/graphics/roulette/azurill.pal
+++ b/graphics/roulette/azurill.pal
diff --git a/graphics/roulette/azurill.png b/graphics/roulette/azurill.png
index b99bc1a33..b99bc1a33 100755..100644
--- a/graphics/roulette/azurill.png
+++ b/graphics/roulette/azurill.png
Binary files differ
diff --git a/graphics/roulette/ball.pal b/graphics/roulette/ball.pal
index f72217a9b..f72217a9b 100755..100644
--- a/graphics/roulette/ball.pal
+++ b/graphics/roulette/ball.pal
diff --git a/graphics/roulette/ball.png b/graphics/roulette/ball.png
index 2352e9be5..2352e9be5 100755..100644
--- a/graphics/roulette/ball.png
+++ b/graphics/roulette/ball.png
Binary files differ
diff --git a/graphics/roulette/ball_counter.pal b/graphics/roulette/ball_counter.pal
index e76199ced..e76199ced 100755..100644
--- a/graphics/roulette/ball_counter.pal
+++ b/graphics/roulette/ball_counter.pal
diff --git a/graphics/roulette/ball_counter.png b/graphics/roulette/ball_counter.png
index 30c88b894..30c88b894 100755..100644
--- a/graphics/roulette/ball_counter.png
+++ b/graphics/roulette/ball_counter.png
Binary files differ
diff --git a/graphics/roulette/center.png b/graphics/roulette/center.png
index 0653b0e97..0653b0e97 100755..100644
--- a/graphics/roulette/center.png
+++ b/graphics/roulette/center.png
Binary files differ
diff --git a/graphics/roulette/cursor.pal b/graphics/roulette/cursor.pal
index f5ff00341..f5ff00341 100755..100644
--- a/graphics/roulette/cursor.pal
+++ b/graphics/roulette/cursor.pal
diff --git a/graphics/roulette/cursor.png b/graphics/roulette/cursor.png
index 962ebb2c7..962ebb2c7 100755..100644
--- a/graphics/roulette/cursor.png
+++ b/graphics/roulette/cursor.png
Binary files differ
diff --git a/graphics/roulette/makuhita.pal b/graphics/roulette/makuhita.pal
index 35a9a5307..35a9a5307 100755..100644
--- a/graphics/roulette/makuhita.pal
+++ b/graphics/roulette/makuhita.pal
diff --git a/graphics/roulette/makuhita.png b/graphics/roulette/makuhita.png
index 756157496..756157496 100755..100644
--- a/graphics/roulette/makuhita.png
+++ b/graphics/roulette/makuhita.png
Binary files differ
diff --git a/graphics/roulette/poke_icons.pal b/graphics/roulette/poke_icons.pal
index f2d21a7e5..f2d21a7e5 100755..100644
--- a/graphics/roulette/poke_icons.pal
+++ b/graphics/roulette/poke_icons.pal
diff --git a/graphics/roulette/poke_icons.png b/graphics/roulette/poke_icons.png
index 91a2f301f..91a2f301f 100755..100644
--- a/graphics/roulette/poke_icons.png
+++ b/graphics/roulette/poke_icons.png
Binary files differ
diff --git a/graphics/roulette/shadow.pal b/graphics/roulette/shadow.pal
index 2ac26b064..2ac26b064 100755..100644
--- a/graphics/roulette/shadow.pal
+++ b/graphics/roulette/shadow.pal
diff --git a/graphics/roulette/shadow.png b/graphics/roulette/shadow.png
index d3793b1c8..d3793b1c8 100755..100644
--- a/graphics/roulette/shadow.png
+++ b/graphics/roulette/shadow.png
Binary files differ
diff --git a/graphics/roulette/shroomish.pal b/graphics/roulette/shroomish.pal
index 3a1fbff02..3a1fbff02 100755..100644
--- a/graphics/roulette/shroomish.pal
+++ b/graphics/roulette/shroomish.pal
diff --git a/graphics/roulette/shroomish.png b/graphics/roulette/shroomish.png
index 12ee2a870..12ee2a870 100755..100644
--- a/graphics/roulette/shroomish.png
+++ b/graphics/roulette/shroomish.png
Binary files differ
diff --git a/graphics/roulette/skitty.pal b/graphics/roulette/skitty.pal
index cdfca277d..cdfca277d 100755..100644
--- a/graphics/roulette/skitty.pal
+++ b/graphics/roulette/skitty.pal
diff --git a/graphics/roulette/skitty.png b/graphics/roulette/skitty.png
index a1d6f1ab5..a1d6f1ab5 100755..100644
--- a/graphics/roulette/skitty.png
+++ b/graphics/roulette/skitty.png
Binary files differ
diff --git a/graphics/roulette/tailow.pal b/graphics/roulette/tailow.pal
index 00b5a7054..00b5a7054 100755..100644
--- a/graphics/roulette/tailow.pal
+++ b/graphics/roulette/tailow.pal
diff --git a/graphics/roulette/tailow.png b/graphics/roulette/tailow.png
index acd2fc4ba..acd2fc4ba 100755..100644
--- a/graphics/roulette/tailow.png
+++ b/graphics/roulette/tailow.png
Binary files differ
diff --git a/graphics/roulette/wynaut.pal b/graphics/roulette/wynaut.pal
index 5eef080f8..5eef080f8 100755..100644
--- a/graphics/roulette/wynaut.pal
+++ b/graphics/roulette/wynaut.pal
diff --git a/graphics/roulette/wynaut.png b/graphics/roulette/wynaut.png
index 8ba7d3c0f..8ba7d3c0f 100755..100644
--- a/graphics/roulette/wynaut.png
+++ b/graphics/roulette/wynaut.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/0.png b/graphics/slot_machine/numbers/0.png
index 07c668eea..07c668eea 100755..100644
--- a/graphics/slot_machine/numbers/0.png
+++ b/graphics/slot_machine/numbers/0.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/1.png b/graphics/slot_machine/numbers/1.png
index 0aa67e201..0aa67e201 100755..100644
--- a/graphics/slot_machine/numbers/1.png
+++ b/graphics/slot_machine/numbers/1.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/2.png b/graphics/slot_machine/numbers/2.png
index 0ff2a0265..0ff2a0265 100755..100644
--- a/graphics/slot_machine/numbers/2.png
+++ b/graphics/slot_machine/numbers/2.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/3.png b/graphics/slot_machine/numbers/3.png
index ea5f1e496..ea5f1e496 100755..100644
--- a/graphics/slot_machine/numbers/3.png
+++ b/graphics/slot_machine/numbers/3.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/4.png b/graphics/slot_machine/numbers/4.png
index d5353c752..d5353c752 100755..100644
--- a/graphics/slot_machine/numbers/4.png
+++ b/graphics/slot_machine/numbers/4.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/5.png b/graphics/slot_machine/numbers/5.png
index 121a7b3c9..121a7b3c9 100755..100644
--- a/graphics/slot_machine/numbers/5.png
+++ b/graphics/slot_machine/numbers/5.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/6.png b/graphics/slot_machine/numbers/6.png
index 95a9ae0ff..95a9ae0ff 100755..100644
--- a/graphics/slot_machine/numbers/6.png
+++ b/graphics/slot_machine/numbers/6.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/7.png b/graphics/slot_machine/numbers/7.png
index 1b8b77b2a..1b8b77b2a 100755..100644
--- a/graphics/slot_machine/numbers/7.png
+++ b/graphics/slot_machine/numbers/7.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/8.png b/graphics/slot_machine/numbers/8.png
index 17fe7938f..17fe7938f 100755..100644
--- a/graphics/slot_machine/numbers/8.png
+++ b/graphics/slot_machine/numbers/8.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/9.png b/graphics/slot_machine/numbers/9.png
index f684e0be7..f684e0be7 100755..100644
--- a/graphics/slot_machine/numbers/9.png
+++ b/graphics/slot_machine/numbers/9.png
Binary files differ
diff --git a/graphics/slot_machine/reel_machine.png b/graphics/slot_machine/reel_machine.png
index 4f0ae169d..4f0ae169d 100755..100644
--- a/graphics/slot_machine/reel_machine.png
+++ b/graphics/slot_machine/reel_machine.png
Binary files differ
diff --git a/graphics/slot_machine/reel_pikachu.png b/graphics/slot_machine/reel_pikachu.png
index 29b004c84..29b004c84 100755..100644
--- a/graphics/slot_machine/reel_pikachu.png
+++ b/graphics/slot_machine/reel_pikachu.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/1.png b/graphics/slot_machine/reel_symbols/1.png
index 73e9d3345..73e9d3345 100755..100644
--- a/graphics/slot_machine/reel_symbols/1.png
+++ b/graphics/slot_machine/reel_symbols/1.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/2.png b/graphics/slot_machine/reel_symbols/2.png
index 866f4cead..866f4cead 100755..100644
--- a/graphics/slot_machine/reel_symbols/2.png
+++ b/graphics/slot_machine/reel_symbols/2.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/3.png b/graphics/slot_machine/reel_symbols/3.png
index 9641dc4c5..9641dc4c5 100755..100644
--- a/graphics/slot_machine/reel_symbols/3.png
+++ b/graphics/slot_machine/reel_symbols/3.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/4.png b/graphics/slot_machine/reel_symbols/4.png
index b3319e0e4..b3319e0e4 100755..100644
--- a/graphics/slot_machine/reel_symbols/4.png
+++ b/graphics/slot_machine/reel_symbols/4.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/5.png b/graphics/slot_machine/reel_symbols/5.png
index 16ae0f318..16ae0f318 100755..100644
--- a/graphics/slot_machine/reel_symbols/5.png
+++ b/graphics/slot_machine/reel_symbols/5.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/6.png b/graphics/slot_machine/reel_symbols/6.png
index 3d170585f..3d170585f 100755..100644
--- a/graphics/slot_machine/reel_symbols/6.png
+++ b/graphics/slot_machine/reel_symbols/6.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/7.png b/graphics/slot_machine/reel_symbols/7.png
index e6535b380..e6535b380 100755..100644
--- a/graphics/slot_machine/reel_symbols/7.png
+++ b/graphics/slot_machine/reel_symbols/7.png
Binary files differ
diff --git a/graphics/slot_machine/spr0.pal b/graphics/slot_machine/spr0.pal
index 98665e9c4..98665e9c4 100755..100644
--- a/graphics/slot_machine/spr0.pal
+++ b/graphics/slot_machine/spr0.pal
diff --git a/graphics/slot_machine/spr1.pal b/graphics/slot_machine/spr1.pal
index 393528400..393528400 100755..100644
--- a/graphics/slot_machine/spr1.pal
+++ b/graphics/slot_machine/spr1.pal
diff --git a/graphics/slot_machine/spr2_ruby.pal b/graphics/slot_machine/spr2_ruby.pal
index e669c2c27..e669c2c27 100755..100644
--- a/graphics/slot_machine/spr2_ruby.pal
+++ b/graphics/slot_machine/spr2_ruby.pal
diff --git a/graphics/slot_machine/spr3_ruby.pal b/graphics/slot_machine/spr3_ruby.pal
index a4966f50c..a4966f50c 100755..100644
--- a/graphics/slot_machine/spr3_ruby.pal
+++ b/graphics/slot_machine/spr3_ruby.pal
diff --git a/graphics/slot_machine/spr4.pal b/graphics/slot_machine/spr4.pal
index c1617d073..c1617d073 100755..100644
--- a/graphics/slot_machine/spr4.pal
+++ b/graphics/slot_machine/spr4.pal
diff --git a/graphics/slot_machine/spr5.pal b/graphics/slot_machine/spr5.pal
index 61f60fb8a..61f60fb8a 100755..100644
--- a/graphics/slot_machine/spr5.pal
+++ b/graphics/slot_machine/spr5.pal
diff --git a/graphics/slot_machine/spr6.pal b/graphics/slot_machine/spr6.pal
index 4f74a3079..4f74a3079 100755..100644
--- a/graphics/slot_machine/spr6.pal
+++ b/graphics/slot_machine/spr6.pal
diff --git a/graphics/title_screen/groudon.png b/graphics/title_screen/groudon.png
index 6e4b5cc20..6e4b5cc20 100755..100644
--- a/graphics/title_screen/groudon.png
+++ b/graphics/title_screen/groudon.png
Binary files differ
diff --git a/graphics/title_screen/groudon_dark.pal b/graphics/title_screen/groudon_dark.pal
index 12f8dc3f2..12f8dc3f2 100755..100644
--- a/graphics/title_screen/groudon_dark.pal
+++ b/graphics/title_screen/groudon_dark.pal
diff --git a/graphics/title_screen/groudon_glow.pal b/graphics/title_screen/groudon_glow.pal
index 43f83d357..43f83d357 100755..100644
--- a/graphics/title_screen/groudon_glow.pal
+++ b/graphics/title_screen/groudon_glow.pal
diff --git a/graphics/title_screen/kyogre.png b/graphics/title_screen/kyogre.png
index 81dc829c8..81dc829c8 100755..100644
--- a/graphics/title_screen/kyogre.png
+++ b/graphics/title_screen/kyogre.png
Binary files differ
diff --git a/graphics/title_screen/kyogre_dark.pal b/graphics/title_screen/kyogre_dark.pal
index 05e7c5270..05e7c5270 100755..100644
--- a/graphics/title_screen/kyogre_dark.pal
+++ b/graphics/title_screen/kyogre_dark.pal
diff --git a/graphics/title_screen/kyogre_glow.pal b/graphics/title_screen/kyogre_glow.pal
index 85c483666..85c483666 100755..100644
--- a/graphics/title_screen/kyogre_glow.pal
+++ b/graphics/title_screen/kyogre_glow.pal
diff --git a/graphics/title_screen/logo_ruby.pal b/graphics/title_screen/logo_ruby.pal
index ea9820a4a..ea9820a4a 100755..100644
--- a/graphics/title_screen/logo_ruby.pal
+++ b/graphics/title_screen/logo_ruby.pal
diff --git a/graphics/title_screen/logo_sapphire.pal b/graphics/title_screen/logo_sapphire.pal
index e733c6d2c..e733c6d2c 100755..100644
--- a/graphics/title_screen/logo_sapphire.pal
+++ b/graphics/title_screen/logo_sapphire.pal
diff --git a/graphics/title_screen/pokemon_ruby.png b/graphics/title_screen/pokemon_ruby.png
index 7d141ad67..7d141ad67 100755..100644
--- a/graphics/title_screen/pokemon_ruby.png
+++ b/graphics/title_screen/pokemon_ruby.png
Binary files differ
diff --git a/graphics/title_screen/pokemon_sapphire.png b/graphics/title_screen/pokemon_sapphire.png
index 9363289df..9363289df 100755..100644
--- a/graphics/title_screen/pokemon_sapphire.png
+++ b/graphics/title_screen/pokemon_sapphire.png
Binary files differ
diff --git a/graphics/title_screen/rubyversion.png b/graphics/title_screen/rubyversion.png
index d12eb7bfa..d12eb7bfa 100755..100644
--- a/graphics/title_screen/rubyversion.png
+++ b/graphics/title_screen/rubyversion.png
Binary files differ
diff --git a/graphics/title_screen/sapphireversion.png b/graphics/title_screen/sapphireversion.png
index 53b494d5e..53b494d5e 100755..100644
--- a/graphics/title_screen/sapphireversion.png
+++ b/graphics/title_screen/sapphireversion.png
Binary files differ
diff --git a/graphics/trade/cable_end.png b/graphics/trade/cable_end.png
index 1d7828a00..1d7828a00 100755..100644
--- a/graphics/trade/cable_end.png
+++ b/graphics/trade/cable_end.png
Binary files differ
diff --git a/graphics/trade/gba.pal b/graphics/trade/gba.pal
index 64a442293..64a442293 100755..100644
--- a/graphics/trade/gba.pal
+++ b/graphics/trade/gba.pal
diff --git a/graphics/trade/gba.png b/graphics/trade/gba.png
index 61ce32b4f..61ce32b4f 100755..100644
--- a/graphics/trade/gba.png
+++ b/graphics/trade/gba.png
Binary files differ
diff --git a/graphics/trade/gba_screen.png b/graphics/trade/gba_screen.png
index 4220e5e0d..4220e5e0d 100755..100644
--- a/graphics/trade/gba_screen.png
+++ b/graphics/trade/gba_screen.png
Binary files differ
diff --git a/graphics/trade/glow1.png b/graphics/trade/glow1.png
index e223d97ce..e223d97ce 100755..100644
--- a/graphics/trade/glow1.png
+++ b/graphics/trade/glow1.png
Binary files differ
diff --git a/graphics/trade/glow2.png b/graphics/trade/glow2.png
index e7729bc84..e7729bc84 100755..100644
--- a/graphics/trade/glow2.png
+++ b/graphics/trade/glow2.png
Binary files differ
diff --git a/graphics/trade/misc.pal b/graphics/trade/misc.pal
index 32fafddfc..32fafddfc 100755..100644
--- a/graphics/trade/misc.pal
+++ b/graphics/trade/misc.pal
diff --git a/graphics/trade/shadow.pal b/graphics/trade/shadow.pal
index a4bec6478..a4bec6478 100755..100644
--- a/graphics/trade/shadow.pal
+++ b/graphics/trade/shadow.pal
diff --git a/graphics/trade/shadow.png b/graphics/trade/shadow.png
index 109979f90..109979f90 100755..100644
--- a/graphics/trade/shadow.png
+++ b/graphics/trade/shadow.png
Binary files differ
diff --git a/graphics/types/bug.png b/graphics/types/bug.png
index c11629b21..c11629b21 100755..100644
--- a/graphics/types/bug.png
+++ b/graphics/types/bug.png
Binary files differ
diff --git a/graphics/types/contest_beauty.png b/graphics/types/contest_beauty.png
index b52fe3ca4..b52fe3ca4 100755..100644
--- a/graphics/types/contest_beauty.png
+++ b/graphics/types/contest_beauty.png
Binary files differ
diff --git a/graphics/types/contest_cool.png b/graphics/types/contest_cool.png
index 813e91f80..813e91f80 100755..100644
--- a/graphics/types/contest_cool.png
+++ b/graphics/types/contest_cool.png
Binary files differ
diff --git a/graphics/types/contest_cute.png b/graphics/types/contest_cute.png
index ece852a9d..ece852a9d 100755..100644
--- a/graphics/types/contest_cute.png
+++ b/graphics/types/contest_cute.png
Binary files differ
diff --git a/graphics/types/contest_smart.png b/graphics/types/contest_smart.png
index 8e0d903f1..8e0d903f1 100755..100644
--- a/graphics/types/contest_smart.png
+++ b/graphics/types/contest_smart.png
Binary files differ
diff --git a/graphics/types/contest_tough.png b/graphics/types/contest_tough.png
index a76e9cba4..a76e9cba4 100755..100644
--- a/graphics/types/contest_tough.png
+++ b/graphics/types/contest_tough.png
Binary files differ
diff --git a/graphics/types/dark.png b/graphics/types/dark.png
index 3380297da..3380297da 100755..100644
--- a/graphics/types/dark.png
+++ b/graphics/types/dark.png
Binary files differ
diff --git a/graphics/types/dragon.png b/graphics/types/dragon.png
index 908073260..908073260 100755..100644
--- a/graphics/types/dragon.png
+++ b/graphics/types/dragon.png
Binary files differ
diff --git a/graphics/types/electric.png b/graphics/types/electric.png
index 84db710b6..84db710b6 100755..100644
--- a/graphics/types/electric.png
+++ b/graphics/types/electric.png
Binary files differ
diff --git a/graphics/types/fight.png b/graphics/types/fight.png
index 6431c9bba..6431c9bba 100755..100644
--- a/graphics/types/fight.png
+++ b/graphics/types/fight.png
Binary files differ
diff --git a/graphics/types/fire.png b/graphics/types/fire.png
index f6db950c8..f6db950c8 100755..100644
--- a/graphics/types/fire.png
+++ b/graphics/types/fire.png
Binary files differ
diff --git a/graphics/types/flying.png b/graphics/types/flying.png
index 144d0010b..144d0010b 100755..100644
--- a/graphics/types/flying.png
+++ b/graphics/types/flying.png
Binary files differ
diff --git a/graphics/types/ghost.png b/graphics/types/ghost.png
index 5820fe93a..5820fe93a 100755..100644
--- a/graphics/types/ghost.png
+++ b/graphics/types/ghost.png
Binary files differ
diff --git a/graphics/types/grass.png b/graphics/types/grass.png
index 6d3e870ca..6d3e870ca 100755..100644
--- a/graphics/types/grass.png
+++ b/graphics/types/grass.png
Binary files differ
diff --git a/graphics/types/ground.png b/graphics/types/ground.png
index 2872b1367..2872b1367 100755..100644
--- a/graphics/types/ground.png
+++ b/graphics/types/ground.png
Binary files differ
diff --git a/graphics/types/ice.png b/graphics/types/ice.png
index a611d1f4a..a611d1f4a 100755..100644
--- a/graphics/types/ice.png
+++ b/graphics/types/ice.png
Binary files differ
diff --git a/graphics/types/move_types_1.pal b/graphics/types/move_types_1.pal
index 951aa69cb..951aa69cb 100755..100644
--- a/graphics/types/move_types_1.pal
+++ b/graphics/types/move_types_1.pal
diff --git a/graphics/types/move_types_2.pal b/graphics/types/move_types_2.pal
index 08dcea47c..08dcea47c 100755..100644
--- a/graphics/types/move_types_2.pal
+++ b/graphics/types/move_types_2.pal
diff --git a/graphics/types/move_types_3.pal b/graphics/types/move_types_3.pal
index 4db37235b..4db37235b 100755..100644
--- a/graphics/types/move_types_3.pal
+++ b/graphics/types/move_types_3.pal
diff --git a/graphics/types/mystery.png b/graphics/types/mystery.png
index a2ea01d55..a2ea01d55 100755..100644
--- a/graphics/types/mystery.png
+++ b/graphics/types/mystery.png
Binary files differ
diff --git a/graphics/types/normal.png b/graphics/types/normal.png
index 608a1f9c9..608a1f9c9 100755..100644
--- a/graphics/types/normal.png
+++ b/graphics/types/normal.png
Binary files differ
diff --git a/graphics/types/poison.png b/graphics/types/poison.png
index 2fab1ad53..2fab1ad53 100755..100644
--- a/graphics/types/poison.png
+++ b/graphics/types/poison.png
Binary files differ
diff --git a/graphics/types/psychic.png b/graphics/types/psychic.png
index 98f70406e..98f70406e 100755..100644
--- a/graphics/types/psychic.png
+++ b/graphics/types/psychic.png
Binary files differ
diff --git a/graphics/types/rock.png b/graphics/types/rock.png
index e95b2a8ef..e95b2a8ef 100755..100644
--- a/graphics/types/rock.png
+++ b/graphics/types/rock.png
Binary files differ
diff --git a/graphics/types/steel.png b/graphics/types/steel.png
index b952031fd..b952031fd 100755..100644
--- a/graphics/types/steel.png
+++ b/graphics/types/steel.png
Binary files differ
diff --git a/graphics/types/water.png b/graphics/types/water.png
index 19ae3ebe3..19ae3ebe3 100755..100644
--- a/graphics/types/water.png
+++ b/graphics/types/water.png
Binary files differ
diff --git a/graphics/unknown/ball.pal b/graphics/unknown/ball.pal
index b4e7ac7ca..b4e7ac7ca 100755..100644
--- a/graphics/unknown/ball.pal
+++ b/graphics/unknown/ball.pal
diff --git a/graphics/unknown/ball.png b/graphics/unknown/ball.png
index 9932b916d..9932b916d 100755..100644
--- a/graphics/unknown/ball.png
+++ b/graphics/unknown/ball.png
Binary files differ
diff --git a/graphics/unknown/unknown_3E3BE0.png b/graphics/unknown/unknown_3E3BE0.png
index 98c067833..98c067833 100755..100644
--- a/graphics/unknown/unknown_3E3BE0.png
+++ b/graphics/unknown/unknown_3E3BE0.png
Binary files differ
diff --git a/graphics/unknown/unknown_D04388.png b/graphics/unknown/unknown_D04388.png
index 0b2ae80f9..0b2ae80f9 100755..100644
--- a/graphics/unknown/unknown_D04388.png
+++ b/graphics/unknown/unknown_D04388.png
Binary files differ
diff --git a/graphics/unknown/unknown_D07B68.pal b/graphics/unknown/unknown_D07B68.pal
index ca77648e6..ca77648e6 100755..100644
--- a/graphics/unknown/unknown_D07B68.pal
+++ b/graphics/unknown/unknown_D07B68.pal
diff --git a/graphics/unknown/unknown_D07B68.png b/graphics/unknown/unknown_D07B68.png
index d36afa64d..d36afa64d 100755..100644
--- a/graphics/unknown/unknown_D07B68.png
+++ b/graphics/unknown/unknown_D07B68.png
Binary files differ
diff --git a/graphics/unknown/unknown_D07B68_2.pal b/graphics/unknown/unknown_D07B68_2.pal
index 44f4b55d6..44f4b55d6 100755..100644
--- a/graphics/unknown/unknown_D07B68_2.pal
+++ b/graphics/unknown/unknown_D07B68_2.pal
diff --git a/graphics/unknown/unknown_D0CFAC.bin b/graphics/unknown/unknown_D0CFAC.bin
index 4b6b2b106..4b6b2b106 100755..100644
--- a/graphics/unknown/unknown_D0CFAC.bin
+++ b/graphics/unknown/unknown_D0CFAC.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D0CFD0.bin b/graphics/unknown/unknown_D0CFD0.bin
index 25fc33a73..25fc33a73 100755..100644
--- a/graphics/unknown/unknown_D0CFD0.bin
+++ b/graphics/unknown/unknown_D0CFD0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D0CFF4.bin b/graphics/unknown/unknown_D0CFF4.bin
index 5b81e0216..5b81e0216 100755..100644
--- a/graphics/unknown/unknown_D0CFF4.bin
+++ b/graphics/unknown/unknown_D0CFF4.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D0D070.bin b/graphics/unknown/unknown_D0D070.bin
index 15379a9ce..15379a9ce 100755..100644
--- a/graphics/unknown/unknown_D0D070.bin
+++ b/graphics/unknown/unknown_D0D070.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D0D2B4.bin b/graphics/unknown/unknown_D0D2B4.bin
index d42729b58..d42729b58 100755..100644
--- a/graphics/unknown/unknown_D0D2B4.bin
+++ b/graphics/unknown/unknown_D0D2B4.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D12FEC.png b/graphics/unknown/unknown_D12FEC.png
index 96c49a992..96c49a992 100755..100644
--- a/graphics/unknown/unknown_D12FEC.png
+++ b/graphics/unknown/unknown_D12FEC.png
Binary files differ
diff --git a/graphics/unknown/unknown_D1300C.png b/graphics/unknown/unknown_D1300C.png
index 0c077dd0b..0c077dd0b 100755..100644
--- a/graphics/unknown/unknown_D1300C.png
+++ b/graphics/unknown/unknown_D1300C.png
Binary files differ
diff --git a/graphics/unknown/unknown_D15D64.bin b/graphics/unknown/unknown_D15D64.bin
index 40de9e529..40de9e529 100755..100644
--- a/graphics/unknown/unknown_D15D64.bin
+++ b/graphics/unknown/unknown_D15D64.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D17424.bin b/graphics/unknown/unknown_D17424.bin
index ce20ff15a..ce20ff15a 100755..100644
--- a/graphics/unknown/unknown_D17424.bin
+++ b/graphics/unknown/unknown_D17424.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D176CC.bin b/graphics/unknown/unknown_D176CC.bin
index b2567ca7c..b2567ca7c 100755..100644
--- a/graphics/unknown/unknown_D176CC.bin
+++ b/graphics/unknown/unknown_D176CC.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D177D8.bin b/graphics/unknown/unknown_D177D8.bin
index e8a506838..e8a506838 100755..100644
--- a/graphics/unknown/unknown_D177D8.bin
+++ b/graphics/unknown/unknown_D177D8.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D17C3C.bin b/graphics/unknown/unknown_D17C3C.bin
index 77e35348a..77e35348a 100755..100644
--- a/graphics/unknown/unknown_D17C3C.bin
+++ b/graphics/unknown/unknown_D17C3C.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D1C060.bin b/graphics/unknown/unknown_D1C060.bin
index e4776cba4..e4776cba4 100755..100644
--- a/graphics/unknown/unknown_D1C060.bin
+++ b/graphics/unknown/unknown_D1C060.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D1C060.pal b/graphics/unknown/unknown_D1C060.pal
index 0b2590f44..0b2590f44 100755..100644
--- a/graphics/unknown/unknown_D1C060.pal
+++ b/graphics/unknown/unknown_D1C060.pal
diff --git a/graphics/unknown/unknown_D1C060.png b/graphics/unknown/unknown_D1C060.png
index 2371241d7..2371241d7 100755..100644
--- a/graphics/unknown/unknown_D1C060.png
+++ b/graphics/unknown/unknown_D1C060.png
Binary files differ
diff --git a/graphics/unknown/unknown_E6BC04.bin b/graphics/unknown/unknown_E6BC04.bin
index 91230cb01..91230cb01 100755..100644
--- a/graphics/unknown/unknown_E6BC04.bin
+++ b/graphics/unknown/unknown_E6BC04.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E70968.bin b/graphics/unknown/unknown_E70968.bin
index d48de1d6f..d48de1d6f 100755..100644
--- a/graphics/unknown/unknown_E70968.bin
+++ b/graphics/unknown/unknown_E70968.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E70C38.bin b/graphics/unknown/unknown_E70C38.bin
index 6a6f7c049..6a6f7c049 100755..100644
--- a/graphics/unknown/unknown_E70C38.bin
+++ b/graphics/unknown/unknown_E70C38.bin
diff --git a/graphics/unknown/unknown_E70F0C.bin b/graphics/unknown/unknown_E70F0C.bin
index 6312b8645..6312b8645 100755..100644
--- a/graphics/unknown/unknown_E70F0C.bin
+++ b/graphics/unknown/unknown_E70F0C.bin
diff --git a/graphics/unknown/unknown_E8096C.png b/graphics/unknown/unknown_E8096C.png
index 92fe2da3a..92fe2da3a 100755..100644
--- a/graphics/unknown/unknown_E8096C.png
+++ b/graphics/unknown/unknown_E8096C.png
Binary files differ
diff --git a/graphics/unknown/unknown_E953D0.bin b/graphics/unknown/unknown_E953D0.bin
index 1c4ec2567..1c4ec2567 100755..100644
--- a/graphics/unknown/unknown_E953D0.bin
+++ b/graphics/unknown/unknown_E953D0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E966B8.pal b/graphics/unknown/unknown_E966B8.pal
index c4fbe6b86..c4fbe6b86 100755..100644
--- a/graphics/unknown/unknown_E966B8.pal
+++ b/graphics/unknown/unknown_E966B8.pal
diff --git a/graphics/unknown/unknown_E96738.bin b/graphics/unknown/unknown_E96738.bin
index 154db8924..154db8924 100755..100644
--- a/graphics/unknown/unknown_E96738.bin
+++ b/graphics/unknown/unknown_E96738.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E96D2C.bin b/graphics/unknown/unknown_E96D2C.bin
index 83bf29bec..83bf29bec 100755..100644
--- a/graphics/unknown/unknown_E96D2C.bin
+++ b/graphics/unknown/unknown_E96D2C.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E997E8.pal b/graphics/unknown/unknown_E997E8.pal
index 34ce0e2a5..34ce0e2a5 100755..100644
--- a/graphics/unknown/unknown_E997E8.pal
+++ b/graphics/unknown/unknown_E997E8.pal
diff --git a/graphics/unknown/unknown_E99FB0.bin b/graphics/unknown/unknown_E99FB0.bin
index 4ad21c463..4ad21c463 100755..100644
--- a/graphics/unknown/unknown_E99FB0.bin
+++ b/graphics/unknown/unknown_E99FB0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9AB40.pal b/graphics/unknown/unknown_E9AB40.pal
index 086bdf503..086bdf503 100755..100644
--- a/graphics/unknown/unknown_E9AB40.pal
+++ b/graphics/unknown/unknown_E9AB40.pal
diff --git a/graphics/unknown/unknown_E9AB60.bin b/graphics/unknown/unknown_E9AB60.bin
index 713dadb65..713dadb65 100755..100644
--- a/graphics/unknown/unknown_E9AB60.bin
+++ b/graphics/unknown/unknown_E9AB60.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9C6DC.bin b/graphics/unknown/unknown_E9C6DC.bin
index a9d1e28fb..a9d1e28fb 100755..100644
--- a/graphics/unknown/unknown_E9C6DC.bin
+++ b/graphics/unknown/unknown_E9C6DC.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9F7E4.bin b/graphics/unknown/unknown_E9F7E4.bin
index 0e6b7e775..0e6b7e775 100755..100644
--- a/graphics/unknown/unknown_E9F7E4.bin
+++ b/graphics/unknown/unknown_E9F7E4.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9F988.pal b/graphics/unknown/unknown_E9F988.pal
index 17cd7b267..17cd7b267 100755..100644
--- a/graphics/unknown/unknown_E9F988.pal
+++ b/graphics/unknown/unknown_E9F988.pal
diff --git a/graphics/unknown/unknown_E9F9E8.pal b/graphics/unknown/unknown_E9F9E8.pal
index 6a3616159..6a3616159 100755..100644
--- a/graphics/unknown/unknown_E9F9E8.pal
+++ b/graphics/unknown/unknown_E9F9E8.pal
diff --git a/graphics/unknown/unknown_E9FBA0.bin b/graphics/unknown/unknown_E9FBA0.bin
index 74a7dc73a..74a7dc73a 100755..100644
--- a/graphics/unknown/unknown_E9FBA0.bin
+++ b/graphics/unknown/unknown_E9FBA0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9FC64.bin b/graphics/unknown/unknown_E9FC64.bin
index 0864924dc..0864924dc 100755..100644
--- a/graphics/unknown/unknown_E9FC64.bin
+++ b/graphics/unknown/unknown_E9FC64.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9FEB4.bin b/graphics/unknown/unknown_E9FEB4.bin
index 75581f46e..75581f46e 100755..100644
--- a/graphics/unknown/unknown_E9FEB4.bin
+++ b/graphics/unknown/unknown_E9FEB4.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9FF58.bin b/graphics/unknown/unknown_E9FF58.bin
index d9dc0b3b8..d9dc0b3b8 100755..100644
--- a/graphics/unknown/unknown_E9FF58.bin
+++ b/graphics/unknown/unknown_E9FF58.bin
Binary files differ
diff --git a/graphics/unused/basic_frame.bin b/graphics/unused/basic_frame.bin
index 8e83eb9f5..8e83eb9f5 100755..100644
--- a/graphics/unused/basic_frame.bin
+++ b/graphics/unused/basic_frame.bin
Binary files differ
diff --git a/graphics/unused/basic_frame.pal b/graphics/unused/basic_frame.pal
index 70ff9b632..70ff9b632 100755..100644
--- a/graphics/unused/basic_frame.pal
+++ b/graphics/unused/basic_frame.pal
diff --git a/graphics/unused/basic_frame.png b/graphics/unused/basic_frame.png
index 132671581..132671581 100755..100644
--- a/graphics/unused/basic_frame.png
+++ b/graphics/unused/basic_frame.png
Binary files differ
diff --git a/graphics/unused/battle_anim_023.pal b/graphics/unused/battle_anim_023.pal
index 8e6e6e902..8e6e6e902 100755..100644
--- a/graphics/unused/battle_anim_023.pal
+++ b/graphics/unused/battle_anim_023.pal
diff --git a/graphics/unused/blank_frame.bin b/graphics/unused/blank_frame.bin
index e9784eb4c..e9784eb4c 100755..100644
--- a/graphics/unused/blank_frame.bin
+++ b/graphics/unused/blank_frame.bin
Binary files differ
diff --git a/graphics/unused/blue_frame.bin b/graphics/unused/blue_frame.bin
index d5c3b6600..d5c3b6600 100755..100644
--- a/graphics/unused/blue_frame.bin
+++ b/graphics/unused/blue_frame.bin
Binary files differ
diff --git a/graphics/unused/color_frames.pal b/graphics/unused/color_frames.pal
index 56bf2a29c..56bf2a29c 100755..100644
--- a/graphics/unused/color_frames.pal
+++ b/graphics/unused/color_frames.pal
diff --git a/graphics/unused/color_frames.png b/graphics/unused/color_frames.png
index 9270879eb..9270879eb 100755..100644
--- a/graphics/unused/color_frames.png
+++ b/graphics/unused/color_frames.png
Binary files differ
diff --git a/graphics/unused/goosuto.bin b/graphics/unused/goosuto.bin
index 8e5329157..8e5329157 100755..100644
--- a/graphics/unused/goosuto.bin
+++ b/graphics/unused/goosuto.bin
Binary files differ
diff --git a/graphics/unused/goosuto.pal b/graphics/unused/goosuto.pal
index 4315453b8..4315453b8 100755..100644
--- a/graphics/unused/goosuto.pal
+++ b/graphics/unused/goosuto.pal
diff --git a/graphics/unused/goosuto.png b/graphics/unused/goosuto.png
index 257a25c71..257a25c71 100755..100644
--- a/graphics/unused/goosuto.png
+++ b/graphics/unused/goosuto.png
Binary files differ
diff --git a/graphics/unused/green_frame.bin b/graphics/unused/green_frame.bin
index b381235d9..b381235d9 100755..100644
--- a/graphics/unused/green_frame.bin
+++ b/graphics/unused/green_frame.bin
Binary files differ
diff --git a/graphics/unused/line_sketch.pal b/graphics/unused/line_sketch.pal
index dc1d51763..dc1d51763 100755..100644
--- a/graphics/unused/line_sketch.pal
+++ b/graphics/unused/line_sketch.pal
diff --git a/graphics/unused/line_sketch.png b/graphics/unused/line_sketch.png
index fdfc8d771..fdfc8d771 100755..100644
--- a/graphics/unused/line_sketch.png
+++ b/graphics/unused/line_sketch.png
Binary files differ
diff --git a/graphics/unused/line_sketch_2.bin b/graphics/unused/line_sketch_2.bin
index e68d116a3..e68d116a3 100755..100644
--- a/graphics/unused/line_sketch_2.bin
+++ b/graphics/unused/line_sketch_2.bin
Binary files differ
diff --git a/graphics/unused/line_sketch_2.png b/graphics/unused/line_sketch_2.png
index cb70b3d83..cb70b3d83 100755..100644
--- a/graphics/unused/line_sketch_2.png
+++ b/graphics/unused/line_sketch_2.png
Binary files differ
diff --git a/graphics/unused/metronome_hand_small.png b/graphics/unused/metronome_hand_small.png
index bd6cc8530..bd6cc8530 100755..100644
--- a/graphics/unused/metronome_hand_small.png
+++ b/graphics/unused/metronome_hand_small.png
Binary files differ
diff --git a/graphics/unused/music_notes.png b/graphics/unused/music_notes.png
index af89e55a0..af89e55a0 100755..100644
--- a/graphics/unused/music_notes.png
+++ b/graphics/unused/music_notes.png
Binary files differ
diff --git a/graphics/unused/numbers.pal b/graphics/unused/numbers.pal
index 3955aa77a..3955aa77a 100755..100644
--- a/graphics/unused/numbers.pal
+++ b/graphics/unused/numbers.pal
diff --git a/graphics/unused/numbers.png b/graphics/unused/numbers.png
index 2c816c426..2c816c426 100755..100644
--- a/graphics/unused/numbers.png
+++ b/graphics/unused/numbers.png
Binary files differ
diff --git a/graphics/unused/old_battle_interface_1.png b/graphics/unused/old_battle_interface_1.png
index 0b2fe5eb7..0b2fe5eb7 100755..100644
--- a/graphics/unused/old_battle_interface_1.png
+++ b/graphics/unused/old_battle_interface_1.png
Binary files differ
diff --git a/graphics/unused/old_battle_interface_2.png b/graphics/unused/old_battle_interface_2.png
index 04229ccda..04229ccda 100755..100644
--- a/graphics/unused/old_battle_interface_2.png
+++ b/graphics/unused/old_battle_interface_2.png
Binary files differ
diff --git a/graphics/unused/old_battle_interface_3.png b/graphics/unused/old_battle_interface_3.png
index 428c7765d..428c7765d 100755..100644
--- a/graphics/unused/old_battle_interface_3.png
+++ b/graphics/unused/old_battle_interface_3.png
Binary files differ
diff --git a/graphics/unused/old_battle_interface_tilemap.bin b/graphics/unused/old_battle_interface_tilemap.bin
index aae3307e7..aae3307e7 100755..100644
--- a/graphics/unused/old_battle_interface_tilemap.bin
+++ b/graphics/unused/old_battle_interface_tilemap.bin
Binary files differ
diff --git a/graphics/unused/old_beatup.pal b/graphics/unused/old_beatup.pal
index 31c43515e..31c43515e 100755..100644
--- a/graphics/unused/old_beatup.pal
+++ b/graphics/unused/old_beatup.pal
diff --git a/graphics/unused/old_beatup.png b/graphics/unused/old_beatup.png
index e2a0561e2..e2a0561e2 100755..100644
--- a/graphics/unused/old_beatup.png
+++ b/graphics/unused/old_beatup.png
Binary files differ
diff --git a/graphics/unused/old_bulbasaur.png b/graphics/unused/old_bulbasaur.png
index 729ebe789..729ebe789 100755..100644
--- a/graphics/unused/old_bulbasaur.png
+++ b/graphics/unused/old_bulbasaur.png
Binary files differ
diff --git a/graphics/unused/old_bulbasaur2.png b/graphics/unused/old_bulbasaur2.png
index f374e5a9f..f374e5a9f 100755..100644
--- a/graphics/unused/old_bulbasaur2.png
+++ b/graphics/unused/old_bulbasaur2.png
Binary files differ
diff --git a/graphics/unused/old_charizard.png b/graphics/unused/old_charizard.png
index e1470aada..e1470aada 100755..100644
--- a/graphics/unused/old_charizard.png
+++ b/graphics/unused/old_charizard.png
Binary files differ
diff --git a/graphics/unused/old_charmap.bin b/graphics/unused/old_charmap.bin
index aa15ea36e..aa15ea36e 100755..100644
--- a/graphics/unused/old_charmap.bin
+++ b/graphics/unused/old_charmap.bin
Binary files differ
diff --git a/graphics/unused/old_charmap.pal b/graphics/unused/old_charmap.pal
index cbcd5de4d..cbcd5de4d 100755..100644
--- a/graphics/unused/old_charmap.pal
+++ b/graphics/unused/old_charmap.pal
diff --git a/graphics/unused/old_charmap.png b/graphics/unused/old_charmap.png
index b5ea6e803..b5ea6e803 100755..100644
--- a/graphics/unused/old_charmap.png
+++ b/graphics/unused/old_charmap.png
Binary files differ
diff --git a/graphics/unused/old_contest.bin b/graphics/unused/old_contest.bin
index da6f4652e..da6f4652e 100755..100644
--- a/graphics/unused/old_contest.bin
+++ b/graphics/unused/old_contest.bin
Binary files differ
diff --git a/graphics/unused/old_contest.pal b/graphics/unused/old_contest.pal
index 69fde2000..69fde2000 100755..100644
--- a/graphics/unused/old_contest.pal
+++ b/graphics/unused/old_contest.pal
diff --git a/graphics/unused/old_contest_2.bin b/graphics/unused/old_contest_2.bin
index 06836cc19..06836cc19 100755..100644
--- a/graphics/unused/old_contest_2.bin
+++ b/graphics/unused/old_contest_2.bin
Binary files differ
diff --git a/graphics/unused/old_contest_2.pal b/graphics/unused/old_contest_2.pal
index 3fb174790..3fb174790 100755..100644
--- a/graphics/unused/old_contest_2.pal
+++ b/graphics/unused/old_contest_2.pal
diff --git a/graphics/unused/old_contest_2_1.png b/graphics/unused/old_contest_2_1.png
index 67b81de2d..67b81de2d 100755..100644
--- a/graphics/unused/old_contest_2_1.png
+++ b/graphics/unused/old_contest_2_1.png
Binary files differ
diff --git a/graphics/unused/old_contest_2_2.png b/graphics/unused/old_contest_2_2.png
index a33a8c324..a33a8c324 100755..100644
--- a/graphics/unused/old_contest_2_2.png
+++ b/graphics/unused/old_contest_2_2.png
Binary files differ
diff --git a/graphics/unused/old_contest_classes.png b/graphics/unused/old_contest_classes.png
index c2e7b5e29..c2e7b5e29 100755..100644
--- a/graphics/unused/old_contest_classes.png
+++ b/graphics/unused/old_contest_classes.png
Binary files differ
diff --git a/graphics/unused/old_contest_floor.png b/graphics/unused/old_contest_floor.png
index 94877b921..94877b921 100755..100644
--- a/graphics/unused/old_contest_floor.png
+++ b/graphics/unused/old_contest_floor.png
Binary files differ
diff --git a/graphics/unused/old_contest_frame_1.png b/graphics/unused/old_contest_frame_1.png
index 28eaae905..28eaae905 100755..100644
--- a/graphics/unused/old_contest_frame_1.png
+++ b/graphics/unused/old_contest_frame_1.png
Binary files differ
diff --git a/graphics/unused/old_contest_frame_2.png b/graphics/unused/old_contest_frame_2.png
index c8b20408c..c8b20408c 100755..100644
--- a/graphics/unused/old_contest_frame_2.png
+++ b/graphics/unused/old_contest_frame_2.png
Binary files differ
diff --git a/graphics/unused/old_contest_meter.png b/graphics/unused/old_contest_meter.png
index 606208b1f..606208b1f 100755..100644
--- a/graphics/unused/old_contest_meter.png
+++ b/graphics/unused/old_contest_meter.png
Binary files differ
diff --git a/graphics/unused/old_contest_numbers.png b/graphics/unused/old_contest_numbers.png
index 98c145976..98c145976 100755..100644
--- a/graphics/unused/old_contest_numbers.png
+++ b/graphics/unused/old_contest_numbers.png
Binary files differ
diff --git a/graphics/unused/old_contest_symbols.png b/graphics/unused/old_contest_symbols.png
index 87cac733e..87cac733e 100755..100644
--- a/graphics/unused/old_contest_symbols.png
+++ b/graphics/unused/old_contest_symbols.png
Binary files differ
diff --git a/graphics/unused/old_pal1.pal b/graphics/unused/old_pal1.pal
index 1e2ef9083..1e2ef9083 100755..100644
--- a/graphics/unused/old_pal1.pal
+++ b/graphics/unused/old_pal1.pal
diff --git a/graphics/unused/old_pal2.pal b/graphics/unused/old_pal2.pal
index 3c5e6ad7f..3c5e6ad7f 100755..100644
--- a/graphics/unused/old_pal2.pal
+++ b/graphics/unused/old_pal2.pal
diff --git a/graphics/unused/old_pal3.pal b/graphics/unused/old_pal3.pal
index d07e21019..d07e21019 100755..100644
--- a/graphics/unused/old_pal3.pal
+++ b/graphics/unused/old_pal3.pal
diff --git a/graphics/unused/old_pal4.pal b/graphics/unused/old_pal4.pal
index 60b814f75..60b814f75 100755..100644
--- a/graphics/unused/old_pal4.pal
+++ b/graphics/unused/old_pal4.pal
diff --git a/graphics/unused/old_pal5.pal b/graphics/unused/old_pal5.pal
index b6f481d46..b6f481d46 100755..100644
--- a/graphics/unused/old_pal5.pal
+++ b/graphics/unused/old_pal5.pal
diff --git a/graphics/unused/old_pal6.pal b/graphics/unused/old_pal6.pal
index 6d91e9918..6d91e9918 100755..100644
--- a/graphics/unused/old_pal6.pal
+++ b/graphics/unused/old_pal6.pal
diff --git a/graphics/unused/old_pal7.pal b/graphics/unused/old_pal7.pal
index d380bc65d..d380bc65d 100755..100644
--- a/graphics/unused/old_pal7.pal
+++ b/graphics/unused/old_pal7.pal
diff --git a/graphics/unused/red_frame.bin b/graphics/unused/red_frame.bin
index 5090b1b84..5090b1b84 100755..100644
--- a/graphics/unused/red_frame.bin
+++ b/graphics/unused/red_frame.bin
Binary files differ
diff --git a/graphics/unused/shadow.pal b/graphics/unused/shadow.pal
index 72d9b7406..72d9b7406 100755..100644
--- a/graphics/unused/shadow.pal
+++ b/graphics/unused/shadow.pal
diff --git a/graphics/unused/shadow.png b/graphics/unused/shadow.png
index 7d090ad3d..7d090ad3d 100755..100644
--- a/graphics/unused/shadow.png
+++ b/graphics/unused/shadow.png
Binary files differ
diff --git a/graphics/unused/water_splash.bin b/graphics/unused/water_splash.bin
index 059347fa7..059347fa7 100755..100644
--- a/graphics/unused/water_splash.bin
+++ b/graphics/unused/water_splash.bin
Binary files differ
diff --git a/graphics/unused/water_splash.pal b/graphics/unused/water_splash.pal
index ada1391df..ada1391df 100755..100644
--- a/graphics/unused/water_splash.pal
+++ b/graphics/unused/water_splash.pal
diff --git a/graphics/unused/water_splash.png b/graphics/unused/water_splash.png
index a8439a050..a8439a050 100755..100644
--- a/graphics/unused/water_splash.png
+++ b/graphics/unused/water_splash.png
Binary files differ
diff --git a/graphics/unused/yellow_frame.bin b/graphics/unused/yellow_frame.bin
index 30ba3ed01..30ba3ed01 100755..100644
--- a/graphics/unused/yellow_frame.bin
+++ b/graphics/unused/yellow_frame.bin
Binary files differ
diff --git a/graphics/weather/fog1.bin b/graphics/weather/fog1.bin
index 1f9d53f95..1f9d53f95 100755..100644
--- a/graphics/weather/fog1.bin
+++ b/graphics/weather/fog1.bin
Binary files differ
diff --git a/include/battle.h b/include/battle.h
index d93860094..d4cb53689 100644..100755
--- a/include/battle.h
+++ b/include/battle.h
@@ -28,8 +28,82 @@
#define AI_ACTION_UNK7 0x0040
#define AI_ACTION_UNK8 0x0080
+#define STATUS_SLEEP 0x7
+#define STATUS_POISON 0x8
+#define STATUS_BURN 0x10
+#define STATUS_FREEZE 0x20
+#define STATUS_PARALYSIS 0x40
+#define STATUS_TOXIC_POISON 0x80
+
+#define STATUS2_CONFUSION 0x00000007
+#define STATUS2_UPROAR 0x00000070
+#define STATUS2_LOCK_CONFUSE 0x00000C00
+#define STATUS2_MULTIPLETURNS 0x00001000
+#define STATUS2_WRAPPED 0x0000E000
+#define STATUS2_FOCUS_ENERGY 0x00100000
+#define STATUS2_TRANSFORMED 0x00200000
+#define STATUS2_RECHARGE 0x00400000
+#define STATUS2_RAGE 0x00800000
+#define STATUS2_SUBSTITUTE 0x01000000
+#define STATUS2_ESCAPE_PREVENTION 0x04000000
+#define STATUS2_NIGHTMARE 0x08000000
+#define STATUS2_CURSED 0x10000000
+#define STATUS2_FORESIGHT 0x20000000
+
+#define STATUS3_LEECHSEED_RECEIVER 0x3 //two bits for the bank that gets hp
+#define STATUS3_LEECHSEED 0x4
+#define STATUS3_ALWAYS_HITS 0x18 //two bits
+#define STATUS3_PERISH_SONG 0x20
+#define STATUS3_ON_AIR 0x40
+#define STATUS3_UNDERGROUND 0x80
+#define STATUS3_MINIMIZED 0x100
+#define STATUS3_CHARGED_UP 0x200
+#define STATUS3_ROOTED 0x400
+#define STATUS3_GRUDGE 0x4000
+#define STATUS3_CANT_SCORE_A_CRIT 0x8000
+#define STATUS3_MUDSPORT 0x10000
+#define STATUS3_WATERSPORT 0x20000
+#define STATUS3_UNDERWATER 0x40000
+
+#define HITMARKER_x20 0x0000020
+#define HITMARKER_DESTINYBOND 0x0000040
+#define HITMARKER_NO_ANIMATIONS 0x0000080
+#define HITMARKER_IGNORE_SUBSTITUTE 0x0000100
+#define HITMARKER_NO_ATTACKSTRING 0x0000200
+#define HITMARKER_ATTACKSTRING_PRINTED 0x0000400
+#define HITMARKER_NO_PPDEDUCT 0x0000800
+#define HITMARKER_IGNORE_SAFEGUARD 0x0002000
+#define HITMARKER_SYNCHRONISE_EFFECT 0x0004000
+#define HITMARKER_IGNORE_ON_AIR 0x0010000
+#define HITMARKER_IGNORE_UNDERGROUND 0x0020000
+#define HITMARKER_IGNORE_UNDERWATER 0x0040000
+#define HITMARKER_x80000 0x0080000
+#define HITMARKER_x100000 0x0100000
+#define HITMARKER_x400000 0x0400000
+#define HITMARKER_x800000 0x0800000
+#define HITMARKER_GRUDGE 0x1000000
+#define HITMARKER_OBEYS 0x2000000
+#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C))
+#define HITMARKER_UNK(bank) ((0x10000000 << bank))
+
#define MAX_TRAINER_ITEMS 4
#define MAX_MON_MOVES 4
+#define MAX_BANKS_BATTLE 4
+
+#define weather_rain 1
+#define weather_downpour 2
+#define weather_permament_rain 4
+#define WEATHER_RAINY ((weather_rain | weather_downpour | weather_permament_rain))
+
+#define weather_sandstorm 8
+#define weather_permament_sandstorm 0x10
+#define WEATHER_SANDSTORMY ((weather_sandstorm | weather_permament_sandstorm))
+
+#define weather_sun 0x20
+#define weather_permament_sun 0x40
+#define WEATHER_SUNNY ((weather_sun | weather_permament_sun))
+
+#define weather_hail 0x80
// needed to match the hack that is get_item, thanks cam, someone else clean this up later.
extern u8 unk_2000000[];
@@ -85,79 +159,247 @@ struct AI_ThinkingStruct /* 0x2016800 */
/* 0x18 */ u8 simulatedRNG[4];
};
-struct SmallBattleStruct1
-{
- u8 unk1;
- u8 unk2;
- u8 unk3;
- u8 unk4;
- // unknown size
-};
-
-struct SmallItemStruct
-{
- u8 itemLocal[2][3];
-};
-
struct BattleStruct /* 0x2000000 */
{
u8 filler0[0x15DDE];
/*0x15DDE*/ u8 unk15DDE;
/*0x15DDF*/ u8 unk15DDF;
- /*0x15DE0*/ u8 filler15DE0[0x23C]; // 0xAF off?
- struct SmallBattleStruct1 unk;
- u8 filler1[0x68];
- /* 0x16089 */ u8 safariFleeRate;
- u8 filler1_2[0x42];
- /* 0x160CB */ u8 linkPlayerIndex;
- /* 0x160CC */ struct SmallItemStruct item;
+ /*0x15DE0*/ u8 filler15DE0[0x222];
+ /*0x16002*/ u8 AnimTurn;
+ /*0x16003*/ u8 ScriptingActive;
+ /*0x16004*/ u8 WrappedMove1[4];
+ /*0x16008*/ u8 WrappedMove2[4];
+ /*0x1600C*/ u8 cmd49StateTracker;
+ /*0x1600D*/ u8 unk1600D;
+ /*0x1600E*/ u8 unk1600E;
+ /*0x1600F*/ u8 atk23StateTracker;
+ /*0x16010*/ u8 unk16010;
+ /*0x16011*/ u8 unk16011;
+ /*0x16012*/ u8 unk16012;
+ /*0x16013*/ u8 unk16013;
+ /*0x16014*/ u8 unk16014;
+ /*0x16015*/ u8 unk16015;
+ /*0x16016*/ u8 unk16016;
+ /*0x16017*/ u8 unk16017;
+ /*0x16018*/ u8 expGetterID;
+ /*0x16019*/ u8 unk16019;
+ /*0x1601A*/ u8 unk1601A;
+ /*0x1601B*/ u8 wildVictorySong;
+ /*0x1601C*/ u8 DynamicMoveType;
+ /*0x1601D*/ u8 unk1601D;
+ /*0x1601E*/ u8 statChanger;
+ /*0x1601F*/ u8 DmgMultiplier;
+ /*0x16020*/ u8 WrappedBy[4];
+ /*0x16024*/ u8 unk16024;
+ /*0x16025*/ u8 unk16025;
+ /*0x16026*/ u8 unk16026;
+ /*0x16027*/ u8 unk16027;
+ /*0x16028*/ u8 unk16028;
+ /*0x16029*/ u8 unk16029;
+ /*0x1602A*/ u8 unk1602A;
+ /*0x1602B*/ u8 unk1602B;
+ /*0x1602C*/ u8 unk1602C;
+ /*0x1602D*/ u8 unk1602D;
+ /*0x1602E*/ u8 unk1602E;
+ /*0x1602F*/ u8 unk1602F;
+ /*0x16030*/ u8 unk16030;
+ /*0x16031*/ u8 unk16031;
+ /*0x16032*/ u8 unk16032;
+ /*0x16033*/ u8 unk16033;
+ /*0x16034*/ u8 unk16034;
+ /*0x16035*/ u8 unk16035;
+ /*0x16036*/ u8 unk16036;
+ /*0x16037*/ u8 unk16037;
+ /*0x16038*/ u8 unk16038;
+ /*0x16039*/ u8 unk16039;
+ /*0x1603A*/ u8 unk1603A;
+ /*0x1603B*/ u8 unk1603B;
+ /*0x1603C*/ u8 unk1603C;
+ /*0x1603D*/ u8 unk1603D;
+ /*0x1603E*/ u8 unk1603E;
+ /*0x1603F*/ u8 unk1603F;
+ /*0x16040*/ u8 unk16040;
+ /*0x16041*/ u8 unk16041;
+ /*0x16042*/ u8 unk16042;
+ /*0x16043*/ u8 unk16043;
+ /*0x16044*/ u8 unk16044;
+ /*0x16045*/ u8 unk16045;
+ /*0x16046*/ u8 unk16046;
+ /*0x16047*/ u8 unk16047;
+ /*0x16048*/ u8 unk16048;
+ /*0x16049*/ u8 unk16049;
+ /*0x1604A*/ u8 unk1604A;
+ /*0x1604B*/ u8 unk1604B;
+ /*0x1604C*/ u8 unk1604C;
+ /*0x1604D*/ u8 unk1604D;
+ /*0x1604E*/ u8 unk1604E;
+ /*0x1604F*/ u8 unk1604F;
+ /*0x16050*/ u8 unk16050;
+ /*0x16051*/ u8 unk16051;
+ /*0x16052*/ u8 unk16052;
+ /*0x16053*/ u8 unk16053;
+ /*0x16054*/ u8 unk16054;
+ /*0x16055*/ u8 unk16055;
+ /*0x16056*/ u8 unk16056;
+ /*0x16057*/ u8 unk16057;
+ /*0x16058*/ u8 unk16058;
+ /*0x16059*/ u8 unk16059;
+ /*0x1605A*/ u8 unk1605A;
+ /*0x1605B*/ u8 unk1605B;
+ /*0x1605C*/ u16 exp;
+ /*0x1605E*/ u8 unk1605E;
+ /*0x1605F*/ u8 sentInPokes;
+ /*0x16060*/ u8 unk16060[4];
+ /*0x16064*/ u8 unk16064;
+ /*0x16065*/ u8 unk16065;
+ /*0x16066*/ u8 unk16066;
+ /*0x16067*/ u8 unk16067;
+ /*0x16068*/ u8 unk16068;
+ /*0x16069*/ u8 unk16069;
+ /*0x1606A*/ u8 unk1606A;
+ /*0x1606B*/ u8 unk1606B;
+ /*0x1606C*/ u8 unk1606C;
+ /*0x1606D*/ u8 unk1606D;
+ /*0x1606E*/ u8 unk1606E;
+ /*0x1606F*/ u8 unk1606F;
+ /*0x16070*/ u8 unk16070;
+ /*0x16071*/ u8 unk16071;
+ /*0x16072*/ u8 unk16072;
+ /*0x16073*/ u8 unk16073;
+ /*0x16074*/ u8 unk16074;
+ /*0x16075*/ u8 unk16075;
+ /*0x16076*/ u8 unk16076;
+ /*0x16077*/ u8 unk16077;
+ /*0x16078*/ u8 unk16078;
+ /*0x16079*/ u8 unk16079;
+ /*0x1607A*/ u8 unk1607A;
+ /*0x1607B*/ u8 unk1607B;
+ /*0x1607C*/ u8 unk1607C;
+ /*0x1607D*/ u8 unk1607D;
+ /*0x1607E*/ u8 unk1607E;
+ /*0x1607F*/ u8 unk1607F;
+ /*0x16080*/ u8 unk16080;
+ /*0x16081*/ u8 unk16081;
+ /*0x16082*/ u8 unk16082;
+ /*0x16083*/ u8 unk16083;
+ /*0x16084*/ u8 unk16084;
+ /*0x16085*/ u8 unk16085;
+ /*0x16086*/ u8 unk16086;
+ /*0x16087*/ u8 unk16087;
+ /*0x16088*/ u8 safariFleeRate;
+ /*0x16089*/ u8 unk16089;
+ /*0x1608A*/ u8 unk1608A;
+ /*0x1608B*/ u8 unk1608B;
+ /*0x1608C*/ u8 ChosenMoveID[4];
+ /*0x16090*/ u8 unk16090;
+ /*0x16091*/ u8 unk16091;
+ /*0x16092*/ u8 unk16092;
+ /*0x16093*/ u8 unk16093;
+ /*0x16094*/ u8 unk16094;
+ /*0x16095*/ u8 unk16095;
+ /*0x16096*/ u8 unk16096;
+ /*0x16097*/ u8 unk16097;
+ /*0x16098*/ u8 unk16098;
+ /*0x16099*/ u8 unk16099;
+ /*0x1609A*/ u8 unk1609a;
+ /*0x1609B*/ u8 unk1609b;
+ /*0x1609C*/ u8 unk1609C;
+ /*0x1609D*/ u8 unk1609D;
+ /*0x1609E*/ u8 unk1609E;
+ /*0x1609F*/ u8 unk1609F;
+ /*0x160A0*/ u8 unk160a0;
+ /*0x160A1*/ u8 AnimTargetsHit;
+ /*0x160A2*/ u8 expGetterBank;
+ /*0x160A3*/ u8 unk160A3;
+ /*0x160A4*/ u8 AnimArg1;
+ /*0x160A5*/ u8 AnimArg2;
+ /*0x160A6*/ u8 unk160A6;
+ /*0x160A7*/ u8 unk160A7;
+ /*0x160A8*/ u8 unk160A8;
+ /*0x160A9*/ u8 unk160A9;
+ /*0x160AA*/ u8 unk160Aa;
+ /*0x160AB*/ u8 unk160Ab;
+ /*0x160AC*/ u8 unk160AC;
+ /*0x160AD*/ u8 unk160AD;
+ /*0x160AE*/ u8 unk160AE;
+ /*0x160AF*/ u8 unk160AF;
+ /*0x160B0*/ u8 unk160B0;
+ /*0x160B1*/ u8 unk160B1;
+ /*0x160B2*/ u8 unk160B2;
+ /*0x160B3*/ u8 unk160B3;
+ /*0x160B4*/ u8 unk160B4;
+ /*0x160B5*/ u8 unk160B5;
+ /*0x160B6*/ u8 unk160B6;
+ /*0x160B7*/ u8 unk160B7;
+ /*0x160B8*/ u8 unk160B8;
+ /*0x160B9*/ u8 unk160B9;
+ /*0x160BA*/ u8 unk160Ba;
+ /*0x160BB*/ u8 unk160Bb;
+ /*0x160BC*/ u8 unk160BC;
+ /*0x160BD*/ u8 unk160BD;
+ /*0x160BE*/ u8 unk160BE;
+ /*0x160BF*/ u8 unk160BF;
+ /*0x160C0*/ u8 unk160C0;
+ /*0x160C1*/ u8 unk160C1;
+ /*0x160C2*/ u8 unk160C2;
+ /*0x160C3*/ u8 unk160C3;
+ /*0x160C4*/ u8 unk160C4;
+ /*0x160C5*/ u8 unk160C5;
+ /*0x160C6*/ u8 unk160C6;
+ /*0x160C7*/ u8 unk160C7;
+ /*0x160C8*/ u8 unk160C8;
+ /*0x160C9*/ u8 unk160C9;
+ /*0x160CA*/ u8 SynchroniseEffect;
+ /*0x160CB*/ u8 linkPlayerIndex;
+ /*0x160CC*/ u16 UsedHeldItems[4];
u8 filler2[0x72E];
- /* 0x16800 */ struct AI_ThinkingStruct ai; /* 0x2016800 */
- u8 filler1681C[0x1E4];
/* 0x16A00 */ struct UnkBattleStruct1 unk_2016A00_2;
};
-struct UnkBattleStruct4
+struct DisableStruct
{
/*0x00*/ u8 filler0[0x3];
- /*0x04*/ u16 unk4;
- /*0x06*/ u16 unk6;
- /*0x08*/ u8 unk8;
- /*0x09*/ u8 unk9;
- /*0x0A*/ u8 unkA;
+ /*0x04*/ u16 DisabledMove;
+ /*0x06*/ u16 EncoredMove;
+ /*0x08*/ u8 ProtectUses;
+ /*0x09*/ u8 StockpileCounter;
+ /*0x0A*/ u8 SubstituteHP;
u8 fillerB[4];
u8 unkF_0:4;
u8 unkF_4:4;
u8 filler10[3];
/*0x13*/ u8 taunt:4;
/*0x13*/ u8 unkC:4;
- /*0x14*/ u8 unk14;
- /*0x15*/ u8 unk15;
- /*0x16*/ u8 unk16;
- /*0x17*/ u8 filler17[0x4];
+ /*0x14*/ u8 BankPreventingEscape;
+ /*0x15*/ u8 BankWithSureHit;
+ /*0x16*/ u8 IsFirstTurn;
+ /*0x17*/ u8 unk17;
+ /*0x18*/ u8 TruantCounter;
+ /*0x19*/ u8 RechargeCounter;
+ /*0x1A*/ u8 unk1A[2];
};
-struct Struct30042E0
+struct BattleResults
{
- u8 unk0;
- u8 unk1;
- u8 unk2;
- u8 unk3;
- u8 unk4;
- u8 unk5_0:1;
- u8 unk5_1:1;
- u16 unk6;
- u8 unk8[10];
+ u8 PlayerFaintCounter; // 0x0
+ u8 OpponentFaintCounter; // 0x1
+ u8 unk2; // 0x2
+ u8 unk3; // 0x3
+ u8 unk4; // 0x4
+ u8 unk5_0:1; // 0x5
+ u8 unk5_1:1; // 0x5
+ u16 Poke1Species; // 0x6
+ u8 PokeString1[10]; // 0x8
u8 unk12;
- u8 unk13;
- u8 unk14[10];
+ u8 BattleTurnCounter; // 0x13
+ u8 PokeString2[10]; // 0x14
u8 filler1E[2];
- u16 unk20;
- u16 unk22;
- u16 unk24;
- u16 unk26;
- u16 unk28;
- u8 unk2A[10];
+ u16 LastOpponentSpecies; // 0x20
+ u16 LastUsedMove; // 0x22
+ u16 OpponentMove; // 0x24
+ u16 OpponentSpecies; // 0x26
+ u16 CaughtPoke; // 0x28
+ u8 CaughtNick[10]; // 0x2A
u8 filler34[2];
u8 unk36[10];
};
@@ -183,6 +425,7 @@ struct Struct2017810
u8 unk0_6:1;
u8 unk0_7:1;
u8 unk1_0:1;
+ u8 unk1_1:5;
u8 unk2;
u8 unk3;
u8 unk4;
@@ -208,8 +451,95 @@ struct Struct20238C8
u8 unk0_7:1;
};
+struct ProtectStruct
+{
+ /*field0*/
+ u32 Protected:1;
+ u32 Endured:1;
+ u32 OnlyStruggle:1;
+ u32 HelpingHand:1;
+ u32 BounceMove:1;
+ u32 StealMove:1;
+ u32 Flag0Unknown:1;
+ u32 PrlzImmobility:1;
+ /*field1*/
+ u32 ConfusionSelfDmg:1;
+ u32 NotEffective:1;
+ u32 ChargingTurn:1;
+ u32 FleeFlag:2; //for RunAway and Smoke Ball
+ u32 UsedImprisionedMove:1;
+ u32 LoveImmobility:1;
+ u32 UsedDisabledMove:1;
+ /*field2*/
+ u32 UsedTauntedMove:1;
+ u32 Flag2Unknown:1;
+ u32 FlinchImmobility:1;
+ u32 NotFirstStrike:1;
+ u32 Free : 4;
+ /*field3*/
+ u32 field3 : 8;
+ u32 PhysicalDmg;
+ u32 SpecialDmg;
+ u8 PhysicalBank;
+ u8 SpecialBank;
+ u16 fieldE;
+};
+
+struct SpecialStatus
+{
+ u8 statLowered : 1;
+ u8 lightningRodRedirected : 1;
+ u8 restoredBankSprite: 1;
+ u8 intimidatedPoke : 1;
+ u8 traced : 1;
+ u8 flag20 : 1;
+ u8 flag40 : 1;
+ u8 focusBanded : 1;
+ u8 field1[3];
+ u32 moveturnLostHP;
+ u32 moveturnlostHP_physical;
+ u32 moveturnLostHP_special;
+ u8 moveturnPhysicalBank;
+ u8 moveturnSpecialBank;
+ u8 field12;
+ u8 field13;
+};
+
+struct sideTimer
+{
+ u8 reflectTimer;
+ u8 reflectBank;
+ u8 lightscreenTimer;
+ u8 lightscreenBank;
+ u8 mistTimer;
+ u8 mistBank;
+ u8 safeguardTimer;
+ u8 safeguardBank;
+ u8 followmeTimer;
+ u8 followmeTarget;
+ u8 spikesAmount;
+ u8 fieldB;
+};
+
+struct WishFutureKnock
+{
+ u8 futureSightCounter[MAX_BANKS_BATTLE];
+ u8 futureSightAttacker[MAX_BANKS_BATTLE];
+ s32 futureSightDmg[MAX_BANKS_BATTLE];
+ u16 futureSightMove[MAX_BANKS_BATTLE];
+ u8 wishCounter[MAX_BANKS_BATTLE];
+ u8 wishUserBank[MAX_BANKS_BATTLE];
+ u8 weatherDuration;
+ u8 knockedOffPokes[2];
+};
+
extern struct UnkBattleStruct1 unk_2016A00;
-extern struct UnkBattleStruct4 gDisableStructs[];
+extern struct DisableStruct gDisableStructs[MAX_BANKS_BATTLE];
+extern struct BattleResults gBattleResults;
+extern struct ProtectStruct gProtectStructs[MAX_BANKS_BATTLE];
+extern struct SpecialStatus gSpecialStatuses[MAX_BANKS_BATTLE];
+extern struct sideTimer gSideTimer[2];
+extern struct WishFutureKnock gWishFutureKnock;
extern struct AI_ThinkingStruct gAIThinkingSpace;
extern struct Struct20238C8 gUnknown_020238C8;
@@ -225,6 +555,8 @@ extern u8 ewram[];
#define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810))
#define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840))
+extern u8 gBattleTextBuff1[];
+
// asm/battle_1.o
void sub_800D6D4();
void sub_800D74C();
@@ -260,7 +592,6 @@ void sub_8010800(void);
void sub_8010824(void);
void sub_8010874(void);
void bc_8012FAC(void);
-void bc_load_battlefield(void);
void sub_8011384(void);
void bc_801333C(void);
void bc_battle_begin_message(void);
@@ -297,8 +628,8 @@ u8 AbilityBattleEffects(u8, u8, u8, u8, u16);
u8 sub_801A02C();
// asm/battle_4.o
-void sub_801CAF8(u8, u8);
-void move_effectiveness_something(u16, u8, u8);
+void AI_CalcDmg(u8, u8);
+void TypeCalc(u16, u8, u8);
// asm/battle_5.o
void nullsub_91(void);
@@ -308,6 +639,7 @@ void c3_0802FDF4(u8);
void sub_802E3E4(u8, int);
void nullsub_8(u8);
void sub_802E414(void);
+void sub_802E424(void);
// asm/battle_7.o
void move_anim_start_t4(u8 a, u8 b, u8 c, u8 d);
diff --git a/include/data/field_map_obj/anim_func_ptrs.h b/include/data/field_map_obj/anim_func_ptrs.h
index 63575727d..63575727d 100755..100644
--- a/include/data/field_map_obj/anim_func_ptrs.h
+++ b/include/data/field_map_obj/anim_func_ptrs.h
diff --git a/include/data/field_map_obj/base_oam.h b/include/data/field_map_obj/base_oam.h
index 8595f97e7..8595f97e7 100755..100644
--- a/include/data/field_map_obj/base_oam.h
+++ b/include/data/field_map_obj/base_oam.h
diff --git a/include/data/field_map_obj/berry_tree_graphics_tables.h b/include/data/field_map_obj/berry_tree_graphics_tables.h
index 53a0fd482..53a0fd482 100755..100644
--- a/include/data/field_map_obj/berry_tree_graphics_tables.h
+++ b/include/data/field_map_obj/berry_tree_graphics_tables.h
diff --git a/include/data/field_map_obj/callback_subroutine_pointers.h b/include/data/field_map_obj/callback_subroutine_pointers.h
index d24a47184..d24a47184 100755..100644
--- a/include/data/field_map_obj/callback_subroutine_pointers.h
+++ b/include/data/field_map_obj/callback_subroutine_pointers.h
diff --git a/include/data/field_map_obj/field_effect_object_template_pointers.h b/include/data/field_map_obj/field_effect_object_template_pointers.h
index 8e19747ce..8e19747ce 100755..100644
--- a/include/data/field_map_obj/field_effect_object_template_pointers.h
+++ b/include/data/field_map_obj/field_effect_object_template_pointers.h
diff --git a/include/data/field_map_obj/field_effect_objects.h b/include/data/field_map_obj/field_effect_objects.h
index dc8a38542..dc8a38542 100755..100644
--- a/include/data/field_map_obj/field_effect_objects.h
+++ b/include/data/field_map_obj/field_effect_objects.h
diff --git a/include/data/field_map_obj/map_object_anims.h b/include/data/field_map_obj/map_object_anims.h
index 0d6e299ee..0d6e299ee 100755..100644
--- a/include/data/field_map_obj/map_object_anims.h
+++ b/include/data/field_map_obj/map_object_anims.h
diff --git a/include/data/field_map_obj/map_object_graphics_info.h b/include/data/field_map_obj/map_object_graphics_info.h
index 818c5b90c..818c5b90c 100755..100644
--- a/include/data/field_map_obj/map_object_graphics_info.h
+++ b/include/data/field_map_obj/map_object_graphics_info.h
diff --git a/include/data/field_map_obj/map_object_graphics_info_pointers.h b/include/data/field_map_obj/map_object_graphics_info_pointers.h
index c36827709..c36827709 100755..100644
--- a/include/data/field_map_obj/map_object_graphics_info_pointers.h
+++ b/include/data/field_map_obj/map_object_graphics_info_pointers.h
diff --git a/include/data/field_map_obj/map_object_pic_tables.h b/include/data/field_map_obj/map_object_pic_tables.h
index 37d579512..37d579512 100755..100644
--- a/include/data/field_map_obj/map_object_pic_tables.h
+++ b/include/data/field_map_obj/map_object_pic_tables.h
diff --git a/include/data/field_map_obj/map_object_subsprites.h b/include/data/field_map_obj/map_object_subsprites.h
index f928db88a..f928db88a 100755..100644
--- a/include/data/field_map_obj/map_object_subsprites.h
+++ b/include/data/field_map_obj/map_object_subsprites.h
diff --git a/include/data2.h b/include/data2.h
index 2289969b8..9dd26fd5f 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -53,4 +53,14 @@ extern const struct SpriteTemplate gSpriteTemplate_81FAF0C;
extern void *const gUnknown_081FAF4C[];
extern struct BattleMove gBattleMoves[];
+// data/graphics/trainers/front_pic_coords.inc
+extern const struct MonCoords gTrainerFrontPicCoords[];
+
+// data/graphics/trainers/front_pic_table.inc
+extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
+
+// data/graphics/trainers/front_pic_palette_table.inc
+extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
+
+
#endif // GUARD_DATA2_H
diff --git a/include/decoration.h b/include/decoration.h
index 2595d491a..7a6d8ef5a 100644..100755
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -274,7 +274,7 @@ extern const u8 *const gUnknown_083EC5E4[];
extern const u8 *const gUnknown_083EC624[];
extern u8 gUnknown_020388F7[];
extern const struct MenuAction2 gUnknown_083EC604[];
-extern const struct MenuAction3 gUnknown_083EC634[];
+extern const struct YesNoFuncTable gUnknown_083EC634[];
extern const u8 gUnknown_083EC65A[];
extern const u8 gUnknown_083EC97C[];
extern const u8 gUnknown_083EC984[];
diff --git a/include/field_camera.h b/include/field_camera.h
index 9021b579e..4ce207541 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -11,6 +11,8 @@ struct CameraSomething
s32 unk14;
};
+extern struct Camera gUnknown_0202E844;
+
void move_tilemap_camera_to_upper_left_corner(void);
void sub_8057A58(void);
void sub_8057B14(u16 *a, u16 *b);
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index 32438a9ad..a1dd53a2b 100755..100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -26,5 +26,6 @@ void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y);
void sub_8127ED0(u8, u8);
void sub_8127F28(u8, u8, s16);
u8 sub_8128124(u8 id);
+void ash(s16, s16, u16, u8);
#endif // GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 6595a51ca..6595a51ca 100755..100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
diff --git a/include/field_special_scene.h b/include/field_special_scene.h
index 5841d6bce..ef3f07120 100644
--- a/include/field_special_scene.h
+++ b/include/field_special_scene.h
@@ -8,6 +8,6 @@ void Task_Truck2(u8 taskId);
void Task_Truck3(u8 taskId);
void Task_HandleTruckSequence(u8 taskId);
void ExecuteTruckSequence(void);
-void EndTruckSequence(void);
+void EndTruckSequence(u8);
#endif // GUARD_FIELD_SPECIAL_SCENE_H
diff --git a/include/field_tasks.h b/include/field_tasks.h
index 53e704395..761d69ada 100644
--- a/include/field_tasks.h
+++ b/include/field_tasks.h
@@ -1,6 +1,12 @@
#ifndef GUARD_FIELD_TASKS_H
#define GUARD_FIELD_TASKS_H
+struct MetatileOffset {
+ s8 x;
+ s8 y;
+ u16 tileId;
+};
+
void SetUpFieldTasks();
void ActivatePerStepCallback(u8);
void ResetFieldTasksArgs(void);
diff --git a/include/global.h b/include/global.h
index e90fcdd0f..0f5bcde6d 100644
--- a/include/global.h
+++ b/include/global.h
@@ -43,6 +43,17 @@ fndec\
#define min(a, b) (a >= b ? a : b)
#define max(a, b) (a <= b ? a : b)
+// why does GF hate 2d arrays
+#define MULTI_DIM_ARR(x, dim, y) ((x) * dim + (y))
+
+// dim access enums
+enum
+{
+ B_8 = 1,
+ B_16 = 2,
+ B_32 = 4
+};
+
enum
{
VERSION_SAPPHIRE = 1,
diff --git a/include/graphics.h b/include/graphics.h
index c3fe20996..36b11fd0a 100644..100755
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2435,4 +2435,12 @@ extern const u8 gMonFrontPic_UnownQuestionMark[];
extern const u8 gMonBackPic_UnownQuestionMark[];
extern const u8 gMonIcon_UnownQuestionMark[];
+// src/pokeblock.c
+extern const u8 gMenuPokeblock_Gfx[];
+extern const u8 gMenuPokeblock_Tilemap[];
+extern const u8 gMenuPokeblock_Pal[];
+
+extern const u8 gMenuPokeblockDevice_Gfx[];
+extern const u8 gMenuPokeblockDevice_Pal[];
+
#endif // GUARD_GRAPHICS_H
diff --git a/include/item_use.h b/include/item_use.h
index b35389ee8..61a3b4f7a 100644
--- a/include/item_use.h
+++ b/include/item_use.h
@@ -1,6 +1,8 @@
#ifndef GUARD_ITEM_USE_H
#define GUARD_ITEM_USE_H
+extern u16 gScriptItemId;
+
void ItemUseOnFieldCB_Bike(u8);
void ItemUseOnFieldCB_Rod(u8);
void ItemUseOnFieldCB_Itemfinder(u8);
diff --git a/include/menu.h b/include/menu.h
index 9eeebce60..9b48ab79b 100644..100755
--- a/include/menu.h
+++ b/include/menu.h
@@ -15,12 +15,6 @@ struct MenuAction2
void (*func)(u8);
};
-struct MenuAction3
-{
- void (*func1)(u8);
- void (*func2)(u8);
-};
-
extern const struct MenuAction gMenuYesNoItems[];
extern struct Window gMenuWindow;
@@ -65,7 +59,7 @@ void sub_807274C(u8, u8, u8, u8, const struct MenuAction[], u8, u32);
s8 sub_80727CC(void);
u8 sub_807288C(u8);
void PrintMenuItems(u8, u8, u8, const struct MenuAction[]);
-void PrintMenuItemsReordered(u8, u8, u8, const struct MenuAction[], u8*);
+void PrintMenuItemsReordered(u8, u8, u8, const struct MenuAction[], const u8*);
void InitYesNoMenu(u8, u8, u8);
void DisplayYesNoMenu(u8, u8, u32);
s8 ProcessMenuInputNoWrap_(void);
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index 0e39a3732..1df5053e7 100644..100755
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -24,5 +24,7 @@ void BuyMenuFreeMemory(void);
void sub_80F98DC(int);
void sub_80F996C(u8);
void LoadScrollIndicatorPalette(void);
+void sub_80F98A4(u8);
+void StartVerticalScrollIndicators(u8);
#endif // GUARD_MENU_HELPERS_H
diff --git a/include/player_pc.h b/include/player_pc.h
index f2446ebdf..8debeda88 100644
--- a/include/player_pc.h
+++ b/include/player_pc.h
@@ -1,10 +1,6 @@
#ifndef GUARD_PLAYER_PC_H
#define GUARD_PLAYER_PC_H
-// general task defines
-#define TASK gTasks[taskId]
-#define FUNC func
-
// local task defines
#define PAGE_INDEX data[0]
#define ITEMS_ABOVE_TOP data[1]
diff --git a/include/pokeblock.h b/include/pokeblock.h
index b925894db..0d8e965e4 100755
--- a/include/pokeblock.h
+++ b/include/pokeblock.h
@@ -1,11 +1,35 @@
#ifndef GUARD_POKEBLOCK_H
#define GUARD_POKEBLOCK_H
+struct YesNoCBTable {
+ void (*yesFunc)(void);
+ void (*noFunc)(void);
+};
+
+enum {
+ PBLOCK_CLR_BLACK,
+ PBLOCK_CLR_RED,
+ PBLOCK_CLR_BLUE,
+ PBLOCK_CLR_PINK,
+ PBLOCK_CLR_GREEN,
+ PBLOCK_CLR_YELLOW
+};
+
+extern u8 ewram[];
+extern u8 gUnknown_02039244;
+extern u8 gUnknown_02039248[4];
+extern u8 gUnknown_0203924C;
+extern const u8 *gUnknown_03000758;
+
void sub_810B96C(void);
+u8 sub_810BA50(s16, s16, u8);
+u8 sub_810C9B0(struct Pokeblock *);
+s16 sub_810CA9C(const struct Pokeblock *, u8);
+u8 sub_810C9E8(struct Pokeblock *);
void sub_810BA7C(u8);
void ClearPokeblocks(void);
-void sub_810CA6C(s32);
+bool8 sub_810CA6C(u8);
+s16 sub_810CAE4(u8, const struct Pokeblock *);
u8 sub_810CB68(u8, u8*);
-s16 sub_810CAE4(u8, struct Pokeblock *);
#endif // GUARD_POKEBLOCK_H
diff --git a/include/rom4.h b/include/rom4.h
index eac4d29a2..803a38162 100644
--- a/include/rom4.h
+++ b/include/rom4.h
@@ -23,6 +23,7 @@ struct UCoords32
};
extern struct UCoords32 gUnknown_0821664C[];
+extern void (*gFieldCallback)(void);
// sub_8052F5C
void flag_var_implications_of_teleport_(void);
@@ -102,7 +103,7 @@ void sub_8053FB0(u16);
// sub_8054034
// sub_8054044
// sub_8054050
-// sub_80540D0
+void sub_80540D0(s16 *, u16 *);
void sub_8054164(void);
u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
// get_map_light_level_from_warp
diff --git a/include/rotating_gate.h b/include/rotating_gate.h
index 6f4f38a9a..50a838953 100644
--- a/include/rotating_gate.h
+++ b/include/rotating_gate.h
@@ -2,7 +2,7 @@
#define GUARD_ROTATING_GATE_H
void RotatingGatePuzzleCameraUpdate(s16, s16);
-void sub_80C8080();
+void RotatingGate_InitPuzzleAndGraphics();
u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16);
#endif // GUARD_ROTATING_GATE_H
diff --git a/include/secret_base.h b/include/secret_base.h
index 3ca5ab182..3ea75ce27 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -10,6 +10,7 @@ u8 sub_80BC050();
void sub_80BC300();
const u8 sub_80BCCA4(u8);
u8 *sub_80BCCE8(void);
+void sub_80BCF1C(u8);
void sub_80BD674(void *, u32, u8);
#endif // GUARD_SECRET_BASE_H
diff --git a/include/strings.h b/include/strings.h
index 89a78e478..89a78e478 100644..100755
--- a/include/strings.h
+++ b/include/strings.h
diff --git a/include/task.h b/include/task.h
index 6c6efdf4f..a71577ee3 100644
--- a/include/task.h
+++ b/include/task.h
@@ -1,6 +1,10 @@
#ifndef GUARD_TASK_H
#define GUARD_TASK_H
+// general task defines
+#define TASK gTasks[taskId]
+#define FUNC func
+
typedef void (*TaskFunc)(u8 taskId);
struct Task
diff --git a/include/text.h b/include/text.h
index 6e32de6dd..cf413644b 100644
--- a/include/text.h
+++ b/include/text.h
@@ -6,6 +6,7 @@
#define CHAR_QUESTION_MARK 0xAC
#define CHAR_PERIOD 0xAD
#define CHAR_HYPHEN 0xAE
+#define CHAR_ELLIPSIS 0xB0
#define CHAR_MALE 0xB5
#define CHAR_FEMALE 0xB6
#define CHAR_COMMA 0xB8
diff --git a/include/use_pokeblock.h b/include/use_pokeblock.h
new file mode 100644
index 000000000..41cf66665
--- /dev/null
+++ b/include/use_pokeblock.h
@@ -0,0 +1,10 @@
+//
+// Created by Scott Norton on 6/28/17.
+//
+
+#ifndef POKERUBY_USE_POKEBLOCK_H
+#define POKERUBY_USE_POKEBLOCK_H
+
+void sub_8136130(struct Pokeblock *, MainCallback);
+
+#endif //POKERUBY_USE_POKEBLOCK_H
diff --git a/include/vars.h b/include/vars.h
index f31ebde84..e08f344d4 100755
--- a/include/vars.h
+++ b/include/vars.h
@@ -1,7 +1,16 @@
#ifndef GUARD_VARS_H
#define GUARD_VARS_H
+#define VAR_0x4001 0x4001
+#define VAR_0x4002 0x4002
#define VAR_0x4003 0x4003
+#define VAR_0x4004 0x4004
+#define VAR_0x4005 0x4005
+#define VAR_0x4006 0x4006
+#define VAR_0x4007 0x4007
+#define VAR_0x4008 0x4008
+#define VAR_0x4009 0x4009
+#define VAR_0x400A 0x400A
#define VAR_0x401F 0x401F
#define VAR_RECYCLE_GOODS 0x4020
#define VAR_REPEL_STEP_COUNT 0x4021
diff --git a/ld_script.txt b/ld_script.txt
index a7166258b..0d8e2a65f 100755..100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -60,7 +60,7 @@ SECTIONS {
src/battle_7.o(.text);
asm/battle_8.o(.text);
asm/battle_9.o(.text);
- asm/battle_10.o(.text);
+ src/battle_10.o(.text);
src/pokemon_1.o(.text);
src/calculate_base_damage.o(.text);
src/pokemon_2.o(.text);
@@ -107,7 +107,7 @@ SECTIONS {
src/field_control_avatar.o(.text);
src/event_data.o(.text);
src/coord_event_weather.o(.text);
- asm/field_tasks.o(.text);
+ src/field_tasks.o(.text);
src/clock.o(.text);
asm/reset_rtc_screen.o(.text);
asm/party_menu.o(.text);
@@ -169,7 +169,7 @@ SECTIONS {
asm/contest_effect.o(.text);
src/record_mixing.o(.text);
asm/record_mixing.o(.text);
- asm/sound_check_menu.o(.text);
+ src/sound_check_menu.o(.text);
src/secret_base.o(.text);
asm/secret_base.o(.text_80BC1D0);
src/tv.o(.text);
@@ -179,7 +179,7 @@ SECTIONS {
src/pokemon_size_record.o(.text);
asm/fldeff_80C5CD4.o(.text);
src/field_special_scene.o(.text);
- asm/rotating_gate.o(.text);
+ src/rotating_gate.o(.text);
src/safari_zone.o(.text);
asm/contest_link_80C857C.o(.text);
src/contest_link_80C857C.o(.text);
@@ -212,7 +212,7 @@ SECTIONS {
src/starter_choose.o(.text);
src/wallclock.o(.text);
src/rom6.o(.text);
- asm/pokeblock.o(.text);
+ src/pokeblock.o(.text);
asm/fldeff_flash.o(.text);
src/post_battle_event_funcs.o(.text);
src/time_events.o(.text);
@@ -361,7 +361,7 @@ SECTIONS {
src/script.o(.rodata);
src/scrcmd.o(.rodata);
src/coord_event_weather.o(.rodata);
- data/field_tasks.o(.rodata);
+ src/field_tasks.o(.rodata);
data/reset_rtc_screen.o(.rodata);
data/party_menu.o(.rodata);
src/start_menu.o(.rodata);
@@ -409,7 +409,7 @@ SECTIONS {
data/money.o(.rodata);
data/contest_effect.o(.rodata);
data/record_mixing.o(.rodata);
- data/sound_check_menu.o(.rodata);
+ src/sound_check_menu.o(.rodata);
data/secret_base.o(.rodata);
data/tv.o(.rodata);
data/contest_link_80C2020.o(.rodata);
@@ -417,7 +417,7 @@ SECTIONS {
data/fldeff_80C5CD4.o(.rodata);
src/field_special_scene.o(.rodata);
data/field_special_scene.o(.rodata);
- data/rotating_gate.o(.rodata);
+ src/rotating_gate.o(.rodata);
src/item_use.o(.rodata);
data/battle_anim_80CA710.o(.rodata);
src/bike.o(.rodata);
@@ -437,7 +437,7 @@ SECTIONS {
data/trader.o(.rodata);
src/starter_choose.o(.rodata);
src/wallclock.o(.rodata);
- data/pokeblock.o(.rodata);
+ src/pokeblock.o(.rodata);
data/fldeff_flash.o(.rodata);
src/time_events.o(.rodata);
src/field_specials.o(.rodata);
diff --git a/misc.mk b/misc.mk
index 1d6cb09b0..1d6cb09b0 100755..100644
--- a/misc.mk
+++ b/misc.mk
diff --git a/src/battle_10.c b/src/battle_10.c
new file mode 100644
index 000000000..34e4f75b1
--- /dev/null
+++ b/src/battle_10.c
@@ -0,0 +1,1322 @@
+#include "global.h"
+#include "battle.h"
+#include "battle_interface.h"
+#include "data2.h"
+#include "link.h"
+#include "palette.h"
+#include "rom_8077ABC.h"
+#include "rom3.h"
+#include "songs.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "util.h"
+
+struct UnknownStruct3
+{
+ u16 moves[4];
+ u8 pp[4];
+ u8 ppBonuses;
+};
+
+extern u8 gActiveBank;
+extern u8 gBattleBufferA[][0x200];
+extern u8 gObjectBankIDs[];
+extern u16 gBattlePartyID[];
+extern u8 gHealthboxIDs[];
+extern u16 gBattleTypeFlags;
+extern u8 gBattleMonForms[];
+extern void (*gBattleBankFunc[])(void);
+extern u32 *gDisableStructMoveAnim;
+extern u32 gMoveDmgMoveAnim;
+extern u16 gMovePowerMoveAnim;
+extern u8 gHappinessMoveAnim;
+extern u16 gWeatherMoveAnim;
+extern u32 gPID_perBank[];
+extern u8 gAnimScriptActive;
+extern void (*gAnimScriptCallback)(void);
+extern u8 gDisplayedStringBattle[];
+extern bool8 gDoingBattleAnim;
+extern u8 gBattleOutcome;
+extern u16 gUnknown_02024DE8;
+extern u8 gUnknown_02024E68[];
+extern struct SpriteTemplate gUnknown_02024E8C;
+extern u8 gUnknown_0202F7C4;
+extern struct Window gUnknown_03004210;
+extern u16 gUnknown_030042A0;
+extern u16 gUnknown_030042A4;
+extern u8 gUnknown_0300434C[];
+
+extern u8 sub_8077F68();
+extern u8 sub_8079E90();
+extern u8 GetBankIdentity(u8);
+extern void sub_8031794(struct Pokemon *, u8);
+extern void sub_8037A74(void);
+extern void sub_8032984(u8, u16);
+extern void sub_8037E30(void);
+extern void sub_80312F0(struct Sprite *);
+extern u8 sub_8046400();
+extern void sub_8032A08();
+extern void sub_8043DB0();
+extern void sub_8037BBC(void);
+extern s32 sub_803FC34(u16);
+extern void sub_8031A6C(u16, u8);
+extern void sub_80313A0(struct Sprite *);
+extern void sub_803757C(void);
+extern void oamt_add_pos2_onto_pos1();
+extern void oamt_set_x3A_32();
+extern void sub_8078B34(struct Sprite *);
+extern void sub_80375B4(void);
+extern void sub_8010384(struct Sprite *);
+extern void sub_8037B78(void);
+extern u8 sub_8031720();
+extern u8 mplay_80342A4();
+extern void ExecuteMoveAnim();
+extern void sub_80326EC();
+extern void sub_8031F24(void);
+extern void sub_80324BC();
+extern void BufferStringBattle();
+extern void sub_8037C2C(void);
+extern void sub_8043D84();
+extern void sub_8037B24(void);
+extern void sub_8045A5C();
+extern void sub_8037FAC(void);
+extern void move_anim_start_t2_for_situation();
+extern void dp01t_0F_4_move_anim(void);
+extern void sub_8047858();
+extern u8 GetBankSide(u8);
+extern void sub_80E43C0();
+extern void sub_803A3A8(struct Sprite *);
+extern void sub_8044CA0(u8);
+extern void nullsub_47(void);
+extern bool8 IsDoubleBattle(void);
+extern void sub_8037840(void);
+extern void sub_8031B74();
+extern u8 sub_8078874();
+extern u8 move_anim_start_t3();
+extern void sub_8037FD8(void);
+extern void sub_8037F34(void);
+extern void dp01_tbl4_exec_completed(void);
+
+u32 dp01_getattr_by_ch1_for_player_pokemon__(u8, u8 *);
+void sub_8038900(u8);
+void sub_8039430(u8, u8);
+void sub_8039648(void);
+void sub_8039B64(void);
+void sub_803A2C4(u8);
+void sub_803A4E0(void);
+
+void LinkOpponentHandleGetAttributes(void)
+{
+ u8 buffer[0x100];
+ u32 r6 = 0;
+ u8 r4;
+ s32 i;
+
+ if (gBattleBufferA[gActiveBank][2] == 0)
+ {
+ r6 = dp01_getattr_by_ch1_for_player_pokemon__(gBattlePartyID[gActiveBank], buffer);
+ }
+ else
+ {
+ r4 = gBattleBufferA[gActiveBank][2];
+ for (i = 0; i < 6; i++)
+ {
+ if (r4 & 1)
+ r6 += dp01_getattr_by_ch1_for_player_pokemon__(i, buffer + r6);
+ r4 >>= 1;
+ }
+ }
+ dp01_build_cmdbuf_x1D_1D_numargs_varargs(1, r6, buffer);
+ dp01_tbl4_exec_completed();
+}
+
+u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
+{
+ struct BattlePokemon battlePokemon;
+ struct UnknownStruct3 moveData;
+ u8 nickname[20];
+ u8 *src;
+ s16 data16;
+ u32 data32;
+ s32 size = 0;
+
+ switch (gBattleBufferA[gActiveBank][1])
+ {
+ case 0:
+ battlePokemon.species = GetMonData(&gEnemyParty[a], MON_DATA_SPECIES);
+ battlePokemon.item = GetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM);
+ for (size = 0; size < 4; size++)
+ {
+ battlePokemon.moves[size] = GetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + size);
+ battlePokemon.pp[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + size);
+ }
+ battlePokemon.ppBonuses = GetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES);
+ battlePokemon.friendship = GetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP);
+ battlePokemon.experience = GetMonData(&gEnemyParty[a], MON_DATA_EXP);
+ battlePokemon.hpIV = GetMonData(&gEnemyParty[a], MON_DATA_HP_IV);
+ battlePokemon.attackIV = GetMonData(&gEnemyParty[a], MON_DATA_ATK_IV);
+ battlePokemon.defenseIV = GetMonData(&gEnemyParty[a], MON_DATA_DEF_IV);
+ battlePokemon.speedIV = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ battlePokemon.spAttackIV = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV);
+ battlePokemon.spDefenseIV = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV);
+ battlePokemon.personality = GetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY);
+ battlePokemon.status1 = GetMonData(&gEnemyParty[a], MON_DATA_STATUS);
+ battlePokemon.level = GetMonData(&gEnemyParty[a], MON_DATA_LEVEL);
+ battlePokemon.hp = GetMonData(&gEnemyParty[a], MON_DATA_HP);
+ battlePokemon.maxHP = GetMonData(&gEnemyParty[a], MON_DATA_MAX_HP);
+ battlePokemon.attack = GetMonData(&gEnemyParty[a], MON_DATA_ATK);
+ battlePokemon.defense = GetMonData(&gEnemyParty[a], MON_DATA_DEF);
+ battlePokemon.speed = GetMonData(&gEnemyParty[a], MON_DATA_SPD);
+ battlePokemon.spAttack = GetMonData(&gEnemyParty[a], MON_DATA_SPATK);
+ battlePokemon.spDefense = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF);
+ battlePokemon.isEgg = GetMonData(&gEnemyParty[a], MON_DATA_IS_EGG);
+ battlePokemon.altAbility = GetMonData(&gEnemyParty[a], MON_DATA_ALT_ABILITY);
+ battlePokemon.otId = GetMonData(&gEnemyParty[a], MON_DATA_OT_ID);
+ GetMonData(&gEnemyParty[a], MON_DATA_NICKNAME, nickname);
+ StringCopy10(battlePokemon.nickname, nickname);
+ GetMonData(&gEnemyParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
+ src = (u8 *)&battlePokemon;
+ for (size = 0; size < sizeof(battlePokemon); size++)
+ buffer[size] = src[size];
+ break;
+ case 1:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPECIES);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 2:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 3:
+ for (size = 0; size < 4; size++)
+ {
+ moveData.moves[size] = GetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + size);
+ moveData.pp[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + size);
+ }
+ moveData.ppBonuses = GetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES);
+ src = (u8 *)&moveData;
+ for (size = 0; size < sizeof(moveData); size++)
+ buffer[size] = src[size];
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 8:
+ for (size = 0; size < 4; size++)
+ buffer[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + size);
+ buffer[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES);
+ size++;
+ break;
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9);
+ size = 1;
+ break;
+ case 17:
+ data32 = GetMonData(&gEnemyParty[a], MON_DATA_OT_ID);
+ buffer[0] = (data32 & 0x000000FF);
+ buffer[1] = (data32 & 0x0000FF00) >> 8;
+ buffer[2] = (data32 & 0x00FF0000) >> 16;
+ size = 3;
+ break;
+ case 18:
+ data32 = GetMonData(&gEnemyParty[a], MON_DATA_EXP);
+ buffer[0] = (data32 & 0x000000FF);
+ buffer[1] = (data32 & 0x0000FF00) >> 8;
+ buffer[2] = (data32 & 0x00FF0000) >> 16;
+ size = 3;
+ break;
+ case 19:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_HP_EV);
+ size = 1;
+ break;
+ case 20:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_ATK_EV);
+ size = 1;
+ break;
+ case 21:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_DEF_EV);
+ size = 1;
+ break;
+ case 22:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_EV);
+ size = 1;
+ break;
+ case 23:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_EV);
+ size = 1;
+ break;
+ case 24:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_EV);
+ size = 1;
+ break;
+ case 25:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP);
+ size = 1;
+ break;
+ case 26:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_POKERUS);
+ size = 1;
+ break;
+ case 27:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_MET_LOCATION);
+ size = 1;
+ break;
+ case 28:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_MET_LEVEL);
+ size = 1;
+ break;
+ case 29:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_MET_GAME);
+ size = 1;
+ break;
+ case 30:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_POKEBALL);
+ size = 1;
+ break;
+ case 31:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_HP_IV);
+ buffer[1] = GetMonData(&gEnemyParty[a], MON_DATA_ATK_IV);
+ buffer[2] = GetMonData(&gEnemyParty[a], MON_DATA_DEF_IV);
+ buffer[3] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ buffer[4] = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV);
+ buffer[5] = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV);
+ size = 6;
+ break;
+ case 32:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_HP_IV);
+ size = 1;
+ break;
+ case 33:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_ATK_IV);
+ size = 1;
+ break;
+ case 34:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_DEF_IV);
+ size = 1;
+ break;
+ case 35:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ size = 1;
+ break;
+ case 36:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV);
+ size = 1;
+ break;
+ case 37:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV);
+ size = 1;
+ break;
+ case 38:
+ data32 = GetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY);
+ buffer[0] = (data32 & 0x000000FF);
+ buffer[1] = (data32 & 0x0000FF00) >> 8;
+ buffer[2] = (data32 & 0x00FF0000) >> 16;
+ buffer[3] = (data32 & 0xFF000000) >> 24;
+ size = 4;
+ break;
+ case 39:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_CHECKSUM);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 40:
+ data32 = GetMonData(&gEnemyParty[a], MON_DATA_STATUS);
+ buffer[0] = (data32 & 0x000000FF);
+ buffer[1] = (data32 & 0x0000FF00) >> 8;
+ buffer[2] = (data32 & 0x00FF0000) >> 16;
+ buffer[3] = (data32 & 0xFF000000) >> 24;
+ size = 4;
+ break;
+ case 41:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_LEVEL);
+ size = 1;
+ break;
+ case 42:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_HP);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 43:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_MAX_HP);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 44:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_ATK);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 45:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_DEF);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 46:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPD);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 47:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPATK);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 48:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 49:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_COOL);
+ size = 1;
+ break;
+ case 50:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_BEAUTY);
+ size = 1;
+ break;
+ case 51:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_CUTE);
+ size = 1;
+ break;
+ case 52:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SMART);
+ size = 1;
+ break;
+ case 53:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_TOUGH);
+ size = 1;
+ break;
+ case 54:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SHEEN);
+ size = 1;
+ break;
+ case 55:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_COOL_RIBBON);
+ size = 1;
+ break;
+ case 56:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_BEAUTY_RIBBON);
+ size = 1;
+ break;
+ case 57:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_CUTE_RIBBON);
+ size = 1;
+ break;
+ case 58:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SMART_RIBBON);
+ size = 1;
+ break;
+ case 59:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_TOUGH_RIBBON);
+ size = 1;
+ break;
+ }
+ return size;
+}
+
+void sub_803889C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_80388A8(void)
+{
+ u8 i;
+ u8 r4;
+
+ if (gBattleBufferA[gActiveBank][2] == 0)
+ {
+ sub_8038900(gBattlePartyID[gActiveBank]);
+ }
+ else
+ {
+ r4 = gBattleBufferA[gActiveBank][2];
+ for (i = 0; i < 6; i++)
+ {
+ if (r4 & 1)
+ sub_8038900(i);
+ r4 >>= 1;
+ }
+ }
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8038900(u8 a)
+{
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3];
+ struct UnknownStruct3 *moveData = (struct UnknownStruct3 *)&gBattleBufferA[gActiveBank][3];
+ s32 i;
+
+ switch (gBattleBufferA[gActiveBank][1])
+ {
+ case 0:
+ {
+ u8 iv;
+
+ SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
+ SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ for (i = 0; i < 4; i++)
+ {
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ }
+ SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
+ SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
+ SetMonData(&gEnemyParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ iv = battlePokemon->hpIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ iv = battlePokemon->attackIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ iv = battlePokemon->defenseIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ iv = battlePokemon->speedIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, (u8 *)&iv);
+ iv = battlePokemon->spAttackIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ iv = battlePokemon->spDefenseIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
+ SetMonData(&gEnemyParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
+ SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
+ SetMonData(&gEnemyParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
+ SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD, (u8 *)&battlePokemon->speed);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ }
+ break;
+ case 1:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 2:
+ SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 3:
+ for (i = 0; i < 4; i++)
+ {
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ }
+ SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 8:
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]);
+ break;
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 17:
+ SetMonData(&gEnemyParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 18:
+ SetMonData(&gEnemyParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 19:
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 20:
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 21:
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 22:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 23:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 24:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 25:
+ SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 26:
+ SetMonData(&gEnemyParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 27:
+ SetMonData(&gEnemyParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 28:
+ SetMonData(&gEnemyParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 29:
+ SetMonData(&gEnemyParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 30:
+ SetMonData(&gEnemyParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 31:
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][6]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
+ break;
+ case 32:
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 33:
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 34:
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 35:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 36:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 37:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 38:
+ SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 39:
+ SetMonData(&gEnemyParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 40:
+ SetMonData(&gEnemyParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 41:
+ SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 42:
+ SetMonData(&gEnemyParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 43:
+ SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 44:
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 45:
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 46:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 47:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 48:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 49:
+ SetMonData(&gEnemyParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 50:
+ SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 51:
+ SetMonData(&gEnemyParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 52:
+ SetMonData(&gEnemyParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 53:
+ SetMonData(&gEnemyParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 54:
+ SetMonData(&gEnemyParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 55:
+ SetMonData(&gEnemyParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 56:
+ SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 57:
+ SetMonData(&gEnemyParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 58:
+ SetMonData(&gEnemyParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 59:
+ SetMonData(&gEnemyParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ break;
+ }
+}
+
+void sub_8039220(void)
+{
+ u8 *dst;
+ u8 i;
+
+ dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
+ dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039294(void)
+{
+ u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+
+ sub_8031794(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ GetMonSpriteTemplate_803C56C(species, GetBankIdentity(gActiveBank));
+ gObjectBankIDs[gActiveBank] = CreateSprite(
+ &gUnknown_02024E8C,
+ sub_8077ABC(gActiveBank, 2),
+ sub_8077F68(gActiveBank),
+ sub_8079E90(gActiveBank));
+ gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -240;
+ gSprites[gObjectBankIDs[gActiveBank]].data0 = gActiveBank;
+ gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
+ StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], gBattleMonForms[gActiveBank]);
+ sub_8032984(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
+ gBattleBankFunc[gActiveBank] = sub_8037A74;
+}
+
+void sub_80393E4(void)
+{
+ gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
+ sub_8039430(gActiveBank, gBattleBufferA[gActiveBank][2]);
+ gBattleBankFunc[gActiveBank] = sub_8037E30;
+}
+
+void sub_8039430(u8 a, u8 b)
+{
+ u16 species;
+
+ sub_8032AA8(a, b);
+ gBattlePartyID[a] = gBattleBufferA[a][1];
+ species = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_SPECIES);
+ gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0);
+ sub_8031794(&gEnemyParty[gBattlePartyID[a]], a);
+ GetMonSpriteTemplate_803C56C(species, GetBankIdentity(a));
+ gObjectBankIDs[a] = CreateSprite(
+ &gUnknown_02024E8C,
+ sub_8077ABC(a, 2),
+ sub_8077F68(a),
+ sub_8079E90(a));
+ gSprites[gUnknown_0300434C[a]].data1 = gObjectBankIDs[a];
+ gSprites[gObjectBankIDs[a]].data0 = a;
+ gSprites[gObjectBankIDs[a]].data2 = species;
+ gSprites[gObjectBankIDs[a]].oam.paletteNum = a;
+ StartSpriteAnim(&gSprites[gObjectBankIDs[a]], gBattleMonForms[a]);
+ gSprites[gObjectBankIDs[a]].invisible = TRUE;
+ gSprites[gObjectBankIDs[a]].callback = SpriteCallbackDummy;
+ gSprites[gUnknown_0300434C[a]].data0 = sub_8046400(0, 0xFE);
+}
+
+void sub_80395B4(void)
+{
+ if (gBattleBufferA[gActiveBank][1] == 0)
+ {
+ ewram17810[gActiveBank].unk4 = 0;
+ gBattleBankFunc[gActiveBank] = sub_8039648;
+ }
+ else
+ {
+ FreeSpriteOamMatrix(&gSprites[gObjectBankIDs[gActiveBank]]);
+ DestroySprite(&gSprites[gObjectBankIDs[gActiveBank]]);
+ sub_8032A08(gActiveBank);
+ sub_8043DB0(gHealthboxIDs[gActiveBank]);
+ dp01_tbl4_exec_completed();
+ }
+}
+
+void sub_8039648(void)
+{
+ switch (ewram17810[gActiveBank].unk4)
+ {
+ case 0:
+ if (ewram17800[gActiveBank].unk0_2)
+ move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5);
+ ewram17810[gActiveBank].unk4 = 1;
+ break;
+ case 1:
+ if (!ewram17810[gActiveBank].unk0_6)
+ {
+ ewram17810[gActiveBank].unk4 = 0;
+ move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 2);
+ gBattleBankFunc[gActiveBank] = sub_8037BBC;
+ }
+ break;
+ }
+}
+
+void sub_80396D0(void)
+{
+ s16 xOffset;
+ u32 gender;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ if (GetBankIdentity(gActiveBank) & 2)
+ xOffset = -16;
+ else
+ xOffset = 16;
+ gender = gLinkPlayers[sub_803FC34(gActiveBank)].gender;
+ }
+ else
+ {
+ xOffset = 0;
+ gender = gLinkPlayers[GetMultiplayerId() ^ 1].gender;
+ }
+ sub_8031A6C(gender, gActiveBank);
+ GetMonSpriteTemplate_803C5A0(gender, GetBankIdentity(gActiveBank));
+ gObjectBankIDs[gActiveBank] = CreateSprite(
+ &gUnknown_02024E8C,
+ 176 + xOffset, 40 + 4 * (8 - gTrainerFrontPicCoords[gender].coords),
+ sub_8079E90(gActiveBank));
+ gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -240;
+ gSprites[gObjectBankIDs[gActiveBank]].data0 = 2;
+ gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[gender].tag);
+ gSprites[gObjectBankIDs[gActiveBank]].data5 = gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum;
+ gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[gender].tag);
+ gSprites[gObjectBankIDs[gActiveBank]].oam.affineParam = gender;
+ gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
+ gBattleBankFunc[gActiveBank] = sub_803757C;
+}
+
+void sub_80398A4(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_80398B0(void)
+{
+ oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
+ gSprites[gObjectBankIDs[gActiveBank]].data0 = 35;
+ gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
+ gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
+ oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ gBattleBankFunc[gActiveBank] = sub_80375B4;
+}
+
+void sub_803995C(void)
+{
+ if (ewram17810[gActiveBank].unk4 == 0)
+ {
+ if (ewram17800[gActiveBank].unk0_2)
+ move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5);
+ ewram17810[gActiveBank].unk4++;
+ }
+ else if (!ewram17810[gActiveBank].unk0_6)
+ {
+ ewram17810[gActiveBank].unk4 = 0;
+ PlaySE12WithPanning(SE_POKE_DEAD, 63);
+ gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8010384;
+ gBattleBankFunc[gActiveBank] = sub_8037B78;
+ }
+}
+
+void sub_8039A00(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039A0C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039A18(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039A24(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039A30(void)
+{
+ if (!mplay_80342A4(gActiveBank))
+ {
+ u32 r0 = gBattleBufferA[gActiveBank][1]
+ | (gBattleBufferA[gActiveBank][2] << 8);
+
+ gUnknown_0202F7C4 = gBattleBufferA[gActiveBank][3];
+ gMovePowerMoveAnim = gBattleBufferA[gActiveBank][4]
+ | (gBattleBufferA[gActiveBank][5] << 8);
+ gMoveDmgMoveAnim = gBattleBufferA[gActiveBank][6]
+ | (gBattleBufferA[gActiveBank][7] << 8)
+ | (gBattleBufferA[gActiveBank][8] << 16)
+ | (gBattleBufferA[gActiveBank][9] << 24);
+ gHappinessMoveAnim = gBattleBufferA[gActiveBank][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBank][12]
+ | (gBattleBufferA[gActiveBank][13] << 8);
+ gDisableStructMoveAnim = (u32 *)&gBattleBufferA[gActiveBank][16];
+ gPID_perBank[gActiveBank] = *gDisableStructMoveAnim;
+
+ if (sub_8031720(r0, gUnknown_0202F7C4) != 0)
+ {
+ dp01_tbl4_exec_completed();
+ }
+ else
+ {
+ ewram17810[gActiveBank].unk4 = 0;
+ gBattleBankFunc[gActiveBank] = sub_8039B64;
+ }
+ }
+}
+
+void sub_8039B64(void)
+{
+ u16 r4 = gBattleBufferA[gActiveBank][1]
+ | (gBattleBufferA[gActiveBank][2] << 8);
+ u8 r7 = gBattleBufferA[gActiveBank][11];
+
+ switch (ewram17810[gActiveBank].unk4)
+ {
+ case 0:
+ if (ewram17800[gActiveBank].unk0_2 && !ewram17800[gActiveBank].unk0_3)
+ {
+ ewram17800[gActiveBank].unk0_3 = 1;
+ move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5);
+ }
+ ewram17810[gActiveBank].unk4 = 1;
+ break;
+ case 1:
+ if (!ewram17810[gActiveBank].unk0_6)
+ {
+ sub_80326EC(0);
+ ExecuteMoveAnim(r4);
+ ewram17810[gActiveBank].unk4 = 2;
+ }
+ break;
+ case 2:
+ gAnimScriptCallback();
+ if (!gAnimScriptActive)
+ {
+ sub_80326EC(1);
+ if ((ewram17800[gActiveBank].unk0_2) && r7 <= 1)
+ {
+ move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6);
+ ewram17800[gActiveBank].unk0_3 = 0;
+ }
+ ewram17810[gActiveBank].unk4 = 3;
+ }
+ break;
+ case 3:
+ if (!ewram17810[gActiveBank].unk0_6)
+ {
+ sub_8031F24();
+ sub_80324BC(
+ gActiveBank,
+ gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ ewram17810[gActiveBank].unk4 = 0;
+ dp01_tbl4_exec_completed();
+ }
+ break;
+ }
+}
+
+void sub_8039CC8(void)
+{
+ gUnknown_030042A4 = 0;
+ gUnknown_030042A0 = 0;
+ BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
+ sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ gBattleBankFunc[gActiveBank] = sub_8037C2C;
+}
+
+void sub_8039D2C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D38(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D44(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D50(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D5C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D68(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D74(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D80(void)
+{
+ s16 r7;
+
+ load_gfxc_health_bar(0);
+ r7 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ if (r7 != 0x7FFF)
+ {
+ u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+ u32 hp = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_HP);
+
+ sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, hp, r7);
+ }
+ else
+ {
+ u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+
+ sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, 0, r7);
+ }
+ gBattleBankFunc[gActiveBank] = sub_8037B24;
+}
+
+void sub_8039E70(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039E7C(void)
+{
+ if (mplay_80342A4(gActiveBank) == 0)
+ {
+ sub_8045A5C(gHealthboxIDs[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], 9);
+ ewram17810[gActiveBank].unk0_4 = 0;
+ gBattleBankFunc[gActiveBank] = sub_8037FAC;
+ }
+}
+
+void sub_8039EF0(void)
+{
+ if (mplay_80342A4(gActiveBank) == 0)
+ {
+ move_anim_start_t2_for_situation(
+ gBattleBufferA[gActiveBank][1],
+ gBattleBufferA[gActiveBank][2]
+ | (gBattleBufferA[gActiveBank][3] << 8)
+ | (gBattleBufferA[gActiveBank][4] << 16)
+ | (gBattleBufferA[gActiveBank][5] << 24));
+ gBattleBankFunc[gActiveBank] = sub_8037FAC;
+ }
+}
+
+void sub_8039F58(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039F64(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039F70(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039F7C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039F88(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039F94(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039FA0(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039FAC(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039FB8(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039FC4(void)
+{
+ gUnknown_020238C8.unk0_0 = 0;
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039FE0(void)
+{
+ gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBank][1];
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A018(void)
+{
+ gUnknown_020238C8.unk0_7 = 0;
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A030(void)
+{
+ gUnknown_020238C8.unk0_7 ^= 1;
+ dp01_tbl4_exec_completed();
+}
+
+void dp01t_29_4_blink(void)
+{
+ if (gSprites[gObjectBankIDs[gActiveBank]].invisible == TRUE)
+ {
+ dp01_tbl4_exec_completed();
+ }
+ else
+ {
+ gDoingBattleAnim = TRUE;
+ gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
+ sub_8047858(gActiveBank);
+ gBattleBankFunc[gActiveBank] = dp01t_0F_4_move_anim;
+ }
+}
+
+void sub_803A0C8(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A0D4(void)
+{
+ s8 pan;
+
+ if (GetBankSide(gActiveBank) == 0)
+ pan = -64;
+ else
+ pan = 63;
+ PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan);
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A118(void)
+{
+ PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A148(void)
+{
+ PlayCry3(
+ GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES),
+ 25, 5);
+ dp01_tbl4_exec_completed();
+}
+
+void dp01t_2E_4_battle_intro(void)
+{
+ sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ gUnknown_02024DE8 |= 1;
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A1B8(void)
+{
+ u8 taskId;
+
+ oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
+ gSprites[gObjectBankIDs[gActiveBank]].data0 = 35;
+ gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
+ gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
+ oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_803A3A8);
+ taskId = CreateTask(sub_803A2C4, 5);
+ gTasks[taskId].data[0] = gActiveBank;
+ if (ewram17810[gActiveBank].unk0_0)
+ gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0;
+ ewram17840.unk9_0 = 1;
+ gBattleBankFunc[gActiveBank] = nullsub_47;
+}
+
+void sub_803A2C4(u8 taskId)
+{
+ u8 r9;
+
+ r9 = gActiveBank;
+ gActiveBank = gTasks[taskId].data[0];
+ if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
+ {
+ gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
+ sub_8039430(gActiveBank, 0);
+ }
+ else
+ {
+ gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
+ sub_8039430(gActiveBank, 0);
+ gActiveBank ^= 2;
+ gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
+ sub_8039430(gActiveBank, 0);
+ gActiveBank ^= 2;
+ }
+ gBattleBankFunc[gActiveBank] = sub_8037840;
+ gActiveBank = r9;
+ DestroyTask(taskId);
+}
+
+void sub_803A3A8(struct Sprite *sprite)
+{
+ sub_8031B74(sprite->oam.affineParam);
+ sprite->oam.tileNum = sprite->data5;
+ FreeSpriteOamMatrix(sprite);
+ DestroySprite(sprite);
+}
+
+void sub_803A3DC(void)
+{
+ if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == 0)
+ {
+ dp01_tbl4_exec_completed();
+ return;
+ }
+
+ ewram17810[gActiveBank].unk0_0 = 1;
+ if (gBattleBufferA[gActiveBank][2] != 0)
+ {
+ if (ewram17810[gActiveBank].unk1_1 < 2)
+ {
+ ewram17810[gActiveBank].unk1_1++;
+ return;
+ }
+ else
+ {
+ ewram17810[gActiveBank].unk1_1 = 0;
+ }
+ }
+ gUnknown_02024E68[gActiveBank] = sub_8044804(
+ gActiveBank,
+ (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBank][4],
+ gBattleBufferA[gActiveBank][1],
+ gBattleBufferA[gActiveBank][2]);
+ ewram17810[gActiveBank].unk5 = 0;
+ if (gBattleBufferA[gActiveBank][2] != 0)
+ ewram17810[gActiveBank].unk5 = 0x5D;
+ gBattleBankFunc[gActiveBank] = sub_803A4E0;
+}
+
+void sub_803A4E0(void)
+{
+ if (ewram17810[gActiveBank].unk5++ >= 93)
+ {
+ ewram17810[gActiveBank].unk5 = 0;
+ dp01_tbl4_exec_completed();
+ }
+}
+
+void sub_803A520(void)
+{
+ if (ewram17810[gActiveBank].unk0_0)
+ gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0;
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A56C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A578(void)
+{
+ if (sub_8078874(gActiveBank) != 0)
+ {
+ gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
+ sub_8031F88(gActiveBank);
+ }
+ dp01_tbl4_exec_completed();
+}
+
+void bx_exec_buffer_A_ch0_tbl4(void)
+{
+ if (mplay_80342A4(gActiveBank) == 0)
+ {
+ u8 r3 = gBattleBufferA[gActiveBank][1];
+ u16 r4 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+
+ if (move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, r3, r4) != 0)
+ dp01_tbl4_exec_completed();
+ else
+ gBattleBankFunc[gActiveBank] = sub_8037FD8;
+ }
+}
+
+void sub_803A640(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A64C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A658(void)
+{
+ if (gBattleBufferA[gActiveBank][1] == 3)
+ gBattleOutcome = gBattleBufferA[gActiveBank][1];
+ else
+ gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ 3;
+ FadeOutMapMusic(5);
+ BeginFastPaletteFade(3);
+ dp01_tbl4_exec_completed();
+ gBattleBankFunc[gActiveBank] = sub_8037F34;
+}
+
+void nullsub_48(void)
+{
+}
diff --git a/src/battle_2.c b/src/battle_2.c
index 2b13fc45d..d08f2b8df 100644
--- a/src/battle_2.c
+++ b/src/battle_2.c
@@ -26,6 +26,9 @@
#include "trig.h"
#include "unknown_task.h"
#include "util.h"
+#include "items.h"
+#include "hold_effects.h"
+#include "battle_move_effects.h"
struct UnknownStruct6
{
@@ -70,30 +73,6 @@ struct UnknownStruct12
u8 filler4[0x54];
};
-struct UnknownStruct13
-{
- u32 unk0_0:1;
- u32 unk0_1:1;
- u32 unk0_2:1;
- u32 unk0_3:1;
- u32 unk0_4:1;
- u32 unk0_5:1;
- u32 unk0_6:1;
- u32 unk0_7:1;
- u32 unk1_0:1;
- u32 unk1_1:1;
- u32 unk1_2:1;
- u32 unk1_3:2;
- u32 unk1_5:1;
- u32 unk1_6:1;
- u32 unk1_7:1;
- u32 unk2_0:1;
- u32 unk2_1:1;
- u32 unk2_2:1;
- u32 unk2_3:1;
- u8 filler4[12];
-};
-
extern const u16 gUnknown_08D004E0[];
extern const struct MonCoords gCastformFrontSpriteCoords[];
@@ -166,7 +145,6 @@ extern u16 gChosenMovesByBanks[];
extern u32 gHitMarker;
extern u8 gUnknown_02024C70[];
extern u16 gSideAffecting[];
-extern u8 gSideTimer[][12];
extern u32 gStatuses3[];
//extern u8 gDisableStructs[][0x1C];
extern u16 gPauseCounterBattle;
@@ -175,8 +153,6 @@ extern u16 gRandomTurnNumber;
extern u8 gBattleCommunication[];
extern u8 gUnknown_02024D1F[]; // I don't actually know what type this is.
extern u8 gBattleOutcome;
-extern struct UnknownStruct13 gProtectStructs[];
-extern u8 gWishFutureKnock[];
extern u16 gUnknown_02024DE8;
extern u8 gActionSelectionCursor[];
extern u8 gMoveSelectionCursor[];
@@ -199,7 +175,6 @@ extern u16 gUnknown_030042C0;
extern u16 gUnknown_030042C4;
extern MainCallback gPreBattleCallback1;
extern void (*gBattleMainFunc)(void);
-extern struct Struct30042E0 gBattleResults;
extern u8 gLeveledUpInBattle;
extern void (*gBattleBankFunc[])(void);
extern u8 gHealthboxIDs[];
@@ -219,6 +194,7 @@ extern u32 gBattleMoveDamage;
extern struct BattlePokemon gBattleMons[];
extern u8 gBattleMoveFlags;
+static void BattlePrepIntroSlide(void);
void sub_800E7C4(void)
{
@@ -1495,43 +1471,43 @@ void sub_80105EC(struct Sprite *sprite)
}
}
-void dp11b_obj_instanciate(u8 a, u8 b, s8 c, s8 d)
+void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d)
{
u8 spriteId;
- u8 r7;
+ u8 objectID;
if (b)
{
- if (ewram17810[a].unk0_1)
+ if (ewram17810[bank].unk0_1)
return;
}
else
{
- if (ewram17810[a].unk0_2)
+ if (ewram17810[bank].unk0_2)
return;
}
spriteId = CreateInvisibleSpriteWithCallback(objc_dp11b_pingpong);
if (b == TRUE)
{
- r7 = gHealthboxIDs[a];
- ewram17810[a].unk2 = spriteId;
- ewram17810[a].unk0_1 = 1;
+ objectID = gHealthboxIDs[bank];
+ ewram17810[bank].unk2 = spriteId;
+ ewram17810[bank].unk0_1 = 1;
gSprites[spriteId].data0 = 0x80;
}
else
{
- r7 = gObjectBankIDs[a];
- ewram17810[a].unk3 = spriteId;
- ewram17810[a].unk0_2 = 1;
+ objectID = gObjectBankIDs[bank];
+ ewram17810[bank].unk3 = spriteId;
+ ewram17810[bank].unk0_2 = 1;
gSprites[spriteId].data0 = 0xC0;
}
gSprites[spriteId].data1 = c;
gSprites[spriteId].data2 = d;
- gSprites[spriteId].data3 = r7;
+ gSprites[spriteId].data3 = objectID;
gSprites[spriteId].data4 = b;
- gSprites[r7].pos2.x = 0;
- gSprites[r7].pos2.y = 0;
+ gSprites[objectID].pos2.x = 0;
+ gSprites[objectID].pos2.y = 0;
}
void dp11b_obj_free(u8 a, u8 b)
@@ -1586,7 +1562,6 @@ void sub_8010800(void)
void sub_8010824(void)
{
gBattleMainFunc();
- gActiveBank = 0;
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
gBattleBankFunc[gActiveBank]();
@@ -1595,7 +1570,7 @@ void sub_8010824(void)
void sub_8010874(void)
{
s32 i;
- s32 j;
+ u32 j;
u8 *r4;
TurnValuesCleanUp(0);
@@ -1609,7 +1584,7 @@ void sub_8010874(void)
for (j = 0; j < (u32)0x1C; j++)
r4[j] = 0;
- gDisableStructs[i].unk16 = 2;
+ gDisableStructs[i].IsFirstTurn = 2;
gUnknown_02024C70[i] = 0;
gLastUsedMove[i] = 0;
gMoveHitWith[i] = 0;
@@ -1626,7 +1601,7 @@ void sub_8010874(void)
gSideAffecting[i] = 0;
r4 = (u8 *)&gSideTimer[i];
- for (j = 0; j < (u32)12; j++)
+ for (j = 0; j < 12; j++)
r4[j] = 0;
}
@@ -1639,8 +1614,8 @@ void sub_8010874(void)
r4[i] = 0;
gHitMarker = 0;
- if ((gBattleTypeFlags & 2) == 0 && gSaveBlock2.optionsBattleSceneOff == TRUE)
- gHitMarker = 0x80;
+ if ((gBattleTypeFlags & BATTLE_TYPE_LINK) == 0 && gSaveBlock2.optionsBattleSceneOff == TRUE)
+ gHitMarker = HITMARKER_NO_ANIMATIONS;
ewram16084 = gSaveBlock2.optionsBattleStyle;
gMultiHitCounter = 0;
gBattleOutcome = 0;
@@ -1680,36 +1655,36 @@ void sub_8010874(void)
ewram16113 = 0;
for (i = 0; i < 11; i++)
gBattleResults.unk36[i] = 0;
- gBattleResults.unk13 = 0;
- gBattleResults.unk0 = 0;
- gBattleResults.unk1 = 0;
+ gBattleResults.BattleTurnCounter = 0;
+ gBattleResults.PlayerFaintCounter = 0;
+ gBattleResults.OpponentFaintCounter = 0;
gBattleResults.unk2 = 0;
gBattleResults.unk3 = 0;
gBattleResults.unk4 = 0;
gBattleResults.unk5_0 = 0;
gBattleResults.unk5_1 = 0;
- gBattleResults.unk20 = 0;
- gBattleResults.unk22 = 0;
- gBattleResults.unk24 = 0;
- gBattleResults.unk6 = 0;
- gBattleResults.unk26 = 0;
- gBattleResults.unk28 = 0;
+ gBattleResults.LastOpponentSpecies = 0;
+ gBattleResults.LastUsedMove = 0;
+ gBattleResults.OpponentMove = 0;
+ gBattleResults.Poke1Species = 0;
+ gBattleResults.OpponentSpecies = 0;
+ gBattleResults.CaughtPoke = 0;
for (i = 0; i < 10; i++)
{
- gBattleResults.unk8[i] = 0;
- gBattleResults.unk14[i] = 0;
- gBattleResults.unk2A[i] = 0;
+ gBattleResults.PokeString1[i] = 0;
+ gBattleResults.PokeString2[i] = 0;
+ gBattleResults.CaughtNick[i] = 0;
}
}
-void sub_8010B88(void)
+void SwitchInClearStructs(void)
{
- struct UnkBattleStruct4 sp0 = gDisableStructs[gActiveBank];
+ struct DisableStruct sp0 = gDisableStructs[gActiveBank];
s32 i;
u8 *ptr;
u32 *ptr2;
- if (gBattleMoves[gCurrentMove].effect != 0x7F)
+ if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS)
{
for (i = 0; i < 8; i++)
gBattleMons[gActiveBank].statStages[i] = 6;
@@ -1717,27 +1692,27 @@ void sub_8010B88(void)
{
struct UnknownStruct12 *sp20 = &gUnknown_02024AD0[i];
- if ((sp20->unk0 & 0x04000000) && gDisableStructs[i].unk14 == gActiveBank)
+ if ((sp20->unk0 & 0x04000000) && gDisableStructs[i].BankPreventingEscape == gActiveBank)
sp20->unk0 &= ~0x04000000;
- if ((gStatuses3[i] & 0x18) && gDisableStructs[i].unk15 == gActiveBank)
+ if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].BankWithSureHit == gActiveBank)
{
- gStatuses3[i] &= ~0x18;
- gDisableStructs[i].unk15 = 0;
+ gStatuses3[i] &= ~STATUS3_ALWAYS_HITS;
+ gDisableStructs[i].BankWithSureHit = 0;
}
}
}
- if (gBattleMoves[gCurrentMove].effect == 0x7F)
+ if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
{
- gBattleMons[gActiveBank].status2 &= 0x15100007;
- gStatuses3[gActiveBank] &= 0x3043F;
+ gBattleMons[gActiveBank].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED);
+ gStatuses3[gActiveBank] &= (STATUS3_LEECHSEED_RECEIVER | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT);
for (i = 0; i < gNoOfAllBanks; i++)
{
if (GetBankSide(gActiveBank) != GetBankSide(i)
- && (gStatuses3[i] & 0x18) != 0
- && (gDisableStructs[i].unk15 == gActiveBank))
+ && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0
+ && (gDisableStructs[i].BankWithSureHit == gActiveBank))
{
- gStatuses3[i] &= ~0x18;
+ gStatuses3[i] &= ~STATUS3_ALWAYS_HITS;
gStatuses3[i] |= 0x10;
}
}
@@ -1763,15 +1738,15 @@ void sub_8010B88(void)
for (i = 0; i < (u32)0x1C; i++)
ptr[i] = 0;
- if (gBattleMoves[gCurrentMove].effect == 0x7F)
+ if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
{
- gDisableStructs[gActiveBank].unkA = sp0.unkA;
- gDisableStructs[gActiveBank].unk15 = sp0.unk15;
+ gDisableStructs[gActiveBank].SubstituteHP = sp0.SubstituteHP;
+ gDisableStructs[gActiveBank].BankWithSureHit = sp0.BankWithSureHit;
gDisableStructs[gActiveBank].unkF_0 = sp0.unkF_0;
gDisableStructs[gActiveBank].unkF_4 = sp0.unkF_4;
}
- gDisableStructs[gActiveBank].unk16 = 2;
+ gDisableStructs[gActiveBank].IsFirstTurn = 2;
gLastUsedMove[gActiveBank] = 0;
gMoveHitWith[gActiveBank] = 0;
gUnknown_02024C44[gActiveBank] = 0;
@@ -1806,12 +1781,12 @@ void UndoEffectsAfterFainting(void)
gStatuses3[gActiveBank] = 0;
for (i = 0; i < gNoOfAllBanks; i++)
{
- if ((gBattleMons[i].status2 & 0x4000000) && gDisableStructs[i].unk14 == gActiveBank)
- gBattleMons[i].status2 &= ~0x4000000;
+ if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].BankPreventingEscape == gActiveBank)
+ gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
if (gBattleMons[i].status2 & (gBitTable[gActiveBank] << 16))
gBattleMons[i].status2 &= ~(gBitTable[gActiveBank] << 16);
- if ((gBattleMons[i].status2 & 0xE000) && ewram[0x16020 + i] == gActiveBank)
- gBattleMons[i].status2 &= ~0xE000;
+ if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && ewram[0x16020 + i] == gActiveBank)
+ gBattleMons[i].status2 &= ~STATUS2_WRAPPED;
}
gActionSelectionCursor[gActiveBank] = 0;
gMoveSelectionCursor[gActiveBank] = 0;
@@ -1819,27 +1794,27 @@ void UndoEffectsAfterFainting(void)
ptr = (u8 *)&gDisableStructs[gActiveBank];
for (i = 0; i < (u32)0x1C; i++)
ptr[i] = 0;
- gProtectStructs[gActiveBank].unk0_0 = 0;
- gProtectStructs[gActiveBank].unk0_1 = 0;
- gProtectStructs[gActiveBank].unk0_2 = 0;
- gProtectStructs[gActiveBank].unk0_3 = 0;
- gProtectStructs[gActiveBank].unk0_4 = 0;
- gProtectStructs[gActiveBank].unk0_5 = 0;
- gProtectStructs[gActiveBank].unk0_6 = 0;
- gProtectStructs[gActiveBank].unk0_7 = 0;
- gProtectStructs[gActiveBank].unk1_0 = 0;
- gProtectStructs[gActiveBank].unk1_1 = 0;
- gProtectStructs[gActiveBank].unk1_2 = 0;
- gProtectStructs[gActiveBank].unk1_3 = 0;
- gProtectStructs[gActiveBank].unk1_5 = 0;
- gProtectStructs[gActiveBank].unk1_6 = 0;
- gProtectStructs[gActiveBank].unk1_7 = 0;
- gProtectStructs[gActiveBank].unk2_0 = 0;
- gProtectStructs[gActiveBank].unk2_1 = 0;
- gProtectStructs[gActiveBank].unk2_2 = 0;
- gProtectStructs[gActiveBank].unk2_3 = 0;
-
- gDisableStructs[gActiveBank].unk16 = 2;
+ gProtectStructs[gActiveBank].Protected = 0;
+ gProtectStructs[gActiveBank].Endured = 0;
+ gProtectStructs[gActiveBank].OnlyStruggle = 0;
+ gProtectStructs[gActiveBank].HelpingHand = 0;
+ gProtectStructs[gActiveBank].BounceMove = 0;
+ gProtectStructs[gActiveBank].StealMove = 0;
+ gProtectStructs[gActiveBank].Flag0Unknown = 0;
+ gProtectStructs[gActiveBank].PrlzImmobility = 0;
+ gProtectStructs[gActiveBank].ConfusionSelfDmg = 0;
+ gProtectStructs[gActiveBank].NotEffective = 0;
+ gProtectStructs[gActiveBank].ChargingTurn = 0;
+ gProtectStructs[gActiveBank].FleeFlag = 0;
+ gProtectStructs[gActiveBank].UsedImprisionedMove = 0;
+ gProtectStructs[gActiveBank].LoveImmobility = 0;
+ gProtectStructs[gActiveBank].UsedDisabledMove = 0;
+ gProtectStructs[gActiveBank].UsedTauntedMove = 0;
+ gProtectStructs[gActiveBank].Flag2Unknown = 0;
+ gProtectStructs[gActiveBank].FlinchImmobility = 0;
+ gProtectStructs[gActiveBank].NotFirstStrike = 0;
+
+ gDisableStructs[gActiveBank].IsFirstTurn = 2;
gLastUsedMove[gActiveBank] = 0;
gMoveHitWith[gActiveBank] = 0;
gUnknown_02024C44[gActiveBank] = 0;
@@ -1878,7 +1853,7 @@ void bc_8012FAC(void)
{
gBattleCommunication[1]++;
if (gBattleCommunication[1] == gNoOfAllBanks)
- gBattleMainFunc = bc_load_battlefield;
+ gBattleMainFunc = BattlePrepIntroSlide;
else
gBattleCommunication[0] = 0;
}
@@ -1886,7 +1861,7 @@ void bc_8012FAC(void)
}
}
-void bc_load_battlefield(void)
+static void BattlePrepIntroSlide(void)
{
if (gBattleExecBuffer == 0)
{
@@ -2294,7 +2269,7 @@ void BattleTurnPassed(void)
if (sub_80170DC() != 0)
return;
TurnValuesCleanUp(0);
- gHitMarker &= ~0x200;
+ gHitMarker &= ~HITMARKER_NO_ATTACKSTRING;
gHitMarker &= ~0x80000;
gHitMarker &= ~0x400000;
gHitMarker &= ~0x100000;
@@ -2311,8 +2286,8 @@ void BattleTurnPassed(void)
gBattleMainFunc = sub_80138F0;
return;
}
- if (gBattleResults.unk13 < 0xFF)
- gBattleResults.unk13++;
+ if (gBattleResults.BattleTurnCounter < 0xFF)
+ gBattleResults.BattleTurnCounter++;
for (i = 0; i < gNoOfAllBanks; i++)
{
gActionForBanks[i] = 0xFF;
@@ -2331,12 +2306,12 @@ u8 CanRunFromBattle(void)
u8 r6;
s32 i;
- if (gBattleMons[gActiveBank].item == 0xAF)
+ if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY)
r2 = gEnigmaBerries[gActiveBank].holdEffect;
else
r2 = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item);
gStringBank = gActiveBank;
- if (r2 == 0x25)
+ if (r2 == HOLD_EFFECT_CAN_ALWAYS_RUN)
return 0;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
return 0;
@@ -2346,7 +2321,7 @@ u8 CanRunFromBattle(void)
for (i = 0; i < gNoOfAllBanks; i++)
{
if (r6 != GetBankSide(i)
- && gBattleMons[i].ability == 0x17)
+ && gBattleMons[i].ability == ABILITY_SHADOW_TAG)
{
ewram16003 = i;
gLastUsedAbility = gBattleMons[i].ability;
@@ -2357,7 +2332,7 @@ u8 CanRunFromBattle(void)
&& gBattleMons[gActiveBank].ability != ABILITY_LEVITATE
&& gBattleMons[gActiveBank].type1 != 2
&& gBattleMons[gActiveBank].type2 != 2
- && gBattleMons[i].ability == 0x47)
+ && gBattleMons[i].ability == ABILITY_ARENA_TRAP)
{
ewram16003 = i;
gLastUsedAbility = gBattleMons[i].ability;
@@ -2365,7 +2340,7 @@ u8 CanRunFromBattle(void)
return 2;
}
}
- i = AbilityBattleEffects(15, gActiveBank, 0x2A, 0, 0);
+ i = AbilityBattleEffects(15, gActiveBank, ABILITY_MAGNET_PULL, 0, 0);
if (i != 0 && (gBattleMons[gActiveBank].type1 == 8 || gBattleMons[gActiveBank].type2 == 8))
{
ewram16003 = i - 1;
@@ -2373,7 +2348,7 @@ u8 CanRunFromBattle(void)
gBattleCommunication[5] = 2;
return 2;
}
- if ((gBattleMons[gActiveBank].status2 & 0x0400E000) || (gStatuses3[gActiveBank] & 0x400))
+ if ((gBattleMons[gActiveBank].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) || (gStatuses3[gActiveBank] & STATUS3_ROOTED))
{
gBattleCommunication[5] = 0;
return 1;
diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c
index 42c700844..36a287efc 100644
--- a/src/battle_811DA74.c
+++ b/src/battle_811DA74.c
@@ -1163,7 +1163,7 @@ void sub_811FDF0(void)
void sub_811FDFC(void)
{
- if (mplay_80342A4(gActiveBank) == 0)
+ if (!mplay_80342A4(gActiveBank))
{
u32 r0 = gBattleBufferA[gActiveBank][1]
| (gBattleBufferA[gActiveBank][2] << 8);
@@ -1409,10 +1409,12 @@ void sub_81203FC(void)
void LinkPartnerHandleHitAnimation(void)
{
if (gSprites[gObjectBankIDs[gActiveBank]].invisible == TRUE)
+ {
LinkPartnerBufferExecCompleted();
+ }
else
{
- gDoingBattleAnim = 1;
+ gDoingBattleAnim = TRUE;
gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
sub_8047858(gActiveBank);
gBattleBankFunc[gActiveBank] = bx_blink_t3;
@@ -1572,9 +1574,8 @@ void sub_81209D8(void)
{
u8 r3 = gBattleBufferA[gActiveBank][1];
u16 r4 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
- u8 var = gActiveBank;
- if (move_anim_start_t3(var, var, var, r3, r4) != 0)
+ if (move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, r3, r4) != 0)
LinkPartnerBufferExecCompleted();
else
gBattleBankFunc[gActiveBank] = sub_811E3B8;
diff --git a/src/battle_ai.c b/src/battle_ai.c
index fabe0b61d..d262e69c8 100644
--- a/src/battle_ai.c
+++ b/src/battle_ai.c
@@ -15,7 +15,7 @@
extern u16 gBattleTypeFlags;
extern u16 gBattleWeather;
extern u8 gActiveBank;
-extern u8 gBattlePartyID[][2];
+extern u16 gBattlePartyID[MAX_BANKS_BATTLE];
extern u16 gCurrentMove;
extern int gBattleMoveDamage;
extern u8 gBankAttacker;
@@ -23,13 +23,10 @@ extern u8 gBankTarget;
extern u8 gAbsentBankFlags;
extern u8 gBattleMoveFlags;
extern u16 gDynamicBasePower;
-extern u16 gLastUsedMove[];
-extern u32 gUnknown_02024ACC[];
-extern u32 gStatuses3[];
-extern u16 gSideAffecting[];
-extern struct BattlePokemon gBattleMons[];
-extern struct BattlePokemon gUnknown_02024A8C[];
-extern u8 gBattleResults[];
+extern u16 gLastUsedMove[MAX_BANKS_BATTLE];
+extern u32 gStatuses3[MAX_BANKS_BATTLE];
+extern u16 gSideAffecting[2];
+extern struct BattlePokemon gBattleMons[MAX_BANKS_BATTLE];
extern u8 gCritMultiplier;
extern u16 gTrainerBattleOpponent;
extern u8 *BattleAIs[];
@@ -120,7 +117,7 @@ static void BattleAICmd_get_gender(void);
static void BattleAICmd_is_first_turn(void);
static void BattleAICmd_get_stockpile_count(void);
static void BattleAICmd_is_double_battle(void);
-static void BattleAICmd_get_item(void);
+static void BattleAICmd_get_used_item(void);
static void BattleAICmd_get_move_type_from_result(void);
static void BattleAICmd_get_move_power_from_result(void);
static void BattleAICmd_get_move_effect_from_result(void);
@@ -142,100 +139,100 @@ typedef void (*BattleAICmdFunc)(void);
static const BattleAICmdFunc sBattleAICmdTable[] =
{
- BattleAICmd_if_random_less_than,
- BattleAICmd_if_random_greater_than,
- BattleAICmd_if_random_equal,
- BattleAICmd_if_random_not_equal,
- BattleAICmd_score,
- BattleAICmd_if_hp_less_than,
- BattleAICmd_if_hp_more_than,
- BattleAICmd_if_hp_equal,
- BattleAICmd_if_hp_not_equal,
- BattleAICmd_if_status,
- BattleAICmd_if_not_status,
- BattleAICmd_if_status2,
- BattleAICmd_if_not_status2,
- BattleAICmd_if_status3,
- BattleAICmd_if_not_status3,
- BattleAICmd_if_status4,
- BattleAICmd_if_not_status4,
- BattleAICmd_if_less_than,
- BattleAICmd_if_more_than,
- BattleAICmd_if_equal,
- BattleAICmd_if_not_equal,
- BattleAICmd_if_less_than_32,
- BattleAICmd_if_more_than_32,
- BattleAICmd_if_equal_32,
- BattleAICmd_if_not_equal_32,
- BattleAICmd_if_move,
- BattleAICmd_if_not_move,
- BattleAICmd_if_in_bytes,
- BattleAICmd_if_not_in_bytes,
- BattleAICmd_if_in_words,
- BattleAICmd_if_not_in_words,
- BattleAICmd_if_user_can_damage,
- BattleAICmd_if_user_cant_damage,
- BattleAICmd_get_turn_count,
- BattleAICmd_get_type,
- BattleAICmd_get_move_power,
- BattleAICmd_is_most_powerful_move,
- BattleAICmd_get_move,
- BattleAICmd_if_arg_equal,
- BattleAICmd_if_arg_not_equal,
- BattleAICmd_if_would_go_first,
- BattleAICmd_if_would_not_go_first,
- BattleAICmd_nullsub_2A,
- BattleAICmd_nullsub_2B,
- BattleAICmd_count_alive_pokemon,
- BattleAICmd_get_considered_move,
- BattleAICmd_get_considered_move_effect,
- BattleAICmd_get_ability,
- BattleAICmd_get_highest_possible_damage,
- BattleAICmd_if_damage_bonus,
- BattleAICmd_nullsub_32,
- BattleAICmd_nullsub_33,
- BattleAICmd_if_status_in_party,
- BattleAICmd_if_status_not_in_party,
- BattleAICmd_get_weather,
- BattleAICmd_if_effect,
- BattleAICmd_if_not_effect,
- BattleAICmd_if_stat_level_less_than,
- BattleAICmd_if_stat_level_more_than,
- BattleAICmd_if_stat_level_equal,
- BattleAICmd_if_stat_level_not_equal,
- BattleAICmd_if_can_faint,
- BattleAICmd_if_cant_faint,
- BattleAICmd_if_has_move,
- BattleAICmd_if_dont_have_move,
- BattleAICmd_if_move_effect,
- BattleAICmd_if_not_move_effect,
- BattleAICmd_if_last_move_did_damage,
- BattleAICmd_if_encored,
- BattleAICmd_flee,
- BattleAICmd_if_random_100,
- BattleAICmd_watch,
- BattleAICmd_get_hold_effect,
- BattleAICmd_get_gender,
- BattleAICmd_is_first_turn,
- BattleAICmd_get_stockpile_count,
- BattleAICmd_is_double_battle,
- BattleAICmd_get_item,
- BattleAICmd_get_move_type_from_result,
- BattleAICmd_get_move_power_from_result,
- BattleAICmd_get_move_effect_from_result,
- BattleAICmd_get_protect_count,
- BattleAICmd_nullsub_52,
- BattleAICmd_nullsub_53,
- BattleAICmd_nullsub_54,
- BattleAICmd_nullsub_55,
- BattleAICmd_nullsub_56,
- BattleAICmd_nullsub_57,
- BattleAICmd_call,
- BattleAICmd_jump,
- BattleAICmd_end,
- BattleAICmd_if_level_compare,
- BattleAICmd_if_taunted,
- BattleAICmd_if_not_taunted,
+ BattleAICmd_if_random_less_than, // 0x0
+ BattleAICmd_if_random_greater_than, // 0x1
+ BattleAICmd_if_random_equal, // 0x2
+ BattleAICmd_if_random_not_equal, // 0x3
+ BattleAICmd_score, // 0x4
+ BattleAICmd_if_hp_less_than, // 0x5
+ BattleAICmd_if_hp_more_than, // 0x6
+ BattleAICmd_if_hp_equal, // 0x7
+ BattleAICmd_if_hp_not_equal, // 0x8
+ BattleAICmd_if_status, // 0x9
+ BattleAICmd_if_not_status, // 0xA
+ BattleAICmd_if_status2, // 0xB
+ BattleAICmd_if_not_status2, // 0xC
+ BattleAICmd_if_status3, // 0xD
+ BattleAICmd_if_not_status3, // 0xE
+ BattleAICmd_if_status4, // 0xF
+ BattleAICmd_if_not_status4, // 0x10
+ BattleAICmd_if_less_than, // 0x11
+ BattleAICmd_if_more_than, // 0x12
+ BattleAICmd_if_equal, // 0x13
+ BattleAICmd_if_not_equal, // 0x14
+ BattleAICmd_if_less_than_32, // 0x15
+ BattleAICmd_if_more_than_32, // 0x16
+ BattleAICmd_if_equal_32, // 0x17
+ BattleAICmd_if_not_equal_32, // 0x18
+ BattleAICmd_if_move, // 0x19
+ BattleAICmd_if_not_move, // 0x1A
+ BattleAICmd_if_in_bytes, // 0x1B
+ BattleAICmd_if_not_in_bytes, // 0x1C
+ BattleAICmd_if_in_words, // 0x1D
+ BattleAICmd_if_not_in_words, // 0x1E
+ BattleAICmd_if_user_can_damage, // 0x1F
+ BattleAICmd_if_user_cant_damage, // 0x20
+ BattleAICmd_get_turn_count, // 0x21
+ BattleAICmd_get_type, // 0x22
+ BattleAICmd_get_move_power, // 0x23
+ BattleAICmd_is_most_powerful_move, // 0x24
+ BattleAICmd_get_move, // 0x25
+ BattleAICmd_if_arg_equal, // 0x26
+ BattleAICmd_if_arg_not_equal, // 0x27
+ BattleAICmd_if_would_go_first, // 0x28
+ BattleAICmd_if_would_not_go_first, // 0x29
+ BattleAICmd_nullsub_2A, // 0x2A
+ BattleAICmd_nullsub_2B, // 0x2B
+ BattleAICmd_count_alive_pokemon, // 0x2C
+ BattleAICmd_get_considered_move, // 0x2D
+ BattleAICmd_get_considered_move_effect, // 0x2E
+ BattleAICmd_get_ability, // 0x2F
+ BattleAICmd_get_highest_possible_damage, // 0x30
+ BattleAICmd_if_damage_bonus, // 0x31
+ BattleAICmd_nullsub_32, // 0x32
+ BattleAICmd_nullsub_33, // 0x33
+ BattleAICmd_if_status_in_party, // 0x34
+ BattleAICmd_if_status_not_in_party, // 0x35
+ BattleAICmd_get_weather, // 0x36
+ BattleAICmd_if_effect, // 0x37
+ BattleAICmd_if_not_effect, // 0x38
+ BattleAICmd_if_stat_level_less_than, // 0x39
+ BattleAICmd_if_stat_level_more_than, // 0x3A
+ BattleAICmd_if_stat_level_equal, // 0x3B
+ BattleAICmd_if_stat_level_not_equal, // 0x3C
+ BattleAICmd_if_can_faint, // 0x3D
+ BattleAICmd_if_cant_faint, // 0x3E
+ BattleAICmd_if_has_move, // 0x3F
+ BattleAICmd_if_dont_have_move, // 0x40
+ BattleAICmd_if_move_effect, // 0x41
+ BattleAICmd_if_not_move_effect, // 0x42
+ BattleAICmd_if_last_move_did_damage, // 0x43
+ BattleAICmd_if_encored, // 0x44
+ BattleAICmd_flee, // 0x45
+ BattleAICmd_if_random_100, // 0x46
+ BattleAICmd_watch, // 0x47
+ BattleAICmd_get_hold_effect, // 0x48
+ BattleAICmd_get_gender, // 0x49
+ BattleAICmd_is_first_turn, // 0x4A
+ BattleAICmd_get_stockpile_count, // 0x4B
+ BattleAICmd_is_double_battle, // 0x4C
+ BattleAICmd_get_used_item, // 0x4D
+ BattleAICmd_get_move_type_from_result, // 0x4E
+ BattleAICmd_get_move_power_from_result, // 0x4F
+ BattleAICmd_get_move_effect_from_result, // 0x50
+ BattleAICmd_get_protect_count, // 0x51
+ BattleAICmd_nullsub_52, // 0x52
+ BattleAICmd_nullsub_53, // 0x53
+ BattleAICmd_nullsub_54, // 0x54
+ BattleAICmd_nullsub_55, // 0x55
+ BattleAICmd_nullsub_56, // 0x56
+ BattleAICmd_nullsub_57, // 0x57
+ BattleAICmd_call, // 0x58
+ BattleAICmd_jump, // 0x59
+ BattleAICmd_end, // 0x5A
+ BattleAICmd_if_level_compare, // 0x5B
+ BattleAICmd_if_taunted, // 0x5C
+ BattleAICmd_if_not_taunted, // 0x5D
};
#ifdef NONMATCHING
@@ -449,13 +446,13 @@ void unref_sub_81074A0(u8 a)
UNK_2016A00_STRUCT->movesUsed[a / 2][i] = 0;
}
-void sub_81074C4(u8 a, u8 b)
+void RecordAbilityBattle(u8 a, u8 b)
{
if (GetBankSide(a) == 0)
UNK_2016A00_STRUCT->unk20[GetBankIdentity(a) & 1] = b;
}
-void sub_81074F8(u8 a, u8 b)
+void RecordItemBattle(u8 a, u8 b)
{
if (GetBankSide(a) == 0)
UNK_2016A00_STRUCT->unk22[GetBankIdentity(a) & 1] = b;
@@ -899,7 +896,7 @@ static void BattleAICmd_if_user_cant_damage(void)
static void BattleAICmd_get_turn_count(void)
{
- AI_THINKING_STRUCT->funcResult = gBattleResults[19];
+ AI_THINKING_STRUCT->funcResult = gBattleResults.BattleTurnCounter;
gAIScriptPtr += 1;
}
@@ -946,8 +943,8 @@ static void BattleAICmd_is_most_powerful_move(void)
&& sDiscouragedPowerfulMoveEffects[i] == 0xFFFF)
{
gDynamicBasePower = 0;
- unk_2000000[0x1601C] = 0; // why is this a manual array?
- unk_2000000[0x1601F] = 1;
+ ewram[0x1601C] = 0; // why is this a manual array?
+ ewram[0x1601F] = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
@@ -965,8 +962,8 @@ static void BattleAICmd_is_most_powerful_move(void)
&& gBattleMoves[gBattleMons[gBankAttacker].moves[i]].power > 1)
{
gCurrentMove = gBattleMons[gBankAttacker].moves[i];
- sub_801CAF8(gBankAttacker, gBankTarget);
- move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget);
+ AI_CalcDmg(gBankAttacker, gBankTarget);
+ TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
damages[i] = (gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[i]) / 100;
if (damages[i] == 0) // moves always do at least 1 damage.
@@ -1135,11 +1132,11 @@ _081082BA:\n\
ldrb r0, [r7]\n\
ldr r4, _08108354 @ =gBankTarget\n\
ldrb r1, [r4]\n\
- bl sub_801CAF8\n\
+ bl AI_CalcDmg\n\
ldrh r0, [r5]\n\
ldrb r1, [r7]\n\
ldrb r2, [r4]\n\
- bl move_effectiveness_something\n\
+ bl TypeCalc\n\
mov r4, sp\n\
add r4, r8\n\
ldr r2, _08108358 @ =gBattleMoveDamage\n\
@@ -1312,14 +1309,14 @@ static void BattleAICmd_count_alive_pokemon(void)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
u32 status;
- var = gBattlePartyID[index][0];
+ var = gBattlePartyID[index];
status = GetBankIdentity(index) ^ 2;
- var2 = gBattlePartyID[GetBankByPlayerAI(status)][0];
+ var2 = gBattlePartyID[GetBankByPlayerAI(status)];
}
else
{
- var = gBattlePartyID[index][0];
- var2 = gBattlePartyID[index][0];
+ var = gBattlePartyID[index];
+ var2 = gBattlePartyID[index];
}
for (i = 0; i < 6; i++)
@@ -1415,8 +1412,8 @@ static void BattleAICmd_get_highest_possible_damage(void)
s32 i;
gDynamicBasePower = 0;
- BATTLE_STRUCT->unk.unk1 = 0;
- BATTLE_STRUCT->unk.unk4 = 1;
+ BATTLE_STRUCT->DynamicMoveType = 0;
+ BATTLE_STRUCT->DmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
AI_THINKING_STRUCT->funcResult = 0;
@@ -1428,7 +1425,7 @@ static void BattleAICmd_get_highest_possible_damage(void)
if (gCurrentMove)
{
- move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget);
+ TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
// reduce by 1/3.
if (gBattleMoveDamage == 120)
@@ -1455,15 +1452,15 @@ static void BattleAICmd_if_damage_bonus(void)
u8 damageVar;
gDynamicBasePower = 0;
- BATTLE_STRUCT->unk.unk1 = 0;
- BATTLE_STRUCT->unk.unk4 = 1;
+ BATTLE_STRUCT->DynamicMoveType = 0;
+ BATTLE_STRUCT->DmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
gBattleMoveDamage = 40;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
- move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget);
+ TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
if (gBattleMoveDamage == 120)
gBattleMoveDamage = 80;
@@ -1565,13 +1562,13 @@ static void BattleAICmd_if_status_not_in_party(void)
static void BattleAICmd_get_weather(void)
{
- if (gBattleWeather & 7)
+ if (gBattleWeather & WEATHER_RAINY)
AI_THINKING_STRUCT->funcResult = WEATHER_RAIN;
- if (gBattleWeather & 0x18)
+ if (gBattleWeather & WEATHER_SANDSTORMY)
AI_THINKING_STRUCT->funcResult = WEATHER_SANDSTORM;
- if (gBattleWeather & 0x60)
+ if (gBattleWeather & WEATHER_SUNNY)
AI_THINKING_STRUCT->funcResult = WEATHER_SUN;
- if (gBattleWeather & 0x80)
+ if (gBattleWeather & weather_hail)
AI_THINKING_STRUCT->funcResult = WEATHER_HAIL;
gAIScriptPtr += 1;
@@ -1662,13 +1659,13 @@ static void BattleAICmd_if_can_faint(void)
}
gDynamicBasePower = 0;
- BATTLE_STRUCT->unk.unk1 = 0;
- BATTLE_STRUCT->unk.unk4 = 1;
+ BATTLE_STRUCT->DynamicMoveType = 0;
+ BATTLE_STRUCT->DmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
- sub_801CAF8(gBankAttacker, gBankTarget);
- move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget);
+ AI_CalcDmg(gBankAttacker, gBankTarget);
+ TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100;
@@ -1691,13 +1688,13 @@ static void BattleAICmd_if_cant_faint(void)
}
gDynamicBasePower = 0;
- BATTLE_STRUCT->unk.unk1 = 0;
- BATTLE_STRUCT->unk.unk4 = 1;
+ BATTLE_STRUCT->DynamicMoveType = 0;
+ BATTLE_STRUCT->DmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
- sub_801CAF8(gBankAttacker, gBankTarget);
- move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget);
+ AI_CalcDmg(gBankAttacker, gBankTarget);
+ TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100;
@@ -1846,7 +1843,7 @@ static void BattleAICmd_if_last_move_did_damage(void)
if (gAIScriptPtr[2] == 0)
{
- if (gDisableStructs[index].unk4 == 0)
+ if (gDisableStructs[index].DisabledMove == 0)
{
gAIScriptPtr += 7;
return;
@@ -1859,7 +1856,7 @@ static void BattleAICmd_if_last_move_did_damage(void)
gAIScriptPtr += 7;
return;
}
- else if (gDisableStructs[index].unk6 != 0)
+ else if (gDisableStructs[index].EncoredMove != 0)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
return;
@@ -1872,7 +1869,7 @@ static void BattleAICmd_if_encored(void)
switch (gAIScriptPtr[1])
{
case 0: // _08109348
- if (gDisableStructs[gActiveBank].unk4 == AI_THINKING_STRUCT->moveConsidered)
+ if (gDisableStructs[gActiveBank].DisabledMove == AI_THINKING_STRUCT->moveConsidered)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
@@ -1880,7 +1877,7 @@ static void BattleAICmd_if_encored(void)
gAIScriptPtr += 6;
return;
case 1: // _08109370
- if (gDisableStructs[gActiveBank].unk6 == AI_THINKING_STRUCT->moveConsidered)
+ if (gDisableStructs[gActiveBank].EncoredMove == AI_THINKING_STRUCT->moveConsidered)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
@@ -1957,7 +1954,7 @@ static void BattleAICmd_is_first_turn(void)
else
index = gBankTarget;
- AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk16;
+ AI_THINKING_STRUCT->funcResult = gDisableStructs[index].IsFirstTurn;
gAIScriptPtr += 2;
}
@@ -1971,7 +1968,7 @@ static void BattleAICmd_get_stockpile_count(void)
else
index = gBankTarget;
- AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk9;
+ AI_THINKING_STRUCT->funcResult = gDisableStructs[index].StockpileCounter;
gAIScriptPtr += 2;
}
@@ -1983,7 +1980,7 @@ static void BattleAICmd_is_double_battle(void)
gAIScriptPtr += 1;
}
-static void BattleAICmd_get_item(void)
+static void BattleAICmd_get_used_item(void)
{
u8 index;
@@ -1993,7 +1990,7 @@ static void BattleAICmd_get_item(void)
index = gBankTarget;
// this hack and a half matches. whatever. i dont care. someone else fix this mess later. PS: still cant fix this.
- AI_THINKING_STRUCT->funcResult = ewram[0x160CC + (index * 2)];
+ AI_THINKING_STRUCT->funcResult = ewram[MULTI_DIM_ARR(index, B_16, 0x160CC)];
gAIScriptPtr += 2;
}
@@ -2028,7 +2025,7 @@ static void BattleAICmd_get_protect_count(void)
else
index = gBankTarget;
- AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk8;
+ AI_THINKING_STRUCT->funcResult = gDisableStructs[index].ProtectUses;
gAIScriptPtr += 2;
}
diff --git a/src/battle_anim_8137220.c b/src/battle_anim_8137220.c
index 42d6cb8da..bb181d5fb 100644
--- a/src/battle_anim_8137220.c
+++ b/src/battle_anim_8137220.c
@@ -12,6 +12,7 @@
#include "songs.h"
#include "sound.h"
#include "sprite.h"
+#include "item_use.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
@@ -33,7 +34,6 @@ extern u8 gBattleBufferA[][0x200];
extern u8 gObjectBankIDs[];
extern MainCallback gPreBattleCallback1;
extern bool8 gDoingBattleAnim;
-extern u16 gScriptItemId;
extern u16 gBattlePartyID[];
extern u8 gHealthboxIDs[];
extern u16 gBattleTypeFlags;
diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c
index cf572642e..73b847713 100644
--- a/src/battle_party_menu.c
+++ b/src/battle_party_menu.c
@@ -2,6 +2,7 @@
#include "battle_party_menu.h"
#include "battle.h"
#include "item_menu.h"
+#include "item_use.h"
#include "main.h"
#include "menu.h"
#include "menu_helpers.h"
@@ -55,7 +56,6 @@ extern void nullsub_14();
extern void OpenPartyMenu();
extern u8 sub_803FBBC(void);
-extern u16 gScriptItemId;
extern u8 gPlayerPartyCount;
extern u8 gNoOfAllBanks;
extern u16 gBattlePartyID[];
diff --git a/src/berry.c b/src/berry.c
index d6fbb955e..fa15672e7 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -5,6 +5,7 @@
#include "fieldmap.h"
#include "item.h"
#include "item_menu.h"
+#include "item_use.h"
#include "items.h"
#include "main.h"
#include "rng.h"
@@ -974,7 +975,6 @@ const struct Berry gBerries[] =
const struct BerryTree gBlankBerryTree = {0};
extern u8 BerryTreeScript;
-extern u16 gScriptItemId;
extern u16 gScriptLastTalked;
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 116ca2cca..0e81e4fec 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -5,6 +5,7 @@
#include "field_map_obj.h"
#include "item_menu.h"
#include "items.h"
+#include "item_use.h"
#include "main.h"
#include "menu.h"
#include "menu_helpers.h"
@@ -35,7 +36,6 @@ struct BerryTagStatus
extern struct Struct2000000 unk_2000000;
extern u8 gUnknown_0203932C;
extern struct BerryTagStatus gUnknown_0203932E;
-extern u16 gScriptItemId;
extern u16 gUnknown_030041B4;
extern const struct CompressedSpriteSheet gUnknown_083C1F74;
diff --git a/src/decoration.c b/src/decoration.c
index 9eba54ad7..e829cb072 100644..100755
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -1396,7 +1396,7 @@ const u8 *const gUnknown_083EC624[] = {
gMenuText_GoBackToPrev
};
-const struct MenuAction3 gUnknown_083EC634[] = {
+const struct YesNoFuncTable gUnknown_083EC634[] = {
{sub_80FF5BC, sub_80FF058},
{sub_81017A0, sub_80FF058},
{sub_81017A0, sub_80FF058},
@@ -1871,16 +1871,16 @@ void sub_80FE948(u8 taskId)
gUnknown_020388F5 = gUnknown_020388F2 + gUnknown_020388F4;
if (gUnknown_020388F5 == gUnknown_020388D5)
{
- gUnknown_083EC634[gTasks[taskId].data[11]].func2(taskId);
+ gUnknown_083EC634[gTasks[taskId].data[11]].noFunc(taskId);
} else
{
- gUnknown_083EC634[gTasks[taskId].data[11]].func1(taskId);
+ gUnknown_083EC634[gTasks[taskId].data[11]].yesFunc(taskId);
}
} else if (gMain.newKeys & B_BUTTON)
{
HandleDestroyMenuCursors();
PlaySE(SE_SELECT);
- gUnknown_083EC634[gTasks[taskId].data[11]].func2(taskId);
+ gUnknown_083EC634[gTasks[taskId].data[11]].noFunc(taskId);
}
}
}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index d94c97ff3..d94c97ff3 100755..100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c
index 17584c96a..17584c96a 100755..100644
--- a/src/field_map_obj_helpers.c
+++ b/src/field_map_obj_helpers.c
diff --git a/src/field_special_scene.c b/src/field_special_scene.c
index c88ac8f65..82a7a13e3 100644
--- a/src/field_special_scene.c
+++ b/src/field_special_scene.c
@@ -229,7 +229,7 @@ void ExecuteTruckSequence(void)
CreateTask(Task_HandleTruckSequence, 0xA);
}
-void EndTruckSequence(void)
+void EndTruckSequence(u8 taskId)
{
if (!FuncIsActiveTask(Task_HandleTruckSequence))
{
diff --git a/src/field_tasks.c b/src/field_tasks.c
new file mode 100755
index 000000000..caf2ce6b9
--- /dev/null
+++ b/src/field_tasks.c
@@ -0,0 +1,859 @@
+//
+// Created by scott on 6/22/2017.
+//
+
+#include "global.h"
+#include "task.h"
+#include "main.h"
+#include "vars.h"
+#include "bike.h"
+#include "item.h"
+#include "items.h"
+#include "event_data.h"
+#include "rom4.h"
+#include "clock.h"
+#include "script.h"
+#include "field_special_scene.h"
+#include "field_effect_helpers.h"
+#include "secret_base.h"
+#include "metatile_behavior.h"
+#include "fieldmap.h"
+#include "field_player_avatar.h"
+#include "field_camera.h"
+#include "songs.h"
+#include "sound.h"
+#include "field_tasks.h"
+
+void DummyPerStepCallback(u8);
+void PerStepCallback_8069F64(u8);
+void PerStepCallback_8069AA0(u8);
+void PerStepCallback_8069864(u8);
+void PerStepCallback_8069DD4(u8);
+void PerStepCallback_806A07C(u8);
+
+void (*const gUnknown_08376364[])(u8) = {
+ DummyPerStepCallback,
+ PerStepCallback_8069F64,
+ PerStepCallback_8069AA0,
+ PerStepCallback_8069864,
+ PerStepCallback_8069DD4,
+ EndTruckSequence,
+ sub_80BCF1C,
+ PerStepCallback_806A07C
+};
+
+void Task_RunPerStepCallback(u8 taskId)
+{
+ int idx = gTasks[taskId].data[0];
+ gUnknown_08376364[idx](taskId);
+}
+
+static void RunTimeBasedEvents(s16 *taskData)
+{
+ switch (*taskData)
+ {
+ case 0:
+ if (gMain.vblankCounter1 & 0x1000)
+ {
+ DoTimeBasedEvents();
+ (*taskData)++;
+ }
+ break;
+ case 1:
+ if (!(gMain.vblankCounter1 & 0x1000))
+ {
+ (*taskData)--;
+ }
+ break;
+ }
+}
+
+void Task_RunTimeBasedEvents(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+ if (!ScriptContext2_IsEnabled())
+ {
+ RunTimeBasedEvents(taskData);
+ sub_80540D0(taskData + 1, taskData + 2);
+ }
+}
+
+void Task_MuddySlope(u8);
+
+void SetUpFieldTasks(void)
+{
+ if (!FuncIsActiveTask(Task_RunPerStepCallback))
+ {
+ u8 taskId = CreateTask(Task_RunPerStepCallback, 0x50);
+ gTasks[taskId].data[0] = 0;
+ }
+ if (!FuncIsActiveTask(Task_MuddySlope))
+ {
+ CreateTask(Task_MuddySlope, 0x50);
+ }
+ if (!FuncIsActiveTask(Task_RunTimeBasedEvents))
+ {
+ CreateTask(Task_RunTimeBasedEvents, 0x50);
+ }
+}
+
+void ActivatePerStepCallback(u8 callback)
+{
+ s16 *dataPointer;
+ s16 *dataStart;
+ s16 zero;
+ u8 taskId = FindTaskIdByFunc(Task_RunPerStepCallback);
+ if (taskId != 0xff)
+ {
+ dataStart = gTasks[taskId].data;
+ zero = 0;
+ dataPointer = &dataStart[15];
+ do
+ {
+ *dataPointer-- = zero;
+ } while ((int)dataPointer >= (int)dataStart);
+ if (callback >= ARRAY_COUNT(gUnknown_08376364))
+ {
+ *dataStart = 0;
+ }
+ else
+ {
+ *dataStart = callback;
+ }
+ }
+}
+
+void ResetFieldTasksArgs(void)
+{
+ u8 taskId;
+ s16 *taskData;
+ taskId = FindTaskIdByFunc(Task_RunPerStepCallback);
+ if (taskId != 0xff)
+ {
+ taskData = gTasks[taskId].data;
+ }
+ taskId = FindTaskIdByFunc(Task_RunTimeBasedEvents);
+ if (taskId != 0xff)
+ {
+ taskData = gTasks[taskId].data;
+ taskData[1] = 0;
+ taskData[2] = 0;
+ }
+}
+
+const struct MetatileOffset gUnknown_08376384[][2] = {
+ {{ 0, 0,0x259}, { 0, 1,0x261}},
+ {{ 0, -1,0x259}, { 0, 0,0x261}},
+ {{ 0, 0,0x252}, { 1, 0,0x253}},
+ {{ -1, 0,0x252}, { 0, 0,0x253}}
+};
+
+const struct MetatileOffset gUnknown_083763A4[][2] = {
+ {{ 0, 0,0x25A}, { 0, 1,0x262}},
+ {{ 0, -1,0x25A}, { 0, 0,0x262}},
+ {{ 0, 0,0x254}, { 1, 0,0x255}},
+ {{ -1, 0,0x254}, { 0, 0,0x255}}
+};
+
+const struct MetatileOffset gUnknown_083763C4[][2] = {
+ {{ 0, 0,0x258}, { 0, 1,0x260}},
+ {{ 0, -1,0x258}, { 0, 0,0x260}},
+ {{ 0, 0,0x250}, { 1, 0,0x251}},
+ {{ -1, 0,0x250}, { 0, 0,0x251}}
+};
+
+void DummyPerStepCallback(u8 taskId) {}
+
+const struct MetatileOffset *sub_80695E0(const struct MetatileOffset a0[][2], s8 a1)
+{
+ if (sub_80576A0(a1))
+ {
+ return a0[0];
+ }
+ else if (sub_80576B4(a1))
+ {
+ return a0[1];
+ }
+ else if (sub_80576C8(a1))
+ {
+ return a0[2];
+ }
+ else if (sub_80576DC(a1))
+ {
+ return a0[3];
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+#ifdef NONMATCHING
+void sub_8069638(const struct MetatileOffset offsets[][2], s16 x, s16 y, bool32 flag)
+{
+ const struct MetatileOffset *offsetData = sub_80695E0(offsets, MapGridGetMetatileBehaviorAt(x, y));
+ const struct MetatileOffset *offsetData2 = offsetData;
+ if (offsetData != NULL)
+ {
+ MapGridSetMetatileIdAt(x + offsetData[0].x, y + offsetData[0].y, offsetData[0].tileId);
+ if (flag)
+ {
+ CurrentMapDrawMetatileAt(x + offsetData[0].x, y + offsetData[0].y);
+ }
+ MapGridSetMetatileIdAt(x + offsetData2[1].x, y + offsetData2[1].y, offsetData2[1].tileId);
+ if (flag)
+ {
+ CurrentMapDrawMetatileAt(x + offsetData2[1].x, y + offsetData2[1].y);
+ }
+ }
+}
+#else
+__attribute__((naked))
+void sub_8069638(const struct MetatileOffset offsets[][2], s16 x, s16 y, bool32 flag)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r8\n"
+ "\tpush {r7}\n"
+ "\tadds r5, r0, 0\n"
+ "\tmov r8, r3\n"
+ "\tlsls r1, 16\n"
+ "\tasrs r6, r1, 16\n"
+ "\tlsls r2, 16\n"
+ "\tasrs r7, r2, 16\n"
+ "\tadds r0, r6, 0\n"
+ "\tadds r1, r7, 0\n"
+ "\tbl MapGridGetMetatileBehaviorAt\n"
+ "\tadds r1, r0, 0\n"
+ "\tlsls r1, 16\n"
+ "\tlsrs r1, 16\n"
+ "\tadds r0, r5, 0\n"
+ "\tbl sub_80695E0\n"
+ "\tadds r4, r0, 0\n"
+ "\tadds r5, r4, 0\n"
+ "\tcmp r4, 0\n"
+ "\tbeq _080696B6\n"
+ "\tmovs r0, 0\n"
+ "\tldrsb r0, [r4, r0]\n"
+ "\tadds r0, r6, r0\n"
+ "\tmovs r1, 0x1\n"
+ "\tldrsb r1, [r4, r1]\n"
+ "\tadds r1, r7, r1\n"
+ "\tldrh r2, [r4, 0x2]\n"
+ "\tbl MapGridSetMetatileIdAt\n"
+ "\tmov r0, r8\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0806968E\n"
+ "\tmovs r0, 0\n"
+ "\tldrsb r0, [r4, r0]\n"
+ "\tadds r0, r6, r0\n"
+ "\tmovs r1, 0x1\n"
+ "\tldrsb r1, [r4, r1]\n"
+ "\tadds r1, r7, r1\n"
+ "\tbl CurrentMapDrawMetatileAt\n"
+ "_0806968E:\n"
+ "\tmovs r0, 0x4\n"
+ "\tldrsb r0, [r5, r0]\n"
+ "\tadds r0, r6, r0\n"
+ "\tmovs r1, 0x5\n"
+ "\tldrsb r1, [r5, r1]\n"
+ "\tadds r1, r7, r1\n"
+ "\tldrh r2, [r5, 0x6]\n"
+ "\tbl MapGridSetMetatileIdAt\n"
+ "\tmov r0, r8\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080696B6\n"
+ "\tmovs r0, 0x4\n"
+ "\tldrsb r0, [r5, r0]\n"
+ "\tadds r0, r6, r0\n"
+ "\tmovs r1, 0x5\n"
+ "\tldrsb r1, [r5, r1]\n"
+ "\tadds r1, r7, r1\n"
+ "\tbl CurrentMapDrawMetatileAt\n"
+ "_080696B6:\n"
+ "\tpop {r3}\n"
+ "\tmov r8, r3\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0");
+}
+#endif
+
+void sub_80696C0(s16 x, s16 y, bool32 flag)
+{
+ sub_8069638(gUnknown_08376384, x, y, flag);
+}
+
+void sub_80696E4(s16 x, s16 y, bool32 flag)
+{
+ sub_8069638(gUnknown_083763A4, x, y, flag);
+}
+
+void sub_8069708(s16 x, s16 y, bool32 flag)
+{
+ sub_8069638(gUnknown_083763C4, x, y, flag);
+}
+
+bool32 sub_806972C(s16 x1, s16 y1, s16 x2, s16 y2)
+{
+ s8 metatileBehavior = MapGridGetMetatileBehaviorAt(x2, y2);
+ if (sub_80576A0(metatileBehavior))
+ {
+ if (y1 > y2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576B4(metatileBehavior))
+ {
+ if (y1 < y2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576C8(metatileBehavior))
+ {
+ if (x1 > x2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576DC(metatileBehavior))
+ {
+ if (x1 < x2)
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+bool32 sub_80697C8(s16 x1, s16 y1, s16 x2, s16 y2)
+{
+ s8 metatileBehavior = MapGridGetMetatileBehaviorAt(x1, y1);
+ if (sub_80576A0(metatileBehavior))
+ {
+ if (y1 < y2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576B4(metatileBehavior))
+ {
+ if (y1 > y2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576C8(metatileBehavior))
+ {
+ if (x1 < x2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576DC(metatileBehavior))
+ {
+ if (x1 > x2)
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+void PerStepCallback_8069864(u8 taskId)
+{
+ s16 *data;
+ s16 x, y;
+ data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ switch (data[1])
+ {
+ case 0:
+ data[2] = x;
+ data[3] = y;
+ sub_80696E4(x, y, TRUE);
+ data[1] = 1;
+ break;
+ case 1:
+ if (x != data[2] || y != data[3])
+ {
+ if (sub_806972C(x, y, data[2], data[3]))
+ {
+ sub_80696C0(data[2], data[3], TRUE);
+ sub_8069708(data[2], data[3], FALSE);
+ data[4] = data[2];
+ data[5] = data[3];
+ data[1] = 2;
+ data[6] = 8;
+ }
+ else
+ {
+ data[4] = -1;
+ data[5] = -1;
+ }
+ if (sub_80697C8(x, y, data[2], data[3]))
+ {
+ sub_80696C0(x, y, TRUE);
+ data[1] = 2;
+ data[6] = 8;
+ }
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsPacifidlogLog(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ PlaySE(SE_MIZU);
+ }
+ }
+ break;
+ case 2:
+ if ((--data[6]) == 0)
+ {
+ sub_80696E4(x, y, TRUE);
+ if (data[4] != -1 && data[5] != -1)
+ {
+ sub_8069708(data[4], data[5], TRUE);
+ }
+ data[1] = 1;
+ }
+ break;
+ }
+}
+
+void sub_80699D8(s16 x, s16 y)
+{
+ u8 z = PlayerGetZCoord();
+ if (!(z & 0x01))
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x24e:
+ MapGridSetMetatileIdAt(x, y, 0x24f);
+ break;
+ case 0x256:
+ MapGridSetMetatileIdAt(x, y, 0x257);
+ break;
+ }
+ }
+}
+
+void sub_8069A3C(s16 x, s16 y)
+{
+ u8 z = PlayerGetZCoord();
+ if (!(z & 0x01))
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x24f:
+ MapGridSetMetatileIdAt(x, y, 0x24e);
+ break;
+ case 0x257:
+ MapGridSetMetatileIdAt(x, y, 0x256);
+ break;
+ }
+ }
+}
+
+void PerStepCallback_8069AA0(u8 taskId)
+{
+ bool8 isFortreeBridgeCur;
+ bool8 isFortreeBridgePrev;
+ u8 z, flag;
+ s16 x, y, x2, y2;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ switch (data[1])
+ {
+ default:
+ break;
+ case 0:
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ sub_80699D8(x, y);
+ CurrentMapDrawMetatileAt(x, y);
+ }
+ data[1] = 1;
+ break;
+ case 1:
+ x2 = data[2];
+ y2 = data[3];
+ if (x == x2 && y == y2)
+ {
+ break;
+ }
+ isFortreeBridgeCur = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y));
+ isFortreeBridgePrev = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x2, y2));
+ z = PlayerGetZCoord();
+ flag = 0;
+ if ((u8)(z & 1) == 0)
+ {
+ flag = 1;
+ }
+ if (flag && (isFortreeBridgeCur == 1 || isFortreeBridgePrev == 1))
+ {
+ PlaySE(SE_HASHI);
+ }
+ if (isFortreeBridgePrev)
+ {
+ sub_8069A3C(x2, y2);
+ CurrentMapDrawMetatileAt(x2, y2);
+ sub_80699D8(x, y);
+ CurrentMapDrawMetatileAt(x, y);
+ }
+ data[4] = x2;
+ data[5] = y2;
+ data[2] = x;
+ data[3] = y;
+ if (!isFortreeBridgePrev)
+ {
+ break;
+ }
+ data[6] = 16;
+ data[1] = 2;
+ // fallthrough
+ case 2:
+ data[6]--;
+ x2 = data[4];
+ y2 = data[5];
+ switch (data[6] % 7)
+ {
+ case 0:
+ CurrentMapDrawMetatileAt(x2, y2);
+ case 1:
+ case 2:
+ case 3:
+ break;
+ case 4:
+ sub_80699D8(x2, y2);
+ CurrentMapDrawMetatileAt(x2, y2);
+ sub_8069A3C(x2, y2);
+ case 5:
+ case 6:
+ case 7:
+ break;
+ }
+ if (data[6] == 0)
+ {
+ data[1] = 1;
+ }
+ break;
+ }
+}
+
+const u16 gUnknown_083763E4[] = {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ VAR_0x4001,
+ VAR_0x4002,
+ VAR_0x4003,
+ VAR_0x4004,
+ 0,
+ 0,
+ VAR_0x4005,
+ VAR_0x4006,
+ VAR_0x4007,
+ 0,
+ 0,
+ VAR_0x4008,
+ VAR_0x4009,
+ VAR_0x400A,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+};
+
+bool32 sub_8069CB8(s16 x, s16 y)
+{
+ if ((u16)(x - 3) < 11 && (u16)(y - 6) < 14 && gUnknown_083763E4[y])
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8069CFC(s16 x, s16 y)
+{
+ if (sub_8069CB8(x, y))
+ {
+ *GetVarPointer(gUnknown_083763E4[y]) |= (1 << (x - 3));
+ }
+}
+
+bool32 sub_8069D34(s16 x, s16 y)
+{
+ u32 var;
+ if (!sub_8069CB8(x, y))
+ {
+ return FALSE;
+ }
+ var = VarGet(gUnknown_083763E4[y]) << 16;
+ if (((1 << 16) << (x - 3)) & var)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8069D78(void)
+{
+ s32 x, y;
+ s32 width = gMapHeader.mapData->width;
+ s32 height = gMapHeader.mapData->height;
+ for (x=0; x<width; x++)
+ {
+ for (y=0; y<height; y++)
+ {
+ if (sub_8069D34(x, y) == TRUE)
+ {
+ MapGridSetMetatileIdAt(x + 7, y + 7, 0x20e);
+ }
+ }
+ }
+}
+
+void PerStepCallback_8069DD4(u8 taskId)
+{
+ s16 x, y;
+ u16 tileBehavior;
+ u16 *var;
+ s16 *data = gTasks[taskId].data;
+ switch (data[1])
+ {
+ case 0:
+ PlayerGetDestCoords(&x, &y);
+ data[2] = x;
+ data[3] = y;
+ data[1] = 1;
+ break;
+ case 1:
+ PlayerGetDestCoords(&x, &y);
+ if (x != data[2] || y != data[3])
+ {
+ data[2] = x;
+ data[3] = y;
+ tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+ var = GetVarPointer(VAR_ICE_STEP_COUNT);
+ if (MetatileBehavior_IsThinIce(tileBehavior) == TRUE)
+ {
+ (*var)++;
+ data[6] = 4;
+ data[1] = 2;
+ data[4] = x;
+ data[5] = y;
+ }
+ else if (MetatileBehavior_IsCrackedIce(tileBehavior) == TRUE)
+ {
+ *var = 0;
+ data[6] = 4;
+ data[1] = 3;
+ data[4] = x;
+ data[5] = y;
+ }
+ }
+ break;
+ case 2:
+ if (data[6] != 0)
+ {
+ data[6]--;
+ }
+ else
+ {
+ x = data[4];
+ y = data[5];
+ PlaySE(SE_RU_BARI);
+ MapGridSetMetatileIdAt(x, y, 0x20e);
+ CurrentMapDrawMetatileAt(x, y);
+ sub_8069CFC(x - 7, y - 7);
+ data[1] = 1;
+ }
+ break;
+ case 3:
+ if (data[6] != 0)
+ {
+ data[6]--;
+ }
+ else
+ {
+ x = data[4];
+ y = data[5];
+ PlaySE(SE_RU_GASYAN);
+ MapGridSetMetatileIdAt(x, y, 0x206);
+ CurrentMapDrawMetatileAt(x, y);
+ data[1] = 1;
+ }
+ break;
+ }
+}
+
+void PerStepCallback_8069F64(u8 taskId)
+{
+ s16 x, y;
+ u16 *var;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ if (x != data[1] || y != data[2])
+ {
+ data[1] = x;
+ data[2] = y;
+ if (MetatileBehavior_IsAshGrass(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ if (MapGridGetMetatileIdAt(x, y) == 0x20a)
+ {
+ ash(x, y, 0x212, 4);
+ }
+ else
+ {
+ ash(x, y, 0x206, 4);
+ }
+ if (CheckBagHasItem(ITEM_SOOT_SACK, 1))
+ {
+ var = GetVarPointer(VAR_ASH_GATHER_COUNT);
+ if (*var < 9999)
+ {
+ (*var)++;
+ }
+ }
+ }
+ }
+}
+
+void sub_806A040(s16 x, s16 y)
+{
+ MapGridSetMetatileIdAt(x, y, MapGridGetMetatileIdAt(x, y) == 0x22f ? 0x206 : 0x237);
+ CurrentMapDrawMetatileAt(x, y);
+}
+
+void PerStepCallback_806A07C(u8 taskId)
+{
+ s16 x, y;
+ u16 behavior;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ behavior = MapGridGetMetatileBehaviorAt(x, y);
+ if (data[4] != 0 && (--data[4]) == 0)
+ {
+ sub_806A040(data[5], data[6]);
+ }
+ if (data[7] != 0 && (--data[7]) == 0)
+ {
+ sub_806A040(data[8], data[9]);
+ }
+ if (MetatileBehavior_IsCrackedFloorHole(behavior))
+ {
+ VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty
+ }
+ if ((x != data[2] || y != data[3]))
+ {
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsCrackedFloor(behavior))
+ {
+ if (GetPlayerSpeed() != 4)
+ {
+ VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty
+ }
+ if (data[4] == 0)
+ {
+ data[4] = 3;
+ data[5] = x;
+ data[6] = y;
+ }
+ else if (data[7] == 0)
+ {
+ data[7] = 3;
+ data[8] = x;
+ data[9] = y;
+ }
+ }
+ }
+}
+
+const u16 gUnknown_08376418[] = {0xe8, 0xeb, 0xea, 0xe9};
+
+void sub_806A18C(s16 *data, s16 x, s16 y)
+{
+ u16 tile;
+ if ((--data[0]) == 0)
+ {
+ tile = 0xe8;
+ }
+ else
+ {
+ tile = gUnknown_08376418[data[0] / 8];
+ }
+ MapGridSetMetatileIdAt(x, y, tile);
+ CurrentMapDrawMetatileAt(x, y);
+ MapGridSetMetatileIdAt(x, y, 0xe8);
+}
+
+void Task_MuddySlope(u8 taskId)
+{
+ s16 x, y, x2, y2;
+ int i;
+ u16 mapIndices;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ mapIndices = (gSaveBlock1.location.mapGroup << 8) | gSaveBlock1.location.mapNum;
+ switch (data[1])
+ {
+ case 0:
+ data[0] = mapIndices;
+ data[2] = x;
+ data[3] = y;
+ data[1] = 1;
+ data[4] = 0;
+ data[7] = 0;
+ data[10] = 0;
+ data[13] = 0;
+ break;
+ case 1:
+ if (data[2] != x || data[3] != y)
+ {
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsMuddySlope(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ for (i=4; i<14; i+=3)
+ {
+ if (data[i] == 0)
+ {
+ data[i] = 32;
+ data[i + 1] = x;
+ data[i + 2] = y;
+ break;
+ }
+ }
+ }
+ }
+ break;
+ }
+ if (gUnknown_0202E844.field_0 && mapIndices != data[0])
+ {
+ data[0] = mapIndices;
+ x2 = gUnknown_0202E844.x;
+ y2 = gUnknown_0202E844.y;
+ }
+ else
+ {
+ x2 = 0;
+ y2 = 0;
+ }
+ for (i=4; i<14; i+=3)
+ {
+ if (data[i])
+ {
+ data[i + 1] -= x2;
+ data[i + 2] -= y2;
+ sub_806A18C(&data[i], data[i + 1], data[i + 2]);
+ }
+ }
+}
diff --git a/src/item_use.c b/src/item_use.c
index a92161e9a..b906f91ad 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -50,7 +50,6 @@ extern u8 gUnknown_081A168F[];
extern u16 gBattlePartyID[];
-extern u16 gScriptItemId;
extern u16 gBattleTypeFlags;
static const u8 gSSTidalBetaString[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな");
diff --git a/src/link.c b/src/link.c
index 363a8b494..5858ad8bf 100644
--- a/src/link.c
+++ b/src/link.c
@@ -4,6 +4,7 @@
#include "berry.h"
#include "berry_blender.h"
#include "hall_of_fame.h"
+#include "item_use.h"
#include "main.h"
#include "menu.h"
#include "palette.h"
@@ -38,7 +39,6 @@ struct LinkTestBGInfo
extern u8 unk_2000000[];
extern u8 unk_2004000[];
extern u16 gBattleTypeFlags;
-extern u16 gScriptItemId;
extern u16 word_3004858;
diff --git a/src/menu.c b/src/menu.c
index 45cfbbc2f..d532fc602 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -571,7 +571,7 @@ void PrintMenuItems(u8 left, u8 top, u8 menuItemCount, const struct MenuAction m
MenuPrint(menuItems[i].text, left, top + 2 * i);
}
-void PrintMenuItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction menuItems[], u8 *order)
+void PrintMenuItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction menuItems[], const u8 *order)
{
u8 i;
diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c
index ba79261c0..2d9e3fa6f 100644
--- a/src/mori_debug_menu.c
+++ b/src/mori_debug_menu.c
@@ -133,7 +133,7 @@ s8 MoriDebugMenu_PokeblockCase(void)
s32 loopCounter;
for (loopCounter = 0; loopCounter <= 39; loopCounter++)
- sub_810CA6C((u8)loopCounter);
+ sub_810CA6C(loopCounter);
CloseMenu();
return 1;
diff --git a/src/party_menu.c b/src/party_menu.c
index 99bbb5f83..1fcd2cdda 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -6,6 +6,7 @@
#include "data2.h"
#include "event_data.h"
#include "item.h"
+#include "item_use.h"
#include "mail_data.h"
#include "main.h"
#include "menu.h"
@@ -78,7 +79,6 @@ extern u16 gUnknown_0202E8F8;
extern u8 gUnknown_0202E8FA;
extern u8 gLastFieldPokeMenuOpened;
extern u8 gPlayerPartyCount;
-extern u16 gScriptItemId;
extern s32 gBattleMoveDamage;
//extern const u16 gUnknown_083769A8[][6];
diff --git a/src/player_pc.c b/src/player_pc.c
index 9cb395432..38e01b92e 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -26,7 +26,6 @@ extern void DoPlayerPCDecoration(u8);
extern void BuyMenuFreeMemory(void);
extern void DestroyVerticalScrollIndicator(u8);
extern void PauseVerticalScrollIndicator(u8);
-extern void StartVerticalScrollIndicators(int);
extern void LoadScrollIndicatorPalette(void);
extern void ClearMailStruct(struct MailStruct *);
extern u8 sub_807D770(void);
diff --git a/src/pokeblock.c b/src/pokeblock.c
new file mode 100755
index 000000000..b7fa5daa8
--- /dev/null
+++ b/src/pokeblock.c
@@ -0,0 +1,1116 @@
+//
+// Created by scott on 6/27/2017.
+//
+
+#include "global.h"
+#include "rom4.h"
+#include "sprite.h"
+#include "script.h"
+#include "strings.h"
+#include "task.h"
+#include "unknown_task.h"
+#include "text.h"
+#include "main.h"
+#include "menu.h"
+#include "field_fadetransition.h"
+#include "palette.h"
+#include "graphics.h"
+#include "decompress.h"
+#include "menu_helpers.h"
+#include "battle.h"
+#include "item_menu.h"
+#include "item_use.h"
+#include "item.h"
+#include "items.h"
+#include "sound.h"
+#include "songs.h"
+#include "safari_zone.h"
+#include "use_pokeblock.h"
+#include "pokeblock.h"
+
+// function declarations
+
+// gUnknown_083F7EF4
+static void sub_810C508(u8);
+static void sub_810C5C0(u8);
+static void sub_810C748(u8);
+static void sub_810C788(u8);
+static void sub_810C854(u8);
+
+// gUnknown_083F7F24
+static void sub_810C610(u8);
+static void sub_810C668(u8);
+
+// sub_810B6C0
+static bool8 sub_810B998(void);
+static void sub_810BC98(void);
+static void sub_810BD08(void);
+static void sub_810BB0C(void);
+static void sub_810BB30(void);
+static void sub_810BC84(u8);
+
+// sub_810B96C
+static void sub_810BF7C(u8);
+
+// sub_810BC84
+static void sub_810BDAC(bool8);
+
+// sub_810BF38
+static void sub_810C8D4(struct Sprite *);
+
+// sub_810BF7C
+static void sub_810C0C8(u8);
+static void sub_810C31C(u8);
+static void sub_810C368(u8);
+
+// sub_810C0C8
+static void sub_810C1C8(u8, u8);
+static void sub_810C23C(u8);
+
+// sub_810C368
+static void sub_810C40C(u8);
+
+// sub_810C540
+static void sub_810C5EC(u8);
+
+// sub_810C610
+static void sub_810C704(u8);
+
+// rodata
+
+#define GFX_TAG_POKEBLOCK_CASE 14800
+
+const s8 gPokeblockFlavorCompatibilityTable[] = {
+ // Cool, Beauty, Cute, Smart, Tough
+ 0, 0, 0, 0, 0, // Hardy
+ 1, 0, 0, 0, -1, // Lonely
+ 1, 0, -1, 0, 0, // Brave
+ 1, -1, 0, 0, 0, // Adamant
+ 1, 0, 0, -1, 0, // Naughty
+ -1, 0, 0, 0, 1, // Bold
+ 0, 0, 0, 0, 0, // Docile
+ 0, 0, -1, 0, 1, // Relaxed
+ 0, -1, 0, 0, 1, // Impish
+ 0, 0, 0, -1, 1, // Lax
+ -1, 0, 1, 0, 0, // Timid
+ 0, 0, 1, 0, -1, // Hasty
+ 0, 0, 0, 0, 0, // Serious
+ 0, -1, 1, 0, 0, // Jolly
+ 0, 0, 1, -1, 0, // Naive
+ -1, 1, 0, 0, 0, // Modest
+ 0, 1, 0, 0, -1, // Mild
+ 0, 1, -1, 0, 0, // Quiet
+ 0, 0, 0, 0, 0, // Bashful
+ 0, 1, 0, -1, 0, // Rash
+ -1, 0, 0, 1, 0, // Calm
+ 0, 0, 0, 1, -1, // Gentle
+ 0, 0, -1, 1, 0, // Sassy
+ 0, -1, 0, 1, 0, // Careful
+ 0, 0, 0, 0, 0 // Quirky
+};
+
+void (*const gUnknown_083F7EA8[])(void) = {
+ sub_80A5B40,
+ c2_exit_to_overworld_2_switch,
+ sub_802E424,
+ c2_exit_to_overworld_2_switch
+};
+
+const u8 *const gPokeblockNames[] = {
+ NULL,
+ ContestStatsText_RedPokeBlock,
+ ContestStatsText_BluePokeBlock,
+ ContestStatsText_PinkPokeBlock,
+ ContestStatsText_GreenPokeBlock,
+ ContestStatsText_YellowPokeBlock,
+ ContestStatsText_PurplePokeBlock,
+ ContestStatsText_IndigoPokeBlock,
+ ContestStatsText_BrownPokeBlock,
+ ContestStatsText_LiteBluePokeBlock,
+ ContestStatsText_OlivePokeBlock,
+ ContestStatsText_GrayPokeBlock,
+ ContestStatsText_BlackPokeBlock,
+ ContestStatsText_WhitePokeBlock,
+ ContestStatsText_GoldPokeBlock
+};
+
+const struct MenuAction2 gUnknown_083F7EF4[] = {
+ {OtherText_Use, sub_810C508},
+ {OtherText_Toss, sub_810C5C0},
+ {gOtherText_CancelNoTerminator, sub_810C748},
+ {OtherText_Use, sub_810C788},
+ {OtherText_Use, sub_810C854},
+};
+
+const u8 gUnknown_083F7F1C[] = {0, 1, 2};
+const u8 gUnknown_083F7F1F[] = {3, 2};
+const u8 gUnknown_083F7F21[] = {4, 2};
+
+const struct YesNoFuncTable gUnknown_083F7F24 = {sub_810C610, sub_810C668};
+
+const u8 UnreferencedData_083F7F2C[] = {0x16, 0x17, 0x18, 0x21, 0x2f};
+
+const struct OamData gOamData_83F7F34 = {
+ .size = 3,
+ .priority = 2
+};
+
+const union AnimCmd gSpriteAnim_83F7F3C[] = {
+ ANIMCMD_FRAME(.imageValue = 0, .duration = 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83F7F44[] = {
+ gSpriteAnim_83F7F3C
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83F7F48[] = {
+ AFFINEANIMCMD_FRAME(0, 0, -2, 2),
+ AFFINEANIMCMD_FRAME(0, 0, 2, 4),
+ AFFINEANIMCMD_FRAME(0, 0, -2, 4),
+ AFFINEANIMCMD_FRAME(0, 0, 2, 2),
+ AFFINEANIMCMD_END
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7F70[] = {
+ gSpriteAffineAnim_83F7F48
+};
+
+const struct CompressedSpriteSheet gUnknown_083F7F74 = {
+ gMenuPokeblockDevice_Gfx,
+ 0x800,
+ GFX_TAG_POKEBLOCK_CASE
+};
+
+const struct CompressedSpritePalette gUnknown_083F7F7C = {
+ gMenuPokeblockDevice_Pal,
+ GFX_TAG_POKEBLOCK_CASE
+};
+
+const struct SpriteTemplate gSpriteTemplate_83F7F84 = {
+ GFX_TAG_POKEBLOCK_CASE,
+ GFX_TAG_POKEBLOCK_CASE,
+ &gOamData_83F7F34,
+ gSpriteAnimTable_83F7F44,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+const struct Pokeblock gUnknown_083F7F9C[] = {
+ { PBLOCK_CLR_RED, 20, 0, 0, 0, 0, 20},
+ { PBLOCK_CLR_BLUE, 0, 20, 0, 0, 0, 20},
+ { PBLOCK_CLR_PINK, 0, 0, 20, 0, 0, 20},
+ { PBLOCK_CLR_GREEN, 0, 0, 0, 20, 0, 20},
+ { PBLOCK_CLR_YELLOW, 0, 0, 0, 0, 20, 20}
+};
+
+// text
+
+static void sub_810B674(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTasks();
+ UpdatePaletteFade();
+}
+
+static void sub_810B68C(void)
+{
+ u16 *src;
+ vu16 *dest;
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ src = gBGTilemapBuffers[2];
+ dest = (vu16 *)(VRAM + 0x7800);
+ DmaCopy16(3, src, dest, sizeof gBGTilemapBuffers[2]);
+}
+
+static bool8 sub_810B6C0(void)
+{
+ u16 ime;
+ switch (gMain.state)
+ {
+ case 0:
+ sub_80F9438();
+ sub_80F9368();
+ REG_BG2CNT = BGCNT_SCREENBASE(15) | BGCNT_CHARBASE(2) | BGCNT_PRIORITY(2);
+ REG_BLDCNT = 0;
+ gMain.state++;
+ break;
+ case 1:
+ remove_some_task();
+ gMain.state++;
+ break;
+ case 2:
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ gMain.state++;
+ break;
+ case 3:
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ case 4:
+ if (gUnknown_02039244 != 2)
+ {
+ ResetTasks();
+ }
+ gMain.state++;
+ break;
+ case 5:
+ SetUpWindowConfig(&gWindowConfig_81E6E34);
+ gMain.state++;
+ break;
+ case 6:
+ SetUpWindowConfig(&gWindowConfig_81E6E50);
+ gMain.state++;
+ break;
+ case 7:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E6E34);
+ gMain.state++;
+ break;
+ case 8:
+ if (MultistepInitMenuWindowContinue())
+ {
+ gMain.state++;
+ }
+ break;
+ case 9:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E6E50);
+ gMain.state++;
+ break;
+ case 10:
+ if (MultistepInitMenuWindowContinue())
+ {
+ ewram[0x1ffff] = 0;
+ gMain.state++;
+ }
+ break;
+ case 11:
+ if (sub_810B998())
+ {
+ gMain.state++;
+ }
+ break;
+ case 12:
+ sub_80F944C();
+ LoadScrollIndicatorPalette();
+ CreateVerticalScrollIndicators(0, 0xb0, 0x08);
+ CreateVerticalScrollIndicators(1, 0xb0, 0x98);
+ gMain.state++;
+ break;
+ case 13:
+ ewram[0x1fffe] = sub_810BA50(0x38, 0x40, 0);
+ gMain.state++;
+ break;
+ case 14:
+ sub_810BC98();
+ sub_810BD08();
+ gMain.state++;
+ break;
+ case 15:
+ sub_810BB0C();
+ sub_810BB30();
+ sub_810BC84(gUnknown_02039248[1]);
+ gMain.state++;
+ break;
+ case 16:
+ ime = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = ime;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ SetVBlankCallback(sub_810B68C);
+ REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG2_ON | DISPCNT_BG1_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP;
+ gMain.state++;
+ break;
+ case 17:
+ if (sub_8055870() != TRUE)
+ {
+ gMain.state++;
+ }
+ break;
+ case 18:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ SetMainCallback2(sub_810B674);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_810B96C(void)
+{
+ do {
+ if (sub_810B6C0() == TRUE)
+ {
+ CreateTask(sub_810BF7C, 0);
+ break;
+ }
+ } while (sub_80F9344() != TRUE);
+}
+
+static bool8 sub_810B998(void)
+{
+ switch (ewram[0x1ffff])
+ {
+ case 0:
+ LZDecompressVram(gMenuPokeblock_Gfx, (u8 *)BG_CHAR_ADDR(2));
+ ewram[0x1ffff]++;
+ break;
+ case 1:
+ sub_800D238(gMenuPokeblock_Tilemap, gBGTilemapBuffers[2]);
+ ewram[0x1ffff]++;
+ break;
+ case 2:
+ LoadCompressedPalette(gMenuPokeblock_Pal, 0, 0xc0);
+ ewram[0x1ffff]++;
+ break;
+ case 3:
+ LoadCompressedObjectPic(&gUnknown_083F7F74);
+ ewram[0x1ffff]++;
+ break;
+ case 4:
+ LoadCompressedObjectPalette(&gUnknown_083F7F7C);
+ ewram[0x1ffff] = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u8 sub_810BA50(s16 x, s16 y, u8 subpriority)
+{
+ return CreateSprite(&gSpriteTemplate_83F7F84, x, y, subpriority);
+}
+
+void sub_810BA7C(u8 a0)
+{
+ gUnknown_02039244 = a0;
+ switch (gUnknown_02039244)
+ {
+ default:
+ gUnknown_03000758 = gUnknown_083F7F1C;
+ gUnknown_0203924C = sizeof gUnknown_083F7F1C;
+ break;
+ case 2:
+ gUnknown_03000758 = gUnknown_083F7F1F;
+ gUnknown_0203924C = sizeof gUnknown_083F7F1F;
+ break;
+ case 3:
+ gUnknown_03000758 = gUnknown_083F7F21;
+ gUnknown_0203924C = sizeof gUnknown_083F7F21;
+ break;
+ }
+}
+
+void sub_810BADC(void)
+{
+ sub_810BA7C(2);
+ SetMainCallback2(sub_810B96C);
+}
+
+void sub_810BAF4(void)
+{
+ sub_810BA7C(3);
+ SetMainCallback2(sub_810B96C);
+}
+
+#ifdef DEBUG
+void debug_sub_8120F98(void)
+{
+ u8 i;
+ for (i=0; i<40 && gUnknown_083F7F9C[i].color != 0; i++)
+ {
+ gSaveBlock1.pokeblocks[i] = gUnknown_083F7F9C[i];
+ }
+}
+#endif
+
+static void sub_810BB0C(void)
+{
+ BasicInitMenuWindow(&gWindowConfig_81E6E34);
+ sub_8072BD8(ItemId_GetItem(ITEM_POKEBLOCK_CASE)->name, 2, 1, 0x48);
+}
+
+static void sub_810BB30(void)
+{
+ BasicInitMenuWindow(&gWindowConfig_81E6E34);
+ MenuPrint(gContestStatsText_Spicy, 2, 13);
+ MenuPrint(gContestStatsText_Dry, 2, 15);
+ MenuPrint(gContestStatsText_Sweet, 2, 17);
+ MenuPrint(gContestStatsText_Bitter, 8, 13);
+ MenuPrint(gContestStatsText_Sour, 8, 15);
+}
+
+static void sub_810BB88(u8 a0)
+{
+ u8 i;
+ u8 y;
+ u8 *buf;
+ BasicInitMenuWindow(&gWindowConfig_81E6E34);
+ for (i=a0; i<=a0+8; i++)
+ {
+ y = (i - a0) << 1;
+ if (i == gUnknown_02039248[2])
+ {
+ buf = sub_8072C74(gStringVar1, gContestStatsText_StowCase, 0x78, 0);
+ MenuPrint(gStringVar1, 15, y + 1);
+ if (i != a0 + 8)
+ {
+ MenuZeroFillWindowRect(15, y + 3, 29, 18);
+ }
+ break;
+ }
+ buf = sub_8072C74(gStringVar1, gPokeblockNames[gSaveBlock1.pokeblocks[i].color], 0x5e, 0);
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x14;
+ buf[2] = 0x06;
+ buf += 3;
+ ConvertIntToDecimalStringN(buf, sub_810C9B0(&gSaveBlock1.pokeblocks[i]), STR_CONV_MODE_RIGHT_ALIGN, 3);
+ MenuPrint(gStringVar1, 15, y + 1);
+ }
+}
+
+static void sub_810BC84(u8 a0)
+{
+ sub_810BB88(a0);
+ sub_810BDAC(FALSE);
+}
+
+static void sub_810BC98(void)
+{
+ u16 i, j;
+ struct Pokeblock buf;
+ for (i=0; i<39; i++)
+ {
+ for (j=i+1; j<40; j++)
+ {
+ if (gSaveBlock1.pokeblocks[i].color == 0)
+ {
+ buf = gSaveBlock1.pokeblocks[i];
+ gSaveBlock1.pokeblocks[i] = gSaveBlock1.pokeblocks[j];
+ gSaveBlock1.pokeblocks[j] = buf;
+ }
+ }
+ }
+}
+
+static void sub_810BD08(void)
+{
+ u8 i;
+ gUnknown_02039248[2] = 0;
+ for (i=0; i<40; i++)
+ {
+ if (gSaveBlock1.pokeblocks[i].color != 0)
+ gUnknown_02039248[2]++;
+ }
+ if (gUnknown_02039248[2] < 8)
+ {
+ gUnknown_02039248[3] = gUnknown_02039248[2];
+ }
+ else
+ {
+ gUnknown_02039248[3] = 8;
+ }
+ if (gUnknown_02039248[1] + 8 > gUnknown_02039248[2] && gUnknown_02039248[1] != 0)
+ {
+ gUnknown_02039248[1]--;
+ }
+}
+
+static void sub_810BD64(u16 a0, u16 a1)
+{
+ u8 i;
+ int y;
+ for (i=0; i<14; i++)
+ {
+ gBGTilemapBuffers[2][(2 * gUnknown_02039248[0] + 1) * 32 + (y = i + 15)] = a0;
+ gBGTilemapBuffers[2][(2 * gUnknown_02039248[0] + 2) * 32 + y] = a0;
+ }
+}
+
+static void sub_810BDAC(bool8 flag)
+{
+ u8 i;
+ u16 v0;
+ if (!flag)
+ {
+ sub_810BD64(0x1005, 0x1014);
+ }
+ else
+ {
+ sub_810BD64(0x2005, 0x2014);
+ }
+ if (gUnknown_02039248[1])
+ {
+ sub_80F979C(0, 0);
+ }
+ else
+ {
+ sub_80F979C(0, 1);
+ }
+ if (gUnknown_02039248[2] > gUnknown_02039248[3] && gUnknown_02039248[1] + gUnknown_02039248[3] != gUnknown_02039248[2])
+ {
+ sub_80F979C(1, 0);
+ }
+ else
+ {
+ sub_80F979C(1, 1);
+ }
+ for (i=0; i<5; i++)
+ {
+ v0 = ((i % 3) << 6) + 0x1a1 + (i / 3) * 6;
+ if (gUnknown_02039248[0] + gUnknown_02039248[1] != gUnknown_02039248[2])
+ {
+ if (sub_810CA9C(&gSaveBlock1.pokeblocks[gUnknown_02039248[0] + gUnknown_02039248[1]], i + 1) > 0)
+ {
+ gBGTilemapBuffers[2][v0] = (i << 12) + 23;
+ gBGTilemapBuffers[2][v0 + 32] = (i << 12) + 24;
+ }
+ else
+ {
+ gBGTilemapBuffers[2][v0] = 15;
+ gBGTilemapBuffers[2][v0 + 32] = 15;
+ }
+ }
+ else
+ {
+ gBGTilemapBuffers[2][v0] = 15;
+ gBGTilemapBuffers[2][v0 + 32] = 15;
+ }
+ }
+ BasicInitMenuWindow(&gWindowConfig_81E6E34);
+ if (gUnknown_02039248[0] + gUnknown_02039248[1] != gUnknown_02039248[2])
+ {
+ sub_8072C14(gStringVar1, sub_810C9E8(&gSaveBlock1.pokeblocks[gUnknown_02039248[0] + gUnknown_02039248[1]]), 16, 1);
+ MenuPrint(gStringVar1, 11, 17);
+ }
+ else
+ {
+ MenuZeroFillWindowRect(11, 17, 12, 18);
+ }
+}
+
+static void sub_810BF38(bool8 flag)
+{
+ PlaySE(SE_SELECT);
+ gSprites[ewram[0x1fffe]].callback = sub_810C8D4;
+ sub_810BDAC(flag);
+}
+
+static void sub_810BF7C(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (gUnknown_02039248[0] != 0)
+ {
+ sub_810BD64(5, 20);
+ gUnknown_02039248[0]--;
+ sub_810BF38(FALSE);
+ }
+ else if (gUnknown_02039248[1] != 0)
+ {
+ gUnknown_02039248[1]--;
+ sub_810BB88(gUnknown_02039248[1]);
+ sub_810BF38(FALSE);
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (gUnknown_02039248[0] != gUnknown_02039248[3])
+ {
+ sub_810BD64(5, 20);
+ gUnknown_02039248[0]++;
+ sub_810BF38(FALSE);
+ }
+ else if (gUnknown_02039248[1] + gUnknown_02039248[0] != gUnknown_02039248[2])
+ {
+ gUnknown_02039248[1]++;
+ sub_810BB88(gUnknown_02039248[1]);
+ sub_810BF38(FALSE);
+ }
+ }
+ else if (gMain.newKeys & SELECT_BUTTON)
+ {
+ if (gUnknown_02039248[1] + gUnknown_02039248[0] != gUnknown_02039248[2])
+ {
+ PlaySE(SE_SELECT);
+ sub_810BDAC(TRUE);
+ gTasks[taskId].data[0] = gUnknown_02039248[1] + gUnknown_02039248[0];
+ gTasks[taskId].func = sub_810C0C8;
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ if (gUnknown_02039248[1] + gUnknown_02039248[0] == gUnknown_02039248[2])
+ {
+ gScriptResult = 0xffff;
+ sub_810C31C(taskId);
+ }
+ else
+ {
+ sub_810C368(taskId);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gScriptResult = 0xffff;
+ sub_810C31C(taskId);
+ }
+ }
+}
+
+static void sub_810C0C8(u8 taskId)
+{
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (gUnknown_02039248[0] != 0)
+ {
+ sub_810BD64(5, 20);
+ gUnknown_02039248[0]--;
+ sub_810BF38(TRUE);
+ sub_810C1C8(taskId, 1);
+ }
+ else if (gUnknown_02039248[1] != 0)
+ {
+ sub_810C1C8(taskId, 0);
+ gUnknown_02039248[1]--;
+ sub_810BB88(gUnknown_02039248[1]);
+ sub_810BF38(TRUE);
+ sub_810C1C8(taskId, 1);
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (gUnknown_02039248[0] != gUnknown_02039248[3])
+ {
+ sub_810BD64(5, 20);
+ gUnknown_02039248[0]++;
+ sub_810BF38(TRUE);
+ sub_810C1C8(taskId, 1);
+ }
+ else if (gUnknown_02039248[1] + gUnknown_02039248[0] != gUnknown_02039248[2])
+ {
+ sub_810C1C8(taskId, 0);
+ gUnknown_02039248[1]++;
+ sub_810BB88(gUnknown_02039248[1]);
+ sub_810BF38(TRUE);
+ sub_810C1C8(taskId, 1);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON || gMain.newKeys & SELECT_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_810C1C8(taskId, 0);
+ sub_810C23C(taskId);
+ gTasks[taskId].func = sub_810BF7C;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_810C1C8(taskId, 0);
+ sub_810BDAC(0);
+ gTasks[taskId].func = sub_810BF7C;
+ }
+}
+
+static void sub_810C1C8(u8 taskId, u8 flag)
+{
+ u8 i;
+ u32 x;
+ s16 y;
+ u16 v0 = 0x1005;
+ if (!flag)
+ {
+ v0 = 0x0005;
+ }
+ y = gTasks[taskId].data[0] - gUnknown_02039248[1];
+ if ((u16)y <= 8 && y != gUnknown_02039248[0])
+ {
+ for (i=0; i<14; i++)
+ {
+ gBGTilemapBuffers[2][(2 * y + 1) * 32 + (x = i + 15)] = v0;
+ gBGTilemapBuffers[2][(2 * y + 2) * 32 + x] = v0;
+ }
+ }
+}
+
+static void sub_810C23C(u8 taskId)
+{
+ struct Pokeblock buf;
+ u8 selidx = gUnknown_02039248[1] + gUnknown_02039248[0];
+ if (selidx == gUnknown_02039248[2])
+ {
+ sub_810BDAC(FALSE);
+ }
+ else
+ {
+ buf = gSaveBlock1.pokeblocks[selidx];
+ gSaveBlock1.pokeblocks[selidx] = gSaveBlock1.pokeblocks[gTasks[taskId].data[0]];
+ gSaveBlock1.pokeblocks[gTasks[taskId].data[0]] = buf;
+ sub_810BB88(gUnknown_02039248[1]);
+ sub_810BDAC(FALSE);
+ }
+}
+
+static void sub_810C2B0(void)
+{
+ DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(1);
+ BuyMenuFreeMemory();
+}
+
+static void sub_810C2C8(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ if (gUnknown_02039244 == 3)
+ {
+ gFieldCallback = sub_8080990;
+ }
+ sub_810C2B0();
+ SetMainCallback2(gUnknown_083F7EA8[gUnknown_02039244]);
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_810C31C(u8 taskId)
+{
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ if (gUnknown_02039244 > 1)
+ {
+ gScriptItemId = ITEM_NONE;
+ }
+ gTasks[taskId].func = sub_810C2C8;
+}
+
+static void sub_810C368(u8 taskId)
+{
+ int v0 = 0;
+ if (gUnknown_02039244 > 1)
+ v0 = 2;
+ sub_80F98A4(0);
+ sub_80F98A4(1);
+ BasicInitMenuWindow(&gWindowConfig_81E6E50);
+ MenuDrawTextWindow(7, v0 + 4, 13, 11);
+ PrintMenuItemsReordered(8, v0 + 5, gUnknown_0203924C, (const struct MenuAction *)gUnknown_083F7EF4, gUnknown_03000758);
+ InitMenu(0, 8, v0 + 5, gUnknown_0203924C, 0, 5);
+ gScriptItemId = gUnknown_02039248[0] + gUnknown_02039248[1];
+ gTasks[taskId].func = sub_810C40C;
+}
+
+static void sub_810C40C(u8 taskId)
+{
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (GetMenuCursorPos())
+ {
+ PlaySE(SE_SELECT);
+ MoveMenuCursor(-1);
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (GetMenuCursorPos() != gUnknown_0203924C - 1)
+ {
+ PlaySE(SE_SELECT);
+ MoveMenuCursor(+1);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_083F7EF4[gUnknown_03000758[GetMenuCursorPos()]].func(taskId);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_810C748(taskId);
+ }
+}
+
+static void sub_810C4C4(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ sub_810C2B0();
+ sub_8136130(&gSaveBlock1.pokeblocks[gScriptItemId], sub_810B96C);
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_810C508(u8 taskId)
+{
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_810C4C4;
+}
+
+static void sub_810C540(u8 taskId)
+{
+ BasicInitMenuWindow(&gWindowConfig_81E6E50);
+ HandleDestroyMenuCursors();
+ MenuZeroFillWindowRect(7, 4, 13, 11);
+ StringCopy(gStringVar1, gPokeblockNames[gSaveBlock1.pokeblocks[gUnknown_02039248[0] + gUnknown_02039248[1]].color]);
+ StringExpandPlaceholders(gStringVar4, gContestStatsText_ThrowAwayPrompt);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_810C5EC, 0);
+}
+
+static void sub_810C5C0(u8 taskId)
+{
+ sub_80F979C(1, 1);
+ gTasks[taskId].func = sub_810C540;
+}
+
+static void sub_810C5EC(u8 taskId)
+{
+ DisplayYesNoMenu(7, 6, 1);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_083F7F24);
+}
+
+static void sub_810C610(u8 taskId)
+{
+ MenuZeroFillWindowRect(7, 6, 13, 11);
+ sub_810CA6C((gUnknown_02039248[0] + gUnknown_02039248[1]));
+ StringExpandPlaceholders(gStringVar4, gContestStatsText_WasThrownAway);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_810C704, 0);
+ sub_810BC98();
+ sub_810BD08();
+}
+
+static void sub_810C668(u8 taskId)
+{
+ StartVerticalScrollIndicators(0);
+ StartVerticalScrollIndicators(1);
+ if (gUnknown_02039248[2] > gUnknown_02039248[3] && gUnknown_02039248[1] + gUnknown_02039248[3] != gUnknown_02039248[2])
+ {
+ sub_80F979C(1, 0);
+ }
+ BasicInitMenuWindow(&gWindowConfig_81E6E50);
+ MenuZeroFillWindowRect(7, 6, 13, 11);
+ MenuZeroFillWindowRect(0, 14, 29, 19);
+ gTasks[taskId].func = sub_810BF7C;
+}
+
+static void sub_810C6DC(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
+ {
+ sub_810C668(taskId);
+ }
+}
+
+static void sub_810C704(u8 taskId)
+{
+ BasicInitMenuWindow(&gWindowConfig_81E6E34);
+ sub_810BC84(gUnknown_02039248[1]);
+ sub_80F979C(1, 1);
+ gTasks[taskId].func = sub_810C6DC;
+}
+
+static void sub_810C748(u8 taskId)
+{
+ StartVerticalScrollIndicators(0);
+ StartVerticalScrollIndicators(1);
+ HandleDestroyMenuCursors();
+ MenuZeroFillWindowRect(7, 4, 13, 11);
+ gTasks[taskId].func = sub_810BF7C;
+}
+
+static void sub_810C788(u8 taskId)
+{
+ s16 v0 = sub_810CAE4(GetNature(&gEnemyParty[0]), &gSaveBlock1.pokeblocks[gScriptItemId]);
+ StringCopy(gBattleTextBuff1, gPokeblockNames[gSaveBlock1.pokeblocks[gScriptItemId].color]);
+ sub_810CA6C(gScriptItemId);
+ gScriptItemId = gSaveBlock1.pokeblocks[gScriptItemId].color << 8;
+ if (v0 == 0)
+ {
+ gScriptItemId += 1;
+ }
+ if (v0 > 0)
+ {
+ gScriptItemId += 2;
+ }
+ if (v0 < 0)
+ {
+ gScriptItemId += 3;
+ }
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_810C2C8;
+}
+
+static void sub_810C854(u8 taskId)
+{
+ SafariZoneActivatePokeblockFeeder(gScriptItemId);
+ StringCopy(gStringVar1, gPokeblockNames[gSaveBlock1.pokeblocks[gScriptItemId].color]);
+ gScriptResult = gScriptItemId;
+ sub_810CA6C(gScriptItemId);
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_810C2C8;
+}
+
+static void sub_810C8D4(struct Sprite *sprite)
+{
+ if (sprite->data0 > 1)
+ {
+ sprite->data0 = 0;
+ }
+ switch (sprite->data0)
+ {
+ case 0:
+ sprite->oam.affineMode = 1;
+ sprite->affineAnims = gSpriteAffineAnimTable_83F7F70;
+ InitSpriteAffineAnim(sprite);
+ sprite->data0 = 1;
+ sprite->data1 = 0;
+ break;
+ case 1:
+ if (++sprite->data1 > 11)
+ {
+ sprite->oam.affineMode = 0;
+ sprite->data0 = 0;
+ sprite->data1 = 0;
+ FreeOamMatrix(sprite->oam.matrixNum);
+ sprite->callback = SpriteCallbackDummy;
+ }
+ break;
+ }
+}
+
+static void ClearPokeblock(u8 pokeblockIdx)
+{
+ gSaveBlock1.pokeblocks[pokeblockIdx].color = 0;
+ gSaveBlock1.pokeblocks[pokeblockIdx].spicy = 0;
+ gSaveBlock1.pokeblocks[pokeblockIdx].dry = 0;
+ gSaveBlock1.pokeblocks[pokeblockIdx].sweet = 0;
+ gSaveBlock1.pokeblocks[pokeblockIdx].bitter = 0;
+ gSaveBlock1.pokeblocks[pokeblockIdx].sour = 0;
+ gSaveBlock1.pokeblocks[pokeblockIdx].feel = 0;
+}
+
+void ClearPokeblocks(void)
+{
+ u8 pokeblockIdx;
+ for (pokeblockIdx=0; pokeblockIdx<ARRAY_COUNT(gSaveBlock1.pokeblocks); pokeblockIdx++)
+ {
+ ClearPokeblock(pokeblockIdx);
+ }
+}
+
+u8 sub_810C9B0(struct Pokeblock *pokeblock)
+{
+ u8 contestStat;
+ u8 maxRating;
+ u8 rating = sub_810CA9C(pokeblock, 1);
+ for (contestStat=1; contestStat<5; contestStat++)
+ {
+ maxRating = sub_810CA9C(pokeblock, contestStat + 1);
+ if (rating < maxRating)
+ {
+ rating = maxRating;
+ }
+ }
+ return rating;
+}
+
+u8 sub_810C9E8(struct Pokeblock *pokeblock)
+{
+ u8 feel = sub_810CA9C(pokeblock, 6);
+ if (feel > 99)
+ feel = 99;
+ return feel;
+}
+
+s8 sub_810CA00(void)
+{
+ u8 i;
+ for (i=0; i<ARRAY_COUNT(gSaveBlock1.pokeblocks); i++)
+ {
+ if (gSaveBlock1.pokeblocks[i].color == 0)
+ {
+ return i;
+ }
+ }
+ return -1;
+}
+
+bool8 sub_810CA34(struct Pokeblock *pokeblock)
+{
+ s8 idx = sub_810CA00();
+ if (idx == -1)
+ {
+ return FALSE;
+ }
+ gSaveBlock1.pokeblocks[idx] = *pokeblock;
+ return TRUE;
+}
+
+bool8 sub_810CA6C(u8 pokeblockIdx)
+{
+ if (gSaveBlock1.pokeblocks[pokeblockIdx].color == 0)
+ {
+ return FALSE;
+ }
+ ClearPokeblock(pokeblockIdx);
+ return TRUE;
+}
+
+s16 sub_810CA9C(const struct Pokeblock *pokeblock, u8 field)
+{
+ if (field == 0)
+ return pokeblock->color;
+ if (field == 1)
+ return pokeblock->spicy;
+ if (field == 2)
+ return pokeblock->dry;
+ if (field == 3)
+ return pokeblock->sweet;
+ if (field == 4)
+ return pokeblock->bitter;
+ if (field == 5)
+ return pokeblock->sour;
+ if (field == 6)
+ return pokeblock->feel;
+ return 0;
+}
+
+s16 sub_810CAE4(u8 nature, const struct Pokeblock *pokeblock)
+{
+ u8 flavor;
+ s16 curGain;
+ s16 totalGain = 0;
+ for (flavor=0; flavor<5; flavor++)
+ {
+ curGain = sub_810CA9C(pokeblock, flavor + 1);
+ if (curGain > 0)
+ {
+ totalGain += curGain * gPokeblockFlavorCompatibilityTable[5 * nature + flavor];
+ }
+ }
+ return totalGain;
+}
+
+void sub_810CB44(struct Pokeblock *pokeblock, u8 *dest)
+{
+ u8 color = sub_810CA9C(pokeblock, 0);
+ StringCopy(dest, gPokeblockNames[color]);
+}
+
+bool8 sub_810CB68(u8 nature, u8 *dest)
+{
+ u8 flavor;
+ for (flavor=0; flavor<5; flavor++)
+ {
+ if (sub_810CAE4(nature, &gUnknown_083F7F9C[flavor]) > 0)
+ {
+ StringCopy(dest, gPokeblockNames[flavor + 1]);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index c096e2e4b..3d85a1c8f 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -48,7 +48,7 @@ extern u32 gTMHMLearnsets[][2];
extern u8 gBattleMonForms[];
extern const u8 BattleText_Wally[];
extern const u16 gHMMoves[];
-extern s8 gUnknown_083F7E28[];
+extern s8 gPokeblockFlavorCompatibilityTable[];
extern u8 gLastUsedAbility;
extern const u8 BattleText_PreventedSwitch[];
extern u16 gBattlePartyID[];
@@ -1216,13 +1216,13 @@ bool8 sub_8040A3C(u16 species)
s8 sub_8040A54(struct Pokemon *mon, u8 a2)
{
u8 nature = GetNature(mon);
- return gUnknown_083F7E28[nature * 5 + a2];
+ return gPokeblockFlavorCompatibilityTable[nature * 5 + a2];
}
s8 sub_8040A7C(u32 personality, u8 a2)
{
u8 nature = GetNatureFromPersonality(personality);
- return gUnknown_083F7E28[nature * 5 + a2];
+ return gPokeblockFlavorCompatibilityTable[nature * 5 + a2];
}
bool8 IsTradedMon(struct Pokemon *mon)
@@ -1274,15 +1274,15 @@ void BoxMonRestorePP(struct BoxPokemon *boxMon)
void sub_8040B8C(void)
{
- gLastUsedAbility = BATTLE_STRUCT->filler1_2[0x37];
+ gLastUsedAbility = BATTLE_STRUCT->unk160C0;;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 4;
- gBattleTextBuff1[2] = BATTLE_STRUCT->filler1[0x34];
+ gBattleTextBuff1[2] = BATTLE_STRUCT->unk16054;
gBattleTextBuff1[4] = EOS;
- if (!GetBankSide(BATTLE_STRUCT->filler1[0x34]))
- gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[BATTLE_STRUCT->filler1[0x34]]);
+ if (!GetBankSide(BATTLE_STRUCT->unk16054))
+ gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[BATTLE_STRUCT->unk16054]);
else
- gBattleTextBuff1[3] = gBattlePartyID[BATTLE_STRUCT->filler1[0x34]];
+ gBattleTextBuff1[3] = gBattlePartyID[BATTLE_STRUCT->unk16054];
gBattleTextBuff2[0] = 0xFD;
gBattleTextBuff2[1] = 4;
gBattleTextBuff2[2] = gBankInMenu;
diff --git a/src/rom4.c b/src/rom4.c
index 2ddd5ed9f..bfc8e0e44 100644
--- a/src/rom4.c
+++ b/src/rom4.c
@@ -1672,7 +1672,7 @@ void mli4_mapscripts_and_other(void)
void sub_8054E20(void)
{
sub_805B710(0, 0);
- sub_80C8080();
+ RotatingGate_InitPuzzleAndGraphics();
}
void sub_8054E34(void)
diff --git a/src/rotating_gate.c b/src/rotating_gate.c
new file mode 100644
index 000000000..d12a21240
--- /dev/null
+++ b/src/rotating_gate.c
@@ -0,0 +1,1228 @@
+#include "global.h"
+#include "bike.h"
+#include "event_data.h"
+#include "field_map_obj.h"
+#include "fieldmap.h"
+#include "map_constants.h"
+#include "songs.h"
+#include "sound.h"
+#include "sprite.h"
+
+#define ROTATING_GATE_TILE_TAG 0x1300
+#define ROTATING_GATE_PUZZLE_MAX 14
+#define GATE_ARM_MAX_LENGTH 2
+
+#define GATE_ROTATION(rotationDirection, arm, longArm) \
+ ((rotationDirection & 15) << 4) | ((arm & 7) << 1) | (longArm & 1)
+#define GATE_ROTATION_CLOCKWISE(arm, longArm) GATE_ROTATION(ROTATE_CLOCKWISE, arm, longArm)
+#define GATE_ROTATION_ANTICLOCKWISE(arm, longArm) GATE_ROTATION(ROTATE_ANTICLOCKWISE, arm, longArm)
+#define GATE_ROTATION_NONE 255
+
+static void SpriteCallback_RotatingGate(struct Sprite *sprite);
+static u8 RotatingGate_CreateGate(u8 gateId, s16 deltaX, s16 deltaY);
+static void RotatingGate_HideGatesOutsideViewport(struct Sprite *sprite);
+
+enum
+{
+ /*
+ * |
+ * +--
+ */
+ GATE_SHAPE_L1,
+
+ /*
+ * |
+ * |
+ * +--
+ */
+ GATE_SHAPE_L2,
+
+ /*
+ * |
+ * +----
+ */
+ GATE_SHAPE_L3,
+
+ /*
+ * |
+ * |
+ * +----
+ */
+ GATE_SHAPE_L4,
+
+ /*
+ * |
+ * +--
+ * |
+ */
+ GATE_SHAPE_T1,
+
+ /*
+ * |
+ * |
+ * +--
+ * |
+ */
+ GATE_SHAPE_T2,
+
+ /*
+ * |
+ * +----
+ * |
+ */
+ GATE_SHAPE_T3,
+
+ /*
+ * An unused T-shape gate
+ * |
+ * +--
+ * |
+ * |
+ */
+ GATE_SHAPE_T4,
+
+ /*
+ * An unused T-shape gate
+ * |
+ * |
+ * +----
+ * |
+ */
+ GATE_SHAPE_UNUSED_T1,
+
+ /*
+ * An unused T-shape gate
+ * |
+ * |
+ * +--
+ * |
+ * |
+ */
+ GATE_SHAPE_UNUSED_T2,
+
+ /*
+ * An unused T-shape gate
+ * |
+ * +----
+ * |
+ * |
+ */
+ GATE_SHAPE_UNUSED_T3,
+
+ /*
+ * An unused T-shape gate
+ * |
+ * |
+ * +----
+ * |
+ * |
+ */
+ GATE_SHAPE_UNUSED_T4,
+};
+
+enum
+{
+ /*
+ * 0 degrees (clockwise)
+ * |
+ * +--
+ * |
+ */
+ GATE_ORIENTATION_0,
+
+ /*
+ * 90 degress (clockwise)
+ * --+--
+ * |
+ */
+ GATE_ORIENTATION_90,
+
+ /*
+ * 180 degrees (clockwise)
+ * |
+ * --+
+ * |
+ */
+ GATE_ORIENTATION_180,
+
+ /*
+ * 270 degrees (clockwise)
+ * |
+ * --+--
+ */
+ GATE_ORIENTATION_270,
+
+ GATE_ORIENTATION_MAX,
+};
+
+// Describes the location of the gates "arms" when the gate has not
+// been rotated (i.e. rotated 0 degrees)
+enum
+{
+ GATE_ARM_NORTH,
+ GATE_ARM_EAST,
+ GATE_ARM_SOUTH,
+ GATE_ARM_WEST,
+};
+
+enum
+{
+ ROTATE_NONE,
+ ROTATE_ANTICLOCKWISE,
+ ROTATE_CLOCKWISE,
+};
+
+enum
+{
+ PUZZLE_NONE,
+ PUZZLE_FORTREE_CITY_GYM,
+ PUZZLE_ROUTE110_TRICK_HOUSE_PUZZLE6,
+};
+
+struct RotatingGatePuzzle
+{
+ struct Coords16 pos;
+ u8 shape;
+ u8 orientation;
+};
+
+struct Coords8
+{
+ s8 deltaX;
+ s8 deltaY;
+};
+
+// Fortree
+static const struct RotatingGatePuzzle sRotatingGate_FortreePuzzleConfig[] = {
+ { { 12, 5 }, GATE_SHAPE_L4, GATE_ORIENTATION_0 },
+ { { 14, 7 }, GATE_SHAPE_L4, GATE_ORIENTATION_270 },
+ { { 16, 4 }, GATE_SHAPE_T2, GATE_ORIENTATION_90 },
+ { { 15, 14 }, GATE_SHAPE_L2, GATE_ORIENTATION_0 },
+ { { 18, 13 }, GATE_SHAPE_T1, GATE_ORIENTATION_180 },
+ { { 8, 20 }, GATE_SHAPE_T1, GATE_ORIENTATION_180 },
+ { { 16, 20 }, GATE_SHAPE_T4, GATE_ORIENTATION_90 },
+};
+
+// Trickhouse
+static const struct RotatingGatePuzzle sRotatingGate_TrickHousePuzzleConfig[] = {
+ { { 13, 3 }, GATE_SHAPE_T1, GATE_ORIENTATION_270 },
+ { { 12, 6 }, GATE_SHAPE_T1, GATE_ORIENTATION_180 },
+ { { 3, 6 }, GATE_SHAPE_T1, GATE_ORIENTATION_180 },
+ { { 3, 9 }, GATE_SHAPE_T2, GATE_ORIENTATION_270 },
+ { { 8, 8 }, GATE_SHAPE_L1, GATE_ORIENTATION_90 },
+ { { 2, 12 }, GATE_SHAPE_T3, GATE_ORIENTATION_180 },
+ { { 9, 13 }, GATE_SHAPE_L2, GATE_ORIENTATION_0 },
+ { { 3, 14 }, GATE_SHAPE_L3, GATE_ORIENTATION_90 },
+ { { 9, 15 }, GATE_SHAPE_L4, GATE_ORIENTATION_180 },
+ { { 3, 18 }, GATE_SHAPE_T2, GATE_ORIENTATION_180 },
+ { { 2, 19 }, GATE_SHAPE_T1, GATE_ORIENTATION_0 },
+ { { 5, 21 }, GATE_SHAPE_L1, GATE_ORIENTATION_0 },
+ { { 9, 19 }, GATE_SHAPE_L4, GATE_ORIENTATION_270 },
+ { { 12, 20 }, GATE_SHAPE_T1, GATE_ORIENTATION_90 },
+};
+
+static const u8 sRotatingGateTiles_1[] = INCBIN_U8("graphics/rotating_gates/1.4bpp");
+static const u8 sRotatingGateTiles_2[] = INCBIN_U8("graphics/rotating_gates/2.4bpp");
+static const u8 sRotatingGateTiles_3[] = INCBIN_U8("graphics/rotating_gates/3.4bpp");
+static const u8 sRotatingGateTiles_5[] = INCBIN_U8("graphics/rotating_gates/5.4bpp");
+static const u8 sRotatingGateTiles_6[] = INCBIN_U8("graphics/rotating_gates/6.4bpp");
+static const u8 sRotatingGateTiles_7[] = INCBIN_U8("graphics/rotating_gates/7.4bpp");
+static const u8 sRotatingGateTiles_0[] = INCBIN_U8("graphics/rotating_gates/0.4bpp");
+static const u8 sRotatingGateTiles_4[] = INCBIN_U8("graphics/rotating_gates/4.4bpp");
+
+static const struct OamData sOamData_RotatingGateLarge = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_NORMAL,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 5,
+ .affineParam = 0,
+};
+
+static const struct OamData sOamData_RotatingGateRegular = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_NORMAL,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 5,
+ .affineParam = 0,
+};
+
+static const struct SpriteSheet sRotatingGatesGraphicsTable[] = {
+ { sRotatingGateTiles_0, 0x200, ROTATING_GATE_TILE_TAG + GATE_SHAPE_L1 },
+ { sRotatingGateTiles_1, 0x800, ROTATING_GATE_TILE_TAG + GATE_SHAPE_L2 },
+ { sRotatingGateTiles_2, 0x800, ROTATING_GATE_TILE_TAG + GATE_SHAPE_L3 },
+ { sRotatingGateTiles_3, 0x800, ROTATING_GATE_TILE_TAG + GATE_SHAPE_L4 },
+ { sRotatingGateTiles_4, 0x200, ROTATING_GATE_TILE_TAG + GATE_SHAPE_T1 },
+ { sRotatingGateTiles_5, 0x800, ROTATING_GATE_TILE_TAG + GATE_SHAPE_T2 },
+ { sRotatingGateTiles_6, 0x800, ROTATING_GATE_TILE_TAG + GATE_SHAPE_T3 },
+ { sRotatingGateTiles_7, 0x800, ROTATING_GATE_TILE_TAG + GATE_SHAPE_T4 },
+ { NULL },
+};
+
+static const union AnimCmd sSpriteAnim_RotatingGateLarge[] = {
+ ANIMCMD_FRAME(0, 0), ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_RotatingGateRegular[] = {
+ ANIMCMD_FRAME(0, 0), ANIMCMD_END,
+};
+
+static const union AnimCmd *const sSpriteAnimTable_RotatingGateLarge[] = {
+ sSpriteAnim_RotatingGateLarge,
+};
+
+static const union AnimCmd *const sSpriteAnimTable_RotatingGateRegular[] = {
+ sSpriteAnim_RotatingGateRegular,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_Rotated0[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_JUMP(0),
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_Rotated90[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -64, 0), AFFINEANIMCMD_JUMP(0),
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_Rotated180[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -128, 0), AFFINEANIMCMD_JUMP(0),
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_Rotated270[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 64, 0), AFFINEANIMCMD_JUMP(0),
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingClockwise0to90[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -4, 16),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingClockwise90to180[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -64, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -4, 16),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingClockwise180to270[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -128, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -4, 16),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingClockwise270to360[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 64, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -4, 16),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingAnticlockwise360to270[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 4, 16),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingAnticlockwise270to180[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 64, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 4, 16),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingAnticlockwise180to90[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -128, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 4, 16),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingAnticlockwise90to0[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -64, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 4, 16),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingClockwise0to90Faster[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -8, 8),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingClockwise90to180Faster[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -64, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -8, 8),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingClockwise180to270Faster[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -128, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -8, 8),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingClockwise270to360Faster[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 64, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -8, 8),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingAnticlockwise360to270Faster[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 8, 8), AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingAnticlockwise270to180Faster[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 64, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 8, 8),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingAnticlockwise180to90Faster[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -128, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 8, 8),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_RotatingAnticlockwise90to0Faster[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -64, 0),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 8, 8),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd *const sSpriteAffineAnimTable_RotatingGate[] = {
+ sSpriteAffineAnim_Rotated0,
+ sSpriteAffineAnim_Rotated90,
+ sSpriteAffineAnim_Rotated180,
+ sSpriteAffineAnim_Rotated270,
+ sSpriteAffineAnim_RotatingAnticlockwise360to270,
+ sSpriteAffineAnim_RotatingAnticlockwise90to0,
+ sSpriteAffineAnim_RotatingAnticlockwise180to90,
+ sSpriteAffineAnim_RotatingAnticlockwise270to180,
+ sSpriteAffineAnim_RotatingClockwise0to90,
+ sSpriteAffineAnim_RotatingClockwise90to180,
+ sSpriteAffineAnim_RotatingClockwise180to270,
+ sSpriteAffineAnim_RotatingClockwise270to360,
+ sSpriteAffineAnim_RotatingAnticlockwise360to270Faster,
+ sSpriteAffineAnim_RotatingAnticlockwise90to0Faster,
+ sSpriteAffineAnim_RotatingAnticlockwise180to90Faster,
+ sSpriteAffineAnim_RotatingAnticlockwise270to180Faster,
+ sSpriteAffineAnim_RotatingClockwise0to90Faster,
+ sSpriteAffineAnim_RotatingClockwise90to180Faster,
+ sSpriteAffineAnim_RotatingClockwise180to270Faster,
+ sSpriteAffineAnim_RotatingClockwise270to360Faster,
+};
+
+static const struct SpriteTemplate sSpriteTemplate_RotatingGateLarge = {
+ .tileTag = ROTATING_GATE_TILE_TAG,
+ .paletteTag = 0xFFFF,
+ .oam = &sOamData_RotatingGateLarge,
+ .anims = sSpriteAnimTable_RotatingGateLarge,
+ .images = NULL,
+ .affineAnims = sSpriteAffineAnimTable_RotatingGate,
+ .callback = SpriteCallback_RotatingGate,
+};
+
+static const struct SpriteTemplate sSpriteTemplate_RotatingGateRegular = {
+ .tileTag = ROTATING_GATE_TILE_TAG,
+ .paletteTag = 0xFFFF,
+ .oam = &sOamData_RotatingGateRegular,
+ .anims = sSpriteAnimTable_RotatingGateRegular,
+ .images = NULL,
+ .affineAnims = sSpriteAffineAnimTable_RotatingGate,
+ .callback = SpriteCallback_RotatingGate,
+};
+
+// These structures describe what happens to the gate if you hit it at
+// a given coordinate in a 4x4 grid when walking in the specified
+// direction. Either the gate does not rotate, or it rotates in the
+// given direction. This information is compared against the gate
+// "arm" layout to see if there is an arm at the position in order to
+// produce the final rotation.
+static const u8 sRotatingGate_RotationInfoNorth[4][4] = {
+ { GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE },
+ { GATE_ROTATION_CLOCKWISE(GATE_ARM_WEST, 1),
+ GATE_ROTATION_CLOCKWISE(GATE_ARM_WEST, 0),
+ GATE_ROTATION_ANTICLOCKWISE(GATE_ARM_EAST, 0),
+ GATE_ROTATION_ANTICLOCKWISE(GATE_ARM_EAST, 1) },
+ { GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE },
+ { GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE },
+};
+
+static const u8 sRotatingGate_RotationInfoSouth[4][4] = {
+ { GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE },
+ { GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE },
+ { GATE_ROTATION_ANTICLOCKWISE(GATE_ARM_WEST, 1),
+ GATE_ROTATION_ANTICLOCKWISE(GATE_ARM_WEST, 0),
+ GATE_ROTATION_CLOCKWISE(GATE_ARM_EAST, 0),
+ GATE_ROTATION_CLOCKWISE(GATE_ARM_EAST, 1) },
+ { GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE, GATE_ROTATION_NONE },
+};
+
+static const u8 sRotatingGate_RotationInfoWest[4][4] = {
+ { GATE_ROTATION_NONE,
+ GATE_ROTATION_ANTICLOCKWISE(GATE_ARM_NORTH, 1),
+ GATE_ROTATION_NONE,
+ GATE_ROTATION_NONE },
+ { GATE_ROTATION_NONE,
+ GATE_ROTATION_ANTICLOCKWISE(GATE_ARM_NORTH, 0),
+ GATE_ROTATION_NONE,
+ GATE_ROTATION_NONE },
+ { GATE_ROTATION_NONE,
+ GATE_ROTATION_CLOCKWISE(GATE_ARM_SOUTH, 0),
+ GATE_ROTATION_NONE,
+ GATE_ROTATION_NONE },
+ { GATE_ROTATION_NONE,
+ GATE_ROTATION_CLOCKWISE(GATE_ARM_SOUTH, 1),
+ GATE_ROTATION_NONE,
+ GATE_ROTATION_NONE },
+};
+
+static const u8 sRotatingGate_RotationInfoEast[4][4] = {
+ { GATE_ROTATION_NONE,
+ GATE_ROTATION_NONE,
+ GATE_ROTATION_CLOCKWISE(GATE_ARM_NORTH, 1),
+ GATE_ROTATION_NONE },
+ { GATE_ROTATION_NONE,
+ GATE_ROTATION_NONE,
+ GATE_ROTATION_CLOCKWISE(GATE_ARM_NORTH, 0),
+ GATE_ROTATION_NONE },
+ { GATE_ROTATION_NONE,
+ GATE_ROTATION_NONE,
+ GATE_ROTATION_ANTICLOCKWISE(GATE_ARM_SOUTH, 0),
+ GATE_ROTATION_NONE },
+ { GATE_ROTATION_NONE,
+ GATE_ROTATION_NONE,
+ GATE_ROTATION_ANTICLOCKWISE(GATE_ARM_SOUTH, 1),
+ GATE_ROTATION_NONE },
+};
+
+// These tables describe the relative coordinate positions the arms
+// must move through in order to be rotated.
+static const struct Coords8 sRotatingGate_ArmPositionsClockwiseRotation[] = {
+ { 0, -1 }, { 1, -2 }, { 0, 0 }, { 1, 0 }, { -1, 0 }, { -1, 1 }, { -1, -1 }, { -2, -1 },
+};
+
+static const struct Coords8 sRotatingGate_ArmPositionsAntiClockwiseRotation[] = {
+ { -1, -1 }, { -1, -2 }, { 0, -1 }, { 1, -1 }, { 0, 0 }, { 0, 1 }, { -1, 0 }, { -2, 0 },
+};
+
+// Describes where the gates "arms" are in the order north, east, south, west.
+// These are adjusted using the current orientation to perform collision checking
+static const u8 sRotatingGate_ArmLayout[][GATE_ARM_WEST + 1][GATE_ARM_MAX_LENGTH] = {
+ // L-shape gates
+ {
+ { 1, 0 }, { 1, 0 }, { 0, 0 }, { 0, 0 },
+ },
+ {
+ { 1, 1 }, { 1, 0 }, { 0, 0 }, { 0, 0 },
+ },
+ {
+ { 1, 0 }, { 1, 1 }, { 0, 0 }, { 0, 0 },
+ },
+ {
+ { 1, 1 }, { 1, 1 }, { 0, 0 }, { 0, 0 },
+ },
+
+ // T-shape gates
+ {
+ { 1, 0 }, { 1, 0 }, { 1, 0 }, { 0, 0 },
+ },
+ {
+ { 1, 1 }, { 1, 0 }, { 1, 0 }, { 0, 0 },
+ },
+ {
+ { 1, 0 }, { 1, 1 }, { 1, 0 }, { 0, 0 },
+ },
+ {
+ { 1, 0 }, { 1, 0 }, { 1, 1 }, { 0, 0 },
+ },
+
+ // Unused T-shape gates
+ // These have 2-3 long arms and cannot actually be used anywhere
+ // since configuration for them is missing from the other tables.
+ {
+ { 1, 1 }, { 1, 1 }, { 1, 0 }, { 0, 0 },
+ },
+ {
+ { 1, 1 }, { 1, 0 }, { 1, 1 }, { 0, 0 },
+ },
+ {
+ { 1, 0 }, { 1, 1 }, { 1, 1 }, { 0, 0 },
+ },
+ {
+ { 1, 1 }, { 1, 1 }, { 1, 1 }, { 0, 0 },
+ },
+};
+
+extern u8 gRotatingGate_GateSpriteIds[ROTATING_GATE_PUZZLE_MAX];
+extern const struct RotatingGatePuzzle *gRotatingGate_PuzzleConfig;
+extern u8 gRotatingGate_PuzzleCount;
+
+static int GetCurrentMapRotatingGatePuzzleType(void)
+{
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP_FORTREE_CITY_GYM &&
+ gSaveBlock1.location.mapNum == MAP_ID_FORTREE_CITY_GYM)
+ {
+ return PUZZLE_FORTREE_CITY_GYM;
+ }
+
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 &&
+ gSaveBlock1.location.mapNum == MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6)
+ {
+ return PUZZLE_ROUTE110_TRICK_HOUSE_PUZZLE6;
+ }
+
+ return PUZZLE_NONE;
+}
+
+static void RotatingGate_ResetAllGateOrientations(void)
+{
+ int i;
+ u8 *ptr;
+
+ ptr = (u8 *)GetVarPointer(0x4000);
+
+ for (i = 0; i < gRotatingGate_PuzzleCount; i++)
+ {
+ ptr[i] = gRotatingGate_PuzzleConfig[i].orientation;
+ }
+}
+
+static int RotatingGate_GetGateOrientation(u8 gateId)
+{
+ return ((u8 *)GetVarPointer(0x4000))[gateId];
+}
+
+static void RotatingGate_SetGateOrientation(u8 gateId, u8 orientation)
+{
+ ((u8 *)GetVarPointer(0x4000))[gateId] = orientation;
+}
+
+static void RotatingGate_RotateInDirection(u8 gateId, u32 rotationDirection)
+{
+ u8 orientation = RotatingGate_GetGateOrientation(gateId);
+
+ if (rotationDirection == ROTATE_ANTICLOCKWISE)
+ {
+ if (orientation)
+ {
+ orientation--;
+ }
+ else
+ {
+ orientation = GATE_ORIENTATION_270;
+ }
+ }
+ else
+ {
+ orientation = ++orientation % GATE_ORIENTATION_MAX;
+ }
+
+ RotatingGate_SetGateOrientation(gateId, orientation);
+}
+
+static void RotatingGate_LoadPuzzleConfig(void)
+{
+ int puzzleType = GetCurrentMapRotatingGatePuzzleType();
+ u32 i;
+
+ switch (puzzleType)
+ {
+ case PUZZLE_FORTREE_CITY_GYM:
+ gRotatingGate_PuzzleConfig = sRotatingGate_FortreePuzzleConfig;
+ gRotatingGate_PuzzleCount =
+ sizeof(sRotatingGate_FortreePuzzleConfig) / sizeof(struct RotatingGatePuzzle);
+ break;
+ case PUZZLE_ROUTE110_TRICK_HOUSE_PUZZLE6:
+ gRotatingGate_PuzzleConfig = sRotatingGate_TrickHousePuzzleConfig;
+ gRotatingGate_PuzzleCount =
+ sizeof(sRotatingGate_TrickHousePuzzleConfig) / sizeof(struct RotatingGatePuzzle);
+ break;
+ case PUZZLE_NONE:
+ default:
+ return;
+ }
+
+ for (i = 0; i < ROTATING_GATE_PUZZLE_MAX; i++)
+ {
+ gRotatingGate_GateSpriteIds[i] = MAX_SPRITES;
+ }
+}
+
+static void RotatingGate_CreateGatesWithinViewport(s16 deltaX, s16 deltaY)
+{
+ u8 i;
+
+ // Calculate the bounding box of the camera
+ // Same as RotatingGate_DestroyGatesOutsideViewport
+ s16 x = gSaveBlock1.pos.x - 2;
+ s16 x2 = gSaveBlock1.pos.x + 0x11;
+ s16 y = gSaveBlock1.pos.y - 2;
+ s16 y2 = gSaveBlock1.pos.y + 0xe;
+
+ s16 x3, y3;
+
+ for (i = 0; i < gRotatingGate_PuzzleCount; i++)
+ {
+ x3 = gRotatingGate_PuzzleConfig[i].pos.x + 7;
+ y3 = gRotatingGate_PuzzleConfig[i].pos.y + 7;
+
+ if (y <= y3 && y2 >= y3 && x <= x3 && x2 >= x3 &&
+ gRotatingGate_GateSpriteIds[i] == MAX_SPRITES)
+ {
+ gRotatingGate_GateSpriteIds[i] = RotatingGate_CreateGate(i, deltaX, deltaY);
+ }
+ }
+}
+
+static u8 RotatingGate_CreateGate(u8 gateId, s16 deltaX, s16 deltaY)
+{
+ struct Sprite *sprite;
+ struct SpriteTemplate template;
+ const struct RotatingGatePuzzle *gate;
+ u8 spriteId;
+ s16 x, y;
+
+ gate = &gRotatingGate_PuzzleConfig[gateId];
+
+ if (gate->shape == GATE_SHAPE_L1 || gate->shape == GATE_SHAPE_T1)
+ {
+ template = sSpriteTemplate_RotatingGateRegular;
+ }
+ else
+ {
+ template = sSpriteTemplate_RotatingGateLarge;
+ }
+
+ template.tileTag = gate->shape + ROTATING_GATE_TILE_TAG;
+
+ spriteId = CreateSprite(&template, 0, 0, 0x94);
+ if (spriteId == MAX_SPRITES)
+ {
+ return MAX_SPRITES;
+ }
+
+ x = gate->pos.x + 7;
+ y = gate->pos.y + 7;
+
+ sprite = &gSprites[spriteId];
+ sprite->data0 = gateId;
+ sprite->coordOffsetEnabled = 1;
+
+ sub_8060388(x + deltaX, y + deltaY, &sprite->pos1.x, &sprite->pos1.y);
+ RotatingGate_HideGatesOutsideViewport(sprite);
+ StartSpriteAffineAnim(sprite, RotatingGate_GetGateOrientation(gateId));
+
+ return spriteId;
+}
+
+static void SpriteCallback_RotatingGate(struct Sprite *sprite)
+{
+ u8 rotationDirection;
+ u8 orientation;
+ u8 affineAnimation;
+
+ rotationDirection = sprite->data1;
+ orientation = sprite->data2;
+
+ RotatingGate_HideGatesOutsideViewport(sprite);
+
+ if (rotationDirection == ROTATE_ANTICLOCKWISE)
+ {
+ affineAnimation = orientation + 4;
+
+ if (GetPlayerSpeed() != 1)
+ affineAnimation += 8;
+
+ PlaySE(SE_HI_TURUN);
+ StartSpriteAffineAnim(sprite, affineAnimation);
+ }
+ else if (rotationDirection == ROTATE_CLOCKWISE)
+ {
+ affineAnimation = orientation + 8;
+
+ if (GetPlayerSpeed() != 1)
+ affineAnimation += 8;
+
+ PlaySE(SE_HI_TURUN);
+ StartSpriteAffineAnim(sprite, affineAnimation);
+ }
+
+ sprite->data1 = ROTATE_NONE;
+}
+
+static void RotatingGate_HideGatesOutsideViewport(struct Sprite *sprite)
+{
+ u16 x;
+ s16 x2;
+ u16 y;
+ s16 y2;
+
+ sprite->invisible = 0;
+ x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX;
+ y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY;
+
+ x2 = x + 0x40; // Dimensions of the rotating gate
+ y2 = y + 0x40;
+
+ if ((s16)x > DISPLAY_WIDTH + 0x10 - 1 || x2 < -0x10)
+ {
+ sprite->invisible = 1;
+ }
+
+ if ((s16)y > DISPLAY_HEIGHT + 0x10 - 1 || y2 < -0x10)
+ {
+ sprite->invisible = 1;
+ }
+}
+
+static void LoadRotatingGatePics(void)
+{
+ LoadSpriteSheets(sRotatingGatesGraphicsTable);
+}
+
+static void RotatingGate_DestroyGatesOutsideViewport(void)
+{
+ s16 x;
+ s16 x2;
+ s16 y;
+ s16 y2;
+ s16 xGate;
+ s16 yGate;
+ int i;
+ struct Sprite *sprite;
+
+ // Same as RotatingGate_CreateGatesWithinViewport
+ x = gSaveBlock1.pos.x - 2;
+ x2 = gSaveBlock1.pos.x + 0x11;
+ y = gSaveBlock1.pos.y - 2;
+ y2 = gSaveBlock1.pos.y + 0xe;
+
+ for (i = 0; i < gRotatingGate_PuzzleCount; i++)
+ {
+ xGate = gRotatingGate_PuzzleConfig[i].pos.x + 7;
+ yGate = gRotatingGate_PuzzleConfig[i].pos.y + 7;
+
+ if (gRotatingGate_GateSpriteIds[i] == MAX_SPRITES)
+ continue;
+
+ if (xGate < x || xGate > x2 || yGate < y || yGate > y2)
+ {
+ sprite = &gSprites[gRotatingGate_GateSpriteIds[i]];
+ FreeSpriteOamMatrix(sprite);
+ DestroySprite(sprite);
+ gRotatingGate_GateSpriteIds[i] = MAX_SPRITES;
+ }
+ }
+}
+
+#ifdef NONMATCHING
+static int RotatingGate_CanRotate(u8 gateId, int rotationDirection)
+{
+ const struct Coords8 *armPos;
+ u8 orientation;
+ s16 x;
+ s16 y;
+ int shape;
+ int i;
+ int j;
+ int armOrientation;
+ const u8 *gateArmCollisionData;
+ u8 armIndex;
+
+ if (rotationDirection == ROTATE_ANTICLOCKWISE)
+ armPos = sRotatingGate_ArmPositionsAntiClockwiseRotation;
+ else if (rotationDirection == ROTATE_CLOCKWISE)
+ armPos = sRotatingGate_ArmPositionsClockwiseRotation;
+ else
+ return 0;
+
+ orientation = RotatingGate_GetGateOrientation(gateId);
+
+ shape = gRotatingGate_PuzzleConfig[gateId].shape;
+ x = gRotatingGate_PuzzleConfig[gateId].pos.x + 7;
+ y = gRotatingGate_PuzzleConfig[gateId].pos.y + 7;
+
+ // Loop through the gate's "arms" clockwise (north, south, east, west)
+ for (i = GATE_ARM_NORTH; i <= GATE_ARM_WEST; i++)
+ {
+ armOrientation = orientation + i;
+ gateArmCollisionData = sRotatingGate_ArmLayout[shape][i];
+
+ // Ensure that no part of the arm collides with the map
+ for (j = 0; j < GATE_ARM_MAX_LENGTH; j++)
+ {
+ armIndex = 2 * (armOrientation % 4) + j;
+
+ if (*gateArmCollisionData)
+ {
+ if (MapGridIsImpassableAt(
+ armPos[armIndex].deltaX + x, armPos[armIndex].deltaY + y) == 1)
+ return 0;
+ }
+ gateArmCollisionData++;
+ }
+ }
+
+ return 1;
+}
+#else
+__attribute__((naked)) static int RotatingGate_CanRotate(u8 a, int puzzleType)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0xC\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r1, 0x1\n\
+ bne _080C7EAC\n\
+ ldr r0, _080C7EA8 @ =sRotatingGate_ArmPositionsAntiClockwiseRotation\n\
+ mov r10, r0\n\
+ b _080C7EB8\n\
+ .align 2, 0\n\
+_080C7EA8: .4byte sRotatingGate_ArmPositionsAntiClockwiseRotation\n\
+_080C7EAC:\n\
+ cmp r1, 0x2\n\
+ beq _080C7EB4\n\
+_080C7EB0:\n\
+ movs r0, 0\n\
+ b _080C7F48\n\
+_080C7EB4:\n\
+ ldr r1, _080C7F58 @ =sRotatingGate_ArmPositionsClockwiseRotation\n\
+ mov r10, r1\n\
+_080C7EB8:\n\
+ adds r0, r4, 0\n\
+ bl RotatingGate_GetGateOrientation\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ str r0, [sp]\n\
+ ldr r0, _080C7F5C @ =gRotatingGate_PuzzleConfig\n\
+ ldr r1, [r0]\n\
+ lsls r0, r4, 3\n\
+ adds r0, r1\n\
+ ldrb r2, [r0, 0x4]\n\
+ ldrh r1, [r0]\n\
+ adds r1, 0x7\n\
+ ldrh r0, [r0, 0x2]\n\
+ adds r0, 0x7\n\
+ movs r3, 0\n\
+ lsls r2, 3\n\
+ str r2, [sp, 0x4]\n\
+ lsls r1, 16\n\
+ asrs r1, 16\n\
+ mov r9, r1\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ mov r8, r0\n\
+_080C7EE8:\n\
+ movs r6, 0\n\
+ ldr r2, [sp]\n\
+ adds r7, r2, r3\n\
+ lsls r0, r3, 1\n\
+ adds r5, r7, 0\n\
+ ldr r1, [sp, 0x4]\n\
+ adds r0, r1\n\
+ ldr r2, _080C7F60 @ =sRotatingGate_ArmLayout\n\
+ adds r4, r0, r2\n\
+_080C7EFA:\n\
+ adds r0, r5, 0\n\
+ cmp r5, 0\n\
+ bge _080C7F02\n\
+ adds r0, r7, 0x3\n\
+_080C7F02:\n\
+ asrs r0, 2\n\
+ lsls r0, 2\n\
+ subs r0, r5, r0\n\
+ lsls r0, 1\n\
+ adds r0, r6\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0\n\
+ beq _080C7F38\n\
+ lsls r1, 2\n\
+ add r1, r10\n\
+ movs r0, 0\n\
+ ldrsb r0, [r1, r0]\n\
+ add r0, r9\n\
+ ldrb r1, [r1, 0x1]\n\
+ lsls r1, 24\n\
+ asrs r1, 24\n\
+ add r1, r8\n\
+ str r3, [sp, 0x8]\n\
+ bl MapGridIsImpassableAt\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ ldr r3, [sp, 0x8]\n\
+ cmp r0, 0x1\n\
+ beq _080C7EB0\n\
+_080C7F38:\n\
+ adds r4, 0x1\n\
+ adds r6, 0x1\n\
+ cmp r6, 0x1\n\
+ ble _080C7EFA\n\
+ adds r3, 0x1\n\
+ cmp r3, 0x3\n\
+ ble _080C7EE8\n\
+ movs r0, 0x1\n\
+_080C7F48:\n\
+ add sp, 0xC\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_080C7F58: .4byte sRotatingGate_ArmPositionsClockwiseRotation\n\
+_080C7F5C: .4byte gRotatingGate_PuzzleConfig\n\
+_080C7F60: .4byte sRotatingGate_ArmLayout\n\
+.syntax divided\n");
+}
+#endif
+
+#ifdef NONMATCHING
+static int RotatingGate_HasArm(u8 gateId, u8 armInfo)
+{
+ int isLongArm;
+ s8 armOrientation;
+ int arm;
+ int shape;
+
+ arm = armInfo >> 1;
+ isLongArm = armInfo & 1;
+
+ armOrientation = (arm - RotatingGate_GetGateOrientation(gateId) + 4) % 4;
+ shape = gRotatingGate_PuzzleConfig[gateId].shape;
+ return sRotatingGate_ArmLayout[shape][armOrientation][isLongArm];
+}
+#else
+__attribute__((naked)) static int RotatingGate_HasArm(u8 a, u8 b)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ adds r4, r1, 0\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ adds r6, r0, 0\n\
+ lsls r4, 24\n\
+ lsrs r5, r4, 24\n\
+ lsrs r4, 25\n\
+ movs r0, 0x1\n\
+ ands r5, r0\n\
+ adds r0, r6, 0\n\
+ bl RotatingGate_GetGateOrientation\n\
+ subs r4, r0\n\
+ adds r1, r4, 0x4\n\
+ adds r0, r1, 0\n\
+ cmp r1, 0\n\
+ bge _080C7F8A\n\
+ adds r0, r4, 0x7\n\
+_080C7F8A:\n\
+ asrs r0, 2\n\
+ lsls r0, 2\n\
+ subs r0, r1, r0\n\
+ ldr r1, _080C7FB0 @ =gRotatingGate_PuzzleConfig\n\
+ ldr r2, [r1]\n\
+ lsls r1, r6, 3\n\
+ adds r1, r2\n\
+ ldrb r1, [r1, 0x4]\n\
+ ldr r2, _080C7FB4 @ =sRotatingGate_ArmLayout\n\
+ lsls r0, 24\n\
+ asrs r0, 23\n\
+ adds r0, r5\n\
+ lsls r1, 3\n\
+ adds r0, r1\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
+ pop {r4-r6}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_080C7FB0: .4byte gRotatingGate_PuzzleConfig\n\
+_080C7FB4: .4byte sRotatingGate_ArmLayout\n\
+.syntax divided\n");
+}
+#endif
+
+static void RotatingGate_TriggerRotationAnimation(u8 gateId, int rotationDirection)
+{
+ struct Sprite *sprite;
+
+ if (gRotatingGate_GateSpriteIds[gateId] != MAX_SPRITES)
+ {
+ sprite = &gSprites[gRotatingGate_GateSpriteIds[gateId]];
+ sprite->data1 = rotationDirection;
+ sprite->data2 = RotatingGate_GetGateOrientation(gateId);
+ }
+}
+
+#ifdef NONMATCHING
+static u8 RotatingGate_GetRotationInfo(u8 direction, s16 x, s16 y)
+{
+ register const u8(*ptr)[][4] asm("r3");
+
+ if (direction == DIR_NORTH)
+ ptr = &sRotatingGate_RotationInfoNorth;
+ else if (direction == DIR_SOUTH)
+ ptr = &sRotatingGate_RotationInfoSouth;
+ else if (direction == DIR_WEST)
+ ptr = &sRotatingGate_RotationInfoWest;
+ else if (direction == DIR_EAST)
+ ptr = &sRotatingGate_RotationInfoEast;
+ else
+ return GATE_ROTATION_NONE;
+
+ return (*ptr)[y][x];
+}
+#else
+__attribute__((naked)) static u8 RotatingGate_GetRotationInfo(u8 a, s16 b, s16 c)
+{
+ asm(".syntax unified\n\
+ push {lr}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ adds r3, r0, 0\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ lsls r2, 16\n\
+ lsrs r2, 16\n\
+ cmp r0, 0x2\n\
+ bne _080C8008\n\
+ ldr r3, _080C8004 @ =sRotatingGate_RotationInfoNorth\n\
+ b _080C802A\n\
+ .align 2, 0\n\
+_080C8004: .4byte sRotatingGate_RotationInfoNorth\n\
+_080C8008:\n\
+ cmp r0, 0x1\n\
+ bne _080C8014\n\
+ ldr r3, _080C8010 @ =sRotatingGate_RotationInfoSouth\n\
+ b _080C802A\n\
+ .align 2, 0\n\
+_080C8010: .4byte sRotatingGate_RotationInfoSouth\n\
+_080C8014:\n\
+ cmp r0, 0x3\n\
+ bne _080C8020\n\
+ ldr r3, _080C801C @ =sRotatingGate_RotationInfoWest\n\
+ b _080C802A\n\
+ .align 2, 0\n\
+_080C801C: .4byte sRotatingGate_RotationInfoWest\n\
+_080C8020:\n\
+ cmp r3, 0x4\n\
+ beq _080C8028\n\
+ movs r0, 0xFF\n\
+ b _080C8038\n\
+_080C8028:\n\
+ ldr r3, _080C803C @ =sRotatingGate_RotationInfoEast\n\
+_080C802A:\n\
+ lsls r0, r2, 16\n\
+ lsls r1, 16\n\
+ asrs r1, 16\n\
+ asrs r0, 14\n\
+ adds r0, r1\n\
+ adds r0, r3, r0\n\
+ ldrb r0, [r0]\n\
+_080C8038:\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_080C803C: .4byte sRotatingGate_RotationInfoEast\n\
+.syntax divided\n");
+}
+#endif
+
+void RotatingGate_InitPuzzle(void)
+{
+ if (GetCurrentMapRotatingGatePuzzleType())
+ {
+ RotatingGate_LoadPuzzleConfig();
+ RotatingGate_ResetAllGateOrientations();
+ }
+}
+
+void RotatingGatePuzzleCameraUpdate(u16 deltaX, u16 deltaY)
+{
+ if (GetCurrentMapRotatingGatePuzzleType())
+ {
+ RotatingGate_CreateGatesWithinViewport(deltaX, deltaY);
+ RotatingGate_DestroyGatesOutsideViewport();
+ }
+}
+
+void RotatingGate_InitPuzzleAndGraphics(void)
+{
+ if (GetCurrentMapRotatingGatePuzzleType())
+ {
+ LoadRotatingGatePics();
+ RotatingGate_LoadPuzzleConfig();
+ RotatingGate_CreateGatesWithinViewport(0, 0);
+ }
+}
+
+bool8 CheckForRotatingGatePuzzleCollision(u8 direction, s16 x, s16 y)
+{
+ int i;
+ s16 gateX;
+ s16 gateY;
+ register u32 rotationInfo asm("r0");
+ int rotationDirection;
+ int armInfo;
+ s16 centerX;
+ s16 centerY;
+
+ if (!GetCurrentMapRotatingGatePuzzleType())
+ {
+ return 0;
+ }
+
+ for (i = 0; i < gRotatingGate_PuzzleCount; i++)
+ {
+ gateX = gRotatingGate_PuzzleConfig[i].pos.x + 7;
+ gateY = gRotatingGate_PuzzleConfig[i].pos.y + 7;
+
+ if (gateX - 2 <= x && x <= gateX + 1 && gateY - 2 <= y && y <= gateY + 1)
+ {
+ centerX = x - gateX + 2;
+ centerY = y - gateY + 2;
+ rotationInfo = RotatingGate_GetRotationInfo(direction, centerX, centerY);
+
+ if (rotationInfo != GATE_ROTATION_NONE)
+ {
+ rotationDirection = rotationInfo >> 4;
+ armInfo = rotationInfo & 0xF;
+
+ asm("" ::"r"(armInfo));
+
+ if (RotatingGate_HasArm(i, armInfo))
+ {
+ if (RotatingGate_CanRotate(i, rotationDirection))
+ {
+ RotatingGate_TriggerRotationAnimation(i, rotationDirection);
+ RotatingGate_RotateInDirection(i, rotationDirection);
+ return 0;
+ }
+
+ return 1;
+ }
+ }
+ }
+ }
+
+ return 0;
+}
diff --git a/src/sound_check_menu.c b/src/sound_check_menu.c
new file mode 100755
index 000000000..13a6f6f3e
--- /dev/null
+++ b/src/sound_check_menu.c
@@ -0,0 +1,2198 @@
+#include "global.h"
+#include "sprite.h"
+#include "palette.h"
+#include "task.h"
+#include "m4a.h"
+#include "main.h"
+#include "text.h"
+#include "menu.h"
+#include "songs.h"
+#include "title_screen.h"
+#include "sound.h"
+#include "pokedex_cry_screen.h"
+
+// local task defines
+#define WINDOW_SELECTED data[0]
+#define BGM_INDEX data[1]
+#define SE_INDEX data[2]
+#define UNK_DATA3 data[3]
+#define UNK_DATA4 data[4]
+// data 5-7 are not used
+// i dont have a define for data 8 yet because its used in a nonmatching and I can't be sure yet its actually used.
+
+// window selections
+enum
+{
+ BGM_WINDOW,
+ SE_WINDOW
+};
+
+// driver test cry enums
+enum
+{
+ CRY_TEST_UNK0,
+ CRY_TEST_VOLUME,
+ CRY_TEST_PANPOT,
+ CRY_TEST_PITCH,
+ CRY_TEST_LENGTH,
+ CRY_TEST_RELEASE,
+ CRY_TEST_PROGRESS,
+ CRY_TEST_CHORUS,
+ CRY_TEST_PRIORITY
+};
+
+// minmax range enums
+enum
+{
+ MIN,
+ MAX
+};
+
+extern struct ToneData voicegroup_84537C0[];
+extern struct ToneData voicegroup_8452590[];
+extern struct ToneData voicegroup_8453DC0[];
+extern struct ToneData voicegroup_8452B90[];
+extern struct ToneData voicegroup_84543C0[];
+extern struct ToneData voicegroup_8453190[];
+extern struct ToneData voicegroup_84549C0[];
+extern struct ToneData voicegroup_8453790[];
+
+extern int gUnknown_020387B4[9];
+
+extern s8 gUnknown_020387B3;
+extern u8 gUnknown_020387B1;
+extern u8 gUnknown_020387B2;
+extern u8 gUnknown_020387D8;
+extern u8 gUnknown_020387D9;
+extern u8 gUnknown_020387B0;
+extern u16 gUnknown_03005D34;
+extern u8 gUnknown_03005E98;
+
+extern struct MusicPlayerInfo *gUnknown_03005D30;
+extern struct MusicPlayerInfo gMPlay_BGM;
+
+void sub_80BA258(u8);
+void sub_80BA384(u8);
+void sub_80BA65C(u8);
+void sub_80BA68C(u8);
+void sub_80BA6B8(u8);
+void sub_80BA700(u16, u16, u16);
+void sub_80BA79C(const u8 *const, u16, u16);
+void sub_80BA800(u8);
+void sub_80BAA48(u8);
+void sub_80BACDC(s8);
+void sub_80BAD5C(void);
+void sub_80BAE10(u8, u8);
+void sub_80BAE78(int, u16, u16, u8);
+void sub_80BAF84(u8);
+void sub_80BB038(u8);
+void sub_80BB1D4(void);
+void sub_80BB25C(u8);
+void sub_80BB3B4(u8);
+void sub_80BB494(void);
+
+static const u8 gDebugText_SoundCheckJap[] = _("サウンドチェック");
+static const u8 gDebugText_BGM[] = _("BGM");
+static const u8 gDebugText_SE[] = _("SE ");
+static const u8 gDebugText_ABDesc[] = _("A‥さいせい B‥おわり");
+static const u8 gDebugText_UpDown[] = _("L‥UP R‥DOWN");
+static const u8 gDebugText_DriverTest[] = _("R‥DRIVER-TEST");
+
+// ideally this should be a multi Coords8 struct, but it wont match when its treated like a struct.
+static const u8 gUnknown_083D0300[] = { 1, 1, 1, 3, 1, 5, 1, 7, 1, 9, 1, 11, 1, 13, 1, 15, 1, 17 };
+
+static const u8 gDebugText_BBack[] = _("Bぼたんで もどる");
+static const u8 gDebugText_APlay[] = _("Aぼたんで さいせい");
+static const u8 gDebugText_Voice[] = _("VOICE‥‥‥‥");
+static const u8 gDebugText_Volume[] = _("VOLUME‥‥‥");
+static const u8 gDebugText_Panpot[] = _("PANPOT‥‥‥");
+static const u8 gDebugText_Pitch[] = _("PITCH‥‥‥‥");
+static const u8 gDebugText_Length[] = _("LENGTH‥‥‥");
+static const u8 gDebugText_Release[] = _("RELEASE‥‥");
+static const u8 gDebugText_Progress[] = _("PROGRESS‥");
+static const u8 gDebugText_Chorus[] = _("CHORUS‥‥‥");
+static const u8 gDebugText_Priority[] = _("PRIORITY‥");
+static const u8 gDebugText_Playing[] = _("さいせいちゆう‥"); // 再生中 (playing)
+static const u8 gDebugText_Reverse[] = _("はんてん‥‥‥‥"); // 反転 (reverse)
+static const u8 gDebugText_Stereo[] = _("すてれお‥‥‥‥"); // stereo
+
+// also ideally should be a MinMax struct, but any attempt to make this into a struct causes it to not match due to the weird multi dim access.
+static const int gUnknown_083D039C[16] =
+{
+ 0, 387,
+ 0, 127,
+ -127, 127,
+ -128, 32639,
+ 0, 65535,
+ 0, 255,
+ 0, 65535,
+ -64, 63
+};
+
+static const u8 gUnknown_083D03DC[] = _("▶");
+static const u8 gUnknown_083D03DE[] = _(" ");
+
+// why not just use Powers of ten from string_util?
+static const int gUnknown_083D03E0[6] =
+{
+ 1,
+ 10,
+ 100,
+ 1000,
+ 10000,
+ 100000
+};
+
+static const s8 gUnknown_083D03F8[5] = { 0x3F, 0x00, 0xC0, 0x7F, 0x80 };
+
+static const u8 gOtherText_SE[] = _("SE");
+static const u8 gOtherText_Pan[] = _("PAN");
+static const u8 gOtherText_LR[] = _(" LR");
+static const u8 gOtherText_RL[] = _(" RL");
+
+// bgm names
+static const u8 BGMName_STOP[] = _("STOP");
+static const u8 BGMName_TETSUJI[] = _("TETSUJI");
+static const u8 BGMName_FIELD13[] = _("FIELD13");
+static const u8 BGMName_KACHI22[] = _("KACHI22");
+static const u8 BGMName_KACHI2[] = _("KACHI2");
+static const u8 BGMName_KACHI3[] = _("KACHI3");
+static const u8 BGMName_KACHI5[] = _("KACHI5");
+static const u8 BGMName_PCC[] = _("PCC");
+static const u8 BGMName_NIBI[] = _("NIBI");
+static const u8 BGMName_SUIKUN[] = _("SUIKUN");
+static const u8 BGMName_DOORO1[] = _("DOORO1");
+static const u8 BGMName_DOORO_X1[] = _("DOORO-X1");
+static const u8 BGMName_DOORO_X3[] = _("DOORO-X3");
+static const u8 BGMName_MACHI_S2[] = _("MACHI-S2");
+static const u8 BGMName_MACHI_S4[] = _("MACHI-S4");
+static const u8 BGMName_GIM[] = _("GIM");
+static const u8 BGMName_NAMINORI[] = _("NAMINORI");
+static const u8 BGMName_DAN01[] = _("DAN01");
+static const u8 BGMName_FANFA1[] = _("FANFA1");
+static const u8 BGMName_ME_ASA[] = _("ME-ASA");
+static const u8 BGMName_ME_BACHI[] = _("ME-BACHI");
+static const u8 BGMName_FANFA4[] = _("FANFA4");
+static const u8 BGMName_FANFA5[] = _("FANFA5");
+static const u8 BGMName_ME_WAZA[] = _("ME-WAZA");
+static const u8 BGMName_BIJYUTU[] = _("BIJYUTU");
+static const u8 BGMName_DOORO_X4[] = _("DOORO-X4");
+static const u8 BGMName_FUNE_KAN[] = _("FUNE-KAN");
+static const u8 BGMName_ME_SHINKA[] = _("ME-SHINKA");
+static const u8 BGMName_SHINKA[] = _("SHINKA");
+static const u8 BGMName_ME_WASURE[] = _("ME-WASURE");
+static const u8 BGMName_SYOUJOEYE[] = _("SYOUJOEYE");
+static const u8 BGMName_BOYEYE[] = _("BOYEYE");
+static const u8 BGMName_DAN02[] = _("DAN02");
+static const u8 BGMName_MACHI_S3[] = _("MACHI-S3");
+static const u8 BGMName_ODAMAKI[] = _("ODAMAKI");
+static const u8 BGMName_B_TOWER[] = _("B-TOWER");
+static const u8 BGMName_SWIMEYE[] = _("SWIMEYE");
+static const u8 BGMName_DAN03[] = _("DAN03");
+static const u8 BGMName_ME_KINOMI[] = _("ME-KINOMI");
+static const u8 BGMName_ME_TAMA[] = _("ME-TAMA");
+static const u8 BGMName_ME_B_BIG[] = _("ME-B-BIG");
+static const u8 BGMName_ME_B_SMALL[] = _("ME-B-SMALL");
+static const u8 BGMName_ME_ZANNEN[] = _("ME-ZANNEN");
+static const u8 BGMName_BD_TIME[] = _("BD-TIME");
+static const u8 BGMName_TEST1[] = _("TEST1");
+static const u8 BGMName_TEST2[] = _("TEST2");
+static const u8 BGMName_TEST3[] = _("TEST3");
+static const u8 BGMName_TEST4[] = _("TEST4");
+static const u8 BGMName_TEST[] = _("TEST");
+static const u8 BGMName_GOMACHI0[] = _("GOMACHI0");
+static const u8 BGMName_GOTOWN[] = _("GOTOWN");
+static const u8 BGMName_POKECEN[] = _("POKECEN");
+static const u8 BGMName_NEXTROAD[] = _("NEXTROAD");
+static const u8 BGMName_GRANROAD[] = _("GRANROAD");
+static const u8 BGMName_CYCLING[] = _("CYCLING");
+static const u8 BGMName_FRIENDLY[] = _("FRIENDLY");
+static const u8 BGMName_MISHIRO[] = _("MISHIRO");
+static const u8 BGMName_TOZAN[] = _("TOZAN");
+static const u8 BGMName_GIRLEYE[] = _("GIRLEYE");
+static const u8 BGMName_MINAMO[] = _("MINAMO");
+static const u8 BGMName_ASHROAD[] = _("ASHROAD");
+static const u8 BGMName_EVENT0[] = _("EVENT0");
+static const u8 BGMName_DEEPDEEP[] = _("DEEPDEEP");
+static const u8 BGMName_KACHI1[] = _("KACHI1");
+static const u8 BGMName_TITLE3[] = _("TITLE3");
+static const u8 BGMName_DEMO1[] = _("DEMO1");
+static const u8 BGMName_GIRL_SUP[] = _("GIRL-SUP");
+static const u8 BGMName_HAGESHII[] = _("HAGESHII");
+static const u8 BGMName_KAKKOII[] = _("KAKKOII");
+static const u8 BGMName_KAZANBAI[] = _("KAZANBAI");
+static const u8 BGMName_AQA_0[] = _("AQA-0");
+static const u8 BGMName_TSURETEK[] = _("TSURETEK");
+static const u8 BGMName_BOY_SUP[] = _("BOY-SUP");
+static const u8 BGMName_RAINBOW[] = _("RAINBOW");
+static const u8 BGMName_AYASII[] = _("AYASII");
+static const u8 BGMName_KACHI4[] = _("KACHI4");
+static const u8 BGMName_ROPEWAY[] = _("ROPEWAY");
+static const u8 BGMName_CASINO[] = _("CASINO");
+static const u8 BGMName_HIGHTOWN[] = _("HIGHTOWN");
+static const u8 BGMName_SAFARI[] = _("SAFARI");
+static const u8 BGMName_C_ROAD[] = _("C-ROAD");
+static const u8 BGMName_AJITO[] = _("AJITO");
+static const u8 BGMName_M_BOAT[] = _("M-BOAT");
+static const u8 BGMName_M_DUNGON[] = _("M-DUNGON");
+static const u8 BGMName_FINECITY[] = _("FINECITY");
+static const u8 BGMName_MACHUPI[] = _("MACHUPI");
+static const u8 BGMName_P_SCHOOL[] = _("P-SCHOOL");
+static const u8 BGMName_DENDOU[] = _("DENDOU");
+static const u8 BGMName_TONEKUSA[] = _("TONEKUSA");
+static const u8 BGMName_MABOROSI[] = _("MABOROSI");
+static const u8 BGMName_CON_FAN[] = _("CON-FAN");
+static const u8 BGMName_CONTEST0[] = _("CONTEST0");
+static const u8 BGMName_MGM0[] = _("MGM0");
+static const u8 BGMName_T_BATTLE[] = _("T-BATTLE");
+static const u8 BGMName_OOAME[] = _("OOAME");
+static const u8 BGMName_HIDERI[] = _("HIDERI");
+static const u8 BGMName_RUNECITY[] = _("RUNECITY");
+static const u8 BGMName_CON_K[] = _("CON-K");
+static const u8 BGMName_EIKOU_R[] = _("EIKOU-R");
+static const u8 BGMName_KARAKURI[] = _("KARAKURI");
+static const u8 BGMName_HUTAGO[] = _("HUTAGO");
+static const u8 BGMName_SITENNOU[] = _("SITENNOU");
+static const u8 BGMName_YAMA_EYE[] = _("YAMA-EYE");
+static const u8 BGMName_CONLOBBY[] = _("CONLOBBY");
+static const u8 BGMName_INTER_V[] = _("INTER-V");
+static const u8 BGMName_DAIGO[] = _("DAIGO");
+static const u8 BGMName_THANKFOR[] = _("THANKFOR");
+static const u8 BGMName_END[] = _("END");
+static const u8 BGMName_BATTLE27[] = _("BATTLE27");
+static const u8 BGMName_BATTLE31[] = _("BATTLE31");
+static const u8 BGMName_BATTLE20[] = _("BATTLE20");
+static const u8 BGMName_BATTLE32[] = _("BATTLE32");
+static const u8 BGMName_BATTLE33[] = _("BATTLE33");
+static const u8 BGMName_BATTLE36[] = _("BATTLE36");
+static const u8 BGMName_BATTLE34[] = _("BATTLE34");
+static const u8 BGMName_BATTLE35[] = _("BATTLE35");
+static const u8 BGMName_BATTLE38[] = _("BATTLE38");
+static const u8 BGMName_BATTLE30[] = _("BATTLE30");
+
+static const u8 *const gBGMNames[] =
+{
+ BGMName_STOP,
+ BGMName_TETSUJI,
+ BGMName_FIELD13,
+ BGMName_KACHI22,
+ BGMName_KACHI2,
+ BGMName_KACHI3,
+ BGMName_KACHI5,
+ BGMName_PCC,
+ BGMName_NIBI,
+ BGMName_SUIKUN,
+ BGMName_DOORO1,
+ BGMName_DOORO_X1,
+ BGMName_DOORO_X3,
+ BGMName_MACHI_S2,
+ BGMName_MACHI_S4,
+ BGMName_GIM,
+ BGMName_NAMINORI,
+ BGMName_DAN01,
+ BGMName_FANFA1,
+ BGMName_ME_ASA,
+ BGMName_ME_BACHI,
+ BGMName_FANFA4,
+ BGMName_FANFA5,
+ BGMName_ME_WAZA,
+ BGMName_BIJYUTU,
+ BGMName_DOORO_X4,
+ BGMName_FUNE_KAN,
+ BGMName_ME_SHINKA,
+ BGMName_SHINKA,
+ BGMName_ME_WASURE,
+ BGMName_SYOUJOEYE,
+ BGMName_BOYEYE,
+ BGMName_DAN02,
+ BGMName_MACHI_S3,
+ BGMName_ODAMAKI,
+ BGMName_B_TOWER,
+ BGMName_SWIMEYE,
+ BGMName_DAN03,
+ BGMName_ME_KINOMI,
+ BGMName_ME_TAMA,
+ BGMName_ME_B_BIG,
+ BGMName_ME_B_SMALL,
+ BGMName_ME_ZANNEN,
+ BGMName_BD_TIME,
+ BGMName_TEST1,
+ BGMName_TEST2,
+ BGMName_TEST3,
+ BGMName_TEST4,
+ BGMName_TEST,
+ BGMName_GOMACHI0,
+ BGMName_GOTOWN,
+ BGMName_POKECEN,
+ BGMName_NEXTROAD,
+ BGMName_GRANROAD,
+ BGMName_CYCLING,
+ BGMName_FRIENDLY,
+ BGMName_MISHIRO,
+ BGMName_TOZAN,
+ BGMName_GIRLEYE,
+ BGMName_MINAMO,
+ BGMName_ASHROAD,
+ BGMName_EVENT0,
+ BGMName_DEEPDEEP,
+ BGMName_KACHI1,
+ BGMName_TITLE3,
+ BGMName_DEMO1,
+ BGMName_GIRL_SUP,
+ BGMName_HAGESHII,
+ BGMName_KAKKOII,
+ BGMName_KAZANBAI,
+ BGMName_AQA_0,
+ BGMName_TSURETEK,
+ BGMName_BOY_SUP,
+ BGMName_RAINBOW,
+ BGMName_AYASII,
+ BGMName_KACHI4,
+ BGMName_ROPEWAY,
+ BGMName_CASINO,
+ BGMName_HIGHTOWN,
+ BGMName_SAFARI,
+ BGMName_C_ROAD,
+ BGMName_AJITO,
+ BGMName_M_BOAT,
+ BGMName_M_DUNGON,
+ BGMName_FINECITY,
+ BGMName_MACHUPI,
+ BGMName_P_SCHOOL,
+ BGMName_DENDOU,
+ BGMName_TONEKUSA,
+ BGMName_MABOROSI,
+ BGMName_CON_FAN,
+ BGMName_CONTEST0,
+ BGMName_MGM0,
+ BGMName_T_BATTLE,
+ BGMName_OOAME,
+ BGMName_HIDERI,
+ BGMName_RUNECITY,
+ BGMName_CON_K,
+ BGMName_EIKOU_R,
+ BGMName_KARAKURI,
+ BGMName_HUTAGO,
+ BGMName_SITENNOU,
+ BGMName_YAMA_EYE,
+ BGMName_CONLOBBY,
+ BGMName_INTER_V,
+ BGMName_DAIGO,
+ BGMName_THANKFOR,
+ BGMName_END,
+ BGMName_BATTLE27,
+ BGMName_BATTLE31,
+ BGMName_BATTLE20,
+ BGMName_BATTLE32,
+ BGMName_BATTLE33,
+ BGMName_BATTLE36,
+ BGMName_BATTLE34,
+ BGMName_BATTLE35,
+ BGMName_BATTLE38,
+ BGMName_BATTLE30
+};
+
+// SE names
+static const u8 SEName_STOP[] = _("STOP");
+static const u8 SEName_KAIFUKU[] = _("KAIFUKU");
+static const u8 SEName_PC_LOGON[] = _("PC-LOGON");
+static const u8 SEName_PC_OFF[] = _("PC-OFF");
+static const u8 SEName_PC_ON[] = _("PC-ON");
+static const u8 SEName_SELECT[] = _("SELECT");
+static const u8 SEName_WIN_OPEN[] = _("WIN-OPEN");
+static const u8 SEName_WALL_HIT[] = _("WALL-HIT");
+static const u8 SEName_DOOR[] = _("DOOR");
+static const u8 SEName_KAIDAN[] = _("KAIDAN");
+static const u8 SEName_DANSA[] = _("DANSA");
+static const u8 SEName_JITENSYA[] = _("JITENSYA");
+static const u8 SEName_KOUKA_L[] = _("KOUKA-L");
+static const u8 SEName_KOUKA_M[] = _("KOUKA-M");
+static const u8 SEName_KOUKA_H[] = _("KOUKA-H");
+static const u8 SEName_BOWA2[] = _("BOWA2");
+static const u8 SEName_POKE_DEAD[] = _("POKE-DEAD");
+static const u8 SEName_NIGERU[] = _("NIGERU");
+static const u8 SEName_JIDO_DOA[] = _("JIDO-DOA");
+static const u8 SEName_NAMINORI[] = _("NAMINORI");
+static const u8 SEName_BAN[] = _("BAN");
+static const u8 SEName_PIN[] = _("PIN");
+static const u8 SEName_BOO[] = _("BOO");
+static const u8 SEName_BOWA[] = _("BOWA");
+static const u8 SEName_JYUNI[] = _("JYUNI");
+static const u8 SEName_A[] = _("A");
+static const u8 SEName_I[] = _("I");
+static const u8 SEName_U[] = _("U");
+static const u8 SEName_E[] = _("E");
+static const u8 SEName_O[] = _("O");
+static const u8 SEName_N[] = _("N");
+static const u8 SEName_SEIKAI[] = _("SEIKAI");
+static const u8 SEName_HAZURE[] = _("HAZURE");
+static const u8 SEName_EXP[] = _("EXP");
+static const u8 SEName_JITE_PYOKO[] = _("JITE-PYOKO");
+static const u8 SEName_MU_PACHI[] = _("MU-PACHI");
+static const u8 SEName_TK_KASYA[] = _("TK-KASYA");
+static const u8 SEName_FU_ZAKU[] = _("FU-ZAKU");
+static const u8 SEName_FU_ZAKU2[] = _("FU-ZAKU2");
+static const u8 SEName_FU_ZUZUZU[] = _("FU-ZUZUZU");
+static const u8 SEName_RU_GASHIN[] = _("RU-GASHIN");
+static const u8 SEName_RU_GASYAN[] = _("RU-GASYAN");
+static const u8 SEName_RU_BARI[] = _("RU-BARI");
+static const u8 SEName_RU_HYUU[] = _("RU-HYUU");
+static const u8 SEName_KI_GASYAN[] = _("KI-GASYAN");
+static const u8 SEName_TK_WARPIN[] = _("TK-WARPIN");
+static const u8 SEName_TK_WARPOUT[] = _("TK-WARPOUT");
+static const u8 SEName_TU_SAA[] = _("TU-SAA");
+static const u8 SEName_HI_TURUN[] = _("HI-TURUN");
+static const u8 SEName_TRACK_MOVE[] = _("TRACK-MOVE");
+static const u8 SEName_TRACK_STOP[] = _("TRACK-STOP");
+static const u8 SEName_TRACK_HAIK[] = _("TRACK-HAIK");
+static const u8 SEName_TRACK_DOOR[] = _("TRACK-DOOR");
+static const u8 SEName_MOTER[] = _("MOTER");
+static const u8 SEName_CARD[] = _("CARD");
+static const u8 SEName_SAVE[] = _("SAVE");
+static const u8 SEName_KON[] = _("KON");
+static const u8 SEName_KON2[] = _("KON2");
+static const u8 SEName_KON3[] = _("KON3");
+static const u8 SEName_KON4[] = _("KON4");
+static const u8 SEName_SUIKOMU[] = _("SUIKOMU");
+static const u8 SEName_NAGERU[] = _("NAGERU");
+static const u8 SEName_TOY_C[] = _("TOY-C");
+static const u8 SEName_TOY_D[] = _("TOY-D");
+static const u8 SEName_TOY_E[] = _("TOY-E");
+static const u8 SEName_TOY_F[] = _("TOY-F");
+static const u8 SEName_TOY_G[] = _("TOY-G");
+static const u8 SEName_TOY_A[] = _("TOY-A");
+static const u8 SEName_TOY_B[] = _("TOY-B");
+static const u8 SEName_TOY_C1[] = _("TOY-C1");
+static const u8 SEName_MIZU[] = _("MIZU");
+static const u8 SEName_HASHI[] = _("HASHI");
+static const u8 SEName_DAUGI[] = _("DAUGI");
+static const u8 SEName_PINPON[] = _("PINPON");
+static const u8 SEName_FUUSEN1[] = _("FUUSEN1");
+static const u8 SEName_FUUSEN2[] = _("FUUSEN2");
+static const u8 SEName_FUUSEN3[] = _("FUUSEN3");
+static const u8 SEName_TOY_KABE[] = _("TOY-KABE");
+static const u8 SEName_TOY_DANGO[] = _("TOY-DANGO");
+static const u8 SEName_DOKU[] = _("DOKU");
+static const u8 SEName_ESUKA[] = _("ESUKA");
+static const u8 SEName_T_AME[] = _("T-AME");
+static const u8 SEName_T_AME_E[] = _("T-AME-E");
+static const u8 SEName_T_OOAME[] = _("T-OOAME");
+static const u8 SEName_T_OOAME_E[] = _("T-OOAME-E");
+static const u8 SEName_T_KOAME[] = _("T-KOAME");
+static const u8 SEName_T_KOAME_E[] = _("T-KOAME-E");
+static const u8 SEName_T_KAMI[] = _("T-KAMI");
+static const u8 SEName_T_KAMI2[] = _("T-KAMI2");
+static const u8 SEName_ELEBETA[] = _("ELEBETA");
+static const u8 SEName_HINSI[] = _("HINSI");
+static const u8 SEName_EXPMAX[] = _("EXPMAX");
+static const u8 SEName_TAMAKORO[] = _("TAMAKORO");
+static const u8 SEName_TAMAKORO_E[] = _("TAMAKORO-E");
+static const u8 SEName_BASABASA[] = _("BASABASA");
+static const u8 SEName_REGI[] = _("REGI");
+static const u8 SEName_C_GAJI[] = _("C-GAJI");
+static const u8 SEName_C_MAKU_U[] = _("C-MAKU-U");
+static const u8 SEName_C_MAKU_D[] = _("C-MAKU-D");
+static const u8 SEName_C_PASI[] = _("C-PASI");
+static const u8 SEName_C_SYU[] = _("C-SYU");
+static const u8 SEName_C_PIKON[] = _("C-PIKON");
+static const u8 SEName_REAPOKE[] = _("REAPOKE");
+static const u8 SEName_OP_BASYU[] = _("OP-BASYU");
+static const u8 SEName_BT_START[] = _("BT-START");
+static const u8 SEName_DENDOU[] = _("DENDOU");
+static const u8 SEName_JIHANKI[] = _("JIHANKI");
+static const u8 SEName_TAMA[] = _("TAMA");
+static const u8 SEName_Z_SCROLL[] = _("Z-SCROLL");
+static const u8 SEName_Z_PAGE[] = _("Z-PAGE");
+static const u8 SEName_PN_ON[] = _("PN-ON");
+static const u8 SEName_PN_OFF[] = _("PN-OFF");
+static const u8 SEName_Z_SEARCH[] = _("Z-SEARCH");
+static const u8 SEName_TAMAGO[] = _("TAMAGO");
+static const u8 SEName_TB_START[] = _("TB-START");
+static const u8 SEName_TB_KON[] = _("TB-KON");
+static const u8 SEName_TB_KARA[] = _("TB-KARA");
+static const u8 SEName_BIDORO[] = _("BIDORO");
+static const u8 SEName_W085[] = _("W085");
+static const u8 SEName_W085B[] = _("W085B");
+static const u8 SEName_W231[] = _("W231");
+static const u8 SEName_W171[] = _("W171");
+static const u8 SEName_W233[] = _("W233");
+static const u8 SEName_W233B[] = _("W233B");
+static const u8 SEName_W145[] = _("W145");
+static const u8 SEName_W145B[] = _("W145B");
+static const u8 SEName_W145C[] = _("W145C");
+static const u8 SEName_W240[] = _("W240");
+static const u8 SEName_W015[] = _("W015");
+static const u8 SEName_W081[] = _("W081");
+static const u8 SEName_W081B[] = _("W081B");
+static const u8 SEName_W088[] = _("W088");
+static const u8 SEName_W016[] = _("W016");
+static const u8 SEName_W016B[] = _("W016B");
+static const u8 SEName_W003[] = _("W003");
+static const u8 SEName_W104[] = _("W104");
+static const u8 SEName_W013[] = _("W013");
+static const u8 SEName_W196[] = _("W196");
+static const u8 SEName_W086[] = _("W086");
+static const u8 SEName_W004[] = _("W004");
+static const u8 SEName_W025[] = _("W025");
+static const u8 SEName_W025B[] = _("W025B");
+static const u8 SEName_W152[] = _("W152");
+static const u8 SEName_W026[] = _("W026");
+static const u8 SEName_W172[] = _("W172");
+static const u8 SEName_W172B[] = _("W172B");
+static const u8 SEName_W053[] = _("W053");
+static const u8 SEName_W007[] = _("W007");
+static const u8 SEName_W092[] = _("W092");
+static const u8 SEName_W221[] = _("W221");
+static const u8 SEName_W221B[] = _("W221B");
+static const u8 SEName_W052[] = _("W052");
+static const u8 SEName_W036[] = _("W036");
+static const u8 SEName_W059[] = _("W059");
+static const u8 SEName_W059B[] = _("W059B");
+static const u8 SEName_W010[] = _("W010");
+static const u8 SEName_W011[] = _("W011");
+static const u8 SEName_W017[] = _("W017");
+static const u8 SEName_W019[] = _("W019");
+static const u8 SEName_W028[] = _("W028");
+static const u8 SEName_W013B[] = _("W013B");
+static const u8 SEName_W044[] = _("W044");
+static const u8 SEName_W029[] = _("W029");
+static const u8 SEName_W057[] = _("W057");
+static const u8 SEName_W056[] = _("W056");
+static const u8 SEName_W250[] = _("W250");
+static const u8 SEName_W030[] = _("W030");
+static const u8 SEName_W039[] = _("W039");
+static const u8 SEName_W054[] = _("W054");
+static const u8 SEName_W077[] = _("W077");
+static const u8 SEName_W020[] = _("W020");
+static const u8 SEName_W082[] = _("W082");
+static const u8 SEName_W047[] = _("W047");
+static const u8 SEName_W195[] = _("W195");
+static const u8 SEName_W006[] = _("W006");
+static const u8 SEName_W091[] = _("W091");
+static const u8 SEName_W146[] = _("W146");
+static const u8 SEName_W120[] = _("W120");
+static const u8 SEName_W153[] = _("W153");
+static const u8 SEName_W071B[] = _("W071B");
+static const u8 SEName_W071[] = _("W071");
+static const u8 SEName_W103[] = _("W103");
+static const u8 SEName_W062[] = _("W062");
+static const u8 SEName_W062B[] = _("W062B");
+static const u8 SEName_W048[] = _("W048");
+static const u8 SEName_W187[] = _("W187");
+static const u8 SEName_W118[] = _("W118");
+static const u8 SEName_W155[] = _("W155");
+static const u8 SEName_W122[] = _("W122");
+static const u8 SEName_W060[] = _("W060");
+static const u8 SEName_W185[] = _("W185");
+static const u8 SEName_W014[] = _("W014");
+static const u8 SEName_W043[] = _("W043");
+static const u8 SEName_W207[] = _("W207");
+static const u8 SEName_W207B[] = _("W207B");
+static const u8 SEName_W215[] = _("W215");
+static const u8 SEName_W109[] = _("W109");
+static const u8 SEName_W173[] = _("W173");
+static const u8 SEName_W280[] = _("W280");
+static const u8 SEName_W202[] = _("W202");
+static const u8 SEName_W060B[] = _("W060B");
+static const u8 SEName_W076[] = _("W076");
+static const u8 SEName_W080[] = _("W080");
+static const u8 SEName_W100[] = _("W100");
+static const u8 SEName_W107[] = _("W107");
+static const u8 SEName_W166[] = _("W166");
+static const u8 SEName_W129[] = _("W129");
+static const u8 SEName_W115[] = _("W115");
+static const u8 SEName_W112[] = _("W112");
+static const u8 SEName_W197[] = _("W197");
+static const u8 SEName_W199[] = _("W199");
+static const u8 SEName_W236[] = _("W236");
+static const u8 SEName_W204[] = _("W204");
+static const u8 SEName_W268[] = _("W268");
+static const u8 SEName_W070[] = _("W070");
+static const u8 SEName_W063[] = _("W063");
+static const u8 SEName_W127[] = _("W127");
+static const u8 SEName_W179[] = _("W179");
+static const u8 SEName_W151[] = _("W151");
+static const u8 SEName_W201[] = _("W201");
+static const u8 SEName_W161[] = _("W161");
+static const u8 SEName_W161B[] = _("W161B");
+static const u8 SEName_W227[] = _("W227");
+static const u8 SEName_W227B[] = _("W227B");
+static const u8 SEName_W226[] = _("W226");
+static const u8 SEName_W208[] = _("W208");
+static const u8 SEName_W213[] = _("W213");
+static const u8 SEName_W213B[] = _("W213B");
+static const u8 SEName_W234[] = _("W234");
+static const u8 SEName_W260[] = _("W260");
+static const u8 SEName_W328[] = _("W328");
+static const u8 SEName_W320[] = _("W320");
+static const u8 SEName_W255[] = _("W255");
+static const u8 SEName_W291[] = _("W291");
+static const u8 SEName_W089[] = _("W089");
+static const u8 SEName_W239[] = _("W239");
+static const u8 SEName_W230[] = _("W230");
+static const u8 SEName_W281[] = _("W281");
+static const u8 SEName_W327[] = _("W327");
+static const u8 SEName_W287[] = _("W287");
+static const u8 SEName_W257[] = _("W257");
+static const u8 SEName_W253[] = _("W253");
+static const u8 SEName_W258[] = _("W258");
+static const u8 SEName_W322[] = _("W322");
+static const u8 SEName_W298[] = _("W298");
+static const u8 SEName_W287B[] = _("W287B");
+static const u8 SEName_W114[] = _("W114");
+static const u8 SEName_W063B[] = _("W063B");
+
+static const u8 *const gSENames[] =
+{
+ SEName_STOP,
+ SEName_KAIFUKU,
+ SEName_PC_LOGON,
+ SEName_PC_OFF,
+ SEName_PC_ON,
+ SEName_SELECT,
+ SEName_WIN_OPEN,
+ SEName_WALL_HIT,
+ SEName_DOOR,
+ SEName_KAIDAN,
+ SEName_DANSA,
+ SEName_JITENSYA,
+ SEName_KOUKA_L,
+ SEName_KOUKA_M,
+ SEName_KOUKA_H,
+ SEName_BOWA2,
+ SEName_POKE_DEAD,
+ SEName_NIGERU,
+ SEName_JIDO_DOA,
+ SEName_NAMINORI,
+ SEName_BAN,
+ SEName_PIN,
+ SEName_BOO,
+ SEName_BOWA,
+ SEName_JYUNI,
+ SEName_A,
+ SEName_I,
+ SEName_U,
+ SEName_E,
+ SEName_O,
+ SEName_N,
+ SEName_SEIKAI,
+ SEName_HAZURE,
+ SEName_EXP,
+ SEName_JITE_PYOKO,
+ SEName_MU_PACHI,
+ SEName_TK_KASYA,
+ SEName_FU_ZAKU,
+ SEName_FU_ZAKU2,
+ SEName_FU_ZUZUZU,
+ SEName_RU_GASHIN,
+ SEName_RU_GASYAN,
+ SEName_RU_BARI,
+ SEName_RU_HYUU,
+ SEName_KI_GASYAN,
+ SEName_TK_WARPIN,
+ SEName_TK_WARPOUT,
+ SEName_TU_SAA,
+ SEName_HI_TURUN,
+ SEName_TRACK_MOVE,
+ SEName_TRACK_STOP,
+ SEName_TRACK_HAIK,
+ SEName_TRACK_DOOR,
+ SEName_MOTER,
+ SEName_CARD,
+ SEName_SAVE,
+ SEName_KON,
+ SEName_KON2,
+ SEName_KON3,
+ SEName_KON4,
+ SEName_SUIKOMU,
+ SEName_NAGERU,
+ SEName_TOY_C,
+ SEName_TOY_D,
+ SEName_TOY_E,
+ SEName_TOY_F,
+ SEName_TOY_G,
+ SEName_TOY_A,
+ SEName_TOY_B,
+ SEName_TOY_C1,
+ SEName_MIZU,
+ SEName_HASHI,
+ SEName_DAUGI,
+ SEName_PINPON,
+ SEName_FUUSEN1,
+ SEName_FUUSEN2,
+ SEName_FUUSEN3,
+ SEName_TOY_KABE,
+ SEName_TOY_DANGO,
+ SEName_DOKU,
+ SEName_ESUKA,
+ SEName_T_AME,
+ SEName_T_AME_E,
+ SEName_T_OOAME,
+ SEName_T_OOAME_E,
+ SEName_T_KOAME,
+ SEName_T_KOAME_E,
+ SEName_T_KAMI,
+ SEName_T_KAMI2,
+ SEName_ELEBETA,
+ SEName_HINSI,
+ SEName_EXPMAX,
+ SEName_TAMAKORO,
+ SEName_TAMAKORO_E,
+ SEName_BASABASA,
+ SEName_REGI,
+ SEName_C_GAJI,
+ SEName_C_MAKU_U,
+ SEName_C_MAKU_D,
+ SEName_C_PASI,
+ SEName_C_SYU,
+ SEName_C_PIKON,
+ SEName_REAPOKE,
+ SEName_OP_BASYU,
+ SEName_BT_START,
+ SEName_DENDOU,
+ SEName_JIHANKI,
+ SEName_TAMA,
+ SEName_Z_SCROLL,
+ SEName_Z_PAGE,
+ SEName_PN_ON,
+ SEName_PN_OFF,
+ SEName_Z_SEARCH,
+ SEName_TAMAGO,
+ SEName_TB_START,
+ SEName_TB_KON,
+ SEName_TB_KARA,
+ SEName_BIDORO,
+ SEName_W085,
+ SEName_W085B,
+ SEName_W231,
+ SEName_W171,
+ SEName_W233,
+ SEName_W233B,
+ SEName_W145,
+ SEName_W145B,
+ SEName_W145C,
+ SEName_W240,
+ SEName_W015,
+ SEName_W081,
+ SEName_W081B,
+ SEName_W088,
+ SEName_W016,
+ SEName_W016B,
+ SEName_W003,
+ SEName_W104,
+ SEName_W013,
+ SEName_W196,
+ SEName_W086,
+ SEName_W004,
+ SEName_W025,
+ SEName_W025B,
+ SEName_W152,
+ SEName_W026,
+ SEName_W172,
+ SEName_W172B,
+ SEName_W053,
+ SEName_W007,
+ SEName_W092,
+ SEName_W221,
+ SEName_W221B,
+ SEName_W052,
+ SEName_W036,
+ SEName_W059,
+ SEName_W059B,
+ SEName_W010,
+ SEName_W011,
+ SEName_W017,
+ SEName_W019,
+ SEName_W028,
+ SEName_W013B,
+ SEName_W044,
+ SEName_W029,
+ SEName_W057,
+ SEName_W056,
+ SEName_W250,
+ SEName_W030,
+ SEName_W039,
+ SEName_W054,
+ SEName_W077,
+ SEName_W020,
+ SEName_W082,
+ SEName_W047,
+ SEName_W195,
+ SEName_W006,
+ SEName_W091,
+ SEName_W146,
+ SEName_W120,
+ SEName_W153,
+ SEName_W071B,
+ SEName_W071,
+ SEName_W103,
+ SEName_W062,
+ SEName_W062B,
+ SEName_W048,
+ SEName_W187,
+ SEName_W118,
+ SEName_W155,
+ SEName_W122,
+ SEName_W060,
+ SEName_W185,
+ SEName_W014,
+ SEName_W043,
+ SEName_W207,
+ SEName_W207B,
+ SEName_W215,
+ SEName_W109,
+ SEName_W173,
+ SEName_W280,
+ SEName_W202,
+ SEName_W060B,
+ SEName_W076,
+ SEName_W080,
+ SEName_W100,
+ SEName_W107,
+ SEName_W166,
+ SEName_W129,
+ SEName_W115,
+ SEName_W112,
+ SEName_W197,
+ SEName_W199,
+ SEName_W236,
+ SEName_W204,
+ SEName_W268,
+ SEName_W070,
+ SEName_W063,
+ SEName_W127,
+ SEName_W179,
+ SEName_W151,
+ SEName_W201,
+ SEName_W161,
+ SEName_W161B,
+ SEName_W227,
+ SEName_W227B,
+ SEName_W226,
+ SEName_W208,
+ SEName_W213,
+ SEName_W213B,
+ SEName_W234,
+ SEName_W260,
+ SEName_W328,
+ SEName_W320,
+ SEName_W255,
+ SEName_W291,
+ SEName_W089,
+ SEName_W239,
+ SEName_W230,
+ SEName_W281,
+ SEName_W327,
+ SEName_W287,
+ SEName_W257,
+ SEName_W253,
+ SEName_W258,
+ SEName_W322,
+ SEName_W298,
+ SEName_W287B,
+ SEName_W114,
+ SEName_W063B
+};
+
+void sub_80BA0A8(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void sub_80BA0C0(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+
+ if(gUnknown_020387B0 != 0)
+ {
+ m4aSoundMain();
+ m4aSoundMain();
+ m4aSoundMain();
+ }
+}
+
+// unused
+void CB2_StartSoundCheckMenu(void)
+{
+ u8 taskId;
+
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0;
+ REG_BG2CNT = 0;
+ REG_BG1CNT = 0;
+ REG_BG0CNT = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ DmaFill16(3, 0, VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, OAM, OAM_SIZE);
+ DmaFill16(3, 0, PLTT, PLTT_SIZE);
+ ResetPaletteFade();
+ ResetTasks();
+ ResetSpriteData();
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ REG_WIN0H = WIN_RANGE(0, 0);
+ REG_WIN0V = WIN_RANGE(0, 0);
+ REG_WIN1H = WIN_RANGE(0, 0);
+ REG_WIN1V = WIN_RANGE(0, 0);
+ REG_WININ = 0x1111;
+ REG_WINOUT = 0x31;
+ REG_BLDCNT = 0xE1;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 7;
+ REG_IE = 1; // could be a typo of REG_IME
+ REG_IE |= 1;
+ REG_DISPSTAT |= 8;
+ SetVBlankCallback(sub_80BA0C0);
+ SetMainCallback2(sub_80BA0A8);
+ REG_DISPCNT = 0x7140;
+ taskId = CreateTask(sub_80BA258, 0);
+ TASK.WINDOW_SELECTED = BGM_WINDOW;
+ TASK.BGM_INDEX = 0;
+ TASK.SE_INDEX = 0;
+ TASK.UNK_DATA3 = 0;
+ gUnknown_020387B0 = 0;
+ TASK.UNK_DATA3 = 0; // why?
+ m4aSoundInit();
+}
+
+// Task_InitSoundCheckMenu
+void sub_80BA258(u8 taskId)
+{
+ u8 soundcheckStr[sizeof(gDebugText_SoundCheckJap)];
+ u8 bgmStr[sizeof(gDebugText_BGM)];
+ u8 seStr[sizeof(gDebugText_SE)];
+ u8 abDescStr[sizeof(gDebugText_ABDesc)];
+ u8 upDownStr[sizeof(gDebugText_UpDown)];
+ u8 driverStr[sizeof(gDebugText_DriverTest)];
+
+ memcpy(soundcheckStr, gDebugText_SoundCheckJap, sizeof(gDebugText_SoundCheckJap));
+ memcpy(bgmStr, gDebugText_BGM, sizeof(gDebugText_BGM));
+ memcpy(seStr, gDebugText_SE, sizeof(gDebugText_SE));
+ memcpy(abDescStr, gDebugText_ABDesc, sizeof(gDebugText_ABDesc));
+ memcpy(upDownStr, gDebugText_UpDown, sizeof(gDebugText_UpDown));
+ memcpy(driverStr, gDebugText_DriverTest, sizeof(gDebugText_DriverTest));
+
+ if(!gPaletteFade.active)
+ {
+ MenuDrawTextWindow(0x2, 0, 0x1B, 0x3);
+ MenuDrawTextWindow(0x2, 0x5, 0x1B, 0xA);
+ MenuDrawTextWindow(0x2, 0xC, 0x1B, 0x11);
+ MenuPrint(soundcheckStr, 4, 1);
+ MenuPrint(abDescStr, 14, 1);
+ MenuPrint(bgmStr, 4, 6);
+ MenuPrint(upDownStr, 14, 6);
+ MenuPrint(seStr, 4, 13);
+ MenuPrint(upDownStr, 14, 13);
+ MenuPrint(driverStr, 14, 18);
+ TASK.FUNC = sub_80BA384;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ }
+}
+
+void sub_80BA384(u8 taskId) // Task_HandleDrawingSoundCheckMenuText
+{
+ sub_80BA6B8(TASK.WINDOW_SELECTED);
+ sub_80BA700(TASK.BGM_INDEX + BGM_STOP, 7, 8); // print by BGM index
+ sub_80BA79C(gBGMNames[TASK.BGM_INDEX], 11, 8);
+ sub_80BA700(TASK.SE_INDEX, 7, 15);
+ sub_80BA79C(gSENames[TASK.SE_INDEX], 11, 15);
+ TASK.FUNC = sub_80BA65C;
+}
+
+#ifdef NONMATCHING
+bool8 sub_80BA400(u8 taskId) // Task_ProcessSoundCheckMenuInput
+{
+ if(gMain.newKeys & R_BUTTON) // driver test
+ {
+ TASK.FUNC = sub_80BA800;
+ return FALSE;
+ }
+ if(gMain.newKeys & L_BUTTON)
+ {
+ TASK.FUNC = sub_80BAF84;
+ return FALSE;
+ }
+ if(gMain.newKeys & START_BUTTON)
+ {
+ TASK.FUNC = sub_80BB25C;
+ return FALSE;
+ }
+ if(gMain.newKeys & A_BUTTON) // both these cases insist on non reuses of certain data variables and cause the function to not match.
+ {
+ if(TASK.WINDOW_SELECTED != 0) // is playing?
+ {
+ if(TASK.UNK_DATA4 != 0)
+ {
+ if(TASK.SE_INDEX != 0) // why are you insiting on a non signed halfword?
+ {
+ m4aSongNumStop(TASK.UNK_DATA4);
+ }
+ else
+ {
+ m4aSongNumStop(TASK.SE_INDEX);
+ TASK.UNK_DATA4 = TASK.SE_INDEX;
+ return FALSE;
+ }
+ }
+ else if(TASK.SE_INDEX == 0) // _080BA4BA
+ {
+ return FALSE;
+ }
+ // _080BA4C4
+ m4aSongNumStart(TASK.SE_INDEX);
+ TASK.UNK_DATA4 = TASK.SE_INDEX;
+ return FALSE;
+ }
+ else // _080BA4D0
+ {
+ if(TASK.UNK_DATA3 != 0)
+ {
+ if(TASK.BGM_INDEX != 0)
+ {
+ m4aSongNumStop(TASK.UNK_DATA3 + BGM_STOP);
+ }
+ else // _080BA500
+ {
+ m4aSongNumStop(TASK.UNK_DATA3 + BGM_STOP);
+ TASK.UNK_DATA3 = TASK.BGM_INDEX;
+ return FALSE;
+ }
+ }
+ else if(TASK.BGM_INDEX == 0) // _080BA514
+ return FALSE;
+
+ m4aSongNumStart(TASK.BGM_INDEX + BGM_STOP);
+ TASK.UNK_DATA3 = TASK.BGM_INDEX;
+ }
+ return FALSE;
+ }
+ if(gMain.newKeys & B_BUTTON)
+ {
+ m4aSongNumStart(5);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ TASK.FUNC = sub_80BA68C;
+ return FALSE;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ TASK.data[8] ^= A_BUTTON; // huh?
+ return TRUE;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ TASK.data[8] ^= A_BUTTON; // huh?
+ return TRUE;
+ }
+ else
+ {
+ u16 keys = gMain.newAndRepeatedKeys & DPAD_RIGHT;
+ if(keys)
+ {
+ if(TASK.WINDOW_SELECTED != 0)
+ {
+ if(TASK.SE_INDEX > 0)
+ {
+ TASK.SE_INDEX--;
+ }
+ else
+ {
+ TASK.SE_INDEX = 0xF7;
+ }
+ }
+ else if(TASK.BGM_INDEX > 0)
+ {
+ TASK.BGM_INDEX--;
+ }
+ else
+ {
+ TASK.BGM_INDEX = 0x75;
+ }
+ return TRUE;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ if(TASK.WINDOW_SELECTED != 0)
+ {
+ if(TASK.SE_INDEX < 0xF7)
+ {
+ TASK.SE_INDEX++;
+ }
+ else
+ {
+ TASK.SE_INDEX = keys; // ??
+ }
+ }
+ else if(TASK.BGM_INDEX < 0x75)
+ {
+ TASK.BGM_INDEX++;
+ return TRUE;
+ }
+ else
+ {
+ TASK.BGM_INDEX = TASK.SE_INDEX;
+ return TRUE;
+ }
+ return TRUE;
+ }
+ if(gMain.heldKeys & SELECT_BUTTON)
+ {
+ gUnknown_020387B0 = A_BUTTON;
+ return FALSE;
+ }
+ else
+ {
+ gUnknown_020387B0 = (gMain.heldKeys & SELECT_BUTTON);
+ return FALSE;
+ }
+ }
+}
+#else
+__attribute__((naked))
+bool8 sub_80BA400(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ sub sp, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ ldr r2, _080BA428 @ =gMain\n\
+ ldrh r1, [r2, 0x2E]\n\
+ movs r0, 0x80\n\
+ lsls r0, 1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA434\n\
+ ldr r0, _080BA42C @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldr r0, _080BA430 @ =sub_80BA800\n\
+ str r0, [r1]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA428: .4byte gMain\n\
+_080BA42C: .4byte gTasks\n\
+_080BA430: .4byte sub_80BA800\n\
+_080BA434:\n\
+ movs r0, 0x80\n\
+ lsls r0, 2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA458\n\
+ ldr r0, _080BA450 @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldr r0, _080BA454 @ =sub_80BAF84\n\
+ str r0, [r1]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA450: .4byte gTasks\n\
+_080BA454: .4byte sub_80BAF84\n\
+_080BA458:\n\
+ movs r0, 0x8\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA478\n\
+ ldr r0, _080BA470 @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldr r0, _080BA474 @ =sub_80BB25C\n\
+ str r0, [r1]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA470: .4byte gTasks\n\
+_080BA474: .4byte sub_80BB25C\n\
+_080BA478:\n\
+ movs r6, 0x1\n\
+ movs r5, 0x1\n\
+ ands r5, r1\n\
+ cmp r5, 0\n\
+ beq _080BA538\n\
+ ldr r0, _080BA4AC @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r5, r1, r0\n\
+ movs r1, 0x8\n\
+ ldrsh r0, [r5, r1]\n\
+ cmp r0, 0\n\
+ beq _080BA4D0\n\
+ movs r2, 0x10\n\
+ ldrsh r0, [r5, r2]\n\
+ cmp r0, 0\n\
+ beq _080BA4BA\n\
+ movs r3, 0xC\n\
+ ldrsh r4, [r5, r3]\n\
+ cmp r4, 0\n\
+ beq _080BA4B0\n\
+ ldrh r0, [r5, 0x10]\n\
+ bl m4aSongNumStop\n\
+ b _080BA4C4\n\
+ .align 2, 0\n\
+_080BA4AC: .4byte gTasks\n\
+_080BA4B0:\n\
+ ldrh r0, [r5, 0x10]\n\
+ bl m4aSongNumStop\n\
+ strh r4, [r5, 0x10]\n\
+ b _080BA64C\n\
+_080BA4BA:\n\
+ movs r4, 0xC\n\
+ ldrsh r0, [r5, r4]\n\
+ cmp r0, 0\n\
+ bne _080BA4C4\n\
+ b _080BA64C\n\
+_080BA4C4:\n\
+ ldrh r0, [r5, 0xC]\n\
+ bl m4aSongNumStart\n\
+ ldrh r0, [r5, 0xC]\n\
+ strh r0, [r5, 0x10]\n\
+ b _080BA64C\n\
+_080BA4D0:\n\
+ ldrh r1, [r5, 0xE]\n\
+ movs r2, 0xE\n\
+ ldrsh r0, [r5, r2]\n\
+ cmp r0, 0\n\
+ beq _080BA514\n\
+ movs r3, 0xA\n\
+ ldrsh r4, [r5, r3]\n\
+ cmp r4, 0\n\
+ beq _080BA500\n\
+ ldr r0, _080BA4FC @ =0x0000015d\n\
+ adds r4, r0, 0\n\
+ adds r0, r1, r4\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ bl m4aSongNumStop\n\
+ ldrh r1, [r5, 0xA]\n\
+ adds r4, r1\n\
+ lsls r4, 16\n\
+ lsrs r4, 16\n\
+ adds r0, r4, 0\n\
+ b _080BA528\n\
+ .align 2, 0\n\
+_080BA4FC: .4byte 0x0000015d\n\
+_080BA500:\n\
+ ldr r2, _080BA510 @ =0x0000015d\n\
+ adds r0, r1, r2\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ bl m4aSongNumStop\n\
+ strh r4, [r5, 0xE]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA510: .4byte 0x0000015d\n\
+_080BA514:\n\
+ ldrh r1, [r5, 0xA]\n\
+ movs r3, 0xA\n\
+ ldrsh r0, [r5, r3]\n\
+ cmp r0, 0\n\
+ bne _080BA520\n\
+ b _080BA64C\n\
+_080BA520:\n\
+ ldr r4, _080BA534 @ =0x0000015d\n\
+ adds r0, r1, r4\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+_080BA528:\n\
+ bl m4aSongNumStart\n\
+ ldrh r0, [r5, 0xA]\n\
+ strh r0, [r5, 0xE]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA534: .4byte 0x0000015d\n\
+_080BA538:\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA570\n\
+ movs r0, 0x5\n\
+ bl m4aSongNumStart\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ str r5, [sp]\n\
+ movs r1, 0\n\
+ movs r2, 0\n\
+ movs r3, 0x10\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r1, _080BA568 @ =gTasks\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldr r1, _080BA56C @ =sub_80BA68C\n\
+ str r1, [r0]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA568: .4byte gTasks\n\
+_080BA56C: .4byte sub_80BA68C\n\
+_080BA570:\n\
+ ldrh r1, [r2, 0x30]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080BA582\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA59C\n\
+_080BA582:\n\
+ ldr r0, _080BA598 @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldrh r0, [r1, 0x8]\n\
+ eors r0, r6\n\
+ strh r0, [r1, 0x8]\n\
+_080BA592:\n\
+ movs r0, 0x1\n\
+ b _080BA64E\n\
+ .align 2, 0\n\
+_080BA598: .4byte gTasks\n\
+_080BA59C:\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ cmp r3, 0\n\
+ beq _080BA5EA\n\
+ ldr r0, _080BA5CC @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r2, 0x8\n\
+ ldrsh r0, [r1, r2]\n\
+ cmp r0, 0\n\
+ beq _080BA5D6\n\
+ ldrh r2, [r1, 0xC]\n\
+ movs r3, 0xC\n\
+ ldrsh r0, [r1, r3]\n\
+ cmp r0, 0\n\
+ ble _080BA5D0\n\
+ subs r0, r2, 0x1\n\
+ strh r0, [r1, 0xC]\n\
+ b _080BA592\n\
+ .align 2, 0\n\
+_080BA5CC: .4byte gTasks\n\
+_080BA5D0:\n\
+ movs r0, 0xF7\n\
+ strh r0, [r1, 0xC]\n\
+ b _080BA592\n\
+_080BA5D6:\n\
+ ldrh r2, [r1, 0xA]\n\
+ movs r4, 0xA\n\
+ ldrsh r0, [r1, r4]\n\
+ cmp r0, 0\n\
+ ble _080BA5E4\n\
+ subs r0, r2, 0x1\n\
+ b _080BA5E6\n\
+_080BA5E4:\n\
+ movs r0, 0x75\n\
+_080BA5E6:\n\
+ strh r0, [r1, 0xA]\n\
+ b _080BA592\n\
+_080BA5EA:\n\
+ movs r0, 0x20\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA630\n\
+ ldr r1, _080BA614 @ =gTasks\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ adds r1, r0, r1\n\
+ movs r0, 0x8\n\
+ ldrsh r2, [r1, r0]\n\
+ cmp r2, 0\n\
+ beq _080BA61C\n\
+ ldrh r2, [r1, 0xC]\n\
+ movs r4, 0xC\n\
+ ldrsh r0, [r1, r4]\n\
+ cmp r0, 0xF6\n\
+ bgt _080BA618\n\
+ adds r0, r2, 0x1\n\
+ strh r0, [r1, 0xC]\n\
+ b _080BA592\n\
+ .align 2, 0\n\
+_080BA614: .4byte gTasks\n\
+_080BA618:\n\
+ strh r3, [r1, 0xC]\n\
+ b _080BA592\n\
+_080BA61C:\n\
+ ldrh r3, [r1, 0xA]\n\
+ movs r4, 0xA\n\
+ ldrsh r0, [r1, r4]\n\
+ cmp r0, 0x74\n\
+ bgt _080BA62C\n\
+ adds r0, r3, 0x1\n\
+ strh r0, [r1, 0xA]\n\
+ b _080BA592\n\
+_080BA62C:\n\
+ strh r2, [r1, 0xA]\n\
+ b _080BA592\n\
+_080BA630:\n\
+ ldrh r1, [r2, 0x2C]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ cmp r1, 0\n\
+ beq _080BA648\n\
+ ldr r0, _080BA644 @ =gUnknown_020387B0\n\
+ strb r6, [r0]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA644: .4byte gUnknown_020387B0\n\
+_080BA648:\n\
+ ldr r0, _080BA658 @ =gUnknown_020387B0\n\
+ strb r1, [r0]\n\
+_080BA64C:\n\
+ movs r0, 0\n\
+_080BA64E:\n\
+ add sp, 0x4\n\
+ pop {r4-r6}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_080BA658: .4byte gUnknown_020387B0\n\
+ .syntax divided");
+}
+#endif
+
+void sub_80BA65C(u8 taskId)
+{
+ if(sub_80BA400(taskId) != FALSE)
+ TASK.FUNC = sub_80BA384;
+}
+
+void sub_80BA68C(u8 taskId)
+{
+ if(!gPaletteFade.active)
+ {
+ DestroyTask(taskId);
+ SetMainCallback2(CB2_InitTitleScreen);
+ }
+}
+
+void sub_80BA6B8(u8 windowType)
+{
+ switch(windowType)
+ {
+ case BGM_WINDOW:
+ default:
+ REG_WIN1H = WIN_RANGE(17, 223);
+ REG_WIN1V = WIN_RANGE(41, 87);
+ break;
+ case SE_WINDOW:
+ REG_WIN1H = WIN_RANGE(17, 223);
+ REG_WIN1V = WIN_RANGE(97, 143);
+ break;
+ }
+}
+
+void sub_80BA700(u16 soundIndex, u16 x, u16 y) // PrintSoundNumber ?
+{
+ u8 i;
+ u8 str[5];
+ bool8 someBool;
+ u8 divisorValue;
+
+ for(i = 0; i < 3; i++)
+ str[i] = 0; // initialize array
+
+ str[3] = CHAR_ELLIPSIS;
+ str[4] = EOS;
+ someBool = FALSE;
+
+ divisorValue = soundIndex / 100;
+ if(divisorValue)
+ {
+ str[0] = divisorValue + CHAR_0;
+ someBool = TRUE;
+ }
+
+ divisorValue = (soundIndex % 100) / 10;
+ if(divisorValue || someBool != FALSE)
+ str[1] = divisorValue + CHAR_0;
+
+ str[2] = ((soundIndex % 100) % 10) + CHAR_0;
+ MenuPrint(str, x, y);
+}
+
+void sub_80BA79C(const u8 *const string, u16 x, u16 y)
+{
+ u8 i;
+ u8 str[11];
+
+ for(i = 0; i < 11; i++)
+ str[i] = 0; // format string.
+
+ str[10] = EOS; // the above for loop formats the last element of the array unnecessarily.
+
+ for(i = 0; string[i] != EOS && i < 10; i++)
+ str[i] = string[i];
+
+ MenuPrint(str, x, y);
+}
+
+void sub_80BA800(u8 taskId) // Task_DrawDriverTestMenu
+{
+ u8 bbackStr[sizeof(gDebugText_BBack)];
+ u8 aplayStr[sizeof(gDebugText_APlay)];
+ u8 voiceStr[sizeof(gDebugText_Voice)];
+ u8 volumeStr[sizeof(gDebugText_Volume)];
+ u8 panpotStr[sizeof(gDebugText_Panpot)];
+ u8 pitchStr[sizeof(gDebugText_Pitch)];
+ u8 lengthStr[sizeof(gDebugText_Length)];
+ u8 releaseStr[sizeof(gDebugText_Release)];
+ u8 progressStr[sizeof(gDebugText_Progress)];
+ u8 chorusStr[sizeof(gDebugText_Chorus)];
+ u8 priorityStr[sizeof(gDebugText_Priority)];
+ u8 playingStr[sizeof(gDebugText_Playing)];
+ u8 reverseStr[sizeof(gDebugText_Reverse)];
+ u8 stereoStr[sizeof(gDebugText_Stereo)];
+
+ memcpy(bbackStr, gDebugText_BBack, sizeof(gDebugText_BBack));
+ memcpy(aplayStr, gDebugText_APlay, sizeof(gDebugText_APlay));
+ memcpy(voiceStr, gDebugText_Voice, sizeof(gDebugText_Voice));
+ memcpy(volumeStr, gDebugText_Volume, sizeof(gDebugText_Volume));
+ memcpy(panpotStr, gDebugText_Panpot, sizeof(gDebugText_Panpot));
+ memcpy(pitchStr, gDebugText_Pitch, sizeof(gDebugText_Pitch));
+ memcpy(lengthStr, gDebugText_Length, sizeof(gDebugText_Length));
+ memcpy(releaseStr, gDebugText_Release, sizeof(gDebugText_Release));
+ memcpy(progressStr, gDebugText_Progress, sizeof(gDebugText_Progress));
+ memcpy(chorusStr, gDebugText_Chorus, sizeof(gDebugText_Chorus));
+ memcpy(priorityStr, gDebugText_Priority, sizeof(gDebugText_Priority));
+ memcpy(playingStr, gDebugText_Playing, sizeof(gDebugText_Playing));
+ memcpy(reverseStr, gDebugText_Reverse, sizeof(gDebugText_Reverse));
+ memcpy(stereoStr, gDebugText_Stereo, sizeof(gDebugText_Stereo));
+
+ REG_DISPCNT = 0x3140;
+ MenuDrawTextWindow(0, 0, 0x1D, 0x13);
+ MenuPrint(bbackStr, 0x13, 0x4);
+ MenuPrint(aplayStr, 0x13, 0x2);
+ MenuPrint(voiceStr, 0x2, 0x1);
+ MenuPrint(volumeStr, 0x2, 0x3);
+ MenuPrint(panpotStr, 0x2, 0x5);
+ MenuPrint(pitchStr, 0x2, 0x7);
+ MenuPrint(lengthStr, 0x2, 0x9);
+ MenuPrint(releaseStr, 0x2, 0xB);
+ MenuPrint(progressStr, 0x2, 0xD);
+ MenuPrint(chorusStr, 0x2, 0xF);
+ MenuPrint(priorityStr, 0x2, 0x11);
+ MenuPrint(playingStr, 0x13, 0x10);
+ MenuPrint(reverseStr, 0x13, 0xE);
+ MenuPrint(stereoStr, 0x13, 0xC);
+ REG_WIN0H = WIN_RANGE(0, 240);
+ REG_WIN0V = WIN_RANGE(0, 160);
+ gUnknown_020387B3 = 0;
+ gUnknown_020387B1 = 0;
+ gUnknown_020387B2 = 0;
+ gUnknown_03005D30 = NULL;
+ gUnknown_020387D8 = 0;
+ gUnknown_020387D9 = 1;
+ gUnknown_020387B4[CRY_TEST_UNK0] = 0;
+ gUnknown_020387B4[CRY_TEST_VOLUME] = 0x78;
+ gUnknown_020387B4[CRY_TEST_PANPOT] = 0;
+ gUnknown_020387B4[CRY_TEST_PITCH] = 0x3C00;
+ gUnknown_020387B4[CRY_TEST_LENGTH] = 0xB4;
+ gUnknown_020387B4[CRY_TEST_PROGRESS] = 0;
+ gUnknown_020387B4[CRY_TEST_RELEASE] = 0;
+ gUnknown_020387B4[CRY_TEST_CHORUS] = 0;
+ gUnknown_020387B4[CRY_TEST_PRIORITY] = 2;
+ sub_80BAD5C();
+ sub_80BAE10(0, 0);
+ TASK.FUNC = sub_80BAA48;
+}
+
+void sub_80BAA48(u8 taskId) // Task_ProcessDriverTestInput
+{
+ if(gMain.newKeys & B_BUTTON)
+ {
+ REG_DISPCNT = 0x7140;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ TASK.FUNC = sub_80BA258;
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_UP) // _080BAAA8
+ {
+ u8 backupVar = gUnknown_020387B3;
+ if(--gUnknown_020387B3 < 0)
+ gUnknown_020387B3 = 8;
+
+ sub_80BAE10(backupVar, gUnknown_020387B3);
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_DOWN) // _080BAAD0
+ {
+ u8 backupVar = gUnknown_020387B3;
+ if(++gUnknown_020387B3 > 8)
+ gUnknown_020387B3 = 0;
+
+ sub_80BAE10(backupVar, gUnknown_020387B3);
+ return;
+ }
+ if(gMain.newKeys & START_BUTTON) // _080BAAF8
+ {
+ gUnknown_020387D8 ^= 1;
+ sub_80BAD5C();
+ return;
+ }
+ if(gMain.newKeys & SELECT_BUTTON) // _080BAB14
+ {
+ gUnknown_020387D9 ^= 1;
+ sub_80BAD5C();
+ SetPokemonCryStereo(gUnknown_020387D9);
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & R_BUTTON) // _080BAB38
+ {
+ sub_80BACDC(10);
+ sub_80BAD5C();
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & L_BUTTON) // _080BAB46
+ {
+ sub_80BACDC(-10);
+ sub_80BAD5C();
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_LEFT) // _080BAB56
+ {
+ sub_80BACDC(-1);
+ sub_80BAD5C();
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_RIGHT) // _080BAB64
+ {
+ sub_80BACDC(1);
+ sub_80BAD5C();
+ return;
+ }
+ if(gMain.newKeys & A_BUTTON) // _080BAB78
+ {
+ u8 divide, remaining;
+
+ SetPokemonCryVolume(gUnknown_020387B4[CRY_TEST_VOLUME]);
+ SetPokemonCryPanpot(gUnknown_020387B4[CRY_TEST_PANPOT]);
+ SetPokemonCryPitch(gUnknown_020387B4[CRY_TEST_PITCH]);
+ SetPokemonCryLength(gUnknown_020387B4[CRY_TEST_LENGTH]);
+ SetPokemonCryProgress(gUnknown_020387B4[CRY_TEST_PROGRESS]);
+ SetPokemonCryRelease(gUnknown_020387B4[CRY_TEST_RELEASE]);
+ SetPokemonCryChorus(gUnknown_020387B4[CRY_TEST_CHORUS]);
+ SetPokemonCryPriority(gUnknown_020387B4[CRY_TEST_PRIORITY]);
+
+ remaining = gUnknown_020387B4[CRY_TEST_UNK0] % 128;
+ divide = gUnknown_020387B4[CRY_TEST_UNK0] / 128;
+
+ switch(divide)
+ {
+ case 0:
+ if(gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84537C0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8452590[remaining]);
+ break;
+ case 1:
+ if(gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453DC0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8452B90[remaining]);
+ break;
+ case 2:
+ if(gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84543C0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453190[remaining]);
+ break;
+ case 3:
+ if(gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84549C0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453790[remaining]);
+ break;
+ }
+ }
+
+ // _080BACA2
+ if(gUnknown_03005D30 != NULL)
+ {
+ gUnknown_020387B1 = IsPokemonCryPlaying(gUnknown_03005D30);
+
+ if(gUnknown_020387B1 != gUnknown_020387B2)
+ sub_80BAD5C();
+
+ gUnknown_020387B2 = gUnknown_020387B1;
+ }
+}
+
+void sub_80BACDC(s8 var)
+{
+ int minMaxArray[ARRAY_COUNT(gUnknown_083D039C)];
+
+ memcpy(minMaxArray, gUnknown_083D039C, sizeof(gUnknown_083D039C));
+ gUnknown_020387B4[gUnknown_020387B3] += var;
+
+ if(gUnknown_020387B4[gUnknown_020387B3] > minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MAX)])
+ gUnknown_020387B4[gUnknown_020387B3] = minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MIN)];
+
+ if(gUnknown_020387B4[gUnknown_020387B3] < minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MIN)])
+ gUnknown_020387B4[gUnknown_020387B3] = minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MAX)];
+}
+
+void sub_80BAD5C(void)
+{
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_UNK0] + 1, 0xB, 0x1, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_VOLUME], 0xB, 0x3, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_PANPOT], 0xB, 0x5, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_PITCH], 0xB, 0x7, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_LENGTH], 0xB, 0x9, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_RELEASE], 0xB, 0xB, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_PROGRESS], 0xB, 0xD, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_CHORUS], 0xB, 0xF, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_PRIORITY], 0xB, 0x11, 0x5);
+ sub_80BAE78(gUnknown_020387B1, 0x1B, 0x10, 0x1);
+ sub_80BAE78(gUnknown_020387D8, 0x1B, 0xE, 0x1);
+ sub_80BAE78(gUnknown_020387D9, 0x1B, 0xC, 0x1);
+}
+
+void sub_80BAE10(u8 var1, u8 var2)
+{
+ u8 str1[sizeof(gUnknown_083D03DC)];
+ u8 str2[sizeof(gUnknown_083D03DE)];
+
+ memcpy(str1, gUnknown_083D03DC, sizeof(gUnknown_083D03DC));
+ memcpy(str2, gUnknown_083D03DE, sizeof(gUnknown_083D03DE));
+
+ MenuPrint(str2, gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 1)]);
+ MenuPrint(str1, gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 1)]);
+}
+
+/*void sub_80BAE78(int var1, u16 var2, u16 var3, u8 var4)
+{
+ u32 powers[6];
+ u8 str[8];
+ u8 i;
+ u8 someVar, someVar2;
+
+ memcpy(powers, gUnknown_083D03E0, sizeof(powers);
+
+ for(i = 0; i < var4; i++)
+ str[i] = 0;
+
+ str[var4 + 1] = CHAR_0;
+ someVar = 0;
+
+ if(var1 < 0) // make absolute value? wtf
+ {
+ var1 = -var1; // just use abs?
+ someVar = 1;
+ }
+
+ // _080BAED6
+ someVar2 = 0;
+ if(var4 == 1)
+ someVar2 = 1;
+
+ // _080BAEE2
+ for(;;)
+ {
+
+ }
+}*/
+
+// no.
+__attribute__((naked))
+void sub_80BAE78(int var1, u16 var2, u16 var3, u8 var4)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x2C\n\
+ mov r8, r0\n\
+ lsls r1, 16\n\
+ lsrs r6, r1, 16\n\
+ lsls r2, 16\n\
+ lsrs r2, 16\n\
+ lsls r3, 24\n\
+ lsrs r7, r3, 24\n\
+ mov r1, sp\n\
+ ldr r0, _080BAF80 @ =gUnknown_083D03E0\n\
+ ldm r0!, {r3-r5}\n\
+ stm r1!, {r3-r5}\n\
+ ldm r0!, {r3-r5}\n\
+ stm r1!, {r3-r5}\n\
+ movs r5, 0\n\
+ add r0, sp, 0x18\n\
+ mov r9, r0\n\
+ cmp r5, r7\n\
+ bgt _080BAEC0\n\
+ mov r4, r9\n\
+ movs r3, 0\n\
+_080BAEAC:\n\
+ lsls r0, r5, 24\n\
+ asrs r0, 24\n\
+ adds r1, r4, r0\n\
+ strb r3, [r1]\n\
+ adds r0, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ asrs r0, 24\n\
+ cmp r0, r7\n\
+ ble _080BAEAC\n\
+_080BAEC0:\n\
+ adds r0, r7, 0x1\n\
+ add r0, r9\n\
+ movs r1, 0xFF\n\
+ strb r1, [r0]\n\
+ movs r1, 0\n\
+ mov r3, r8\n\
+ cmp r3, 0\n\
+ bge _080BAED6\n\
+ negs r3, r3\n\
+ mov r8, r3\n\
+ movs r1, 0x1\n\
+_080BAED6:\n\
+ movs r4, 0\n\
+ mov r10, r4\n\
+ cmp r7, 0x1\n\
+ bne _080BAEE2\n\
+ movs r5, 0x1\n\
+ mov r10, r5\n\
+_080BAEE2:\n\
+ subs r0, r7, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ lsls r0, r5, 24\n\
+ lsls r6, 24\n\
+ str r6, [sp, 0x24]\n\
+ lsls r2, 24\n\
+ str r2, [sp, 0x28]\n\
+ cmp r0, 0\n\
+ blt _080BAF62\n\
+ str r1, [sp, 0x20]\n\
+_080BAEF8:\n\
+ asrs r6, r0, 24\n\
+ lsls r0, r6, 2\n\
+ add r0, sp\n\
+ ldr r1, [r0]\n\
+ mov r0, r8\n\
+ bl __divsi3\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ cmp r0, 0\n\
+ bne _080BAF1A\n\
+ mov r0, r10\n\
+ cmp r0, 0\n\
+ bne _080BAF1A\n\
+ lsls r4, r5, 24\n\
+ cmp r6, 0\n\
+ bne _080BAF46\n\
+_080BAF1A:\n\
+ lsls r4, r5, 24\n\
+ ldr r3, [sp, 0x20]\n\
+ cmp r3, 0\n\
+ beq _080BAF34\n\
+ mov r5, r10\n\
+ cmp r5, 0\n\
+ bne _080BAF34\n\
+ asrs r0, r4, 24\n\
+ subs r0, r7, r0\n\
+ subs r0, 0x1\n\
+ add r0, r9\n\
+ movs r1, 0xAE\n\
+ strb r1, [r0]\n\
+_080BAF34:\n\
+ asrs r1, r4, 24\n\
+ subs r1, r7, r1\n\
+ add r1, r9\n\
+ lsls r0, r2, 24\n\
+ asrs r0, 24\n\
+ subs r0, 0x5F\n\
+ strb r0, [r1]\n\
+ movs r0, 0x1\n\
+ mov r10, r0\n\
+_080BAF46:\n\
+ asrs r4, 24\n\
+ lsls r0, r4, 2\n\
+ add r0, sp\n\
+ ldr r1, [r0]\n\
+ mov r0, r8\n\
+ bl __modsi3\n\
+ mov r8, r0\n\
+ subs r4, 0x1\n\
+ lsls r4, 24\n\
+ lsrs r5, r4, 24\n\
+ lsls r0, r5, 24\n\
+ cmp r0, 0\n\
+ bge _080BAEF8\n\
+_080BAF62:\n\
+ ldr r3, [sp, 0x24]\n\
+ lsrs r1, r3, 24\n\
+ ldr r4, [sp, 0x28]\n\
+ lsrs r2, r4, 24\n\
+ mov r0, r9\n\
+ bl MenuPrint\n\
+ add sp, 0x2C\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080BAF80: .4byte gUnknown_083D03E0\n\
+ .syntax divided");
+}
+
+void sub_80BAF84(u8 taskId)
+{
+ u8 seStr[sizeof(gOtherText_SE)];
+ u8 panStr[sizeof(gOtherText_Pan)];
+ u8 playingStr[sizeof(gDebugText_Playing)];
+
+ memcpy(seStr, gOtherText_SE, sizeof(gOtherText_SE));
+ memcpy(panStr, gOtherText_Pan, sizeof(gOtherText_Pan));
+ memcpy(playingStr, gDebugText_Playing, sizeof(gDebugText_Playing));
+
+ REG_DISPCNT = 0x3140;
+ MenuDrawTextWindow(0, 0, 0x1D, 0x13);
+ MenuPrint(seStr, 3, 2);
+ MenuPrint(panStr, 3, 4);
+ MenuPrint(playingStr, 3, 8);
+ REG_WIN0H = WIN_RANGE(0, 240);
+ REG_WIN0V = WIN_RANGE(0, 160);
+ gUnknown_020387B4[CRY_TEST_UNK0] = 1;
+ gUnknown_020387B4[CRY_TEST_PANPOT] = 0;
+ gUnknown_020387B4[CRY_TEST_CHORUS] = 0;
+ gUnknown_020387B4[CRY_TEST_PROGRESS] = 0;
+ gUnknown_020387B4[CRY_TEST_RELEASE] = 0;
+ sub_80BB1D4();
+ TASK.FUNC = sub_80BB038;
+}
+
+void sub_80BB038(u8 taskId)
+{
+ sub_80BB1D4();
+ if(gUnknown_020387B4[CRY_TEST_PROGRESS])
+ {
+ if(gUnknown_020387B4[CRY_TEST_RELEASE])
+ {
+ gUnknown_020387B4[CRY_TEST_RELEASE]--;
+ }
+ else // _080BB05C
+ {
+ s8 panpot = gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]];
+ if(panpot != -128)
+ {
+ if(panpot == 0x7F)
+ {
+ gUnknown_020387B4[CRY_TEST_CHORUS] += 2;
+ if(gUnknown_020387B4[CRY_TEST_CHORUS] < 0x3F)
+ SE12PanpotControl(gUnknown_020387B4[CRY_TEST_CHORUS]);
+ }
+ }
+ else // _080BB08C
+ {
+ gUnknown_020387B4[CRY_TEST_CHORUS] -= 2;
+ if(gUnknown_020387B4[CRY_TEST_CHORUS] > -0x40)
+ SE12PanpotControl(gUnknown_020387B4[CRY_TEST_CHORUS]);
+ }
+ }
+ }
+ // _080BB0A2
+ if(gMain.newKeys & B_BUTTON)
+ {
+ REG_DISPCNT = 0x7140;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ TASK.FUNC = sub_80BA258;
+ return;
+ }
+ if(gMain.newKeys & A_BUTTON) // _080BB104
+ {
+ s8 panpot = gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]];
+ if(panpot != -128)
+ {
+ if(panpot == 0x7F)
+ {
+ PlaySE12WithPanning(gUnknown_020387B4[CRY_TEST_UNK0], -0x40);
+ gUnknown_020387B4[CRY_TEST_CHORUS] = -0x40;
+ gUnknown_020387B4[CRY_TEST_PROGRESS] = 1;
+ gUnknown_020387B4[CRY_TEST_RELEASE] = 0x1E;
+ return;
+ }
+ }
+ else // _080BB140
+ {
+ PlaySE12WithPanning(gUnknown_020387B4[CRY_TEST_UNK0], 0x3F);
+ gUnknown_020387B4[CRY_TEST_CHORUS] = 0x3F;
+ gUnknown_020387B4[CRY_TEST_PROGRESS] = 1;
+ gUnknown_020387B4[CRY_TEST_RELEASE] = 0x1E;
+ return;
+ }
+ // _080BB154
+ PlaySE12WithPanning(gUnknown_020387B4[CRY_TEST_UNK0], panpot);
+ gUnknown_020387B4[CRY_TEST_PROGRESS] = 0;
+ return;
+ }
+ if(gMain.newKeys & L_BUTTON) // _080BB15E
+ {
+ gUnknown_020387B4[CRY_TEST_PANPOT]++;
+ if(gUnknown_020387B4[CRY_TEST_PANPOT] > 4)
+ gUnknown_020387B4[CRY_TEST_PANPOT] = 0;
+ }
+ if(gMain.newKeys & R_BUTTON) // _080BB176
+ {
+ gUnknown_020387B4[CRY_TEST_PANPOT]--;
+ if(gUnknown_020387B4[CRY_TEST_PANPOT] < 0)
+ gUnknown_020387B4[CRY_TEST_PANPOT] = 4;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_RIGHT) // _080BB192
+ {
+ gUnknown_020387B4[CRY_TEST_UNK0]++;
+ if(gUnknown_020387B4[CRY_TEST_UNK0] > 0xF7)
+ gUnknown_020387B4[CRY_TEST_UNK0] = 0;
+ }
+ else if(gMain.newAndRepeatedKeys & DPAD_LEFT) // _080BB1B0
+ {
+ gUnknown_020387B4[CRY_TEST_UNK0]--;
+ if(gUnknown_020387B4[CRY_TEST_UNK0] < 0)
+ gUnknown_020387B4[CRY_TEST_UNK0] = 0xF7;
+ }
+}
+
+void sub_80BB1D4(void)
+{
+ u8 lrStr[sizeof(gOtherText_LR)];
+ u8 rlStr[sizeof(gOtherText_RL)];
+
+ memcpy(lrStr, gOtherText_LR, sizeof(lrStr));
+ memcpy(rlStr, gOtherText_RL, sizeof(rlStr));
+
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_UNK0], 7, 2, 3);
+
+ switch(gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]])
+ {
+ case 0x7F:
+ MenuPrint(lrStr, 7, 4);
+ break;
+ case -0x80:
+ MenuPrint(rlStr, 7, 4);
+ break;
+ default:
+ sub_80BAE78(gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]], 7, 4, 3);
+ break;
+ }
+ sub_80BAE78(IsSEPlaying(), 12, 8, 1);
+}
+
+void sub_80BB25C(u8 taskId)
+{
+ struct CryRelatedStruct cryStruct, cryStruct2;
+ u8 zero;
+
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ gUnknown_03005D34 = 1;
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+
+ cryStruct.unk0 = 0x2000;
+ cryStruct.unk2 = 29;
+ cryStruct.paletteNo = 12;
+ cryStruct.yPos = 30;
+ cryStruct.xPos = 4;
+
+ zero = 0; // wtf?
+ gUnknown_03005E98 = 0;
+
+ while(sub_8119E3C(&cryStruct, 3) == FALSE);
+
+ cryStruct2.unk0 = 0;
+ cryStruct2.unk2 = 15;
+ cryStruct2.paletteNo = 13;
+ cryStruct2.xPos = 12;
+ cryStruct2.yPos = 12;
+
+ zero = 0; // wtf?
+ gUnknown_03005E98 = 0;
+
+ while(ShowPokedexCryScreen(&cryStruct2, 2) == FALSE);
+
+ MenuDrawTextWindow(0, 16, 5, 19);
+ sub_80BB494();
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG2CNT = 0xF01;
+ REG_BG3CNT = 0x1D03;
+ REG_DISPCNT = 0x1d40;
+ m4aMPlayFadeOutTemporarily(&gMPlay_BGM, 2);
+ TASK.FUNC = sub_80BB3B4;
+}
+
+void sub_80BB3B4(u8 taskId)
+{
+ sub_8119F88(3);
+
+ if(gMain.newKeys & A_BUTTON)
+ {
+ sub_811A050(gUnknown_03005D34);
+ }
+ if(gMain.newKeys & R_BUTTON)
+ {
+ StopCryAndClearCrySongs();
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if(--gUnknown_03005D34 == 0)
+ gUnknown_03005D34 = 384; // total species
+ sub_80BB494();
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if(++gUnknown_03005D34 > 384)
+ gUnknown_03005D34 = 1;
+ sub_80BB494();
+ }
+ if(gMain.newKeys & B_BUTTON)
+ {
+ REG_DISPCNT = 0x7140;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ TASK.FUNC = sub_80BA258;
+ DestroyCryMeterNeedleSprite();
+ }
+}
+
+void sub_80BB494(void)
+{
+ sub_80BAE78(gUnknown_03005D34, 1, 17, 3);
+}
diff --git a/src/tv.c b/src/tv.c
index 4bd11a9b9..27fe9b84c 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -44,7 +44,6 @@ struct UnkTvStruct
s8 var0;
};
-extern struct Struct30042E0 gBattleResults;
extern u8 gUnknown_0300430A[11];
struct OutbreakPokemon
@@ -430,15 +429,15 @@ void TakeTVShowInSearchOfTrainersOffTheAir(void);
void GabbyAndTyBeforeInterview(void)
{
u8 i;
- gSaveBlock1.gabbyAndTyData.mon1 = gBattleResults.unk6;
- gSaveBlock1.gabbyAndTyData.mon2 = gBattleResults.unk26;
- gSaveBlock1.gabbyAndTyData.lastMove = gBattleResults.unk22;
+ gSaveBlock1.gabbyAndTyData.mon1 = gBattleResults.Poke1Species;
+ gSaveBlock1.gabbyAndTyData.mon2 = gBattleResults.OpponentSpecies;
+ gSaveBlock1.gabbyAndTyData.lastMove = gBattleResults.LastUsedMove;
if (gSaveBlock1.gabbyAndTyData.battleNum != 0xff)
{
gSaveBlock1.gabbyAndTyData.battleNum ++;
}
gSaveBlock1.gabbyAndTyData.valA_0 = gBattleResults.unk5_0;
- if (gBattleResults.unk0)
+ if (gBattleResults.PlayerFaintCounter)
{
gSaveBlock1.gabbyAndTyData.valA_1 = 1;
} else
@@ -612,11 +611,11 @@ void sub_80BDEC8(void) {
total = 0;
sub_80BEB20();
sub_80BE778();
- if (gBattleResults.unk28 == 0) {
+ if (gBattleResults.CaughtPoke == 0) {
sub_80BE074();
} else {
sub_80BE028();
- if (sub_80BF77C(0xffff) == 0 && StringCompareWithoutExtCtrlCodes(gSpeciesNames[gBattleResults.unk28], gBattleResults.unk2A) != 0) {
+ if (sub_80BF77C(0xffff) == 0 && StringCompareWithoutExtCtrlCodes(gSpeciesNames[gBattleResults.CaughtPoke], gBattleResults.CaughtNick) != 0) {
gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows);
if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_POKEMON_TODAY_CAUGHT) != 1) {
for (i=0; i<11; i++) {
@@ -642,8 +641,8 @@ void sub_80BDEC8(void) {
show->pokemonToday.var12 = total;
show->pokemonToday.ball = item;
StringCopy(show->pokemonToday.playerName, gSaveBlock2.playerName);
- StringCopy(show->pokemonToday.nickname, gBattleResults.unk2A);
- show->pokemonToday.species = gBattleResults.unk28;
+ StringCopy(show->pokemonToday.nickname, gBattleResults.CaughtNick);
+ show->pokemonToday.species = gBattleResults.CaughtPoke;
sub_80BE138(show);
show->pokemonToday.language = GAME_LANGUAGE;
show->pokemonToday.language2 = sub_80BDEAC(show->pokemonToday.nickname);
@@ -663,8 +662,8 @@ void sub_80BE028(void) {
buffer->worldOfMasters.var00 = TVSHOW_WORLD_OF_MASTERS;
}
buffer->worldOfMasters.var02++;
- buffer->worldOfMasters.var04 = gBattleResults.unk28;
- buffer->worldOfMasters.var08 = gBattleResults.unk6;
+ buffer->worldOfMasters.var04 = gBattleResults.CaughtPoke;
+ buffer->worldOfMasters.var08 = gBattleResults.Poke1Species;
buffer->worldOfMasters.var0a = gMapHeader.name;
}
@@ -689,7 +688,7 @@ void sub_80BE074(void) {
asm_comment("Here the wrong registers are used to hold the show ID and flag.");
show->pokemonTodayFailed.var00 = TVSHOW_POKEMON_TODAY_FAILED;
show->pokemonTodayFailed.var01 = flag;
- show->pokemonTodayFailed.species = gBattleResults.unk6;
+ show->pokemonTodayFailed.species = gBattleResults.Poke1Species;
show->pokemonTodayFailed.species2 = gBattleResults.unk20;
show->pokemonTodayFailed.var10 = total;
show->pokemonTodayFailed.var11 = gBattleOutcome;
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 42b0982ab..f855ea4a4 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -773,13 +773,13 @@ gUnknown_020387E8: @ 20387E8
gUnknown_020387EC: @ 20387EC
.space 0x4
-gUnknown_020387F0: @ 20387F0
+gRotatingGate_GateSpriteIds: @ 20387F0
.space 0x10
-gUnknown_02038800: @ 2038800
+gRotatingGate_PuzzleConfig: @ 2038800
.space 0x4
-gUnknown_02038804: @ 2038804
+gRotatingGate_PuzzleCount: @ 2038804
.space 0x4
.include "src/safari_zone.o"